文档详情

《有限状态机编写(第6节)》.ppt

发布:2016-09-16约7.04千字共38页下载文档
文本预览下载声明
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 FSM设计描述的HDL编码形式(3) ——输出逻辑 always @( PS or I ) begin case (PS) ST0: 描述FSM的函数 NS =h(ST0, I); ST1: 描述FSM的函数 NS = h(ST1, I); …… STn-1: 描述FSM的函数 NS =h(STn, I); default: 描述FSM在缺省情形下的NS取值情形; end FSM输出逻辑O的描述形式 Moore机模型中,输出逻辑只与当前状态PS有关,与输入信号I无关。 always @(PS) O = h(Sti) FSM设计描述的HDL编码形式(4) FSM的下一状态逻辑、输出逻辑也可放同一always描述,例如: always @( PS or I ) begin case (PS) ST0: 描述FSM的下一状态NS、输出逻辑O; ST1: 描述FSM的下一状态NS、输出逻辑O; …… STn-1: 描述FSM的下一状态NS、输出逻辑O; default: 描述FSM在缺省情形下的NS、O的取值情形; end FSM的复位 异步复位 …… always(posedge clk or negedge reset) if(!reset) PS=ST0; else PS=NS; …… 同步复位 …… always(posedge clk) if(!reset) PS=ST0; else PS=NS; ...... 状态的描述 直接使用整数编码描述 利用parameter声明 利用‘define定义 …… reg [1:0] case case(moore_state) `S0 : …… `S1: …… …… endcase …… module MealyFSM(clk,reset,a,y); reg[1:0] mealy_state; parameter S0= 2’b00,S1= 2’b01,S2=2’b01,S3=2’b01; …… always@(mealy_state or a) case(mealy_state) S0: …… S1: …… S2: …… …… endcase ……. endmodule ’define S0 2’b00; ’define S1 2’b01; …… module MealyFSM(clk,reset,a,y); …… 可读性好,方便! 1 0 0 0 1 1 zero [
显示全部
相似文档