Sunteți pe pagina 1din 20

Application Note for Advanced on-chip-variation

Cadence Design Systems, Inc.

Application Note

Analysis with Advanced On-chip Variation


(AOCV) derating

Encounter Digital Implementation (EDI) System


Encounter Timing System (ETS)
Version – 10.1 or higher

Rev – 1.0
June – 2012

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 1
Application Note for Advanced on-chip-variation

Table of Content

AOCV – Definition ...................................................................................................................4

How is AOCV used? ................................................................................................................4

AOCV Derating Library Formats ...........................................................................................6

Cadence AOCV Derating Library Format .............................................................................6


Using External AOCV Derating Library Formats in EDI/ETS....................................... 12

Configuring AOCV Analysis in EDI and ETS .....................................................................13


Min/Max Configuration................................................................................................... 13
MMMC Configuration..................................................................................................... 13
CPF Configuration ......................................................................................................... 14

Enabling AOCV Analysis in EDI and ETS ..........................................................................14

AOCV Analysis Reporting Options .....................................................................................15

OCV Derating With AOCV ....................................................................................................16


AOCV Addition or Multiplication with OCV ................................................................... 16
Derating Reference Points ............................................................................................ 16
Addition and Multiplication of OCV Sub-Factors .......................................................... 17
Timing Reports with Combined OCV/AOCV Derating ................................................. 19

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 2
Application Note for Advanced on-chip-variation

Purpose:
This application note describes the current supported syntax and use model for using
AOCV derating libraries in EDI System or ETS versions 10.1.1/10.1.2 or higher. This
documents the syntax and semantics of the Cadence internal AOCV library format, as
well as support for external formats supporting similar information. This document
also describes how to add AOCV derating libraries to your design import configuration
and how to control AOCV analysis within the EDI or ETS session.

Audience:
This application note may be of interest to customers who are currently using EDI
System or ETS products - versions 10.1.1 or higher. Support for graph-based AOCV
derating was introduced in the respective 10.1.1 releases of these tools. This ca-
pability allows the core timing engine to have visibility into AOCV derating. Pre-
viously, AOCV analysis was only possible as a post-processing, path-based retime
capability utilizing the LOCV flow. Graph-based AOCV exposes the EDI timing op-
timization system to AOCV effects, and also enables path-based retime to run faster
and more efficiently.

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 3
Application Note for Advanced on-chip-variation

AOCV – Definition

• It is nothing but a pseudo-statistical process factor to provide more refined derating


than the traditional OCV (on-chip variation) guard-band factor

o Models increased systematic variation over longer paths


o Models reduced random variation effects of paths with increasing gate stages

• AOCV derating libraries are provided by vendors or can be created out of SSTA
characterization flows such as Cadence’s Variety

o (1-D) stage-based, or (2-D) stage-based x distance-based


o Modeling typically assumes similar statistical variability between cells
 May be pessimistic or optimistic compared with true SSTA results

• Provides a final AOCV x|+ OCV composite derating factor that is familiar to users and
fits in well with existing flows

How is AOCV used?

• Standard timing analysis (Graph-Based Mode - GBA)

o STA is looking at all possible paths in the system


o Stage-count for any instance reflects the shortest-path
o Minimum stage count per instance is used for all paths (pessimistic)
o Cannot consider actual path bounding area (pessimistic)
o This the default timing that IPO will see

• Path-based analysis (PBA)


o A retiming mode that focuses on a single path at a time
o Stage count and path bounding area are accurate
o Other delay calculation retime accuracy modes done in parallel
o This is the most accurate timing

Simple graph-based Example:

• Data path from RS to RT2 has 5 stages


– U2, U3, U4 use a data stage count of 5
• RS and U1 are also on shorter path to RT1
– RS, U1, U5 use a data stage count of 3

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 4
Application Note for Advanced on-chip-variation

AOCV-Graph Based - Effective Stage Counting

