题解 | #序列检测器(Moore型)#

序列检测器(Moore型)

https://www.nowcoder.com/practice/d5c5b853b892402ea80d27879b8fbfd6

`timescale 1ns/1ns

module det_moore(
   input                clk   ,
   input                rst_n ,
   input                din   ,
 
   output	reg         Y   
);
parameter s0=0;
parameter s1=1;
parameter s2=2;
parameter s3=3;
parameter s4=4; 
reg[3:0]state;
reg [3:0]next_state;
always@(posedge clk or negedge rst_n)
begin if(!rst_n)
  state<=0;
else state<=next_state;
end
always@(*)
begin if(!rst_n)
next_state=0;
else case(state)
   s0:if(din) next_state=s1; else next_state=s0;
   s1:if(din) next_state=s2; else next_state=s0;
   s2:if(din==0) next_state=s3; else next_state=s2;
   s3:if(din) next_state=s4; else next_state=s0;
   s4:if(din) next_state=s1; else next_state=s0;
   default:next_state=0;
endcase
end
always@(posedge clk or negedge rst_n)
begin if(!rst_n)
Y<=0;
else if(state==s4)
Y<=1;
else 
Y<=0;
end 
endmodule

全部评论

相关推荐

头像
05-16 11:16
已编辑
东华理工大学 Java
牛客737698141号:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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