前言
同一块芯片上的晶体管会有变快或者变慢的现象,因此产生了OCV的概念。OCV在path上设置统一的derate,悲观度较高。 为了提高准确性,可以用下面的方法:
AOCV(Advanced On-Chip Variation)
POCV(Parametric On-Chip Variation)
AOCV:
相对于传统OCV在path上设置统一derate值的方法,AOCV更为科学与合理的根据path的实际情况加上不同的derate值。AOCV在传统OCV上引入了对路径长度和整个路径在物理上所跨越的距离的考虑。
随着数据路径(级数)的增长,ocv效应会减弱;但是距离越远的cell之间相对的variation越大,因此随着跨越距离的增加,ocv效应会增强。
既然有了AOCV,为什么要有POCV?
1)工艺进化到14nm后,AOCV分析模式中动态设置时序减免值的方法已经不能满足精度要求,其分析结果的悲观型也无法很好地改变。
2)AOCV需要先分析逻辑深度和物理距离两个因素,再设置时序减免值,导致CPU工作量巨大,时序分析计算时间增加。
3)时序优化过程中增加或者删除缓冲器会改变逻辑深度,然后又需要根据逻辑深度重新选择时序减免值,重新时序计算,迭代次数和时间增加。
POCV:
POCV,又称SOCV(Statistical On Chip Variation),如下图所示,POCV将delay模拟成一个正态分布N(u,σ)。每个cell的delay最高概率出现在u周围。整体落在区间内(μ-3σ,μ+3σ)的概率为99.7%。
POCV中的变量和指令
变量
指令
POCV的设置
enabling pocv
To enable graph-based POCV analysis, set this variable:
pt_shell> set_app_var timing_pocvm_enable_analysis true
loading the Parametric On-Chip Variation Input Data
To load POCV single coefficient information or POCV distance-based derating table from a text file, use the read_ocvm command:
pt_shell> read_ocvm pocv_coefficient_file_name
pt_shell> read_ocvm pocv_distance_based_derating_file_name
You can apply both the library with POCV and the side file with POCV single coefficient in the same PrimeTime run. The delay variation is annotated accordingly depending on which POCV format is applied on the cell. If the library with POCV LVF and the side file with POCV single coefficient are applied on the same library cell, the POCV single coefficient takes precedence. It overrides POCV LVF for that particular library cell.
setting pocv的sigma
By default, POCV analysis is performed at 3 sigma. To change the default, set the timing_pocvm_corner_sigma variable to a value larger than 3. For example:
pt_shell> set_app_var timing_pocvm_corner_sigma 4
setting Guard Banding
In the POCV flow, you can use guard banding to model non-process-related effects. To perform guard banding in POCV, specify the set_timing_derate command with the -pocvm_guardband option.
For example, the following commands apply a five percent guard band POCV derating on both early and late mode:
pt_shell> set_timing_derate -cell_delay -pocvm_guardband -early 0.95
pt_shell> set_timing_derate -cell_delay -pocvm_guardband -late 1.05
The POCV guard band derating factor is applied on both the nominal cell delay (mean) and cell delay variation (sigma).
Scaling the Parametric On-Chip Variation Coefficient
In addition to guard banding, you can scale only the variation of the cell delay without
changing the coefficient in POCV tables. To do this, use the set_timing_derate -pocvm_coefficient_scale_factor command.
For example, the following command scales the POCV coefficient by three percent for both early and late modes:
pt_shell> set_timing_derate -cell_delay -pocvm_coefficient_scale_factor -early 0.97
pt_shell> set_timing_derate -cell_delay -pocvm_coefficient_scale_factor -late 1.03
The command applies the POCV coefficient scaling factor to only the variation of cell delay(sigma).
Enabling Constraint and Slew Variation
You can improve the accuracy of POCV analysis with the following optional settings:
- To enable variation for setup and hold constraints, set the timing_enable_constraint_variation variable to true.
To additionally include slew variation effects in the constraint arc variation computation, set the timing_use_slew_variation_in_constraint_arcs variable to setup_hold (or setup or hold only). The default is none. - To enable slew variation for cell delays, set the timing_enable_slew_variation variable to true.
Enabling Analysis With Moment-Based Modeling
随着对先进工艺的研究数据越来越多,逐渐发现工艺的variation尤其是低电压工艺下的variation并不是严格的正态分布,而是像下图所示的略有不对称。而为了更精确地描述这种不对称,采用了新的模型来模拟,也就是moment-based LVF。对应的LVF库文件中也增加了新的语法来描述这种不对称,分别是:Mean Shift, Standard Deviation和Skewness。 The following diagram shows a typical asymmetric cell delay distribution.
The tool supports analysis using cell libraries containing moment-based Liberty Variation Format (LVF) delay and constraint data. This type of data more accurately models the non-Gaussian statistical variation characteristics of advanced process nodes and very low supply voltages.
To enable timing analysis using moment-based modeling data, set the control variable:
pt_shell> set_app_var timing_pocvm_enable_extended_moments true
POCV的report
Report the POCV Analysis Results POCV analysis works with all reporting commands in PrimeTime. For reporting, by default PrimeTime reports the timing at 3-sigma value. To change it, set the timing_pocvm_report_sigma variable to different value; the default is 3. Changing this variable does not trigger update_timing. It only affects reporting.
For example, to make POCV analysis more pessimistic, you can change the variable to 4.
pt_shell> set_app_var timing_pocvm_report_sigma 4
To check the slack without POCV, set the variable to 0. It shows the slack at 0 sigma (no POCV) without triggering update_timing.
pt_shell> set_app_var timing_pocvm_report_sigma 0
To display the variation in the timing report for POCV analysis, use the report_timing
-variation command.
Here is an example:
In the Incr columns,
• The Mean, Sensit, and Corner numbers provide mean, standard deviation, and corner information about each incremental delay distribution by itself, independent of other incremental delay distributions. Corner is equal to Incr Mean ± K*Incr Sensit, where K is equal to timing_pocvm_report_sigma. Mean为平均值,也就是高斯分布中的μ值,Sensit代表标准差sigma的值,通常在library或者lvf文件中取得。一般以lookup table的形式描述,每个Mean delay值都对应一个sigma值。
• The Incr Value number is not derived from the incremental delay distribution. Instead, it is the simple numerical difference between the previous and current Path Value(corner arrival) numbers.
Corner这个值的参考意义不是特别大,因为它的Delay很大不一定会导致整个Path的Delay增加很多,后边Path的Delay不是它的累积,只有Mean值是累加下去的。Value值的参考意义比Corner更大。从上图示例其实就能看出来,b3 Cell的delay是Corner值是7ns,但是对于整个Path的贡献delay其实并没有那么大,只有2.82ns(Value值)。
In the Path columns,
• The Mean, Sensit, and Value numbers provide provide mean, standard deviation, and corner information about the cumulative arrival distribution at that pin. Path Mean = Previous-Path Mean + Incr mean,即Incr Mean的累加,Path Sensit = sqr ( Previous-Path Sensit ^ 2 + Incr Sensit ^ 2). Path Value is equal to Path Mean ± K*Path Sensit, where K is equal to timing_pocvm_report_sigma.
• A pin’s cumulative arrival distribution is the statistical combination (in the distribution
domain) of all incremental distributions up to that pin.
For details on how PrimeTime calculates the final derating factor from all derating factors applied in POCV analysis, run the report_delay_calculation -derate command.
另外,PT report 里最后的有一行statistical adjustment (统计调整),这个值是怎么来的以及有什么作用?
这是由于在POCV分析中,arrival和required time都包含统计的偏差(variation),path的slack不会是required time和arrival time之间的简单的差值,而是根据mean和sigma算出的值,这两者之间会有一个差值,这个就是statistical adjustment。
原因:统计量的标准差并不是简单的和,而是平方和的平方根。路径的统计调整( statistical adjustment )一方面是路径的slack 与另一方面是required time和arrival time之间的差异。
statistical adjustment = adjusted slack ± unadjusted slack(setup:-; hold:+)
adjusted slack=mean_slack - Ksigma_slack
unadjusted slack = required time -arrival time(setup)
unadjusted slack = arrival time-required time (hold)
以下图为例:
mean_slack=13.377-5.158=8.219
sigma_slack=(0.0640.064 + 2.8192.819)^0.5=2.818
adjusted slack=8.219-22.818=2.582(timing_pocvm_report_sigma=2)
unadjusted slack =13.505-10.796=2.709
statistical adjustment = 2.582-2.709 = - 0.127
总结
Parametric on-chip variation (POCV) models the delay of an instance as a function of a variable that is specific to the instance. That is, the instance delay is parameterized as a function of the unique delay variable for the instance.