Clock path stage counts are with respect to the CPPR common point and the last clock
branch points before the registers

Effective Stage Counts (*launch_capture mode) For RS -> RT Analysis

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 5
Application Note for Advanced on-chip-variation

Segment Members Stage Stage


Count Path

Clock root -> CPPR Common Point C0 5 C0-C1-C2-C5-RL1 or


C0-C6-C7-C10-RC1
CPPR Common Point -> C1-C2 4 C1-C2-C5-RL1
Launch Clock Branch Point
Launch Clock Branch Point -> C3-C4-C44-RS-U1-U2 6 C3-C4-C44-RS-U1-U2
Data Path Endpoint
CPPR Common Point -> C6-C7 3 C6-C7-C10
Capture Clock Branch Point
Capture Clock Branch Point -> C8-C9 2 C8-C9
Target Endpoint

AOCV Derating Library Formats

EDI and ETS 10.1.1/10.1.2 support two different AOCV derating library formats - a Ca-
dence specific format derived from a previous LOCV library specification, and an external
format currently supported by some EDA vendors and foundries. The characterization
data within either format is essentially the same - the differences are mainly syntactic.
The LOCV format library used in past EDI and ETS releases for strictly path-based retime
of critical paths is not supported for AOCV analysis. The new Cadence AOCV format uses
a similar syntax to LOCV, but simplifies the content so that the AOCV library specification
can be done in parallel with Liberty timing library specifications. Conversion of legacy
LOCV libraries to the new AOCV format is beyond the scope of this document. You
should contact Cadence for assistance with this migration.

Cadence AOCV Derating Library Format

The Cadence AOCV derating format is made of several sections allowing you to cus-
tomize how each table is applied:
• The Table Group allows you to specify different tables to be used for Net arc or
Cell arc derating
• The Table ID is comprised of up to three naming attributes which allow the
specificaiton of tables for:

- Early vs. late timing arc delays

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 6
Application Note for Advanced on-chip-variation

- Rising delay vs. falling delays

- Delays on clock paths vs. data paths


• The Object ID allows you to specify unique tables for different libraries or li-
brary cells
• Table Voltage specifies what voltage the current table is characterized for.
You may specify multiple tables for each voltage of interest, or allow the timer
to interpolate between tables for intermediate voltages

Note: Table voltage specification is not supported in the current beta release of
of the software. AOCV derating libraries must not include this data.
• The Derating Table section provides the indices and data for 1D or 2D de-
rating - including stage depth only, distance only, or combined stage and dis-
tance

Syntax of Cadence AOCV Derating Library

Example Section Notes

[Apply- [Net | Cell] ]? Table Group tag Optional

[Voltage 1.5]? Table Voltage (Not currently supported)

[Early | Late] -[Rise | Fall]? -[Clock | Data]? Table ID tag Early or Late is required

[Cell | Net | Instance ] LIB/BUFS1 Object ID Optional

Stage 1 2 3 4 5
It is possible to have a 1-D
[Distance 500 1000 1500 2000]?
distance based derating
1.123 1.090 1.075 1.067 1.062 Derating Table table, but the AOCV flow
1.124 1.091 1.076 1.068 1.063 requires at least a 1-D stage
1.125 1.092 1.077 1.070 1.065 based table
1.126 1.094 1.079 1.072 1.067

Table Group
The Apply- tag can be used with either a Net or Cell descriptor to designate the table
for use in derating only net delays or cell delays respectively. If the Apply- tag is not
specified, then the table will be used for both net and cell delay derating.
To designate a table for net-based derating only, you should specify:

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 7
Application Note for Advanced on-chip-variation

Apply-Net
To designate a table for cell-based derating only - use:
Apply-Cell
If you intend to use the Object ID field to specify unique tables for specified libraries
and/or library cells, you should also specify Apply-Cell for these tables.

