同步状态机的原理结构和设计

上传人:宝路 文档编号:53073938 上传时间:2018-08-27 格式:PPT 页数:58 大小:597.47KB
返回 下载 相关 举报
同步状态机的原理结构和设计_第1页
第1页 / 共58页
同步状态机的原理结构和设计_第2页
第2页 / 共58页
同步状态机的原理结构和设计_第3页
第3页 / 共58页
同步状态机的原理结构和设计_第4页
第4页 / 共58页
同步状态机的原理结构和设计_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《同步状态机的原理结构和设计》由会员分享,可在线阅读,更多相关《同步状态机的原理结构和设计(58页珍藏版)》请在金锄头文库上搜索。

1、同步状态机的原理、结构和设计,汪彦刚,FSM,状态机分类 Moore型状态机设计 状态机复位 Moore型状态机信号输出方法 Mealy型状态机 状态机容错设计,状态机一般定义,(Finite State Machine,FSM),状态机 一个离散数学模型。给定一个输入集合,根据对输入的接受次序来决定一个输出集合。(摩尔状态机),状态 系统的基本数学特征。,有限状态机 输入集合和输出集合都是有限的,并只有有限数目的状态。,什么是状态机,有限状态机(简称状态机)相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就

2、是实现逻辑功能的过程。,为什么使用状态机,有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。设计方案相对固定,结构模式简单,可定义符号化枚举类型的状态。 状态机的HDL描述层次分明,结构清晰,易读易懂。状态机容易构成性能良好的同步时序逻辑模块。在高速运算和控制方面,状态机更有其巨大的优势。基于有限状态机技术设计的控制器其工作速度大大优于CPU。就可靠性而言,状态机的优势也是十分明显的。基于有限状态机技术设计的控制器其可靠性也优于CPU。,输入集合 A,输出集合 X,状态记忆,输出形成,状态迁移,状态机一般结构,CLK,组合逻辑,时序逻辑,同步,当前状态,后续状态,S,a1 , a2 ,

3、, an,x1 , x2 , , xn,状态位置,状态名称,转移方向,输入集合 (触发事件),输出集合 (执行动作),状态等待,状态迁移图,nn,a1 , a2 , , an,x1 , x2 , , xn,状态位置,状态名称,转移方向,输入集合 (触发事件),输出集合 (执行动作),状态等待,状态迁移图,S,状态编码,FSM应用,FSM通过状态图描述状态转换过程 FSM:数字系统控制单元的建模 数字系统: 受控模块:功能模块,设计较易 控制模块实现 CPU FSM 执行耗费时间,执行时间的确定性方面,FSM优于CPU,FSM 构成,FSM用来解决一般时序逻辑电路问题,包括同步/异步时序逻辑 状

4、态寄存器 当前状态(现态)寄存器 组合逻辑电路 下一状态(次态)组合逻辑 输出组合逻辑,FSM分类,Moore型:输出信号仅与现态相关 Mealy型:输出信号与现态和输入相关,DFFs,Output Comb. Logic,Feedback Comb. Logic,DFFs,Output Comb. Logic,Feedback Comb. Logic,Moore,Mealy,现态,次态,输入,输出,现态,次态,输出,输入,Moore型状态机设计方法,摩尔型状态机的典型结构,Moore型状态机设计方法,More型状态机输出仅和存储电路的状态有关,与外部输入无关,即:外部输出是内部状态的函数。,

5、状态转移图描述方式:,Mealy型状态机设计方法,米勒型状态机的典型结构,Mealy型状态机输出不仅和存储电路状态有关,还和外部输入信号有关,即:外部输出是内部状态和外部输入的函数,状态图描述方式:,Mealy型状态机设计方法,Example of a 5-state Mealy FSM,module mealy (data_in, data_out, reset, clock); output data_out; input 1:0 data_in; input reset, clock; reg data_out; reg 2:0 pres_state, next_state; param

6、eter st0=3d0, st1=3d1, st2=3d2, st3=3d3, st4=3d4; / FSM register always (posedge clock or negedge reset) begin: statereg if(!reset)/ asynchronous reset pres_state = st0; else pres_state = next_state; end / statereg,/ FSM combinational block always (pres_state or data_in) begin: fsm case (pres_state)

