Overlapping Sequence Detector Verilog Code
1001 Sequence Detector Verilog Code
In this post we are going to discuss the Verilog code of 1001 sequence detector. The sequence detector is of overlapping type. It means that the sequencer keep track of the previous sequences. Whenever the sequencer finds the incoming sequence matches with the 1001 sequence it gives the output 1.
As Moore machine is used mostly in all practical designs the Verilog code for 1001 sequence detector fsm is written in Moore fsm logic.
1001 Sequence Detector State Diagram is given below.
The verilog code for overlapping moore sequence detector is given below.
`timescale 10ns / 1ps module moore_1001( input reset, input clk, input x, output reg y ); parameter A=3'd0, B=3'd1, C=3'd2, D=3'd3, E=3'd4; reg [2:0] current_State, next_State; always @(posedge clk) begin if(reset) current_State <=A; else current_State <=next_State; end always @(*) begin next_State= current_State; y=1'b0; case (current_State) A: begin if(x==1'b1) next_State=B; end B: begin if(x==1'b0) next_State=C; end C: begin if(x==1'b0) next_State=D; else next_State= B; end D: begin if(x==1'b0) next_State=A; else next_State= E; end E: begin y=1'b1; if(x==1'b0) next_State=C; else next_State= B; end default: begin next_State=A; y=1'b0; end endcase end endmodule
1001 Sequence Detector Simulation Result
If you have any query/suggestion please feel free to comment below the post.
how to see the output for the above program
You can use online EDA playground website