- 14
- 0
- 约 38页
- 2017-01-02 发布于江苏
- 举报
VII - Finite State Machines ? Copyright 2004, Gaetano Borriello and Randy H. Katz 有限状态机 时序逻辑电路的结构 时序逻辑电路分析和设计 有限状态机的基本概念 有限状态机 (Moore和Mealy) 硬件描述语言 有限状态机 状态: 在存储单元中存储内容的可能值 有向弧:在相应的条件从现状改变到次态 时钟: 控制什么时候进行状态的改变 在状态图中有一条特殊的弧,它没有起始状态,并且标识为另一个输入reset,表示无论何时只要该输入有效,电路就到达它所指的状态 有限状态机的硬件描述语言 时序块(复位和状态转移) 同步复位 异步复位 现态=次态 次态逻辑 用case语句来捕捉每个状态的不同行为 状态转换由每种情况的条件语句来表示 一旦输入或者当前状态改变,次态逻辑计算模块就被触发,这样可计算变量的next_state 输出逻辑 输出逻辑模块由任何当前状态的改变所触发(摩尔机) 输出逻辑模块由任何当前状态的改变或输入改变所触发(米利机) Example: 两个或两个以上1的序列检测 Moore和Mealy实现的状态机 Verilog FSM Moore machine Moore Verilog FSM (cont’d) Mealy Verilog FSM always @(in or state) case (state) zero: // last input was a zero begin if (in) next_state = one1; else next_state = zero; end one1: // weve seen one 1 begin if (in) next_state = two1s; else next_state = zero; end two1s: // at least 2 ones begin if (in) next_state = two1s; else next_state = zero; end default: next_state = zero; endcase 根据输入信号和现态 来计算次态 注意:输出仅依赖于现态 always @(state) case (state) zero: out = 0; one1: out = 0; two1s: out = 1; endcase endmodule 1 0 0 0 1 1 zero[0] one1[0] two1s [1] FSM设计描述的HDL编码形式(1)——当前状态逻辑 设FSM:当前状态为PS、输入信号为I、下一状态为NS,输出为O always @(posedge clk or negedge Reset) begin if (~Reset) PS = FSM_Initial_State; else PS = NS; end FSM时序块(初始状态设置、状态转移)描述形式: 可以采用always @(posedge clk or negedge Reset) 形式 FSM初始状态设置 FSM在时钟控制下的状态转移情形 FSM的复位 异步复位 …… always(posedge clk or negedge reset) if(!reset) PS=ST0; else PS=NS; …… 同步复位 …… always(posedge clk) if(!reset) PS=ST0; else PS=NS; ...... * 时序电路由组合电路和存储电路组成。其输出不仅取决于当时的输入,还与过去的状态有关。 x1 Z1 xn Zm ys … y1
原创力文档

文档评论(0)