`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;
	always@(posedge clk or negedge rst) begin
		if(!rst) begin
			cnt <= 'd0;
		end
		else begin
			cnt <= cnt + 'd1;
		end
	end

	reg [3:0] data_reg;
	always@(posedge clk or negedge rst) begin
		if(!rst) begin
			data_reg <= 'd0;
		end
		else begin
			data_reg <= (cnt=='d3)?d:{data_reg[2:0],data_reg[3]};
		end
	end

	reg valid_reg;
	always@(posedge clk or negedge rst) begin
		if(!rst) begin
			valid_reg <= 1'b0;
		end
		else begin
			valid_reg <= (cnt=='d3);
		end
	end

	assign valid_in = valid_reg;
	assign dout = data_reg[3]; 

//*************code***********//

endmodule