状态机

定义:将电路分成不同状态
组成

  1. 状态寄存器
  2. 转移条件 根据输入和当前状态,产生下一状态的组合逻辑
  3. 输出逻辑

实现
三段式
1 rst_n
2 状态case
3 输出

第一段:采用同步时序方式,描述状态转移

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


//第二进程,组合逻辑模块,描述状态转移条件判断
//第三段,同步时序模块,格式化输出寄存器,多个输出多个always
eg
在这里插入图片描述

always  @(*)begin
    case(state_c)
        IDLE:begin
            if(en==1)
                state_n=S1;
            else
                state_n=IDLE;
        end
        S1:begin
            if(en==1)
                state_n=S2;
            else
                state_n=S1;            
        end
        S2:begin
            if(en==1)
                state_n=IDLE;
            else
                state_n=S2;      
        end
        default:begin
                state_n=IDLE;
        end
    endcase
end


always  @(posedge clk or negedge rst_n)begin
    if(rst_n==1'b0)begin
        vld<=0;
    end
    else if(en==1&&state_c=S2) begin
        vld<=1;
    end
    else begin
        vld<=0;
    end
    end
end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值