《STA | 哐!一文打尽 SOCV / POCV》这个标题很打脸,因为没有transition variation 部分也没有moment 部分。最近在驴群讨论了Transition variation 部分,总结一下,感谢各位的无私输出。
LVF 中transition variation 对应ocv_sigma_rise_transition < early, late > 跟ocv_sigma_fall_transition < early, late > 四张二维表。
先来看几个问题:
前两个问题比较简单:
再来看第三个问题,transition variation 对cell delay sigma 的影响如何表征?transition variation 影响driving cell 的输出transition 从而影响当前cell 的delay, 这一影响在分析时如何处理?以Innovus 跟Tempus 为例,来看工具对transition variation 的处理:
该行为在Innovus 跟Tempus 中用命令 set_delay_cal_mode -socv_accuracy_mode 来控制,default 值是low, 即不考虑transition variation 对当前cell delay的影响,arrival sigma 用 RSS ( Root Sum of Squares ) 计算得到,这种行为被称为 uncorrelated sigma 即:
(arrival sigma) ^ 2 = (pre-arrival sigma) ^ 2 + (current stage delay sigma) ^ 2
uncorrelated sigma 方式计算得到的arrival sigma 没有考虑前后级cell 间的相关性,会偏乐观,当set_delay_cal_mode -socv_accuracy_mode 的值为medium 时,Innovus 跟Tempus 会考虑前后级cell 间的相关性,计算得到 correlated sigma. correlated sigma 是关键,其计算是个十分复杂的过程,老驴曾尝试求教做算法的小哥哥帮忙解释一下计算过程,小哥哥委婉回到:当年他初学时,看了四遍才看懂,这是一个非常复杂的过程。言外之意是:给你解释你也听不懂!也罢,专业的事儿留给专业的人去做,不强迫自己理解智力不及的事物。
但是,作为一个工具使用者要大概明白其过程,其计算过程是:
( cell delay real sigma ^ 2 ) = ?? ^ 2 + ???_????. ^ 2.
report timing 时,用delay_sigma_detail 跟arrival_sigma_detail 可以显示出详细的sigma 值。
delay_sigma_detail:
arrival_sigma_detail:
特别感谢@DragonBaby 糖糖,@the1ne.
驴说IC