Table ID
The Table ID is a tag made up of up to three sub-tags, which can be used to add further
specificity to the derating table to control early vs. late, rise vs. fall, and clock path vs. data
path.
{Early | Late}
Each table is minimally required to have either an Early or Late tag. It is further required
that each object subject to AOCV derating have both an Early and a Late derating table.
AOCV derating of only Early or only Late paths is not allowed. It is, however, legal to
using derating values of 1.0 for the tables if that effect is desired.
[Rise | Fall]
By default, an Early or Late derating table is used to supply derating for both rising and
falling delays. If unique derating for each transition is desired, the -Rise or -Fall tag can
be added to the Table ID to tighten the specification.
To configure a table for only rising delays on early paths, you should use:
Early-Rise
To configure a table for falling delays on late timing paths - specify:
Late-Fall

[Clock | Data]
Derating tables can also be configured so that they are specific to clock path delays or
data path delays. This can be achieved by adding a final -Clock or -Data tag to the
Table ID string.
The complete set of possible Table IDs is:
Early Early-Rise-Clock Late Late-Rise-Clock
Early-Rise Early-Rise-Data Late-Rise Late-Rise-Data
Early-Fall Early-Fall-Clock Late-Fall Late-Fall-Clock
Early-Clock Early-Fall-Data Late-Clock Late-Fall-Data
Early-Data Late-Data

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 8
Application Note for Advanced on-chip-variation

In the case where there is an overlap in the table specification, the derating table with the
tightest specification is used.

Object ID
You can further control the application of the AOCV derating tables to specific timing
libraries or library cell groups. The syntax also supports specifying design-level cell in-
stances or nets - however, these types of design-level references are not currently
supported
Note - Although the current LOCV path-based flow does support instance or net specific
derating factors the AOCV flow - either graph-based or path-based does not. Unlike
LOCV, the AOCV libraries are configured and stored in the system the same way as
Liberty timing libraries - allowing only library or library-cell level derate factors to be
supported.

