题解 | #根据状态转移图实现时序电路#

根据状态转移图实现时序电路

https://www.nowcoder.com/practice/e405fe8975e844c3ab843d72f168f9f4

`timescale 1ns/1ns

module seq_circuit(
   input                C      ,
   input                clk    ,
   input                rst_n  ,
 
   output   wire        Y       
);

    reg [1:0]cs;
    reg [1:0]ns;
    
    always@(posedge clk or negedge rst_n)begin
        if(!rst_n)
            cs <= 0;
        else 
            cs <= ns;
    end
    
    always@(*)begin
        case(cs)
            2'b00:begin
                if(C == 0)
                    ns <= 2'b00;
                else
                    ns <= 2'b01;
            end
            2'b01:begin
                if(C == 0)
                    ns <= 2'b11;
                else
                    ns <= 2'b01;
            end
            2'b10:begin
                if(C == 0)
                    ns <= 2'b00;
                else
                    ns <= 2'b10;
            end
            2'b11:begin
                if(C == 0)
                    ns <= 2'b11;
                else
                    ns <= 2'b10;
            end
        endcase
    end
    assign Y = (cs == 2'b11)||((cs == 2'b10)&&(C==1'b1));
endmodule
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务