Verilog有限状态机FSM

Verilog有限状态机FSM

ID:35616979

大小:153.50 KB

页数:36页

时间:2019-04-02

Verilog有限状态机FSM_第1页
Verilog有限状态机FSM_第2页
Verilog有限状态机FSM_第3页
Verilog有限状态机FSM_第4页
Verilog有限状态机FSM_第5页
资源描述:

《Verilog有限状态机FSM》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、有限状态机FSM北京航空航天大学夏宇闻编写为什么要设计有限状态机?如果能严格以时钟跳变沿为前提,按排好时时序,来操作逻辑系统中每一个开关Si,则系统中数据的流动和处理会按同一时钟节拍有序地进行,可以控制冒险和竞争现象对逻辑运算的破坏,时延问题就能有效地加以解决.利用同步有限状态机就能产生复杂的以时钟跳变沿为前提的同步时序逻辑,并提供操作逻辑系统的开关阵列所需要的复杂控制时序(具有信号互锁和先后次序等要求的)。北京航空航天大学夏宇闻编写为什么要设计有限状态机?如果我们能设计这样一个电路:1)能记住自己目

2、前所处的状态;2)状态的变化只可能在同一个时钟的跳变沿时刻发生,而不可能发生在任意时刻;3)在时钟跳变沿时刻,如输入条件满足,则进入下一状态,并记住自己目前所处的状态,否则仍保留原来的状态;4)在进入不同的状态时刻,对系统的开关阵列做开启或关闭的操作。北京航空航天大学夏宇闻编写为什么要设计有限状态机?clock10nsS2开关S1tttSnS3tttS4北京航空航天大学夏宇闻编写为什么要设计有限状态机?有了以上电路,我们就不难设计出复杂的控制序列来操纵数字系统的控制开关阵列。能达到以上要求的电路就是时

3、序和组合电路互相结合的产物:同步有限状态机和由状态和时钟共同控制的开关逻辑阵列。我们只要掌握有限状态机的基本设计方法,加上对基本电路的掌握,再加上对数据处理的过程的细致了解,我们就可以避免由于逻辑器件和布线延迟产生的冒险竞争现象所造成的破坏,设计出符合要求的复杂数字逻辑系统。北京航空航天大学夏宇闻编写数字系统的构成示意图同步有限状态机ena_2ena_3ena_nena_1clock组合逻辑1寄存器组组合逻辑2寄存器组组合逻辑3寄存器组组合逻辑N寄存器组input_1input_2input_n北京航

4、空航天大学夏宇闻编写同步有限状态机的设计什么是有限状态机(FSM)FSM的种类和不同点设计举例北京航空航天大学夏宇闻编写什么是有限状态机?-有限状态机是由寄存器组和组合逻辑构成的硬件时序电路;-其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态;-究竟转向哪一状态不但取决于各个输入值,还取决于当前状态。-状态机可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心。北京航空航天大学夏宇闻编写Mealy状态机下一个状态=F(当

5、前状态,输入信号); 输出信号=G(当前状态,输入信号);图1.时钟同步的状态机结构(Mealy状态机)下一状态的逻辑F输出逻辑G状态寄存器时钟信号clkclk输入输入输出当前状态激励信号北京航空航天大学夏宇闻编写Moor状态机下一个状态=F(当前状态,输入信号)输出信号=G(当前状态);下一状态的逻辑F输出逻辑G状态寄存器时钟信号clkclk输入输入输出当前状态激励信号图2.时钟同步的状态机结构(Moor状态机)北京航空航天大学夏宇闻编写带流水线输出的Mealy状态机下一个状态=F(当前状态,输入信

6、号); 输出信号=G(当前状态,输入信号);输出图3带流水线输出的Mealy状态机下一状态的逻辑F输出逻辑G状态寄存器时钟信号clkclk输入输入当前状态激励信号输出流水线寄存器clk输入北京航空航天大学夏宇闻编写简单的状态机设计举例状态转移图表示RTL级可综合的Verilog模块表示北京航空航天大学夏宇闻编写有限状态机的图形表示图形表示:状态、转移、条件和逻辑开关图3.4状态转移图IdleStartStopClearA/K1=0!AA/K2=1!Reset/K2=0K1=0!Reset/K2=0K1

7、=0(!Reset

8、!A)/K2=0K1=1!Reset/K2=0K1=0北京航空航天大学夏宇闻编写有限状态机的Verilog描述定义模块名和输入输出端口;定义输入、输出变量或寄存器;定义时钟和复位信号;定义状态变量和状态寄存器;用时钟沿触发的always块表示状态转移过程;在复位信号有效时给状态寄存器赋初始值;描述状态的转换过程:符合条件,从一个状态到另外一个状态,否则留在原状态;验证状态转移的正确性,必须完整和全面。北京航空航天大学夏宇闻编写表示方法之一modulefsm(Clock,Reset,

9、A,K2,K1);inputClock,Reset,A;//定义时钟、复位和输入信号outputK2,K1;//定义输出控制信号的端口regK2,K1;//定义输出控制信号的寄存器reg[1:0]state;//定义状态寄存器parameterIdle=2’b00,Start=2’b01,Stop=2’b10,Clear=2’b11;//定义状态变量参数值always@(posedgeClock)if(!Reset)begin//定义复位后的初始状态和输

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

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

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