verilog学习笔记——三段式状态机

17人阅读 评论(1) 收藏 举报
分类:
  • https://blog.csdn.net/jason_child/article/details/60466050

  • 摩尔状态机的架构 
    这里写图片描述

  • 状态转换图 
    这里写图片描述

  • coding

module finite_fsm(
z_o,
clk,
Rst_n,
w_i
);
//输出端口
output z_o;

//输入端口
input clk;
input Rst_n;
input w_i;

//输出端口类型声明
reg z_o;

//参数声明
parameter IDLE = 2'b00;
parameter S0 = 2'b01;
parameter S1 = 2'b10;

//内部信号声明
reg[1:0] current_state;
reg[1:0] next_state;
//状态寄存器
always @ (posedge clk or negedge Rst_n) begin
    if(!Rst_n)
            current_state <= IDLE;
    else
        current_state <= next_state;
end
//次态的组合逻辑
always @ (w_i or current_state) begin
    case(current_state)
        IDLE:begin
                  if(w_i) next_state = S0;
                   else   next_state = IDLE;
              end
        S0:  begin
                    if(w_i) next_state = S1;
                    else    next_state = IDLE;
             end
        S1:  begin
                    if(w_i) next_state = S1;
                    else    next_state = IDLE;
             end
        default : next_state = 2'bxx;
   endcase
end
//输出逻辑
always @ (*) beign
    case(current)
        IDLE:  z_o = 1'b0;
        S0:    z_o = 1'b0;
        S1:    z_o = 1'b1;
        default:  z_0 = 1'b0;
    endcase
end
endmodule
  • 关于三段式状态机的一点总结 
    1确定输入输出信号,及其类型(是wire还是reg); 
    2声明内部信号,一般需要定义current_state和next_state; 
    3用3个always语句描述状态机;第一个用来次态和现态的转换,第二个always用于现态在输入情况下转换为次态的组合逻辑;第三个语句用于现态到输出的组合逻辑输出。
查看评论

4.9.链表&状态机与多线程

-
  • 1970年01月01日 08:00

verilog经典三段式状态机设计实例(morre和mealy)

module moorefsm(clk,rst,a,z);     input   clk,rst;     input   a;     output  z;     reg     z;     ...
  • gtkknd
  • gtkknd
  • 2016-09-16 19:15:36
  • 11681

关于状态机 一段式 二段式 三段式 (网上资料搜集)

转载自:http://blog.csdn.net/code_robot/article/details/6997046 昨天在讨论FPGA代码的时候,xiaohu...
  • suwuhunxiao
  • suwuhunxiao
  • 2014-07-02 10:56:29
  • 3178

Verilog有限状态机的三种描述

在Verilog中描述有限状态机,可以有三种形式,可分为一段式、二段式和三段式。这三种描述主要根据其输入、输出和状态来分类。   一段式状态机:一段式状态机只选择一个状态标志位,这个状态标志位会在...
  • u013352499
  • u013352499
  • 2015-07-27 01:52:39
  • 3420

一段、两端、三段式状态机设计原理详解

  • 2017年08月24日 20:57
  • 2.99MB
  • 下载

三段式状态机模板。

“三段式”状态机的Verilog HDL 代码模板如下: //状态调转 always @(posedge clk) begin if (!rst_n)  state else  stat...
  • Qiuzhongweiwei
  • Qiuzhongweiwei
  • 2018-01-23 16:00:00
  • 65

Verilog三段状态机的写法-转载

时序电路的状态是一个状态变量集合,这些状态变量在任意时刻的值都包含了为确定电路的未来行为而必需考虑的所有历史信息。 状态机采用VerilogHDL语言编码,建议分为三个always段完成。 三段式...
  • li_qcxy
  • li_qcxy
  • 2013-03-27 15:55:08
  • 1214

Verilog三段式状态机描述(转载)有自己理解的部分

Verilog三段式状态机描述(转载)   时序电路的状态是一个状态变量集合,这些状态变量在任意时刻的值都包含了为确定电路的未来行为而必需考虑的所有历史信息。 状态机采用Verilo...
  • lg2lh
  • lg2lh
  • 2012-10-06 17:57:59
  • 3747

FPGA 学习之路(八)深入理解状态机

状态机定义及分类 什么是状态机:状态机通过不同的状态迁移来完成特定的逻辑操作(时序操作) 状态机的分类:Moore型状态机和Mealy型状态机 Moore型:状态机的变化只与当前的状态有关 M...
  • GOGOmusic
  • GOGOmusic
  • 2017-01-28 22:47:52
  • 578

二段式FPGA的状态机

数字系统有两大类有限状态机(Finite State Machine,FSM):Moore状态机和Mealy状态机。 Moore状态机   其最大特点是输出只由当前状态确定,与输入无关。M...
  • USB_ABC
  • USB_ABC
  • 2016-10-02 09:22:01
  • 1022
    个人资料
    持之以恒
    等级:
    访问量: 9万+
    积分: 4427
    排名: 8465
    文章存档
    最新评论