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

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

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

`timescale 1ns/1ns

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

parameter sta0 = 2'b00;
parameter sta1 = 2'b01;
parameter sta2 = 2'b10;
parameter sta3 = 2'b11;

reg [1:0] stage, next_stage;

always@(posedge clk or negedge rst_n) begin
    if(~rst_n) begin
        stage       <= sta0;
    end else begin
        stage       <= next_stage;
    end
end

always@(*) begin
    case(stage)
    sta0: begin
        if(C)
            next_stage  = sta1;
        else
            next_stage  = sta0;
    end

    sta1: begin
        if(C)
            next_stage  = sta1;
        else
            next_stage  = sta3;
    end

    sta2: begin
        if(C)
            next_stage  = sta2;
        else
            next_stage  = sta0;
    end

    sta3: begin
        if(C)
            next_stage  = sta2;
        else
            next_stage  = sta3;
    end
    endcase
end

assign Y = (((stage==sta2)&C) | (stage==sta3));




endmodule

全部评论

相关推荐

湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-18 18:30
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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