在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 杰克淡定

[原创] Verilog基本电路设计之一(单bit跨时钟域同步)

[复制链接]
发表于 2016-11-7 21:34:05 | 显示全部楼层
学习了,不错
发表于 2016-12-15 17:59:03 | 显示全部楼层
请教楼主关于单bit跨时钟域传输的问题:
   慢时钟域clk_a向快时钟域clk_b同步信号signal_a,当signal_a在clk_b上升沿附近由0变1时,不满足setup/hold time要求,所以FF1采样不确定的值给FF1_Q,即FF1进入亚稳态。经过亚稳态时间之后,FF1_Q由不定值变为1或0。此时FF2可能就会采样一个稳定的1或者0输出。与此同时FF1也会采样一个新值给FF1_Q。这个值应该才是我们真正想要的值,而不是FF2_Q。之所以采用双锁存器只是为了降低亚稳态发生的概率,不要让一个不稳定的信号进入clk_b域。但是问题是:如果采用2个一样的同步器,FF1_Q由亚稳态变为1或者0是可能不一样,这也导致FF2_Q不一样,但是下一个时钟,FF1采样的signal_a已经稳定了,这个值才是我们真正需要的值,经过FF2两个同步器的输出不就是一样了。这样理解对吗?请LZ解释一下,谢谢。
 楼主| 发表于 2016-12-15 19:30:53 | 显示全部楼层
回复 62# 腾钰


   没有看明白你题的问题。单bit同步强调的是,不要把一个单bit信号,通过两条路径向clkb去同步,这样在clkb下看到的两个信号signal_x与signal_y是不一样的。如下图: sync.jpg
发表于 2016-12-15 20:27:00 | 显示全部楼层
回复 63# 杰克淡定

我明白你的意思,signal_a同步过去,signal_x和signal_y可能会不同,这是没问题的。但是signal_x和signal_y并不是我们需要的值,下一个时钟的signal_x和signal_y才是我们需要的值。比如signal_a从0变1,同步过去的signal_x可能会是0,这样的话,同步过去的这个值就是错误的,但是等下一个FF1采样的时候signal_a已经稳定为1了,这样采样就没有问题,输出signal_x也就是1.lZ方便加QQ交流一下吗?最近正在学习跨时钟域传输。我的QQ:2579576028
发表于 2016-12-15 20:27:59 | 显示全部楼层
回复 63# 杰克淡定

我明白你的意思,signal_a同步过去,signal_x和signal_y可能会不同,这是没问题的。但是signal_x和signal_y并不是我们需要的值,下一个时钟的signal_x和signal_y才是我们需要的值。比如signal_a从0变1,同步过去的signal_x可能会是0,这样的话,同步过去的这个值就是错误的,但是等下一个FF1采样的时候signal_a已经稳定为1了,这样采样就没有问题,输出signal_x也就是1.lZ方便加QQ交流一下吗?最近正在学习跨时钟域传输。我的QQ:2579576028
发表于 2016-12-27 13:17:09 | 显示全部楼层
好东西,学习了,但是有一个else少了东西吧
发表于 2016-12-28 11:03:07 | 显示全部楼层
很好的东西啊 前来学习学习  补充一下自己咯
发表于 2017-1-6 12:19:30 | 显示全部楼层
干货,值得看看。
发表于 2017-1-9 11:10:14 | 显示全部楼层
都很专业的大神
发表于 2017-1-11 10:20:42 | 显示全部楼层
关于楼主的思考题:其实同步后的两个信号未必是一样的,可能会有一个或多个时钟周期的差别。
其实这样同样引入了跨时钟域的另一个问题:信号汇聚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 11:54 , Processed in 0.024611 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表