请问useful_skew与uncertainty的区别
目的都是让实际时钟margin比较好。
uncertainty是让slack变差的,
改了,应该是margin
skew只是uncertainty的一部分,uncertainty还包含jetter等其他影响时钟的因素
两个完全不同的概念,
一个是为了meet timing,人为地增大clock skew
另一个是为了meet timing, 人为地增大timing calculation 的margin, 但是还是要把clock skew做得越小越好的
skew分为两种:
clock skew和signal skew
前者指的是一个clock tree或者skew group下,max insertion delay和min insertion delay的差
后者是指一个clock signal自身存在的偏差,是多种噪声综合而成的,在计算path timing的时候用uncertainty来表示。
一般来说,useful skew技术可以通过增加clock skew来降低slack
而增大uncertainty,意味着增大了slack,提高了对timing path的约束,让时序更不容易满足。
通常,我们在CTS之前会用一个较大的uncertainty进行over-constrained optimization,而这个uncertainty是用来模拟clock tree的skew。当CTS完成之后,clock tree skew已经是定值,那么这个uncertainty在postCTS的时候将模拟为clock signal skew,这个值可以根据clock source的性质来设定。 比如,你的clock signal来自某个PLL,那么这个PLL的jitter就是这个uncertainty。
不明白的可以补充,有错请斧正。
学习中!
请教小编:
我用的是smic40ll的40nm的工艺,时钟周期为3.3ns,做CTS时MaxDelay、MaxSkew各设为多少合适?现在encounter工具自动生成的CTS文件中MaxDelay=3.3ns,MaxSkew=0.4ns(综合时set_clock_uncertainty为0.4ns)。谢谢!