7、 st0: case(data_in) 2b00: next_state=st0; 2b01: next_state=st4; 2b10: next_state=st1; 2b11: next_state=st2; endcase st1: case(data_in) 2b00: next_state=st0; 2b10: next_state=st2; default: next_state=st1; endcase st2: case(data_in) 2b0x: next_state=st1; 2b1x: next_state=st3; endcase st3: case(data_in

8、) 2bx1: next_state=st4; default: next_state=st3; endcase st4: case(data_in) 2b11: next_state=st4; default: next_state=st0; endcase default: next_state=st0; endcase end / fsm,/ Mealy output definition using pres_state w/ data_in always (data_in or pres_state) begin: outputs case(pres_state) st0: case

9、(data_in) 2b00: data_out=1b0; default: data_out=1b1; endcase st1: data_out=1b0; st2: case(data_in) 2b0x: data_out=1b0; default: data_out=1b1; endcase st3: data_out=1b1; st4: case(data_in) 2b1x: data_out=1b1; default: data_out=1b0; endcase default: data_out=1b0; endcase end / outputs endmodule,Exampl

10、e of a 5-state Moore FSM,module moore (data_in, data_out, reset, clock); output data_out; input 1:0 data_in; input reset, clock; reg data_out; reg 2:0 pres_state, next_state; parameter st0=3d0, st1=3d1, st2=3d2, st3=3d3, st4=3d4; /FSM register always (posedge clock or negedge reset) begin: statereg

11、if(!reset) pres_state = st0; else pres_state = next_state; end / statereg / FSM combinational block always (pres_state or data_in) begin: fsm case (pres_state) st0: case(data_in) 2b00: next_state=st0; 2b01: next_state=st4; 2b10: next_state=st1; 2b11: next_state=st2; endcase,st1: case(data_in) 2b00:

12、next_state=st0; 2b10: next_state=st2; default: next_state=st1; endcase st2: case(data_in) 2b0x: next_state=st1; 2b1x: next_state=st3; endcase st3: case(data_in) 2bx1: next_state=st4; default: next_state=st3; endcase st4: case(data_in) 2b11: next_state=st4; default: next_state=st0; endcase default: n

13、ext_state=st0; endcase end / fsm / Moore output definition using pres_state only always (pres_state) begin: outputs case(pres_state) st0: data_out=1b1; st1: data_out=1b0; st2: data_out=1b1; st3: data_out=1b0; st4: data_out=1b1; default: data_out=1b0; endcase end / outputs endmodule / Moore,verilog语言

14、描述FSM的建立过程,跟据具体要求分析控制过程,建立状态转移图后: 1。定义枚举类型的信号描述状态 2。建立第1个always,描述次态组合逻辑,现态和输入信号作为敏感量, 3。在进程中定义状态转移 CASE 语句的一条表示一个状态,状态转移通过IF ELSE语句实现 4。对于双进程FSM,建立第2个进程,现态寄存器描述进程,CLK,RST为敏感量;对于单进程FSM,则在一个进程中完成同步状态转移。,Mealy状态机:如果时序逻辑的输出不仅取决于状态还取决于输入,那么称之为Mealy机。而有些时序逻辑电的输出只取决于当前状态,即输出信号=G(当前状态),这样的就称为Moore状态机。,两种电路

15、结构除了在输出电路部分有些不同外,其他地方都是相同的。在设计高速电路时,常常有必要使状态机的输出与时钟几乎完全同步。有一个办法是把状态变量直接用作输出,为此在指定状态编码时多费一些脑力,有可能会多用几个寄存器。 设计告诉状态机还有一个办法,在输出逻辑G后面再加一组与时钟同步的寄存器输出流水线寄存器,让G所有的输出信号在下一个时钟跳变沿时同时存入寄存器组,即完全同步的输出,这种输出称为流水线化的输出的Mealy状态机。,Flip-Flops,FLIP-FLOPs are trivial FSMs Use state diagrams to remember flip-flops functions,S & R,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号