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

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

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,nxt_state;

always@(posedge clk or negedge rst_n)
    if(!rst_n)
        cur_state   <=  2'b00;
    else
        cur_state   <=  nxt_state;

always@(*)
    if(!rst_n)
        nxt_state   <=  2'b00;
    else    case(cur_state)
    2'b00:  nxt_state   <=  C? 2'b01:2'b00;
    2'b01:  nxt_state   <=  C? 2'b01:2'b11;
    2'b11:  nxt_state   <=  C? 2'b10:2'b11;
    2'b10:  nxt_state   <=  C? 2'b10:2'b00;
    default: nxt_state  <=  2'b00;
    endcase

assign Y = (nxt_state == 2'b10) | (cur_state == 2'b11);

endmodule

全部评论

相关推荐

牛客21331815...:像我一投就pass,根本不用焦虑泡池子
点赞 评论 收藏
分享
notbeentak...:孩子,说实话,选择很重要,可能你换一个方向会好很多,但是现在时间不太够了,除非准备春招
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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