首页 > 其他 > 详细

已知状态表写状态机

时间:2021-09-02 00:25:36      阅读:59      评论:0      收藏:0      [点我收藏+]

1 要求

技术分享图片

1.2 异步verilog代码

module top_module(
    input clk,
    input in,
    input areset,
    output out); //

    parameter A=2‘b00, B=2‘b01, C=2‘b11, D=2‘b10;
     reg [1:0] next_state;
     reg [1:0] state;
    // State transition logic: next_state = f(state, in)
    always @(posedge clk or posedge areset) begin
        if(areset)begin
            state <=A;
        end
        else begin
            state <= next_state;
        end
        
    end
    always @(*)begin
        case (state)
            A: begin
                if(in==1‘b1)begin
                    next_state = B ;
                end
                else begin
                    next_state = A;
                end end
            B: begin
                if (in==1‘b0) begin
                    next_state = C;
                end
                else begin
                    next_state = B;
                end end
            C: begin
                if (in==1‘b1) begin
                    next_state = D;
                end
                else begin
                    next_state =A;
                end  end
            D: begin
                if (in==1‘b1) begin
                    next_state = B;
                end
                else begin
                    next_state =C;
                end  end

            default: next_state = A;
        endcase     
    end


    // Output logic:  out = f(state) for a Moore state machine  只和当前的状态有关和输入无关
    assign out =(state == D)?1‘b1:1‘b0;

endmodule

1.3 仿真图

技术分享图片

1.4 原理图

技术分享图片

已知状态表写状态机

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

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