题解 | #并串转换#
并串转换
https://www.nowcoder.com/practice/296e1060c1734cf0a450ea58dd09d36c
`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 [3:0]buff; reg [7:0]cnt; always@(posedge clk or negedge rst)begin if(!rst) buff<=0; else if((cnt==3)|(cnt==7)) //实在不懂为什么复位后4个周期再输出,垃圾牛客 buff<=d; else buff<=buff; end always@(posedge clk or negedge rst)begin if(!rst) cnt<=0; else if(cnt==7) cnt<=4; else cnt<=cnt+1; end reg dout_r; reg valid_in_r; always@(cnt) begin if(!rst) begin dout_r=0; valid_in_r=0; end case(cnt) 4:begin dout_r=buff[3]; valid_in_r=1;end 5:begin dout_r=buff[2]; valid_in_r=0;end 6:begin dout_r=buff[1]; valid_in_r=0;end 7:begin dout_r=buff[0]; valid_in_r=0;end endcase end assign dout=dout_r; assign valid_in=valid_in_r; //*************code***********// endmodule