题解 | #多bit MUX同步器#

`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 en_temp;
reg en_1,en_2;
reg [3:0] data_temp;

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

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

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

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

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

endmodule

全部评论

相关推荐

11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务