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

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

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]cur_state;
    reg [1:0]nex_state;

    always@(posedge clk or negedge rst_n)begin
        if(!rst_n)begin
            cur_state<=0;
            nex_state<=0;
        end
        else begin
            cur_state<=nex_state;
        end
    end

    always@(*)begin
        case(cur_state)
        2'b00:nex_state=(C==1)?2'b01:2'b00;
        2'b01:nex_state=(C==1)?2'b01:2'b11;
        2'b10:nex_state=(C==1)?2'b10:2'b00;
        2'b11:nex_state=(C==1)?2'b10:2'b11;
        endcase
    end

    assign Y=((cur_state==2'b11)|((cur_state==2'b10)&&(C==1)))?1:0;

endmodule

从这题来看,并不需要在设置一个y_reg存储,应该是因为直接用了assign,而没有用always块,所以可以直接使用,如果设置了反而会报错,如下:

|reg Y_reg; cannot be driven by primitives or continuous assignment.
全部评论

相关推荐

06-27 18:53
门头沟学院 Java
这样才知道自己不适合搞代码,考公去咯
只爱喝白开水:我也发现不适合搞代码,打算转非技术方向了
点赞 评论 收藏
分享
在debug的柠檬精...:好消息:现在HR挑三拣四 15年后 HR跪着求要简历 坏消息:被挑的是这代人,到时候求人的也是这代人。真好。
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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