Keywords
OCV (On Chip Variation), AOCV (Advanced OCV), POCV (Parametric OCV), SOCV (Statistical OCV), LVF (Liberty Variation Format), CCS (Composite Current Source), NLDM (Non-Linear Delay Model), STA (Static Timing Analysis), VLSI characterization, timing variation modelThere are several models that have attempted to model variation as listed below:
In this article, we compare and contrast the progress of OCV model to AOCV model syntax.
OCV model is not part of liberty format. OCV Model is set of commands used during static timing analysis, whereas AOCV model is a simple table of derating factors indexed by path depth, which was later subsumed in liberty format. LVF (Liberty Variation Format) Model is part of liberty and is a 2-dimensional table of standard deviation of delay and slope values.
Table below describe OCV model in an easy to read manner.
% set_timing_derate -cell_delay -rise -data -early 0.92
% set_timing_derate -cell_delay -rise -data -late 1.10
% set_timing_derate -cell_delay -rise -clock -early 0.95
% set_timing_derate -cell_delay -rise -clock -late 1.06
% set_timing_derate -cell_delay -fall -data -early 0.90
% set_timing_derate -cell_delay -fall -data -late 1.12
% set_timing_derate -cell_delay -fall -clock -early 0.94
% set_timing_derate -cell_delay -fall -clock -late 1.07
Liberty IEEE-ISTO (Institute of electrical and electronics engineers – industry standards and technology organization) group did not propose a liberty format for AOCV model until late 2013. The need arose, before model could find a standard format, so it was being generated as a side AOCV file for timing analysis software. This ad-hoc format relied on few keywords to incorporate AOCV model details. These keywords are:
Below is one example of late rise clock derate AOCV table:
object_type : lib_cell
rf_type : rise
delay_type : cell
derate_type : late
path_type : clock
object_spec : 10nmlib/BUF_X4
depth : 1 2 3 4 5 6 7 8 9 10
table: 1.183 1.145 1.122 1.109 1.0901 1.0801 1.0736 1.0650 1.0601 1.055
Figure: Early and Late Cell Delay Variation in AOCV table
AOCV table above shows keywords and values for rf_type (rise or fall), derate_type (early or late), path (data or clock) and object_type (lib_cell or net). Last two indices depth and table representing stage depth of the path and applicable derate value for the path. Picture below shows early derate and late derate numbers (on y-axix) as a function of no. of stages (on x-axis). Note that both these number tend to converge to 1.0 as number of stages go up. It manifests random variation cancellation with higher number of stages in the path.
Same table has been reproduced as liberty AOCV format below:
library (guna_lib) {
ocv_table_template(ocv_template) {
variable_1: path_depth;
index_1 (“1,2,3,4,5,6,7,8,9,10”);
}
ocv_table_template(ocv_template_2D) {
variable_1: path_depth;
variable_2: path_distance;
index_1 (“1,2,3,4,5,6,7,8”);
index_2 (“1,2,3,4,5,6,7,8”);
}
…
cell (BUFX4) {
…
…
ocv_derate_factors(ocv_template) {
rf_type: rise;
derate_type: late;
path_type: clock;
values(“1.18, 1.145, 1.12, 1.10 1.10 1.08 1.074 1.065 1.06 1.055”);
}
}
}
In this article, we reviewed syntactical details of OCV and AOCV formats and how they are used in the flow.
Join our discussion forum, quench your thirst and become an expert in characterization and modeling.