eda 第6章 有限状态机的设计

eda 第6章 有限状态机的设计

ID:5529386

大小:4.88 MB

页数:85页

时间:2017-11-13

eda 第6章 有限状态机的设计_第1页
eda 第6章 有限状态机的设计_第2页
eda 第6章 有限状态机的设计_第3页
eda 第6章 有限状态机的设计_第4页
eda 第6章 有限状态机的设计_第5页
资源描述:

《eda 第6章 有限状态机的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章有限状态机设计第6章有限状态机设计6.1概述6.2一般有限状态机的设计6.3Moore型状态机的设计6.4Mealy型状态机的设计6.5状态编码6.6状态机剩余状态处理6.1概述6.1.1关于状态机6.1.2状态机的特点6.1.3状态机的基本结构和功能6.1.1关于状态机有限状态机(FiniteStateMachineFSM)是由状态寄存器和组合逻辑电路构成的,能够根据控制信号按照预先设定的状态进行状态转移,属于一种同步时序逻辑电路。用VHDL设计的状态机的分类:(1)按信号输出方式分:Mealy(米立)型outputs=f

2、(current_states)Moore(摩尔)型outputs=f(current_states,inputs)(4)从状态编码方式分:(3)从状态表达方式分:符号化状态机和确定状态编码的状态机.顺序编码、一位热码编码和其他编码方式状态机(2)从结构上分:单进程和多进程.6.1.2状态机的特点(1)有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。(运行方式上类似于控制灵活和方便的CPU,在运行速度和工作可靠性方面都优于CPU)(2)状态机的结构模式相对简单,设计方案相对固定,特别是可以定义符号化枚举类型的状态。(3)状

3、态机容易构成性能良好的同步时序逻辑模块。有利于消除大规模逻辑电路设计中的竞争冒险现象,提供了多种设计方案消除电路中的毛刺.(4)与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂,在排错、修改和模块移植方面也有其独到的特点。(5)在高速运算和控制方面,状态机更有其巨大的优势。一般由状态机构成的硬件系统比CPU所能完成同样功能的软件系统的工作速度要高3-4个数量级.(6)就可靠性而言,状态机的优势也是十分明显的。1.由纯硬件电路构成,不存在CPU运行软件过程中许多固有的缺陷。2.状态机的设计

4、中能使用各种完整的容错技术。3.当状态机进入非法状态并从中跳出,进入正常状态所耗的时间十分短暂(约数十个微秒),尚不足以对系统的运行构成损害。6.1.3状态机的基本结构和功能状态译码器状态寄存器输出译码器输出输入反馈组合逻辑状态图6-1状态机的结构示意图状态机的两种基本操作:(1)状态机内部状态转换.状态机经历一系列状态,下一状态由状态译码器根据当前状态和输入条件决定。(2)产生输出序列.输出信号由输出译码器根据当前状态和输入条件决定。6.2一般有限状态机的设计6.2.1一般有限状态机的组成6.2.2设计实例6.2.1一般有限状态

5、机的组成一般的状态机通常包含说明部分、时序进程、组合进程、辅助进程等几个部分。1.说明部分说明部分定义新的枚举类型,其元素即为状态机的所有状态。状态变量(现态和次态)定义为信号,并且状态变量的数据类型为前述的枚举类型。如:typestate_typeis(start_state,run_state,error_state);Signalcurrent_state,next_state:state_type;2.时序进程时序进程负责状态机运转和在时钟驱动下负责状态转换.图6-2一般状态机的工作示意图4.辅助进程用于配合状态机工作的组

6、合进程或时序进程.(如为了稳定输出设置的数据锁存器等)。组合进程的任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其它的信号)和当前状态的值确定下一状态(next_state)的取值内容,以及确定对外输出或对内部其它组合或时序进程输出控制信号的内容。3.组合进程6.2.2设计实例【例6-1】一般状态机描述(摩尔型)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYs_machineIS--实体PORT(clk,reset:INSTD_LOGIC;state_inputs

7、:INSTD_LOGIC_VECTOR(0TO1);comb_outputs:OUTSTD_LOGIC_VECTOR(0TO1));ENDs_machine;REG:PROCESS(reset,clk)--时序逻辑进程BEGINIFreset='1'THEN--异步复位current_state<=st0;ELSIF(clk='1'ANDclk'EVENT)THENcurrent_state<=next_state;--当检测到时钟上升沿时转换至下一状态ENDIF;ENDPROCESS;--由current_state将当前状态值

8、带出此进程,进入进程COMARCHITECTUREbehaveOFs_machineIS--结构体TYPEstatesIS(st0,st1,st2,st3);--定义states为枚举型数据类型SIGNALcurrent_state,next_st

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。