Parametric On-Chip Variation A Step Towards Accurate Timing Analysis
Parametric On-Chip Variation A Step Towards Accurate Timing Analysis
timing analysis
edn.com/parametric-on-chip-variation-a-step-towards-accurate-timing-analysis/
August 7, 2019
Today, the semiconductor market is flooding with demands of high speed, low power,
and highly reliable SoCs, due to the rapid growth of IoT, networking, AI, and more.
To model these parameter variations, a few engineers came up with the on-chip variation
(OCV) model. The concept of OCV was first introduced in technology nodes above 90nm.
The fundamental idea behind OCV is to apply global derates on the whole design
irrespective of the type of cells, its individual variation or its slew-load conditions. But this
simple concept became ineffective in lower technology nodes. Unfortunately, global
derates make the design too optimistic for shorter paths and too pessimistic for longer
paths. Subsequently, expected results are not accurate and reliable enough, which affects
the performance of the chip.
In order to overcome the extra pessimism added due to OCV, advanced on-chip variation
(AOCV) technique was introduced for nodes below 65nm. AOCV technique adds derates
in the design based on the logic depth and distance of the cell in the timing path. The
depth of the cell models the random variation component, while distance (location) of the
cell in the path models systematic variation of the cells. But below 40nm, this method too
becomes inaccurate as it cannot further reduce pessimism. To address the shortcomings
of AOCV, parametric on-chip variation (POCV) evolved.
POCV
In POCV, instead of applying a specific derating factor to a cell, cell delay is calculated
based on a delay variation of that cell. This delay variation (σ ) for each cell is obtained
through Monte-Carlo HSPICE simulation. The variation value σ is a unique value specific
to that library cell.
Some of the terminologies used for POCV analysis are briefly explained below:
Normal distribution curve : Data distribution for any entity can be spread out in different
ways. [4] In a normal distribution curve, the data tends to be around a central value with
no bias on the left or right, as shown in Figure 1 .
1/12
For POCV, it is assumed that the nominal delay (expected delay) value of a cell follows a
normal distribution curve. The delay value of the cell is calculated after many experiments
and their mean is taken as the nominal delay.
Standard deviation (σ ): For a normal distribution curve, data tends to be denser in the
center and less dense on the edges as shown in Figure 1. In order to measure the
variations from the mean, the metric named standard deviation (σ) is used. It measures
how far any data value deviates from the mean. If the delay values of the cell deviate
from the nominal value to the left or right by any amount, then more changes in the timing
of that cell are expected. This deviation of the delay from its expected value is modeled
using σ, as shown in Figure 2 .
About 68% of the area under the curve falls within 1σ of the mean.
About 95% of the area under the curve falls within 2σof the mean.
About 99.7% of the area under the curve falls within 3σ of the mean.
POCV analysis
POCV uses a nominal value for modeling random variations on the die instead of using
min-max delay values for timing arc. When using min-max values to model delay
variations, there is a probability of actual delay falling anywhere between the min-max
extremes. While in POCV, there are maximum chances of the delay occurring near the
nominal value and fewer chances of falling farther away from it. POCV calculates the
arrival time and required time statistically instead of using the min-max values. Hence, the
results are less pessimistic and more accurate. [1]
POCV analysis uses nominal delay (μ) and variation (σ) for timing analysis in the
following way:
1. The tool takes the value of σ from the timing library or an external file containing
POCV coefficient C.
2. Each arc timing is then calculated statistically as the total of the nominal delay and
the variation.
3. The tool then calculates the delay of the path by statistically combining these arc
delays and then checks whether the chip works at the expected frequency.
2/12
By default, the tool performs POCV analysis at three standard deviations (3σ ) from the
mean. One can specify the number of standard deviations to be used for delay
calculation. Increasing the value of standard deviations tightens the timing requirement
making it more pessimistic.
POCV data-types
The input for the delay variation σ can be provided to the tool for POCV analysis in two
different formats: [2]
Using single coefficient (C): This external file contains the coefficients for delay variation.
It applies a single coefficient value C for each library cell, hierarchical cell or design. The
coefficient is the value of the variation at 1 standard deviation from the nominal delay.
Monte Carlo analysis is used to get the POCV coefficients. There is only one value of C
for each timing arc of the cell irrespective of the input transition and output load.
The delay variation σ = C * nominal delay [1]
version: 4.0
ocvm_type: pocvm
object_type: lib_cell
delay_type: cell
derate_type: early
object_spec: */INV*
coefficient: 0.0693
ocvm_type: pocvm
object_type: lib_cell
delay_type: cell
derate_type: late
object_spec: */INV*
coefficient: 0.0693
3/12
Library variation format (LVF):[2] The information of POCV variation is directly provided in
the library itself. The variations are loaded in the design by loading the library. It contains
the value of variation ?? for multiple slew-load conditions of the cell instead of a single
value of C. Using this format greatly improves the accuracy of the design at 16nm and
below nodes. Similar to cell delay check, LVF supports POCV coefficients for transition
and setup-hold checks as well.
ocv_sigma_cell_rise (delay_template_7x7) {
sigma_type: early;
values (
);
ocv_sigma_cell_rise (delay_template_7x7) {
sigma_type: late;
4/12
index_2 (“0.0001, 0.00250277, 0.00625692, 0.0156423, 0.0391057, 0.0977643,
0.244411”);
Values (
);
ocv_sigma_rise_transition (delay_template_7x7) {
sigma_type: early;
values (
5/12
“0.000118334, 0.000133252, 0.000207293, 0.000456511, 0.00112259, 0.00292568,
0.00744099”,
);
Typically, index_1 denotes input transition and index_2 denotes output load.
ocv_sigma_rise_transition (delay_template_7x7) {
sigma_type : late;
Values (
);
6/12
Typically, index_1 denotes input transition and index_2 denotes output load.
If both data-types are present in the design then by default the file with POCV single
coefficient has higher precedence than POCV slew-load table in LVF format.
The value of variation is added or subtracted from the nominal delay for maximum and
minimum delay analysis respectively. [2]
The detailed calculation for POCV is explained with the help of Primetime timing report as
follows:
Sigma: 3.0
————————————————————————————–
clock network delay (propagated) 0.379 0.005 0.393 0.393 0.379 0.005
0.393
7/12
NAND/o 0.102 0.008 0.126 0.113 0.584 0.010 & 0.614
r
8/12
BUF2/o 0.076 0.005 0.092 0.078 1.541 0.025 & 1.617
f
clock network delay (propagated) 0.349 0.005 0.335 0.335 1.887 0.005
1.873
library setup time -0.046 0.006 -0.063 -0.057 1.754 0.006 1.735
————————————————————————————————————————-
————————————————————————————————————————-
9/12
Incr Column: Delay calculation for that specific stage
Incr value : Current stage path value – Previous stage path value – – ->
equation (5)
————————————————————————————–
10/12
Figure 4 Calculations for path column for the above example
As seen from above, the delay calculation for the path [mean and sensit] is done
statistically. Sensit is calculated by using RSS value. This reduces extra pessimism in the
path as compared to simply adding the sensit values. By simple addition, the total sensit
value of the path will be 0.017 as opposed to 0.010 calculated using RSS.
POCV models the random variations on the chip. In order to model systematic variations
as well, distance based AOCV derating is used along with POCV. Distance derates are
provided in a similar LVF format in library. POCV coefficient and distance derates are
mutually exclusive. Distance-based derates are usually generated from silicon data
measurements from the test chip. [1]
version: 4.0
ocvm_type: pocvm
object_type: lib_cell
delay_type: cell
derate_type: early
object_spec: */*INV*
table: 1.025 1.025 1.025 1.025 1.025 1.025 1.025 1.025 1.025 1.025 1.025
ocvm_type: pocvm
object_type: lib_cell
delay_type: cell
derate_type: late
11/12
object_spec: */*INV*
table: 1.025 1.054 1.065 1.074 1.082 1.089 1.095 1.100 1.105 1.110 1.119
Guard-banding in POCV
To model non-process related variations such as voltage and temperature, guard banding
is used. It applies to both nominal delay and sigma.
When both derates; distance-based and guard band are present then total derate will be
the product of the two. [POCV distance derate * POCV guard band].
The two most used timing closure methodologies can be compared as follows:
12/12