教案-状态机近年原文.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE24

PAGE23

有限状态机

绝大部分复杂数字系统必须具备系统控制单元。尽管实际应用中基于微处理器和可编程器件的软件化设计被广为利用,但是,如果系统对消耗的资源和系统运行的速度有较高要求时,软件实现是不能胜任的。状态控制能够实现复杂的逻辑功能并可以通过硬件逻辑单元来完成物理实现。

有限状态机(FiniteStateMachine,FSM)是表示实现有限个离散状态及其状态之间的转移等行为动作的数学模型。状态机主要包含状态及转移两方面的内容。有限状态机特别适合描述那些发生有先后顺序或者有逻辑规律的事情,状态机的本质就是对具有逻辑顺序或时序规律事件的一种描述方法。

有限状态机及其设计技术是数字系统设计中的重要组成部分,是实现高效率、高可靠性逻辑控制的重要途径。大部分数字系统都可以划分为控制单元和数据单元(存储单元)两个组成部分,通常,控制单元的主体是一个状态机,它接收外部信号以及数据单元产生的状态信息,产生控制信号序列。

状态机设计是时序逻辑电路设计的一个子集,因为在设计及测试过程中形成了独立的体系,特别是在数字系统设计的范畴中应用面很广。小到一个简单的时序逻辑,大到复杂的微处理器,都适合用状态机方法进行描述。由于状态机不仅仅是一种电路描述工具,它更是一种思想方法,而且状态机的HDL表达方式比较规范,有章可循,因此很多设计者习惯用状态机思想进行逻辑设计,对各种复杂设计均套用状态机的设计理念,从而提高设计的效率和稳定性。

状态和转移

有限状态机设计的一般结构

一个有限状态机的结构总是可以被分成:

状态译码:根据外部输入的控制信号及当前状态(current_state)确定下一状态(next_state)的取值。采用组合逻辑判断状态转移条件,描述状态转移规律。

状态寄存器:采用同步时序描述状态转移。负责状态机运行和在时钟驱动下状态转换的过程:当时钟信号的有效边沿到达时,主控时序过程将代表次态的信号next_state中的内容送入现态的信号current_state后面的代码是pre_state中,而信号next_state中的内容完全由其他过程根据实际情况来决定。

后面的代码是pre_state

输出译码:描述每个状态的输出。

状态机的分类

根据不同的分类标准,状态机分为不同的种类:

1.摩尔型(Moore)状态机和米勒型(Mealy)状态机。

摩尔型状态机:利用组合逻辑链将当前状态译码转化为输出,其状态只在全局时钟信号改变时才改变。其最重要的特点就是将输入与输出信号隔离,所以输出稳定,能有效消除竞争冒险。如无特殊功能设计要求,摩尔状态机是设计首选。

下图中,“下一状态组合逻辑”即“状态译码”、“输出组合逻辑”即“输出译码”。

图7-36摩尔型状态机

米勒型状态机:其输出与当前状态和输入都有关,且对输入的响应发生在当前时钟周期,比摩尔型状态机对输入信号的响应要早一个周期。所以输入信号的噪声(毛刺)会直接影响输出信号,即有竞争冒险且不能消除。

图7-37米勒型状态机

2.单进程、双进程和多进程状态机

可以有3种不同的方式实现对状态机的描述:

(1)三个模块用一个进程实现,也就是说三个模块均在一个always块内,这种状态机描述称为单进程有限状态机,它既描述状态转移,又描述状态的寄存和输出。

(2)每一个模块分别用一个进程实现,也就是说三个模块对应着三个always块,这种状态机描述称为三进程有限状态机。

(3)三个模块对应着两个always块,“状态译码”、“输出译码”分配在一个进程中,“状态寄存器”用另一个进程描述。这种状态机描述称为双进程有限状态机。

状态机的设计流程

状态机的设计流程分为6个步骤,如图7-38所示。

图7-38状态机设计流程

状态机的编码方式

状态机的N种状态通常需要用某种编码来表示,即状态编码,又称为状态分配。

1.顺序二进制码

最紧密的编码,使用状态向量的位数最少,类似与前述的二进制编码器。但从一个状态转移到相邻状态时,可能会有多个比特位发生变化,易产生毛刺。

2.格雷码

在相邻状态的转换中,每次只有一个比特位发生变化,消除了产生毛刺的问题,但不适用于有很多状态跳转的情况。

3.独热码

指对任意给定的状态,状态向量中仅有一位“1”,而其余为“0”,所以N状态的状态机需要N个触发器。

4.直接输出型编码

将状态码中的某些位直接输出作为控制信号,要求状态机各状态的编码作特殊的选择,以适应控制信号的要求,该编码需要根据输出变量来定制编码。

5.无效状态的处理

在状态机的设计中,使用各种编码,尤其是独热编码后,通常会不可避免地出现大量剩余状态,即未定义的编码组合,这些状态在状态机的运行中是不需要出现的,称为无效状态。如果没有对无效状态进行合理处理,在某些情况下,状态机有可能进入不可预测

文档评论(0)

182****9025 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档