clock uncertainty和clock skew

首先查看一下两者的定义:

1,时钟不确定性(Clock Uncertainty):是指在给定时间点上,某个时钟信号可能存在的不确定性范围。它通常是由于信号传播延迟、设备响应时间、时钟抖动等导致的。这种不确定性关注的是在做出时间测量时,设备时间值的准确性和可靠性。uncertainty = jitter+ skew。

2,时钟偏移(Clock Skew):做完CTS后,不同clock tree之间的latency差值。

clock uncertainty的数值来源:

foundry厂会给一个值,一般很保守。

推荐的经验设定值:DC 的时候设置10%, P&R的时候设置5%, PT 的时候设置3%。

两者之间存在一定的联系,uncertainty是模拟的时钟不确定性,clock skew是在CTS确定后的时钟之间的偏差。CTS的skew基于前面place阶段的uncertainty产生。

那么place和CTS阶段的时序差异就表现在这个地方,如果在place阶段的uncertainty比在CTS阶段做出来的的skew更大,那么在CTS之后的timing会更好,如果uncertainty不能cover Skew,那么CTS之后的timing会差一些。

除此之外,place和CTS之间的RC correlation也会影响到这两个阶段的timing。

现在ICC2会全阶段默认开启CCD使用useful skew,那么在place不开,CTS开的情况下,CTS阶段的timing会比place阶段好一些。

----分割线

常见的问题:为什么CTS后的timing会变差?

1. 可能没有使用Early clock flow,ICG的时序在place阶段分析是过于乐观的,另外place阶段没有考虑时钟的ndr,所以congestion和绕线的影响评估都过于乐观,自然也影响了timing的结果。还有就是uncertainty的设置,如果无法cover skew,那么自然评估就是偏乐观的。还有就是cts阶段会修Hold,它也会让density/util/congestion增高,也会对timing有一部分影响。
2. 要看RC correlation和uncertainty的设置了,如果都是合理的话,那么是可能变好的,因为uncertainty是最差的值,而flop之间的skew是都在uncertainty内的,所以会比它小,所以TNS会变好。另外useful skew也会对timing有利。

 

 
posted @ 2024-10-10 14:18  chippeace  阅读(85)  评论(0编辑  收藏  举报