《有限状态机》PPT课件

《有限状态机》PPT课件

ID:36783564

大小:408.60 KB

页数:25页

时间:2019-05-10

《有限状态机》PPT课件_第1页
《有限状态机》PPT课件_第2页
《有限状态机》PPT课件_第3页
《有限状态机》PPT课件_第4页
《有限状态机》PPT课件_第5页
资源描述:

《《有限状态机》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、EDA技术实用教程第8章有限状态机什么是状态机?状态机不仅仅是一种时序电路设计工具,它更是一种思想方法状态机简介:时序电路的输出(outputs)不仅与周围环境接收到的输入值(inputs)有关,而且与过去的结果(即存储元件中现在的状态)有关。CombinationalCircuit(組合邏輯電路)Flip-flops(記憶元件)inputsoutputsNextstatepresentstateclocksignal什么是状态机?简单一点,通俗一点,就是一组状态,各个状态之间,依据一定的条件,(如输

2、入一个1或者是0)存在一定的转换,(从状态X转换到状态Y)什么是状态机?为什么要使用状态机?控制灵活结构模式相对简单性能良好的同步时序逻辑什么是有限状态机?FSM(FiniteStateMachine)有限状态机一旦定义,那么它在每一个状态对每一个消息的反应都固定了。无限状态机就是一个给定的储存状态的库,不过可以储存所有你想要的状态。也就是说状态可以改变。时序进程组合进程有限状态机的一般结构组合逻辑进程【例8-1】moduleFSM_EXP(clk,reset,state_inputs,comb_ou

3、tputs);inputclk,reset;input[0:1]state_inputs;output[3:0]comb_outputs;reg[3:0]comb_outputs;parameters0=0,s1=1,s2=2,s3=3,s4=4;reg[4:0]c_st,next_state;always@(posedgeclk,negedgereset)beginif(!reset)c_st<=s0;elsec_st<=next_state;endalways@(c_st,state_inputs

4、)begincase(c_st)s0:begincomb_outputs<=5;if(state_inputs==2'b00)next_state<=s0;elsenext_state<=s1;ends1:begincomb_outputs<=8;if(state_inputs==2'b01)next_state<=s1;elsenext_state<=s2;ends2:begincomb_outputs<=12;if(state_inputs==2'b10)next_state<=s0;elsene

5、xt_state<=s3;ends3:begincomb_outputs<=14;if(state_inputs==2'b11)next_state<=s3;elsenext_state<=s4;ends4:begincomb_outputs<=9;next_state<=s0;enddefault:next_state<=s0;endcaseendendmodule定义状态机时序逻辑进程由c_state将当前状态值带出此进程,进入COMinput=0input=0input=1s0/5s1/8Res

6、et=0s2/12s3/14input=00input=1x/x1input=01input=1x/x0input=10input=0x/x0input=11input=0x/x1s4/9输出仅为当前状态的函数,输入发生变化时,必须到下一时钟,输出才发生变化.MooreFSM仿真波形使用Verilog描述状态机需要注意的问题建议使用case语句来描述状态机模型在有缺省状态时,要写上case语句的最后一个分支:default为状态机设置同步或异步复位两段式FSM描述方法虽然有很多好处,但是它有一个明显的

7、弱点就是其输出一般使用组合逻辑描述,而组合逻辑易产生毛刺等不稳定因素,并且在FPGA/CPLD等逻辑器件中过多的组合逻辑会影响实现的速率(这点与ASIC设计不同)。所以在两段式FSM描述方法中,如果时序允许插入一个额外的时钟节拍,则尽量在在后级电路对FSM的组合逻辑输出用寄存器寄存一个节拍,则可以有效地消除毛刺。但是很多情况下,设计并不允许额外的节拍插入(Latency),此时,解决之道就是采用3段式FSM描述方法。三段式描述方法与两段式描述方法相比,关键在于使用同步时序逻辑寄存FSM的输出。一段式描

8、述方法将状态转移判断的组合逻辑和状态寄存器转移的时序逻辑混写在同一个always模块中,不符合将时序和组合逻辑分开描述的CodingStyle(代码风格),而且在描述当前状态时要考虑下个状态的输出,整个代码不清晰,不利于维护修改,并且不利于附加约束,不利于综合器和布局布线器对设计的优化。两段式写法是推荐的FSM描述方法之一,在此我们仔细讨论一下代码结构。两段式FSM的核心就是:一个always模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转

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

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

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