题解 | #多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
);
//MUX同步器 用于 多bit跨时钟域的处理  
//关键在于当使能信号稳定的时候进行数据的传输
//步骤:将使能信号在本域打一拍 稳定信号
//然后在异域打两拍 减少亚稳态。 
//然后再用一个二选一数据选择器 进行信号的选通。
reg data_en_a ;
always@(posedge clk_a or negedge arstn)begin
    if(!arstn)
	    data_en_a <= 1'b0   ;
	else 
	    data_en_a <= data_en ;   
	    
end

reg data_en_b   ;
reg data_en_b_r ;
always@(posedge clk_b or negedge brstn)begin
	if(!brstn)begin
	    data_en_b   <= 1'b0 ;
		data_en_b_r <= 1'b0 ;
	end
	else begin
		data_en_b   <= data_en_a ;
		data_en_b_r <= data_en_b ;
	end
end

always@(posedge clk_b or negedge brstn)begin
	if(!brstn)
	     dataout <= 'd0       ;
	else if(data_en_b_r == 1'b1)
	     dataout <=  data_in  ; 
    else 
	     dataout <= dataout   ;

end
endmodule

跨时钟域处理有多重处理方式:

1.单bit跨时钟域处理:

(1)慢时钟域转快时钟域 : 直接两级DFF打拍即可

(2)快时钟域转慢时钟域: 可能出现漏采 所以需要对快时钟域的脉冲进行拓宽。(握手机制)

处理流程: 将clk_fast 下的脉冲 在本域下进行拉高,生成data_a信号 将data_a信号进行跨时钟域处理(在clk_slow时钟域下打两拍) ,生成 data_b ,data_b_r信号 。data_b_r 信号为高代表慢时钟域已经接受到了这个脉冲。所以将data_b_r信号再跨时钟域处理(在clk_fast时钟域下再打两拍),生成data_a_r ,data_a_rr信号。使用data_a_rr ==1'b1 作为拓宽脉冲的拉低使能信号。

慢时钟域这边对data_b_r 打一拍 生成data_b_rr 信号 做上边沿检测 生成脉冲信号。

2.多bit跨时钟域处理:

(1)异步FIFO+格雷码

(2)握手协议

(3)DMUX选择器:在快时钟域转慢时钟域时 仍然需要对使能信号进行脉冲扩宽。

全部评论

相关推荐

评论
2
3
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
3498次浏览 43人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16869次浏览 137人参与
# 米连集团26产品管培生项目 #
7219次浏览 225人参与
# 春招至今,你的战绩如何? #
15402次浏览 142人参与
# 你的实习产出是真实的还是包装的? #
2907次浏览 52人参与
# 沪漂/北漂你觉得哪个更苦? #
1413次浏览 40人参与
# 巨人网络春招 #
11511次浏览 224人参与
# HR最不可信的一句话是__ #
1066次浏览 32人参与
# AI面会问哪些问题? #
926次浏览 22人参与
# 你做过最难的笔试是哪家公司 #
1201次浏览 21人参与
# AI时代,哪个岗位还有“活路” #
2781次浏览 51人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152881次浏览 889人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7990次浏览 43人参与
# XX请雇我工作 #
51154次浏览 171人参与
# 简历第一个项目做什么 #
32120次浏览 359人参与
# 简历中的项目经历要怎么写? #
310994次浏览 4262人参与
# 投格力的你,拿到offer了吗? #
178311次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
76961次浏览 375人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187576次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64632次浏览 871人参与
# 如果重来一次你还会读研吗 #
230002次浏览 2011人参与
# 正在春招的你,也参与了去年秋招吗? #
364304次浏览 2641人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务