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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

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

[复制链接]
 楼主| 发表于 2016-9-12 09:09:39 | 显示全部楼层
回复 30# 月华如练

异步电平信号同步到另一个时钟域,只能保证信号最终一定能同步过去,对于哪个周期才能稳定同步过去则是不确定的,这是基本常识。如果说信号同步过去的时间快慢会影响你的电路功能,说明你这里应该使用同步设计,而不是异步设计。
发表于 2016-9-13 10:50:23 | 显示全部楼层
回复 31# 杰克淡定

我觉得30楼问的是在同步过程中,对亚稳态的值进行决断的时候可能会产生一个错误的错误的值,即clka中输入的是0,而经过同步电路后,在clkb最终得到了1,这个应该也是有可能的,要怎么才能尽量减少这种亚稳态决断的错误?
 楼主| 发表于 2016-9-13 12:37:24 | 显示全部楼层
回复 32# 小红帽奶爸


  单bit信号同步,亚稳态会发生在输入信号0变1或者1变0的时刻,同步过去后的信号也得到的是0到1或者1到0的电平变化,只是变化时间点的早晚问题。早晚问题不应该影响功能,不再赘述。
发表于 2016-9-23 21:00:16 | 显示全部楼层
多谢分享~~受益匪浅!!!
发表于 2016-9-25 18:35:08 | 显示全部楼层
来学习学习。
发表于 2016-9-26 16:42:26 | 显示全部楼层
回复 32# 小红帽奶爸

我认为这是不可能的,如果在clka中是0,那同步到clkb中也一定是0。

只有当clka中的signal在从0往1跳变时,才可能被clkb同步后得出0/1的情况。
如果clkb同步的结果是0,那下一拍的同步结果一定是1;如果当前同步结果是1,下一拍的同步结果也一定是1,只是一个时间早晚的问题。

亚稳态也只是发生在source signal变化的瞬间被destination clock domain采样了,此时setup或者hold不满足,于是出现不确定的值。
发表于 2016-9-27 19:42:27 | 显示全部楼层
请问,对于最后的assign赋值,为啥不用assign levl_b_out = signal_b_b2;而用的signal_b_b1呢?
 楼主| 发表于 2016-9-27 20:45:50 | 显示全部楼层
回复 37# 我没逗你玩儿


   _b1是打过两拍的,基本可用。_b2是打过三拍的,当然更加保险。 这样写的意思是说:如果你的设计不需要用到同步过去的_puls信号,而且认为打两拍已经足够,_b2这个寄存器就可以节省掉不需要了。
发表于 2016-9-27 23:12:02 | 显示全部楼层
回复 38# 杰克淡定


   谢谢您~~
发表于 2016-9-28 09:04:49 | 显示全部楼层
前两天看接到华为面试,电话里问我单bit跨时钟域设计,当时一下子没回答上来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-28 22:37 , Processed in 0.027519 second(s), 8 queries , Gzip On, Redis On.

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