题解 | #并串转换#

并串转换

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 [1:0] cnt;
reg valid_in_temp;
reg [3:0] din;
always@(posedge clk or negedge rst)begin
	if(!rst)
		cnt <= 2'd0;
	else
	    cnt <= cnt + 1'b1;
end
always@(posedge clk or negedge rst)begin
	if(!rst)
		valid_in_temp <= 1'b0;
	else
		valid_in_temp <= (cnt == 3) ? 1'b1 : 1'b0;
end
assign valid_in = valid_in_temp;

always@(posedge clk or negedge rst)begin
	if(!rst)
		din <= 3'd0;
	else begin
		if (cnt == 3)
			din <= d;
		else
			din <= {din[2:0],din[3]};
	end    
end
assign dout = din[3];
//*************code***********//

endmodule

全部评论

相关推荐

牛客鼠:校友你这简历基本无敌了,春招刷刷题去冲大厂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务