题解 | #多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 data_en_r1;
reg [3:0] data_in_r1;

reg data_en_rb1;
reg data_en_rb2;
reg [3:0] data_in_rb1;

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

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

always @(posedge clk_b or negedge brstn)begin
	if(!brstn)begin
		data_en_rb1	<= 1'b0;
		data_en_rb2	<= 1'b0;
	end
	else begin
		data_en_rb1	<= data_en_r1;
		data_en_rb2	<= data_en_rb1;
	end
end

always @(posedge clk_b or negedge brstn)begin
	if(!brstn)begin
		dataout		<= 4'b0;
		data_in_rb1	<= 4'b0;
	end
	else begin
		data_in_rb1	<= data_in_r1;
		if(data_en_rb2)begin
			dataout	<= data_in_rb1;
		end
	end
end


endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 14:35
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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