题解 | #多bit MUX同步器#

多bit MUX同步器

https://www.nowcoder.com/practice/30e355a04a454e16811112cb82af591e

`timescale 1ns/1ns

module mux(
	input 				clk_a	, 
	input 				clk_b	,   
	input 				arstn	,
	input				brstn   ,
	input		[3:0]	data_in	,
	input               data_en ,

	output reg  [3:0] 	dataout
);

reg [3:0] ram1;

reg data_en1;
reg data_en2;
reg data_en3;

always @(posedge clk_a or negedge arstn)begin
	if(!arstn)begin
		ram1 <= 4'b0000;
	end
	else begin
		if(data_en1)begin
			ram1 <= data_in;
		end
		else begin
			ram1 <= ram1;
		end
	end
end

always @(posedge clk_a or negedge arstn)begin
	if(!arstn)begin
		data_en1 <= 1'b0;
	end
	else begin
		data_en1 <= data_en;
	end
end

always @(posedge clk_b or negedge brstn)begin
	if(!brstn)begin
		data_en2 <= 1'b0;
		data_en3 <= 1'b0;
	end
	else begin
		data_en2 <= data_en1;
		data_en3 <= data_en2;
	end
end

always @(posedge clk_b or negedge brstn)begin
	if(!brstn)begin
		dataout <= 4'b0000;
	end
	else begin
		if(data_en3)begin
			dataout <= ram1;
		end
		else begin
			dataout <= dataout;
		end
	end
end

endmodule

全部评论
题目描述不清楚,两个时钟域的数据同步,输入数据按照输入时钟打一拍,输入使能信号按照输入时钟打一拍,按照输出时钟打两拍,避免数据的不确定性
点赞 回复 分享
发布于 2024-06-11 20:40 甘肃

相关推荐

03-18 09:45
莆田学院 golang
牛客749342647号:佬,你这个简历模板是哪个,好好看
点赞 评论 收藏
分享
野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务