题解 | #根据状态转移写状态机-二段式#居然没人说好奇怪可恶啊 我看不懂。

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

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

``` `timescale 1ns/1ns

module fsm2( input wire clk , input wire rst , input wire data , output reg flag );

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

//**code// endmodule

全部评论

相关推荐

牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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