`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