- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子科大 eda 第3章 有限状态机设计.ppt
数字系统EDA技术 第二章 基于FPGA的逻辑设计 第三章 有限状态机设计 第五章 上机实验与实践 第四章 复杂数字系统互联技术 第一章 数字系统设计概论 数字系统设计 一、有限状态机概念 二、有限状态机的分类 三、有限状态机的表示 四、有限状态机的设计 第三章 (同步)有限状态机设计 基本概念 有限状有限态机(FSM)是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一个时钟跳变的情况下才能从一个状态转向另一个状态,究竟转向哪一个状态取决于当前状态(对于Mealy状态机还取决于各个输入值); 有限状态机适合用可编程逻辑器件来实现。通过恰当的Verilog语言描述和EDA工具综合,可以生成性能优越的有限状态机。 一、为什么要使用状态机 应用: 芯片、板子或设备之间的数字通信,如各种总线及其协议 测试测量; 自动控制; 等等 二、有限状态机分类 Moore型有限状态机和Mealy型有限状态机。 Moore型有限状态机 Moore型:输出信号仅与当前状态有关。 次态 逻辑 状态 寄存器 输出 逻辑 输入 次态 现态 输出 时钟 复位 Mealy型有限状态机 Mealy型:输出信号不仅与当前状态有关,还与所有 输入信号有关。 次态 逻辑 状态 寄存器 输出 逻辑 输入 次态 现态 输出 时钟 复位 从结构的角度来看,Moor型状态机是Mealy型状态机 的特殊形式。 有限状态机的其它分类 状态机分类 从信号输出方式分 Mealy型状态机 Moore型状态机 从结构分 单进程状态机 多进程状态机 从状态表达方式分 有符号化状态机 确定状态编码的状态机 从编码方式分 顺序编码状态机 一位热码(独热)编码状态机 其他编码方式状态机 方法一:状态转换表 三、有限状态机的表示方法 方法二:算法流程图 方法三:状态转换图 方法一:状态转换表 输入 当前状态 下一状态 输出 0 000 001 0 1 001 010 0 … … … … 方法二:算法流程图 方法与软件程序的流程图类似 状态转换表和算法流程图都不适合复杂系统的设计 方法三:状态转换图 1 状态机的描述结构形式 四、有限状态机的设计 2 状态机的FPGA设计基础 3 状态机的具体设计 3.4.1 状态机的描述结构形式 次态 逻辑 状态 寄存器 输出 逻辑 输入 次态 现态 输出 时钟 复位 由于Moor型状态机可看成Mealy型状态机的特殊形式, 后面未加说明的,皆指Mealy状态机。 Mealy状态机的一般结构 四、有限状态机的设计 1. 主控时序过程:状态机的运转和状态转换的过程 2. 主控组合过程 :根据当前状态和外部的信号发出控制信号,同时确定下一状态的走向 3. 辅助过程:配合状态机工作的组合过程和时序过程。 Mealy状态机的结构形式 2个always块描述:1组合逻辑、1时序逻辑。 Mealy状态机的描述结构形式一 3个always块描述:2组合逻辑、1时序逻辑。 Mealy状态机的描述结构形式二 1个always块描述:1时序逻辑。 Mealy状态机的描述结构形式三 时序电路包含可记忆器件(触发器),其反馈信号和输入信号通过逻辑关系再决定输出信号。 任何组合电路都可表示为其所有输入信号的最小项的和。据此有: FPGA宏逻辑单元的乘积项或LUT的结构 3.4.2 状态机的FPGA架构设计基础 序列检测器状态转换图 [8.3] 序列检测器(三进程) module fsm1_seq101( clk, clr, x, z ); input clk, clr, x; output reg z; reg[1:0] state, next_state; // 状态量 parameter S0 = 2b00, S1 = 2b01, S2 = 2b11, S3 = 2b10; // 定义现态 always @( posedge clk or posedge clr ) if( clr ) state = S0; else state = next_state; always @( state or x ) // 定义次态 case ( state ) S0: if( x ) next_state = S1; else next_state = S0; S1: if( x ) next_state = S1; el
您可能关注的文档
最近下载
- 手术室规章制度33项汇编.pdf VIP
- “互联网+”背景下高校辅导员学业指导与职业规划工作的创新-来源:现代职业教育(高职高专)(第2020040期)-山西教育教辅传媒集团有限责任公司.pdf VIP
- 劳动实践(教案)二年级上册综合实践活动全国通用.docx VIP
- 2024年湖北省华师一附中自主招生数学试题(d含答案).pdf VIP
- 新教科版六上科学1-2《怎样放得更大》练习题(含答案).docx VIP
- 冶金消防安全知识课件.pptx
- 《电力设备典型消防规程》(DL5027—2024).pptx VIP
- 罗马城邦和罗马帝国ppt课件.pptx VIP
- 迅达5400综合系统介绍(2).pdf
- 新教科版六上科学知识点+练习题-1.2《怎样放得更大》.doc VIP
文档评论(0)