In the AOCV flow you can use the Cell Object ID to designate particular derating tables to
be used for specific library-level groups. An object expression using simple wildcarding
rules can be used for a variety of seletion criteria. If there is an overlap among the
wildcard expressions, then the tighest reference will be used.
To specify a derating table to be used for a specific library:
Cell stdcell/*
To specify derating for a specfic library cell:
Cell stdcell/BUF1S
To specify a common derate table for a group of cells with similar drive strength:
Cell stdcell/*1S
Cell stdcell/*4S
To specify a common derate factor for a group of libraries at the same corner:
Cell *-P1V15T120/*

Table Voltage
In the future, an optional voltage designation for the table can be specified by adding the
Voltage specifier to the model description. You can specify several tables with different
Voltage specifications within the same .aocv library file. When performating derating,
the system will use the table which matches the current operating voltage of the cell.
If the operating voltage of the cell does not exactly match one of the specified Voltage
points, then the system will:

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 9
Application Note for Advanced on-chip-variation

• If the operating voltage is between the Voltage points of two derating tables, the
system will use linear interpolation to derive the proper derating factor
• If the requested voltage is large than the maximum Voltage table, then that table
data will be used without extrapolation
• If the requested voltage is lower than the minimum Voltage table, then the min
Voltage data is used without extrapolation

To specify a voltage of 1.5Volts for the derating table, use a specification of:
Voltage 1.5

Note - Support for the AOCV voltage attribute is not present in the current 10.1.1/10.1.2
beta release of the AOCV functionality. For testing purposes, AOCV libs should not
include this property.

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 10
Application Note for Advanced on-chip-variation

Derating Table
The AOCV format allows a derating table specification that is 1 or 2-dimensional - the
possible axes being Distance - the bounding box diagonal of that path, and Stage -
the stage count depth of the path. Although AOCV graph-based (AOCV-GB) only
supports stage-based derating, you may specify either a 1-D stage-based table, or a 2-D
Stage x Distance table.
When using a 2-D table in conjuction with AOCV-GB stage-based only analysis, the
system will attempt to pick the proper row of the table based on the estimated chip and/or
core dimensions. When using EDI system or ETS with physical information, the chip and
core size will be automatically determined from the design. The variables aocv_chip_size
and aocv_core_size can be used in ETS to specify the physical dimensions when this
information is not available. If this value falls off of the table, then the final row of the
table will be used without extrapolation.
The Stage and Distance keywords are added to the model to provide the axis points
for the table. Rows of the table always represent a Distance variance, and columns a
stage count - independent of the order in which the Stage and Distance keywords are
specified for the model.

Distance List of distance (real) values specified in microns, increasing in magnitude


Stage List of integer values representing stage depth, increasing in magnitude

Example of a derating table with 4 Distance indices and 5 Stage indices:


Stage 1 2 3 4 5
Distance 500 1000 1500 2000
1.123 1.090 1.075 1.067 1.062
1.124 1.091 1.076 1.068 1.063
1.125 1.092 1.077 1.070 1.065
1.126 1.094 1.079 1.072 1.067
In the case where the stage or distance lookup value is outside of the range of the table -
either smaller or larger, the system will use the last bound entry point. Extrapolation will
not be performed on either end of either axis.

The user is responsible for understanding the intended interpretation of the derating
factors in the AOCV table they are using. Generally, these are set to either model the full
derating to be used for the cell, or to model only the random variation component. If the
latter is being employed, you should refer to the section Using OCV Derating With AOCV
for more information on overlaying additional scaling with the AOCV derate factors.

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 11
Application Note for Advanced on-chip-variation

Examples of Cadence AOCV Derating Library

This example shows a table that will be used for derating cell delay arcs for devices used
on the clock path for early delays. All cells matching *D1 in the stdcellwcl library will
utilize this table data. For an early derating table such as this, you can see that the
derating factors are monotonically increasing toward 1.0 as the depth of the path in-
creases.
Apply-Cell
Early-Clock
Cell stdcellwcl/*D1
Stage 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0.627 0.720 0.743 0.783 0.790 0.814 0.825 0.832 0.847 0.848 \
0.854 0.860 0.865 0.872 0.883

This example shows a 2-D derating table that will be applied to both nets and cells for all
early data paths - i.e for the data path of Hold type timing checks:
Early-Data
Stage 0 1 2 3 4 5 6 7 8 9 10 15 20 30 50 100 200
Distance 0 500 1000 1500 2000 3000 4000 5000
0.916 0.916 0.936 0.944 0.948 0.951 0.953 0.955 0.956 0.957 0.958 0.960 0.962 0.963 0.964 0.965 0.965
0.916 0.916 0.936 0.944 0.948 0.951 0.953 0.955 0.956 0.957 0.958 0.960 0.962 0.963 0.964 0.965 0.965
0.913 0.913 0.931 0.939 0.943 0.945 0.947 0.948 0.949 0.950 0.951 0.953 0.954 0.955 0.956 0.957 0.957
0.909 0.909 0.926 0.933 0.937 0.939 0.941 0.942 0.943 0.943 0.944 0.946 0.947 0.948 0.948 0.949 0.949
0.905 0.905 0.922 0.928 0.931 0.933 0.935 0.936 0.937 0.937 0.938 0.940 0.940 0.941 0.942 0.942 0.942
0.900 0.900 0.915 0.920 0.923 0.925 0.926 0.927 0.928 0.929 0.929 0.930 0.931 0.932 0.932 0.933 0.933
0.896 0.896 0.910 0.915 0.918 0.920 0.921 0.922 0.923 0.923 0.924 0.925 0.925 0.926 0.927 0.927 0.927
0.893 0.893 0.907 0.912 0.915 0.917 0.918 0.919 0.919 0.920 0.920 0.921 0.922 0.922 0.923 0.923 0.923

Using External AOCV Derating Library Formats in EDI/ETS


In addition to supporting Cadence native AOCV format, EDI and ETS also support a
commonly available external AOCV format that is supported by several library and EDA
vendors. In the EDI/ETS 10.1.1/10.1.2 release, these format derating libraries can be
used in a similar manner as the native format.
A formal specification of third-party AOCV formats is beyond the scope of this document.

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 12
Application Note for Advanced on-chip-variation

Configuring AOCV Analysis in EDI and ETS

AOCV derating libraries - whether in native Cadence format or external format are con-
figured similarly as Liberty timing libraries - both in min/max, MMMC, and CPF-based
modes of operation. Loading AOCV derating libraries does not automatically configure
the system for AOCV analysis - this must be explicitly enabled via setAnalysisView.

Min/Max Configuration

Min/Max is the default, two-corner, single-mode operation of both EDI and ETS.
Use the configuration file entry:

set rda_Input(ui_aocvlib) "myDerateLib.aocv"

to specify a derating library for use in EDI. The AOCV library will be loaded when the
config file is committed. If you are using an EDI configuration file to drive ETS, then this
method may also be used for ETS. ETS also provides a (currently undocumented)
'read_lib -aocv' option for specifying AOCV derating libraries directly from the
command script:

Example:

read_lib slow.lib
read_lib -aocv test.aocv
read_verilog test.v
set_top_module test
read_sdc test.sdc

MMMC Configuration

In an MMMC environment, AOCV libraries are specified in the same manner as Liberty
timing libraries - by configuring them in the MMMC library_set object using either the
create_library_set or update_library_set commands. These will later be
incorporated as part of an MMMC delay corner. AOCV libraries should only contain data
applicable for one delay corner. The same AOCV library may be applied to multiple
library sets if desired:

Example:

create_library_set -name libsSlow -timing slow.lib -aocv test.aocv


create_library_set -name libsFast -timing fast.lib -aocv test.aocv

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 13
Application Note for Advanced on-chip-variation

CPF Configuration

If you are using a CPF file to configure the libraries for your MMMC implementation and
analysis flow, you can add additional configuration information for the AOCV derating
libraries directly to the CPF file. Support libraries such as CDB for SI and AOCV are
specified by the -user_attributes directive that is part of the CPF
define_library_set construct. A new 'aocv' tag has been incorporated into
CPF for this purpose.

Example

define_library_set
-name libs-1volt
-libraries {libs/delayvolt_1V.liblibs/slow.lib}
-user_attributes { {aocv test.aocv} }

will result in the following MMMC library set when the CPF is committed:

create_library_set
-name libs-1volt
-timing [list libs/delayvolt_1V.liblibs/slow.lib]
-aocv [list test.aocv]

Enabling AOCV Analysis in EDI and ETS

Enabling AOCV analysis - either graph-based or path-based - within EDI and ETS is
controlled by the -aocv option to the setAnalysisMode (ETS: set_analysis_mode)
command. All subsequent timing reports will be based on AOCV graph-based analysis.

setAnalysisMode –aocv true –analysisType onChipVariation –cppr both

Activating AOCV mode will automatically enable CPPR analysis, so for script clarity it is
recommended to reflect this in setAnalysisMode with an explicit -cppr specification.

To enable AOCV path-based reporting for a specific report_timing command, you should
select one of the two AOCV retime options:

report_timing ... -retime aocv | aocv_path_slew_propagation

Like LOCV, the aocv retime mode will retime the selected paths with just AOCV de-
rating. The aocv_path_slew_propagation option will also include analysis with
path-correct slew propagation.

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 14
Application Note for Advanced on-chip-variation

AOCV Analysis Reporting Options

A new timing report column has been added to show the resolved AOCV timing derate
factor used for a specific timing arc. The aocv_derate field can be added to the
report by configuring the report_timing -format option or the
report_timing_format global variable. The delay field represents the effective delay
including any AOCV or OCV derating applied.

set_global report_timing_format { … aocv_derate …}

or

report_timing … -format {… aocv_derate …}

Path 1: MET Setup Check with Pin RT/CK


Endpoint: RT/D (v) checked with leading edge of 'PH1'
Beginpoint: RS/Q (v) triggered by leading edge of 'PH1'
Analysis View: testMax
Other End Arrival Time 0.535
- Setup 0.299
+ Phase Shift 10.000
+ CPPR Adjustment 0.057
+ AOCV Adjustment -0.009
= Required Time 10.284
- Arrival Time 1.741
= Slack Time 8.542
Clock Rise Edge 0.000
= Beginpoint Arrival Time 0.000
Timing Path:
+-------------------------------------------------------------+
| Instance | Cell | Arc | Aocv | Delay | Arrival |
| | | | Derate | | Time |
|----------+---------+-------------+--------+-------+---------|
| | | clk ^ | | | 0.000 |
| C0 | BUFS1 | | 1.500 | 0.000 | 0.000 |
| C0 | BUFS1 | A ^ -> Y ^ | 1.500 | 0.155 | 0.155 |
| C1 | BUFS1 | | 1.600 | 0.000 | 0.155 |
| C1 | BUFS1 | A ^ -> Y ^ | 1.600 | 0.182 | 0.337 |
| C2 | BUFS1 | | 1.600 | 0.000 | 0.337 |
| C2 | BUFS1 | A ^ -> Y ^ | 1.600 | 0.195 | 0.531 |
| C3 | BUFS1 | | 1.300 | 0.000 | 0.531 |
| C3 | BUFS1 | A ^ -> Y ^ | 1.400 | 0.159 | 0.691 |
| C4 | BUFS1 | | 1.300 | 0.000 | 0.691 |
| C4 | BUFS1 | A ^ -> Y ^ | 1.400 | 0.151 | 0.842 |
| C44 | BUFS1 | | 1.300 | 0.000 | 0.842 |
| C44 | BUFS1 | A ^ -> Y ^ | 1.400 | 0.158 | 1.000 |
| RS | DFFHHS1 | | 1.300 | 0.000 | 1.000 |
| RS | DFFHHS1 | CK ^ -> Q v | 1.400 | 0.352 | 1.352 |
| U1 | BUFS1 | | 1.300 | 0.000 | 1.352 |
| U1 | BUFS1 | A v -> Y v | 1.400 | 0.197 | 1.549 |
| U2 | BUFS1 | | 1.300 | 0.000 | 1.549 |
| U2 | BUFS1 | A v -> Y v | 1.400 | 0.193 | 1.741 |
| RT | DFFHHS1 | | 1.300 | 0.000 | 1.741 |

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 15
Application Note for Advanced on-chip-variation

OCV Derating With AOCV

Before the introduction of stage and area based derating factors, "OCV" derating factors
had been specified using the set_timing_derate SDC command with -early and
-late options. The early/late variance represented the total derating - including that due
to PVT modeling as well as any guard-banding offset.
Although the stage-based derate factors that come from the AOCV analysis are targeted
at variation coming from Process - some users/vendors have chosen to model the total
effect with the AOCV derating tables. Others have chosen to split the derating model
into separate pieces and combine them - either multiplicatively or additively. There are
many alternatives. The timing system now offers a set of controls enabling the user to
flexibly configure their derating environment.

Users can now :

• Control whether AOCV and OCV derating factors are multiplied together or
added

• Specify whether the reference point for the AOCV and OCV factors are nominal
around 0.0, or around 1.0 - and adjust the calculation appropriately

• Allow the final OCV factor to be built up by successive multiplication or addition


of sub-factors using set_timing_derate

AOCV Addition or Multiplication with OCV

By default, when AOCV analysis is enabled, any OCV style derating specified with
set_timing_derate is multiplied by the calculated AOCV factor to get the final de-
rating value. A new timing global has been added to allow the user to control whether to
add or multiply AOCV and OCV factors.

set_global timing_aocv_derate_mode aocv_multiplicative (default)|


aocv_additive

Derating Reference Points

Since AOCV and OCV derating factors may be added or multiplied, it is important to
understand whether each factor is nominal at zero or at one.

Example

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 16
Application Note for Advanced on-chip-variation

If we have an AOCV +3% factor modeled as 1.03, and an OCV factor having a +2% factor
modeled as 1.02 - simple multiplication of factors works fine and yields a final derate of
around 1.051. If we were to simply add the same factors, we would get a sum of 2.05 -
which is probably not the value that is intended. The timing system can understand that
both of these factors are nominally referenced to 1.0, and it can then automatically adjust
the final result so that it makes sense. In this case the timer would calculate:

(OCV) (AOCV) (Adjust)


1.02 + 1.03 - 1.0 = 1.05

Two new timing globals have been introduced in the 10.1.2 release to allow specification
of the reference point for both OCV and AOCV factors. Per current AOCV library defini-
tions, the AOCV reference point is always expected to be set at 1.0.

set_global timing_derate_aocv_reference_point 0 | 1 (default)


set_global timing_derate_ocv_reference_point 0 | 1 (default)

When aocv_additive mode is selected, the following adjustments are performed. No


adjustments are performed for aocv_multiplicative mode:

AOCV AOCV OCV OCV Add or Final Derate


Factor Reference Factor Reference Multiply Calculation
Pt Pt

X 0/1 Y 0/1 aocv_multiplicative X*Y


X 1.0 Y 1.0 aocv_additive X+Y-1

X 1.0 Y 0.0 aocv_additive X+Y

It is generally expected that AOCV derating libraries will be referenced to 1.0, so the following
combinations below are not expected to be actively used

X 0.0 Y 1.0 aocv_additive X+Y

X 0.0 Y 0.0 aocv_additive X+Y+1

Addition and Multiplication of OCV Sub-Factors

In the 10.1.0 (RTM) release of the software, the ability to perform incremental adjust-
ments on to some set_timing_derate factors was added. New -add and
-multiply options were supersetted on top of the current EDI/ETS implementation of

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 17
Application Note for Advanced on-chip-variation

set_timing_derate. The new options were restricted to only global (applies to all
instances in the design) derating parameters.

In the 10.1.2 release, the software was further enhanced to allow -add and -multiply
to function on an instance-specific basis as well.

The current EDI/ETS hierarchy of derating factors - in increasing order of precedence is


shown in the table below:

Factor Global Library Cell Power-Domain Hierarchical Instance


Type Factor Factor Specific Fac- Module Specific
tor Factor Factor
Fixed OCV -late ... -late -late -late -late
[get_lib_cells BUFX*]] -power_domain PD1 ... [get_cells BLK1] [get_cells BLK1/U1]
Incremental -late -late
OCV -add | No No No -add | -multiply
-multiply
Add or Multiply Final OCV Factor Above with AOCV Factor From Below
AOCV Yes
* By supplying separate
Yes Yes No No
AOCV derating libraries
for each power domain

Example

set_global timing_aocv_derate_mode aocv_additive


set_global timing_derate_aocv_reference_point 1
set_global timing_derate_ocv_reference_point 0

# Assume the AOCV derate for cell U1 of type BUFXX is 1.03


# Comments below show the overall total derate for U1 at each step

(AOCV only derate from table lookup) # +1.03


set_timing_derate 0.01 -late -cell_delay # 1.04
set_timing_derate 0.02 -add -late
-cell_delay [get_cells U1] # 1.06 (Final)

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 18
Application Note for Advanced on-chip-variation

Timing Reports with Combined OCV/AOCV Derating

To better aid in understanding report_timing reports when there is a combination of


OCV and AOCV derating, you should utilize the aocv_derate and user_derate
(OCV) fields of the report. In 10.1.2, an additional stage_count field is available to
help better understand the derivation of the aocv_derate factor.

In the previous example, we had an additive combination of OCV and AOCV. Since one
of the reference points was 0 and the other was 1 - the software did not have to make any
adjustments to normalize the final derate factor. In this case, the timing report columns
are quite intuitive. In the timing run below, the nominal delay for all arcs has been set to
1.0ns so that the value in the Delay field indicates the total derate factor applied.

set_global report_timing_format {instance cell arc stage_count aocv_derate user_derate


delay arrival}
report_timing -net ...

def +------------------------------------------------------------------------------+
| Instance | Cell | Arc | Aocv | Aocv | User | Delay | Arrival |
| | | | Stage | Derate | Derate | | Time |
| | | | Count | | | | |
|----------+---------+-------------+-------+--------+--------+-------+---------|
| RS | DFFX1 | | 7.000 | 1.030 | 1.000 | 2.030 | 20.450 |
| RS | DFFX1 | CK ^ -> Q v | 6.000 | 1.030 | 0.010 | 1.040 | 21.490 |
| U1 | BUFXX | | 7.000 | 1.030 | 1.000 | 2.030 | 23.520 |
| U1 | BUFXX | A v -> Y v | 6.000 | 1.030 | 0.030 | 1.060 | 24.580 |

If the derating factors are changed such that both AOCV and OCV are referenced to 1.0,
then an implicit -1 will be done since the mode is still aocv_additive. In this situation,
the effect of the -1 will be seen in the aocv_derate value.
set_global timing_derate_aocv_reference_point 1
set_global timing_derate_ocv_reference_point 1
set_timing_derate -delay_corner dcMax -late -cell_delay 1.01
set_timing_derate -delay_corner dcMax -late -cell_delay 0.02 -add [get_cells U1]
This is the next one
+------------------------------------------------------------------------------+
| Instance | Cell | Arc | Aocv | Aocv | User | Delay | Arrival |
| | | | Stage | Derate | Derate | | Time |
| | | | Count | | | | |
|----------+---------+-------------+-------+--------+--------+-------+---------|
| RS | DFFX1 | | 7.000 | 0.030 | 1.000 | 1.030 | 13.450 |
| RS | DFFX1 | CK ^ -> Q v | 6.000 | 0.030 | 1.010 | 1.040 | 14.490 |
| U1 | BUFXX | | 7.000 | 0.030 | 1.000 | 1.030 | 15.520 |
| U1 | BUFXX | A v -> Y v | 6.000 | 0.030 | 1.030 | 1.060 | 16.580 |

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 19
Application Note for Advanced on-chip-variation

In the final example, we set both reference points to 0, and modify the AOCV library so
that it is outputting a value of 0.030ns.

set_global timing_derate_aocv_reference_point 0
set_global timing_derate_ocv_reference_point 0
set_timing_derate -delay_corner dcMax -late -cell_delay 1.01
set_timing_derate -delay_corner dcMax -late -cell_delay 0.02 -add [get_cells U1]

+------------------------------------------------------------------------------+
| Instance | Cell | Arc | Aocv | Aocv | User | Delay | Arrival |
| | | | Stage | Derate | Derate | | Time |
| | | | Count | | | | |
|----------+---------+-------------+-------+--------+--------+-------+---------|
| RS | DFFX1 | | 7.000 | 1.030 | 1.000 | 2.030 | 20.450 |
| RS | DFQX1 | CK ^ -> Q v | 6.000 | 1.030 | 0.010 | 1.040 | 21.490 |
| U1 | BUFXX | | 7.000 | 1.030 | 1.000 | 2.030 | 23.520 |
| U1 | BUFXX | A v -> Y v | 6.000 | 1.030 | 0.030 | 1.060 | 24.580 |

In this case, the +1.0 adjustment to normalize the final derating factor is again accounted
for in the aocv_derate column.

COPYRIGHT © 2012, CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. PAGE 20

S-ar putea să vă placă și