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

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

https://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'd0;

parameter S1 = 3'd1;

parameter S2 = 3'd2;

parameter S3 = 3'd3;

parameter S4 = 3'd4;

reg [2:0]curr_state;

reg [2:0]next_state;

//组合逻辑判断状态状态转移条件,描述状态转移条件以及输出

always@(*)(1444584)begin

    case(curr_state)

        S0:begin

            next_state <= data? S1:S0;

            flag <= 1'b0;

        end

        S1:begin

            next_state <= data? S2:S1;

            flag <= 1'b0;

        end

        S2:begin

            next_state <= data? S3:S2;

            flag <= 1'b0;

        end

        S3:begin

            next_state <= data? S4:S3;

            flag <= 1'b0;

        end

        S4:begin

            next_state <= data? S1:S0;

            flag <= 1'b1;

        end

        default: next_state <= S0;

    endcase

end

//同步时序状态装换

always@((487950916)posedge clk or negedge rst)begin

    if(!rst)

        curr_state <= S0;

    else

        curr_state <= next_state;

end

//*************code***********//

endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:46
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
05-23 20:31
已编辑
武汉大学 Java
内向的柠檬精在研究求...:注意把武大标粗标大 本地你俩不是乱杀
实习进度记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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