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

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

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=0, S1=1, S2=2, S3=3, S4=4;
    reg [2:0] state, nstate;
    
    always@(posedge clk or negedge rst) begin
        if(~rst)
            state <= S0;
        else
            state <= nstate;
    end

    always@(*) begin
        if(~rst) begin
            nstate = S0;
            flag   = 0;
        end
        else
            case(state)
                S0: begin
                    nstate = data? S1: S0;
                    flag   = 0;
                end
                S1: begin
                    nstate = data? S2: S1;
                    flag   = 0;
                end
                S2: begin
                    nstate = data? S3: S2;
                    flag   = 0;
                end
                S3: begin
                    nstate = data? S4: S3;
                    flag   = 0;
                end
                S4: begin
                    nstate = data? S1: S0;
                    flag   = 1;
                end
                default: begin
                    nstate = S0;
                    flag   = 0;
                end
            endcase
    end
//*************code***********//
endmodule
Verilog篇题解 文章被收录于专栏

本人对牛客网verilog篇题目一些理解

全部评论
组合逻辑应该换成阻塞赋值
1 回复 分享
发布于 2022-05-23 10:30

相关推荐

好久没来牛客了,今天面试了一个实习生,感觉对方形象乱糟糟的,头发像鸡窝,像刚睡醒就来面试了,第一印象直接大打折扣,感觉我没有受到应有的尊重,再加上对方业务能力也一般,我直接挂掉;大家面试的时候还是好好收拾一下自己吧,争取给面试官留下个好印象,面试这东西还是存在眼缘的
MinJerous:更在乎本质,应该看候选人是否和岗位需要的能力匹配。洗脸/不洗头都无所谓吧,说不定人家刚刚通宵准备,就是为了这场面试呢?你挂掉他核心原因还是他能力不行,而不是形象。就算形象好点,能力不行你敢给过吗,不怕后面+1质疑你
点赞 评论 收藏
分享
自由水:笑死了,敢这么面试不敢让别人说
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客企业服务