`timescale 1ns/1ns
module huawei5(
	input wire clk  ,
	input wire rst  ,
	input wire [3:0]d ,
	output wire valid_in ,
	output wire dout
	);

//*************code***********//
reg [1:0] cnt;
reg [3:0] data;
reg valid_r;
reg dout_r;

always @( posedge clk or negedge rst) begin
  if(!rst) begin
	cnt <= 'b0;
	valid_r <= 'b0;
	data <= 'd0;
  end
  else if (cnt == 'd3) begin
	cnt <= 'd0;
    valid_r <= 'b1;
	data <= d;
  end
  else begin
    cnt <= cnt + 'b1;
	valid_r <= 'b0;
	data <= data;
  end
end

always @ (*) begin
  case (cnt) 
    'd0: dout_r = data[3];
	'd1: dout_r = data[2];
	'd2: dout_r = data[1];
	'd3: dout_r = data[0];
  endcase
end
assign valid_in = valid_r;
assign dout = dout_r;
//*************code***********//
endmodule