1 / 21
文档名称:

状态机学习报告.doc

格式:doc   大小:917KB   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

状态机学习报告.doc

上传人:mh900965 2017/11/17 文件大小:917 KB

下载得到文件列表

状态机学习报告.doc

相关文档

文档介绍

文档介绍:状态机学****报告

状态机就是对具有逻辑顺序或时序规律的事件进行描述的一种方法,是由寄存器组和组合逻辑构成的硬件时序电路。所有具有逻辑顺序和时序规律的事情都适合用状态机来描述。状态机有三要素:状态(状态变量),在逻辑设计中,使用状态划分逻辑顺序时序规律。输出,在某一个状态时特定发生的时间。输入,状态机进入每个状态的条件。

根据输出是否与输入条件有关,可以将状态机分为MOORE(摩尔)型和MEALY(米勒)两大类:
A)摩尔型:状态机的输出仅依赖当前状态,与输入条件无关。
输入X
组合逻状态寄组合输出Y
辑电路存器电路

当前状态
摩尔型状态机的描述方法:
case
A: next_state <= B
B: next_state <= C
...
endcase
B)米勒型:状态机的输出不仅依赖当前的状态,还与输入有关。
输入X 输出Y
组合逻
辑电路状态寄
clk 存器

当前状态
米勒型状态机描述方法:
case
A: //不满足条件则停留在当前状态的跳转
if(conditionA)
next_state <= B
else
next_state <= A
B: //两种不同次态的跳转
if(conditionB)
next_state <= C
else
next_state <= D
endcase
另外,根据状态机数量是否有限,可将状态机分为FSM(有限状态机)和ISM(无限状态机)。

状态机的描述方式有:状态转移图、状态转移列表和HDL语言描述。状态转移图经常在设计规划阶段定义逻辑功能时使用,也可以在分析已有源代码中的状态机时使用,这种图形化的描述方式有助于理解设计意图。状态转移列表是用列表的方式描述状态机,是数字逻辑电路常用的设计方法之一,经常被用于状态化简,对于可编程逻辑设计而言,由于可用逻辑资源比较丰富,而且状态编码要考虑设计的稳定性、安全性等因素,所以并不经常使用状态转移列表优化状态。使用HDL语言描述状态机应具有一定的灵活性,通过使用一些规范的描述方法,可以使HDL语言描述状态机更安全、更稳定、更高效、更易于维护。所以用HDL语言描述状态机,是我学****写状态机的重点。
状态机的一般设计步骤:(1)分析状态;(2)确定状态转移图;(3)状态简化;(4)状态编码。在电路设计中,状态机的基本描述一般有三种:状态转移列表,状态转移图,HDL语言描述。状态转移列表是用列表的方式来描述状态机,经常用于状态化简。但是由于状态编码要考虑设计的稳定性和安全性等因素,并不推荐用状态转移列表优化状态。
状态转移图是状态机描述中最自然的方式,不仅在规划功能状态的时候经常用到,在分析源代码的时候也都经常用到。这种方法有助于理解设计意图。

在ISE中的StateCAD支持以状态转移图作为逻辑设计输入能够自动将状态转移图生成HDL语言。设计者只要画出状态转移图就可以了,StateCAD能自动将状态转移图翻译成HDL语言代码,而且翻译出来的代码规范,可读性较好、可综合、易维护,但是由于其自动翻译的代码过于格式化,因此效率不高,对于较大规模的逻辑设计而言,还是推荐使用HDL语言进行描述。
下面将介绍使用状态机进行状态机设计的一般步骤。A)创建状态机:使用ISE创建工程后,为工程添加新的设计输入,选择“State Diagram”选项,如下图所示。
然后点击Next,在弹出的Summary框中点选Finish,就会生成如下图所示的State主界面。
选择图标,就进入了状态机输入的向导,如下图所示。在这个界面里可以设置状态机图形的形状。
选择Next之后,出现的界面是设置同步或异步复位模式的,一般我们都选择同步复位。界面如下图所示。
下一个界面是设置转换模式的,如下图所示。设置完毕后选择“Finish”就完成了状态机的创建。
此时在主界面上将出现向导生成的图形,具体如下图所示。
B)添加状态任务
双击如上图所示的STATE0状态,为其添加任务,此时将出现如下图所示的状态任务编辑器。在点选Output Wizard可以根据不同的需要来设置。选择完毕以后点击OK即可。依此方法便可以完成对各个状态的任务的编辑。
C) 添加状态转移条件
在主界面上双击每两个状态间的连线来设定状态转移条件,其余操作与前面添加状态任务基本相同,这里就不重复介绍。设置完成后的界面如下图所示。
D)优化设置
选择主界面工具条上的按钮就可以打开优化设置向导,如下图所示,可以看出该向导里面共有5个步骤,下面分别介绍。
(1)选择目标器件,如下图