题解 | #并串转换#

并串转换

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 valid;
	reg [3:0] din;
	reg [1:0] counter;

	always @(posedge clk, negedge rst) begin

		if(!rst) begin
			counter <= 0;
			valid <= 0;
			din <= 0;
		end
		else if(counter == 3) begin
			counter <= 0;
			valid <= 1; 
			din <= d;
		end

		else begin
			counter <= counter + 1;
			din <= {din[2:0], din[3]};
			valid <= 0;
		end
	end

	assign dout = din[3];
	assign valid_in = valid;

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

endmodule

串并转换,就是一位一位输出多bit数据。 核心思想就是多bit数据移位。用counter表示多bit数据的位数,每次count都移位。valid信号意思是在此时接收输入信号,则我们在每次counter的最后一次接收信号,使valid为1。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 14:01
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务