-
skew
- 时钟skew和布局布线相关。完成布局布线后,不同的DFF触发器的位置不同导致clock到达的时间不同;如下图所示,下面4条路径因为物理路径长短不同,因此时钟到达的时间也不同,进而造成了时钟的skew。
例如,对于path1和path2,CK2到达的时间更晚,它与CK1的差值就是skew:
-
jitter
- 抖动(jitter),就是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。
时钟抖动是由于晶振本身工艺导致的,所以在设计中无法避免,因此只能在设计中留一定的margin。且时钟抖动也发生在不同时钟源,如两个晶振:时钟抖动(Jitter)示意图如下:
- 抖动(jitter),就是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。
-
clock Uncertainty
- 它定义了Clock信号到触发器的CK端可能早到或晚到的时间,主要用来降低时钟抖动jitter对有效时钟周期的影响,此外也为设计留有一些余量,确保流片回来的芯片能够正常工作。
- 我们考虑的都是更悲观的情况,因此对于Setup,我们考虑的是时钟提前,对于Hold我们则是考虑时钟靠后
此外,在数字芯片后端的PR过程中
,我们在CTS的前后考虑Uncertainty时,会分两种情况:(华为往年笔试题)
其实也不难理解:
- 在CTS之前(preCTS的时序优化时),因为还没有时钟树,此时时钟是ideal的,PR工具认为skew是0。这太过乐观,因此我们要将clock skew考虑进去,加入更大的uncertainty来确保时序一致性
- CTS之后,时钟布线已经完成,此时PR工具(如innovus,icc2等)可以推算出skew的真实值,因此我们考虑uncertainty就不再需要认为添加skew。
代码与文字齐飞,逻辑共创意一色!若我的文章让你会心一笑,点个赞我们一起笑谈"IC人生"!