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

  • 4
  • 0
  • 约2.14万字
  • 约 58页
  • 2016-12-29 发布于北京
  • 举报
同步状态机的原理、结构和设计 汪彦刚 FSM 状态机分类 Moore型状态机设计 状态机复位 Moore型状态机信号输出方法 Mealy型状态机 状态机容错设计 什么是状态机 有限状态机(简称状态机)相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状态转换的过程就是实现逻辑功能的过程。 为什么使用状态机 有限状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。 设计方案相对固定,结构模式简单,可定义符号化枚举类型的状态。 状态机的HDL描述层次分明,结构清晰,易读易懂。 状态机容易构成性能良好的同步时序逻辑模块。 在高速运算和控制方面,状态机更有其巨大的优势。基于有限状态机技术设计的控制器其工作速度大大优于CPU。 就可靠性而言,状态机的优势也是十分明显的。基于有限状态机技术设计的控制器其可靠性也优于CPU。 FSM应用 FSM通过状态图描述状态转换过程 FSM:数字系统控制单元的建模 数字系统: 受控模块:功能模块,设计较易 控制模块实现 CPU FSM 执行耗费时间,执行时间的确定性方面,FSM优于CPU FSM 构成 FSM用来解决一般时序逻辑电路问题,包括同步/异步时序逻辑 状态寄存器 当前状态(现态)寄存器 组合逻辑电路 下一状态(次态)组合逻辑 输出组合逻辑 FSM分类 Moore型:输出信号仅与现态相关 Mealy型:输出信号与现态和输入相关 Moore型状态机设计方法 Moore型状态机设计方法 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; parameter 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) 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) 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(data_in) 2b00:????? data_out=1b0; default:???? data_out=1b1; endcase st1:????? data_out=1b0; st2:??? case(data_in) 2b0x:????? d

文档评论(0)

1亿VIP精品文档

相关文档