可以用状态机也可用移位寄存器
注意题目给rst的命名不带n后缀,但其实还是下降沿触发
`timescale 1ns/1ns
module sequence_test1(
input wire clk ,
input wire rst ,
input wire data ,
output reg flag
);
//*************code***********//
reg shut_down ;
reg [4:0] seq_shift ;
always @(posedge clk or negedge rst) begin
if(!rst)
seq_shift <= 'd0 ;
else if(shut_down)
seq_shift <= 'd0 ;
else
seq_shift <= {seq_shift[3:0],data} ;
end
always @(posedge clk or negedge rst) begin
if(!rst)
flag <= 1'b0 ;
else if({seq_shift[3:0],data} == 5'b10111)
flag <= 1'b1 ;
else
flag <= 1'b0 ;
end
always @(posedge clk or negedge rst) begin
if(!rst)
shut_down <= 1'b0 ;
else if({seq_shift[3:0],data} == 5'b10111)
shut_down <= 1'b1 ;
else
shut_down <= shut_down ;
end
//*************code***********//
endmodule
标签:11,wire,题目,进阶,1ns,牛客,rst,input,reg
From: https://www.cnblogs.com/icwangpu/p/17033795.html