`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