`timescale 1ns/1ns
module seq_circuit(
input A ,
input clk ,
input rst_n,
output wire Y
);
reg[1:0]state;
reg[1:0]next_state;
wire [2:0]sel;
assign sel={state,A};
always @(posedge clk or posedge rst_n)
begin if(rst_n==0)
state<=0;
else
state<=next_state;
end
always @(*)
begin
case (sel)
3'b000: begin next_state=2'b01; end
3'b010: begin next_state= 2'b10; end
3'b100: begin next_state= 2'b11; end
3'b110: begin next_state= 2'b00; end
3'b001: begin next_state= 2'b11; end
3'b011: begin next_state= 2'b00; end
3'b101: begin next_state= 2'b01; end
3'b111: begin next_state= 2'b10;end
default:next_state<=00;
endcase
end
assign Y=(state===2'b11)?1:0;
endmodule