题解 | #并串转换#

并串转换

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

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务