由于工艺变化和环境参数在芯片制造上差异,芯片的性能可能会出现变化。为此,代工厂根据工艺差异(Variation)提供相应的时序库(Liberty Variation File),以便进行基于高斯分布时序统计分析。
下方示意图在普通分析模式下,时序分析会直观的会以最差情况来做为报告时序路径顺序的依据。对于最迟路径而言,较大的到达时间 (Arrival Time) 将会得到较为悲观的结果,因此报告的顺序将会以较差的结果作为优先。
在统计学分析下,在定义到达时间最差情况上会遇到一些问题。以下图为例,与门输出端 (and/Y) 最差的到达时间均值是来自 B -> Y 而标准差则是来自 A -> Y。不论单独以均值或标准差作为判断标准都会有不足的地方。
mean_and_three_sigma_bounded 为 Innovus/Tempus 默认的最差情况运算模型。在这个模式下,它会选择最差均值作为结果分布的均值,标准差计算为最差(mean +/-3*sigma)值的界限。这可确保结果的 3-sigma 值始终限制最差的 3-sigma 值。
下图中有个与门,其输入端分别为 and1/A 和 and1/B。两端的到达时间分别为(3, 3) 以及(4, 1),传播至 and1/Y 所需的延迟分别为(1, 4) 和(1.5, 4),信号传播至输出 and1/Y 的到达时间为 ATa->Y (4, 5) =19 和 ATb->Y (5.5, 4.12) =17.86。
在 mean_and_three_sigma_bounded 下,会做以下的运算来得到 and1/Y 的最迟到达时间。
由这个运算模型,可以确保输出端的 n-sigma 到达时间为最差的。然而 bounded 的报告结果仅会出现于 “report_timing -to”, “report_timing -max_slack”, “report_timing -nworst” ……等,没有特定路径的报告。
用户如果使用 “report_timing -to out” ,则会得到由最差 n-sigma 值以及到达时间均值反推出标准差的时序报告。当使用者使用 “report_timing -from/through/to” 准确的指出特定路径时,则不会使用 bounded 出来的结果作为报告中的数值,而是会使用特定路径来传播得到达时间的数据。
因此,我们可以预期在一些特定的情况下,相同的路径,由“report_timing -from/through/to” 和“report_timing -to” 来返回,会得到不同的时序报告,如下方所示:
report_timing -to out >>
report_timing -from in1 -to out >>
除了上述常见的问题外,使用者也常遇到 “report_timing -to -nworst X” 时 nworst bounded path 的规则问题,以下图路径为例:
为了更直观的作 bounded 运算,我们将 and1 和 and2 的延迟都设为(0, 0),也就是说可以直接将 in1, in2, in3 至 and1/A, and1/B, and2/B 的到达时间用来判断 nworst 到达时间为哪条路径。由上图所标示的 nsigma 到达时间可以知道,最差路径为 Path1,Path3 次之,最后是 Path2。
所以如果用户使用 nworst 来报出所终点为 out1 的路径时:
report_timing-to out1 -nworst3 (nworst=1, Path1) >>
当考虑最差路径时,它会考虑所有相关路径上的多输入单元,进行保持最差操作,所以在这个例子中,最差的到达时间均值为 in2 -> b2 -> and1/B ,bounded 的到达时间均值将会使用 Path2 的到达时间均值 0.192,而 nsigma 则来自于in1-> out1 的0.326
但是当用户定义了路径的起始点为 in1, report_timing -from in1 -to out1 则会报出经过in1->b1->and1/A->and1/B 的到达时间,与上方看到的 mean/sigma 都不一样:
当考虑第二差路径时,则会先把 nsigma 最差路径排除,因为它已经报过了,所以剩下就在path2/path3 中最保持最差的运算,因此,这里的最差均值还是来自于 in2 的 0.193,nsigma 则是 in3 的 0.260:
report_timing -to out1 -nworst3 (nworst=2, Path3) >>
如果定义了起始点 in3, report_timing -from in3 -to out1 的报告则会基于实际路径,看到和上面不同的sigma:
而最后一条时序路径就会和定义了起点 in2 看到的一样:
report_timing -to out1 -nworst3 (nworst=3, Path2) >>
report_timing -from in2 -to out1:
由上可知,当路径中的多输入单元越多的时候,很可能用户在”-to endpoint nworst > 1” 的 report 中看到的和 “-from -to”不同的具体路径越多,而且相差可能越大。
© 2025 Cadence Design Systems, Inc. 版权所有。在全球范围保留所有权利。Cadence、Cadence 徽标和 www.cadence.com/go/trademarks 中列出的其他 Cadence 标志均为 Cadence Design Systems, Inc. 的商标或注册商标。