首页 > 其他 > 详细

异步状态机

时间:2021-08-20 15:34:18      阅读:15      评论:0      收藏:0      [点我收藏+]

1 要求:

技术分享图片

2 verilog代码

module ab(
    input clk,
    input areset,    // Asynchronous reset to state B
    input in,
    output out);//  

    parameter A=0, B=1; 
    reg state, next_state;

    always @(*) begin    // This is a combinational always block
        // State transition logic
        case(state)
            B:begin
                if(in == 0)begin
                    next_state =A;
                end
                else begin next_state = B;end
            end
            A:begin
                if(in == 0)begin
                    next_state = B;   
                end
                else begin
                    next_state =A;
                end
            end
            default:begin
                next_state = B;
            end
                
        endcase
    end

    always @(posedge clk, posedge areset) begin    // This is a sequential always block
        // State flip-flops with asynchronous reset
        if(areset)begin
            state <=B;
        end
        else begin
            state <= next_state;  
        end
    end

    // Output logic
    // assign out = (state == ...);
    assign out = (state == B)?1‘b1:1‘b0;

endmodule

3 原理图
技术分享图片

4 仿真
技术分享图片

题源:题源:FSM1

异步状态机

原文:https://www.cnblogs.com/waqdgstd/p/15166301.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!