Verilog四段式状态机的书写规范

声明:内容来自明德扬FPGA培训视频部分内容,本文为部分讲师讲解内容和作者的理解摘记。

state_c 是当前状态(现态);state_n是下一个状态(次态);IDLE表示初始状态(当然,不需要专门为复位信号设计idle作为初始状态,初始化就是s1,然后几个状态之间转换);s1、s2、s3表示第一、二、三种状态;s12s2中第一个2是“to”的音译化用,短句表示从第一个状态to(到)第二个状态;

一、状态机第一段

同步时序的always模块,格式化描述次态迁移到现态寄存器

//状态机第一段verilog代码:

always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        state_c <= IDLE;
    end
    else begin
        state_c <= state_n;
    end
end

二、状态机第二段

组合逻辑的always模块,描述状态转移条件判断,但是!具体判断条件不在第二段描述。重要一点,组合逻辑一定要写补全条件,else begin。

always@(*)begin
    case(state_c)
        IDLE:begin
//现在的状态是IDLE
            if(idle2s1_s
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值