/* Parameters: STAGES = 4 */ module reset_conditioner ( input clk, input rin, output reg rout ); localparam STAGES = 3'h4; reg [3:0] M_stage_d, M_stage_q = 4'hf; always @* begin M_stage_d = M_stage_q; M_stage_d = {M_stage_q[0+2-:3], 1'h0}; rout = M_stage_q[3+0-:1]; end always @(posedge clk) begin if (rin == 1'b1) begin M_stage_q <= 4'hf; end else begin M_stage_q <= M_stage_d; end end endmodule