时钟抖动会影响建立时间和保持时间违例吗?

描述

首先,我们需要理解什么是时钟抖动。简而言之,时钟抖动(Jitter)反映的是时钟源在时钟边沿的不确定性(Clock Uncertainty)。例如,假定我们现在有一个频率为100MHz的时钟,那么时钟周期就是10ns,理想情况下,时钟的上升沿将会出现在0ns,10ns,20ns……基于此,如果已知时钟上升沿出现在30ns,这样我们就可以得出下一个上升沿将会出现在40ns。但实际情况是,下一个上升沿很可能介于39.9ns到40.1ns之间。也就是说,有0.1ns对时钟周期构成了影响。就FPGA设计而言,对于抖动我们理解这么多就足够了。

接下来我们看一下时钟抖动对时序性能的影响。以经典的单周期时序路径为例(收发时钟为同一个时钟且建立时间Requirement为一个时钟周期),如下图所示。

时钟抖动

就建立时间而言,基于静态时序分析(STA)理论,假定数据发起沿为下图边沿1,那么捕获沿将是边沿3。如果边沿1出现在20ns这一时刻,那么边沿3可能出现在以下两个时刻:

20+Clock Period+Jitter

20+Clock Period-Jitter

考虑最坏情况,我们应该按照20+Clock Period-Jitter来评估建立时间裕量。换言之,实际的时钟周期为Clock Period-Jitter。

时钟抖动

再看保持时间,发起沿和捕获沿都是边沿1,或都是边沿3,即发起沿和捕获沿是同一时钟的同一个上升沿,故抖动不会对保持时间裕量产生影响。

  基于此,我们可以得出如下结论:对于发送时钟和接收时钟是同一时钟的单周期路径,时钟抖动对建立时间有负面影响,但对保持时间没有影响。这一点,在Vivado的时序报告中也可以看到。如下图所示,图中左侧为建立时间时序报告,可以看到Clock Uncertainty,而右侧为保持时间时序报告,是没有Clock Uncertainty。

时钟抖动

如果发送时钟和接收时钟是不同时钟呢?假定发送时钟为200MHz,接收时钟为100MHz,两者由同一个MMCM生成,故二者为同步时钟。两者之间的跨时钟域路径可采按多周期路径进行约束。毋庸置疑,抖动仍然会对建立时间有负面影响。对于保持时间,发起沿是200MHz时钟的上升沿,捕获沿是100MHz的上升沿,不是同一个边沿,故要将100MHz的时钟抖动考虑在内。

根据保持时间的定义:数据被时钟有效沿采样到之后仍要稳定保持一段时间,这个时间即为保持时间。考虑最坏情况,抖动使得时钟采样沿后移,意味着数据需要保持更长的时间即Th+Jitter。因此,此时,抖动对保持时间也是一种恶化。这一点在Vivado的时序报告中也会有所体现。

时钟抖动





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分