第四章有限状态机要点课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第四章有限状态机要点课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 有限状态机 要点 课件
- 资源描述:
-
1、第四章第四章 有限状态机设计大纲4.1 FSM设计方法4.2 FSM设计实例4.3 基于FPGA的数字系统设计原则和技巧4.4小结习题44.1 FSM设计方法设计方法 有限状态机(FSM,Finite State Mechine),顾名思义,就是一系列数量有限的状态组成的一个循环机制。 本章主要介绍有限状态机的特点和设计规则,给出了使用Verilog HDL硬件描述语言设计有限状态机的一般方法。结合Moore机和Mealy机的设计实例,详细分析了具有可综合风格的有限状态机的设计方法和设计过程。最后给出了数字系统设计的一些基本原则和设计技巧。4.1 FSM设计方法设计方法时序电路如图所示:组合逻
2、辑接收电路输入信号并输出结果,时序逻辑将组合逻辑的输出存储并反馈回组合逻辑,以此来形成电路的当前状态(current state),当前状态和电路输入信号经过组合逻辑作用形成电路的下一状态(next state)传递给时序电路。图 时序电路基本结构4.1 FSM设计方法设计方法 对于同步时序电路,根据输入端情况可分为两种电路结构:一是没有输入端的同步时序电路,比如计数器、分频器等;另外一种是有输入端控制的电路,称之为有限状态机。有限状态机由组合逻辑电路和若干寄存器组成,根据电路的输入和电路当前状态决定电路的输出。4.1 FSM设计方法设计方法v在有限状态机中,根据电路输出是否与电路输入有关,可
3、以将有限状态机分为Mealy机和Moore机两种。图 Mealy机和Moore机示意图4.1 FSM设计方法设计方法vMealy机属于同步输出状态机,它的输出是当前状态和所有输入信号的函数,其输出会在输入变化后立即发生,不依赖于时钟的同步。vMoore机属于异步输出状态机,它的输出仅为当前状态的函数,与当前输入信号无关。当然,当前状态是和上一时刻的输入信号相关的,当前输入的变化必须等待下一时钟到来使状态发生变化时才能导致输出的变化。v因此,Moore机比Mealy机多等待一个时钟周期才会引起输出的变化。4.1.1使用FSM设计数字系统的优点1)有限状态机能够按照输入信号的控制和预先设定的执行顺
4、序在各个状态间顺畅地切换,具有明显的顺序特征,能够很好地执行顺序逻辑;2)有限状态机设计方法非常规范,设计方案相对固定,并能被多数综合工具支持;3)采用有限状态机设计,易于构成性能良好的同步时序逻辑,有利于消除大规模逻辑电路中常见的竞争冒险现象;4)使用Verilog硬件语言进行有限状态机设计,程序层次分明、结构清晰、易读好懂。模块的修改、优化和移植也非常方便;5)在高速运算与控制方面,和CPU相比,状态机具有明显的速度优势。4.1.2设计FSM的基本步骤设计有限状态机的基本步骤如下:1画出状态转移图;2确定状态编码和编码方式;3给出状态方程和输出方程;4编写Verilog代码。4.1.3 设
5、计FSM的基本原则v遵循以下基本指导原则:1)所设计的状态机要安全,不能进入死循环,不能进入非预知状态。即使是由于某种扰动进入非设计状态,也要能很快恢复到正常的状态循环中来;2)状态机的设计要满足设计的面积和速度的要求;3)状态机的设计要清晰易懂,易维护。4.1.4 FSM的Verilog代码编写方法1. 代码分段方法一段式:整个状态机写到一个always模块里,在该模块中既描述状态转移,又描述状态的输入和输出;二段式:用两个always模块来描述状态机,其中一个always模块采用同步时序描述状态转移,另外一个模块采用组合逻辑判断状态转移条件,描述状态转移规律以及输出;4.1.4 FSM的V
6、erilog代码编写方法三段式:在两个always模块描述方法的基础上,使用三个always模块。一个always模块采用同步时序描述状态转移(使用状态寄存器);另一个always模块采用组合逻辑判断状态转移条件,描述状态转移规律(次态逻辑);最后一个always模块描述状态输出,输出可以是组合电路输出,也可以是时序电路输出(输出逻辑)。图 三段式状态机设计结构图4.1.4 FSM的Verilog代码编写方法2编码方式 状态机的编码方式可分为顺序编码(sequential encoding,也称为二进制编码)、格雷码(gray encoding)和独热码(one-hot encoding)。状
7、态顺序编码格雷码独热编码S000000010000S100100101000S201001100100S301101000010S410011000001表4-1 状态机编码方式表 状态机编码方式4.1.4 FSM的Verilog代码编写方法v状态编码的选择原则设计条件和要求编码方式说明要求面积优先要求面积优先顺序编码顺序编码编码最简单,使用触发器最少,剩余非法编码最简单,使用触发器最少,剩余非法状态最少,但增加了状态译码组合逻辑。状态最少,但增加了状态译码组合逻辑。要求速度优先要求速度优先独热编码独热编码虽然使用了较多触发器,但简化了状态译虽然使用了较多触发器,但简化了状态译码组合逻辑,并且
8、在同一时间只有一个状码组合逻辑,并且在同一时间只有一个状态寄存器发生变化,所以是最快的方式,态寄存器发生变化,所以是最快的方式,而且适用大多数而且适用大多数FPGA。当状态数当状态数5时时顺序编码顺序编码一般是默认的编码方式。一般是默认的编码方式。当状态机后有当状态机后有大型输出译码大型输出译码器时器时顺序编码或顺序编码或格雷码格雷码在这种情况下,虽然必须通过译码决定状在这种情况下,虽然必须通过译码决定状态的值,但仍可能比独热码速度快。态的值,但仍可能比独热码速度快。当触发器资源当触发器资源丰富时丰富时独热码独热码最快的方式,由于简化了状态译码逻辑,最快的方式,由于简化了状态译码逻辑,故提高了
展开阅读全文