关于时序报告的解析,可回顾《论STA | 读懂timing report, 很重要》,SOCV 之前的时序报告都一样,delay 值可以相加得到,带SOCV 的时序报告会多出很多列,用以表述不同类型的mean 跟sigma 值。
在Innovus/ Tempus 中,默认的时序报告的格式仍同之前一样,只是Delay 值不再是简单相加。对于下图所示的时序报告,Arrival time != pre-Arrival time Delay.
要搞清楚Arrival time 如何计算,需要通过如下命令,将delay mean, delay sigma, arrival mean, arrival sigma 分别列出然后计算。
如下所示,是一个列出了mean 跟sigma 值的时序报告,要读懂SOCV 的时序报告,需要搞清楚:
- 当前cell 的delay = Delay mean N * Delay sigma;
- 当前cell 的Transition = Slew mean N * Slew sigma;
其中:
- Delay mean, Delay sigma, Slew mean, Slew sigma 都是从library 中读出的值;
- N 就是通常所说的『几sigma』由统计学特性决定,目前常用的N=3 即常说的3-sigma.
- N 值可在工具端设置,在Innovus /Tempus 中用如下变量控制:
Arrival delay 的计算为:
- Arrival Delay = Arrival Mean N * Arrival Sigma;
其中:
- Arrival Mean = Pre-Arrival Mean Delay mean;
- Arrival Sigma = sqr ( Pre-Arrival Sigma ^ 2 Delay Sigma ^ 2);
结合上例,计算buff_4_2/Z 的Arrival Delay:
- 从lib 中可得buff_4_2 falling edge 的:
Delay mean = 0.02450;
Delay sigma = 0.00119;
- 到buff_4_1 的pre-Arrival Mean = 0.52430;
- 所以可得,到 buff_4_2/Z 的Arrival mean:
Arrival mean= 0.52430 0.02450 = 0.54880
- 到buff_4_1 的Pre-Arrival Sigma= 0.00118;
- 所以可得,到 buff_4_2/Z 的Arrival sigma: Arrival sigma= sqr (0.00118 ^ 2 0.00119 ^ 2)= 0.00168;
- 所以可得,到buff_4_2/Z 的Arrival delay 为:
Arrival delay = Arrival mean N * Arrival sigma
= 0.54880 3*0.00168
= 0.55384
示例中,buff_4_2/Z 的arrival delay 值为0.55383, 是因为工具在计算时是按照浮点数位宽计算的,最后显示在时序报告中的值做过四舍五入。
在Innovus/ Tempus 中如果设置了如下变量,时序报告的表头也会分别列出mean 和sigma 值:
读完此文,是否可以清楚得明确每一个值是如何而来,如何计算?如果仍有疑问,可以入驴群一起讨论。POCV/