EDA第8章-有限状态机设计技术.ppt

上传人:牧羊曲112 文档编号:5428640 上传时间:2023-07-06 格式:PPT 页数:26 大小:448KB
返回 下载 相关 举报
EDA第8章-有限状态机设计技术.ppt_第1页
第1页 / 共26页
EDA第8章-有限状态机设计技术.ppt_第2页
第2页 / 共26页
EDA第8章-有限状态机设计技术.ppt_第3页
第3页 / 共26页
EDA第8章-有限状态机设计技术.ppt_第4页
第4页 / 共26页
EDA第8章-有限状态机设计技术.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《EDA第8章-有限状态机设计技术.ppt》由会员分享,可在线阅读,更多相关《EDA第8章-有限状态机设计技术.ppt(26页珍藏版)》请在三一办公上搜索。

1、第8章,有限状态机设计技术,有限状态机的简介,基本概念,有限状态机用来实现一个数字电路设计的控制部分,与CPU 的功能类似,综合了时序逻辑和组合逻辑电路。,有限状态机与CPU功能比较,控制功能的实现 CPU通过操作指令和硬件操作单元。有限状态机通过状态转移。,有限状态机适用于可编程逻辑器件。通过恰当的Verilog语言描述和EDA工具综合,可以生成性能优越的有限状态机,在执行时间、运行速度和占用资源等方面优于CPU实现的设计方案。,有限状态机分类,Moore型有限状态机和Mealy型有限状态机。,Moore型有限状态机,Moore型:输出信号仅与当前状态有关。,有限状态机的简介,Mealy型有

2、限状态机,Mealy型:输出信号不仅与当前状态有关,还与所有 输入信号有关。,有限状态机的简介,8.1.2 状态机的一般结构,有限状态机(FSM,Finite State Machine)是时序电路设计中经常采用的一种方式,尤其适于设计数字系统的控制模块。用Verilog的case、if-else等语句能很好地描述基于状态机的设计。,1.说明部分,状态转换变量的定义和所有可能状态的说明,2005版,参数说明关键字parameter,2.主控时序过程:状态机的运转和状态转换的过程,8.1.2 状态机的一般结构,3.主控组合过程:根据当前状态和外部的信号发出控制信号,同时确定下一状态的走向,4.辅

3、助过程:配合状态机工作的组合过程和时序过程。,8.1.2 状态机的一般结构,说明部分,主控时序过程,8.1.2 状态机的一般结构,主控组合过程,8.1.3 初始控制与表述,打开“状态机萃取”开关 参数的定义 状态变量定义,用状态机设计一个二进制序列检测器,其功能是检测一个4位二进制序列“1111”,即输入序列中如果有4个或4个以上连续的“1”出现,输出为1,其它情况下,输出为0。,有限状态机(FSM)设计举例,输出z:000 000 000 000 000 100 001 110 000,其输入输出如下所示:,输入x:000 101 010 110 111 101 111 110 101,有限

4、状态机(FSM)设计,“1111”序列检测器状态转换图,“1111”序列检测器的Verilog描述,module fsm_seq(x,z,clk,reset,state);input x,clk,reset;output z;output2:0 state;reg z;parameter s0=0,s1=1,s2=2,s3=3,s4=4;reg 2:0 current_state,next_state;assign state=current_state;always(posedge clk or posedge reset)begin if(reset)current_state=s0;el

5、se current_state=next_state;end,always(current_state or x)begin casex(current_state),“1111”序列检测器的Verilog描述,s0:beginif(x=0)begin next_state=s0;z=0;endelse begin next_state=s1;z=0;end end s1:beginif(x=0)begin next_state=s0;z=0;end else begin next_state=s2;z=0;end ends2:beginif(x=0)begin next_state=s0;

6、z=0;end else begin next_state=s3;z=0;end ends3:begin if(x=0)begin next_state=s0;z=0;endelse begin next_state=s4;z=1;end ends4:beginif(x=0)begin next_state=s0;z=0;endelse begin next_state=s4;z=1;end end default:begin next_state=s0;end endcase endendmodule,8.2 Moore型状态机及其设计,Moore型有限状态机,Moore型:输出信号仅与当前

7、状态有关。属于同步输出状态机,当输入发生变化时还必须等待一个时钟的到来,输出才变化。,8.2 Moore型状态机及其设计,ADC0809采样控制器设计:,工作时序,8.2 Moore型状态机及其设计,状态转换图:,8.2 Moore型状态机及其设计,8.2.1 多过程结构型状态机,8.2 Moore型状态机及其设计,8.2.1 多过程结构型状态机,接下页,8.2 Moore型状态机及其设计,8.2.1 多过程结构型状态机,接上页,8.2 Moore型状态机及其设计,描述方式,输出次态逻辑,输出逻辑,8.3 Mealy型状态机设计,Mealy型有限状态机,Mealy型:输出信号不仅与当前状态有关

8、,还与所有 输入信号有关。,设计举例:检测序列11010011,基于状态机的设计要点,1起始状态的选择起始状态是指电路复位后所处的状态,选择一个合理的起始状态将使整个系统简洁高效。有的EDA软件会自动为基于状态机的设计选择一个最佳的起始状态。,2状态编码状态编码主要有二进制编码、顺序编码和一位独热编码等方式。二进制编码(Binary State Machine)顺序编码(Sequential State Machine)一位热码编码(One-Hot State Machine Encoding)一位热码编码即采用n位(或n个触发器)来编码具有n个状态的状态机。比如对于state0、state1

9、、state2、state3 四个状态可用码字1000、0100、0010、0001来代表。,基于状态机的设计要点,3状态编码的定义在Verilog语言中,有两种方式可用于定义状态编码,分别用parameter和define语句实现,比如要为state0、state1、state2、state3四个状态定义码字为:00、01、11、10,可采用下面两种方式。方式1:用parameter参数定义 parameter state1=2b00,state2=2b01,state3=2b11,state4=2b10;case(state)state1:;/调用 state2:;,基于状态机的设计要点,4状态转换的描述一般使用case语句来描述状态之间的转换,用case语句表述比用if-else语句更清晰明了。,状态编码的定义方式2:用define语句定义define state1 2b00/不要加分号“;”define state2 2b01define state3 2b11define state4 2b10case(state)state1:;/调用,不要漏掉符号“”state2:;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号