后端面试--每日一题(019)
continue from question #18. Because there is CPPR, the OCV derating on clock path C1 and C2 are canceled. Now giving incremental delay caused by x-talk at net between C1 and C2. Please use the derating to calculate the difference of clock path delay from C1 to C2 (including the net between them) for WC setup and BC hold.
接上面#18的问题继续讨论,因为有CPPR,在C1到C2那段clock path上面的OCV被抵消掉了。现在我们增加一个由x-talk引起的incremental延迟在C1到C2的那段net上,具体数字见图。
问题:
对于C1到C2那段clock path,
在计算WC setup时,因为OCV引起的路径延迟的差是多少?
在计算BC hold时,因为OCV引起的路径延迟的差是多少?
注意:
问题是那段clock path因为OCV引起的path delay的差,不是问path delay的绝对值
难度:5
好像听人说X-talk引起的path delay差CPPR不能抵消,对吗?为什么?
WC:0.07375?
对SDF不大看得懂,猜想前一个数字是rise的delay,后一个是fall的delay
这就是本题要问的概念。
难度5的问题不是盖的吧,
好,改为选择题,
C1到C2一段的OCV延迟的差,
1)在计算WC setup时,是
a)0
b)0.0005
c)0.00075
d)0.0245
2)在计算BC hold时,是
a)0
b)0.001
c)0.0015
d)0.0265
注意d)的数字有修改
应该两个都是D选项吧(我还是猜的,因为还是不懂怎么看SDF)
cross_talk引起timing window的变化,而tool在check timing的时候,会自动选择最紧的constraint去check,因此会造成在同一个cell上不同的delay,这个delay是不能也不应该被CRPR P掉的(我对SI对CRPR的影响只有这点理解,还请大虾多多教导)。
你及格了!这个坛子里,能到你这个水平的朋友应该不多。
答对的话,可以药家鑫了。
现在从incremental SDF的格式说起,
(-0.01::0.015)(-0.015::0.01)
左边括弧里的是rising timing延迟,右边的是falling timing
括弧里面的一对数字表示在这个条件下(WC或者BC)延迟的最大和最小值
因为是incremental延迟,要和基本延迟结合使用,所以,会有负数出现。
再讲OCV使用incremental SDF的方法,
OCV计算path delay时挑选最困难的情况,
在WC setup时,比如从F1到F2,
计算F1的clock path,rising edge,就选incremental SDF里面的最大值0.015,
计算F2的clock path,rising edge,就选最小值-0.01
因为有0.95 derating在-clock,-early上,所以F2的clock path要按比例缩小-0.01x0.95=-0.0095
因为C1和C2本身的延迟,依然被CPPR去掉,
所以C1到C2那段的OCV的差是0.015+0.0095=0.0245 (选项d)
在BC hold时,比如从F3到F4,因为2个FF在同一个时钟沿检测hold timing,
CPPR可以把incremental SDF的延迟也抵消掉,
所以C1到C2那段的OCV的差是0 (选项a)
结论:
计算setup时,CPPR不抵消incremental SDF
计算hold时,CPPR连incremental SDF都可以抵消掉
果然很难
thanks Mr chen ! that is useful!
看过陈小编的指导,发现自己该学的东西太多了。
我记得好象分析hold的时候也是会出现CRPR的,如果单说SI的话,hold是可以P掉的,但是OCV引起的(这时候假设不做derate),真的能完全P掉么?
没太看懂,
不做derate的话,就剩下SI的delay可以用于OCV了,这时公共path部分,在hold时就全部抵消了
谢过小编指导了!
刚看了下PTSI的用户手册,
如果设置上pba_enable_xtalk_delay_ocv_pessimism_reduction true的话,是不是可以去掉这段incr timing的影响,
请陈小编赐教啊~谢谢
应该是
牛了比啊!
再深入一层,为什么工具这样处理incremental delay for xtalk? 呵呵。
这个是有一个计算公式的,如果不经常用的话,一时半会还真是搞不定,但熟悉的话很快能搞定。
看过陈小编的指导,发现自己该学的东西太多了。
帖子里不是已经解释了吗?
小弟有一疑问,请教陈小编,假如不考虑SI,只考虑derate引起的clock_path上的延迟差,我们知道setup的检查是在不同时钟边沿(不同时刻,符合ocv的条件)进行的,那么,对于clock_path上的公共部分,因为derate造成的延迟差为什么要balance掉呢。
如果其他条件不变时,clock上一拍和这一拍在clock tree上的公共部分造成的delay是一样的
陈小编,您好,对于不同时刻的时钟边沿,由于ocv造成的延迟,为什么一样的?谢谢。
先纠正你的一个假设,
我们讨论的是,对于clock_path上的公共部分,为什么可以不考虑OCV造成的延迟影响,而不是“由于ocv造成的延迟,为什么一样的”
然后,你可以反问自己,为什么clock_path上的公共部分,在其后2个不同的时钟沿的时刻,延迟是不一样的?
我再重复一下前提条件:不考虑xtalk,没有电压和温度的变化
陈小编,您好,我的问题的前提条件是:不考虑SI,并不是不考虑ocv。
如果考虑ocv的话,芯片上同一个位置,在不同时刻的温度和电压怎么会一样呢?我觉得不应该有这样的前提条件。
1) 所谓on-chip-variation主要是指芯片上不同位置的cell之间的差别
2)撇开纯理论的讨论,假设200MHz的设计,1个时钟周期的间隔,你觉得会有多大的温差?
3)voltage drop 有它自己的方法处理,不用把什么东西都加到OCV上
陈小编正解
谢谢陈小编,小弟明白了。还有很多要学啊。
很好的问题和答案,除了说xtalk不受crpr影响外,还形象描述了ocv在clockpath上的计算,赞一下
要学的东西太多了~ 目前只是走通了流程,对这种知识还应该再学习。感谢小编!