题解 | #根据状态转移写状态机-二段式#

根据状态转移写状态机-二段式

http://www.nowcoder.com/practice/5b2ff27610d04993ae92374d51bfc2e6

`timescale 1ns/1ns

module fsm2(
    input wire clk  ,
    input wire rst  ,
    input wire data ,
    output reg flag
);
//*************code***********//
    parameter S0=3'b000,S1=3'b001,S2=3'b010,S3=3'b011,S4=3'b100;
    reg [2:0] sta,nsta;
    always@(posedge clk or negedge rst)
    if(!rst)
        sta <= S0;
    else
        sta <= nsta;
   
    always@(*)begin
    flag = 0;//初始化 就不用写那么多else了
    case(sta)
    S0:nsta = data?S1:S0;
    S1:nsta = data?S2:S1;
    S2:nsta = data?S3:S2;
    S3:nsta = data?S4:S3;
    S4:begin
    nsta = data?S1:S0;
    flag = 1;
    end
    default:nsta = S0;
    endcase
    end

//*************code***********//
endmodule
全部评论

相关推荐

球Offer上岸👑:可能是大环境太差了 太卷了 学历也很重要 hc也不是很多 所以很难
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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