题解 | #多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] data_areg;
reg data_en_breg;
always@(posedge clk_a or negedge arstn) begin
	if(~arstn) data_areg <= 0;
	else data_areg <= data_in;
end
always@(posedge clk_a or negedge arstn) begin
	if(~arstn) data_en_breg <= 0;
	else data_en_breg <= data_en;
end

// clock b
reg data_en_areg1,data_en_areg2;
always@(posedge clk_b or negedge brstn) begin
	if(~brstn) begin
		data_en_areg1 <= 0;
		data_en_areg2 <= 0;
	end
	else begin
		data_en_areg2 <= data_en_breg;
		data_en_areg1 <= data_en_areg2;
	end
end
always@(posedge clk_b or negedge brstn) begin
	if(~brstn) dataout <= 0;
	else dataout <= (data_en_areg1)? data_areg : dataout;
end
endmodule

全部评论

相关推荐

07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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