您当前的位置: 首页 > 

FPGA硅农

暂无认证

  • 2浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

跨时钟域处理(一):两级DFF同步

FPGA硅农 发布时间:2022-02-18 19:04:19 ,浏览量:2

在进行IC/FPGA设计的时候,如果使用了多个频率不同的时钟信号,就有可能产生亚稳态的问题,即某些跨时钟域传输的信号,可能会因为建立时间或保持时间不满足,而出现寄存器采样后数据状态不稳定或未知的情况。如下图所示,在CLK上升沿到来时,D恰好也发生变换,因而D不满足 T s e t u p T_{setup} Tsetup​或者 T h o l d u p T_{holdup} Tholdup​,所以寄存器的输出就会出现亚稳态的情况。 在这里插入图片描述 解决这个问题的一个常见方法就是打两拍,当然该方法主要针对的是单bit信号的跨时钟域传输问题。 如下图所示,我们可以看到,虽然寄存器在采样D1信号时发生了亚稳态,输出Q1处于一个不确定的状态,但是可以肯定的是,这个不稳定的状态不会一直持续下去,它最终会恢复到一个稳定的状态,有可能是0,也有可能是1,而在绝大多数的情况下,这个从不稳定到稳定的时间一般是小于时钟周期的,因此,如果我们在下一个时钟周期再对Q1进行采样,就能得到的一个稳定的、确定的值Q2(当然也不绝对,但是从概率上来说出现亚稳态的几率已经很小了),从而在某种程度上来说,消除了亚稳态现象。 在这里插入图片描述 但是,也有例外的情况,如下图所示,Q1信号在下一个时钟上升沿到来之前,仍然处于亚稳态,因此Q2采样得到的也是一个不确定的值,针对这种情况,处理的方法是再打一拍,这是Q3仍然处于亚稳态的概率已经非常低了,几乎可以视作不可能发生。 在这里插入图片描述 当然,为了出现亚稳态的几率更小,我们还可以打更多拍,但在实际的工程应用中,打两拍已经满足大多数场景了。

关注
打赏
1658642721
查看更多评论
立即登录/注册

微信扫码登录

0.0366s