题解 | #输入序列不连续的序列检测#
输入序列不连续的序列检测
http://www.nowcoder.com/practice/f96d0e94ec604592b502b0f1800ed8aa
`timescale 1ns/1ns module sequence_detect( input clk, input rst_n, input data, input data_valid, output reg match ); reg [2:0] state; always @(posedge clk or negedge rst_n)begin if(!rst_n)begin state<=0; match<=0; end else if(data_valid)begin case(state) 2'd0: begin if(data==1'b0)begin state<=2'b1;end else begin state<=2'b0;end match<=0; end 2'd1: begin if(data==1'b1)begin state<=2'd2;end else begin state<=2'b0;end match<=0; end 2'd2: begin if(data==1'b1)begin state<=2'd3;end else begin state<=2'b0;end match<=0; end 2'd3: begin if(data==1'b0)begin match<=1'b1;end else begin match<=1'b0;end state<=2'b0; end endcase end else begin state<=0; match<=0; end
end
endmodule