7. VlSI Chip Design Flow
7
Design Import
Floor Planning
Placement
Trial Route &
Optimization
Clock Tree Synthesis
Post CTS
Optimization
Detailed Routing
Postroute Opt.
Physical Verification
Architectural Design
RTL Design
RTL Verification
DFT Insertion
Logic Synthesis
Formal Verification
Post Synthesis STA
Floorplanning and
placement
CTS and routing
DRC and Post
layout STA
Physical Design Flow
Tape out Tape Out
8. What is Physical Design ?
Transformation of a circuit design into physical representation for manufacturing
The circuit design is described through a netlist.
The end product from a physical design is a layout which passes
Design Rule Checks
Connectivity Checks
Timing Analysis Checks
Power Analysis Checks
The layout data is sent to foundry to generate masks and fabrication
10. Table of Contents
1. Introduction to VLSI
2. Design Flow in VLSI
3. Physical Design Flow
4. Data Prepare
5. Floorplan
11. Data preparation
1) Verilog Netlist
2) Constraints
3) Timing library
4) Physical library
5) - timing
6) Tech info
Design Data
Netlist
SDC
Logical
Library
.libs
.db
Physical
Library
CEL (GDS)
FRAM
(LEF)
Tech Info
Tech file(.tf)
TLU+ files
Map file
Cap table
12. Constraints
Set default fanout, trans and cap for all the inputs and outputs
Read_sdc
Clocks definition, IO delays, FP, MCP
Set max trans and cap for clocks
Read scan and MBIST related constraints
Set operating conditions single, OCV or bc_wc
14. Single, bc_wc & OCV
Timing paths consist of a series of cells and nets connected together. The delays
of the cells and nets represent the amount of time it takes for a signal transition
(or edge) to propagate across those cells or nets. Consider buffer cells U1 and U2
connected together by net n1, as shown in Figure 1:
Figure 1: Buffer To Buffer Example Circuit
The rising cell delay across cell U1 and the rising net delay across net n1 can be
shown graphically by the waveforms in Figure 2:
15. Single, bc_wc & OCV
Setup paths are paths where the checked signal edge must be stable for some time (the setup time) before
the capturing edge. In simple terms, this makes sure the launched edge gets to the capture point soon
enough. Setup paths include normal data-to-clock setup paths, the assertion of data-to-data and clock gating
checks, and asynchronous recovery checks. For proper analysis, setup paths must check the latest launching
edge against the earliest capturing edge.
Hold paths are paths where the checked signal edge must be stable for some time (the hold time) after the
capturing edge. In simple terms, this makes sure the launched edge does not arrive at the capture point too
soon. Hold paths include normal data-to-clock paths, the deassertion of data-to-data and clock gating
checks, and asynchronous removal checks. For proper analysis, hold paths must check the earliest launching
edge against the latest capturing edge.
16. Single, bc_wc & OCV
set_operating_conditions -analysis_type <type>
Single:
The single analysis mode analyzes a single operating corner. This goes back to the first releases of
Design Compiler over a decade ago, when it was the only available analysis mode. In
the single mode every timing arc is evaluated once using the "max" stimuli:
Max lumped capacitive loads are used if they are annotated
Max pin loads or receiver model characteristics are always used
Max slew propagation is performed at slew merge points
Both setup and hold paths use the computed max-delay arcs. Setup paths use the longest path
through these arcs for launch, and the shortest path for capture. Hold paths use the shortest
path through the arcs for launch, and the longest path for capture
17. Single, bc_wc & OCV
BC_WC:
The bc_wc analysis mode analyzes two operating corners simultaneously. In the bc_wc mode every timing
arc is evaluated twice, once using the "max" stimuli and once using the "min" stimuli:
Min lumped capacitive loads are used for the min arcs, and max lumped capacitive loads are used for the max arcs (if annotated)
Min pin caps or receiver models are used for the min arcs, and max pin caps or receiver models are used for the max arcs
Min slew propagation is performed at the slew merge points for min delays, and max slew propagation is performed at slew merge
points for max delays
In the bc_wc mode, the two corners can represent two PVT (process/voltage/temperature) corners which
cannot physically coexist at the same time. For example, the min corner could be configured at 0 °C and 1.3
V, while the max corner could be configured at 100 °C and 1.1 V. The two corners in bc_wc mode
represent two completely independent PVT corners.
18. Single, bc_wc & OCV
Setup paths use the longest path through the max-delay arcs for
launch, and the shortest path through the max-delay arcs for capture.
Hold paths use the shortest path through the min-delay arcs for
launch, and the longest path through the min-delay arcs for capture.
In other words, the bc_wc analysis mode only checks setup at the
max corner, and hold at the min corner. It is important to remember
that setup paths are not checked at the min corner, and hold paths
are not checked at the max corner.
This could miss timing violations due to differences in how the launch
and capture paths track the PVT difference between the corners.
19. Single, bc_wc & OCV
OCV:
The on_chip_variation analysis mode analyzes a single operating corner while considering the variation in
arc timing which can exist within that corner. Just as in bc_wc mode, in on_chip_variation mode every timing
arc is evaluated twice, once using the "max" stimuli and once using the "min" stimuli:
Min lumped capacitive loads are used for the min arcs, and max lumped capacitive loads are used for the max arcs
Min slew propagation is performed at the slew merge points for min delays, and max slew propagation is performed at slew merge
points for max delays
20. Timing Parameters Used For Setup Checks
analysis mode setup launch path setup capture path
single
slowest path through max-delay
arcs,
single operating condition,
no derating
fastest path through max-delay
arcs,
single operating condition,
no derating
bc_wc
slowest path through max-delay
arcs,
worst-case operating
condition,
late derating
fastest path through max-delay
arcs,
worst-case operating
condition,
early derating
on_chip_variation
slowest path through max-delay
arcs,
worst-case operating
condition,
late derating
fastest path through min-delay
arcs,
best-case operating
condition,
early derating
21. Timing Parameters Used For hold Checks
analysis mode hold launch path hold capture path
single
fastest path through max-delay
arcs,
single operating condition,
no derating
slowest path through max-delay
arcs,
single operating condition,
no derating
bc_wc
fastest path through min-delay
arcs,
best-case operating
condition,
early derating
slowest path through min-delay
arcs,
best-case operating
condition,
late derating
on_chip_variation
fastest path through min-delay
arcs,
best-case operating
condition,
early derating
slowest path through max-delay
arcs,
worst-case operating
condition,
late derating
23. Clock Reconvergence Pessimism Removal
(CRPR)
When launching and capturing clock share common path, the common path min
delay and max delay will add additional pessimism to both setup and hold
analysis.
CRPR can be used to remove this pessimism.
24. Clock Reconvergence Pessimism Removal
(CRPR)
As you can see that flop share a common clock but are placed physically at the
different places in the same die. Or in other way you can say that Launch clock
path and capture clock path share a common segment in the clock tree till the
point know as "common point" (in above fig you can see that "common point" is
written as "The clock path common to both flops till this point"). The 2 clock path
diverse from that point.
25. Basic Terminology in Physical
Design
Design: A circuit that performs one or more logical functions.
Cell: An instance of a design or library primitive within a design.
Port: The input or output of a design.
Pin: The input or output of a cell.
Net: A wire that connects ports to ports or ports to pins.
Clock: A timing reference object to describe a waveform for timing analysis.
Logical Libraries: Logical libraries are libraries which provide
Timing and functionality information for all standard cells (like AND, OR, Flipflops)
Timing information for Hard Macros (IP, ROM, RAM)
25
26. Different views
CEL view: The full layout view of a physical structure such as a via, standard cell,
macro, or whole chip; contains placement, routing, pin, and netlist information
for the cell
FRAM view: An abstract representation of a cell used for placement and routing;
contains only the metal blockages, allowed via areas, and pins of the cell
FILL view: A view of metal fill, which is used for chip finishing and has no logical
function, created by the signoff_metal_fill command in IC Compiler.
CONN view: A representation of the power and ground networks of a cell,
created by PrimeRail or IC Compiler and used by PrimeRail for IR drop and
electromigration analysis.
ERR view: A graphical view of physical design rule violations found by
27. Logical Library
Provides timing ,power and functionality information for all standard cells.
Provides timing , power information for hard macros (Hard IP, ROM, RAM, ..)
Logical information's are provided by .lib's or .db files
Physical Library ( Milkyway reference Libraries)
Contains physical information of standard cells and hard macros.
Physical information's are provided in the
form of LEF (FRAM), GDSII (CEL) views
28. library definition
The library definition file (i.e., sc_cadence.lib) is broken into two
sections: a header section that defines attributes to be used by all cells in the
library, and cell section that has a definition for each cell in the library.
A cell’s definition defines attributes about the cell such as pin names, area,
functionality, timing, power, etc.
29. Contents of a Library
Units (V, A, pW, KOhm, nS, etc)
Default parameters
Max transition
Input pin cap
Wireload mode
Operating condition
Max fanout
Nominal Parameters (PVT)
Operating Conditions
Worst Case /Best Case
Scaling factors
K Factors
Wireload Models
Estimate for fan-in, fan-out
Look-up table templates
Cells: all properties & attributes, Delay Tables, Rise/Fall Transition Tables, Power Tables
30. Wire load model
WLM is an estimation of delay, based on area and fanout. It is obsolete technology and after
physical synthesis there’s no use of it. Prior to Routing stage, net parasitics and delays cannot be
accurately determined. So, to predict delay we need to know the parasitics associated with
interconnect/net:
Resistance
wire_load("45Kto75K") {
Capacitance
Area of the nets.
capacitance : 0.000070;
resistance : 0.000042;
area : 0.28;
slope : 40.258665;
fanout_length(1, 40.258865);
fanout_length(2, 80.517750);
fanout_length(3, 120.776600);
fanout_length(4, 161.045450);
fanout_length(5, 241.543200);
fanout_length(6, 322.070900);
fanout_length(7, 402.587600);
}
31. Wire load model
Top: use the WLM for the top module to calculate delays for all modules.
Mantravlsi.blogspot.com
Enclosed: use the WLM of the module which completely encloses the net to compute delay for that net.
Mantravlsi.blogspot.com
Segmented: if a net goes across several WLM, use the WLM that corresponds to that portion of the net which it encloses
only. Mantravlsi.blogspot.com
33. cell’s definition
cell (and2) {
area : 434.7;
pin(A1) {
direction : input;
capacitance : 2.141;
}
pin(B1) {
direction : input;
capacitance : 1.948;
}
pin(O) {
direction : output;
function : "A1 * B1";
}
cell (dfr) {
area : 4819.5;
ff(IQ,IQN) {
next_state : "DATA1";
clocked_on : "CLK2’";
clear : "RST3’";
}
pin(DATA1) {
direction : input;
capacitance : 51.289;
}
pin(CLK2) {
direction : input;
capacitance : 52.305;
}
pin(RST3) {
direction : input;
capacitance : 28.602;
}
pin(Q) {
direction : output;
function : "IQ";
}
34. Lookup table
Can either use a 1-dimensional or 2-dimensional lookup
table
for setup/hold timing.
For 2-dimensional table, the two axes are transition time on
data
pin, transition time on clock pin. Same template used for
both
setup and hold.
lu_table_template(dff3x3) {
variable_1: constrained_pin_transition ;
variable_2: related_pin_transition ;
index_1 {“0.01, 0.1, 2.0”} ;
index_2 {“0.01, 0.1, 2.0”} ;
For 1-dimensional table, the axis is different depending on
setup
or hold time. Need seperate templates for setup/hold.
lu_table_template(setup_1d) {
variable_1: constrained_pin_transition ;
index_1 {“0.01 0.1 2.0”} ;
For setup time, vary transition time on data input, use a fast
transition time for clock
lu_table_template(hold_1d) {
variable_1: related_pin_transition ;
index_1 {“0.01 0.1 2.0”} ;
35. I/O Pad Specification
cell (IPAD_1) {
area : 2973.6 ;
pad_cell : true;
pin ( A ) {
direction : input ;
capacitance : 85 ;
is_pad : true ;
}
pin ( Y ) {
direction : output ;
function : "A" ;
}
}
cell (OPAD_1) {
area : 2973.6 ;
pad_cell : true;
pin ( A ) {
direction : input ;
capacitance : 278 ;
}
pin ( Y ) {
direction : output ;
function : "A" ;
is_pad : true ;
drive_current : 0.05 ;
}
}
38. Library Exchange Format (LEF):: Cell view
The LEF file contains layer, via, and macro definitions as in this example.
38
VDD
GND
A B
Y
NAND_1
reference point
(typical)
Dimension
“bounding box”
Pins
Symmetry
(X, Y, or 90-degrees)
• Direction
• Layer
• Form
LAYER m1
TYPE ROUTING ;
WIDTH 0.50 ;
END m1
LAYER via
TYPE CUT ;
END via
MACRO NAND_1
FOREIGN NAND_1 0.00 0.00
ORIGIN 0.00 0.00 ;
SIZE 4.5 by 12.0 ;
SYMMETRY x y ;
SITE core ;
PIN A
DIRECTION input ;
PORT
LAYER m1 ;
RECT 6.4 10.0 6.8 10.4 ;
END
PIN Y
OBS
LAYER via ;
RECT …
RECT ...
END NAND_1
39. 39
Capacitance Table
The capacitance table contains routing metal dimensions and properties. It is technology and
process-corner dependent.
You can get a capacitance table from your foundry or you can generate
40. TLUPLUS file
In Apollo and Astro technology there is a linear capacitance model, where the net capacitance is calculated
in terms of capacitance per square user unit of conducting and via layers specified in the Milkyway
technology file (or .tf file). To get higher extraction accuracy and still get the runtime benefit, a Table Look-
Up model or table, which contains wire capacitance at different spacings and widths, is precalculated and
stored in the Milkyway technology file. TLU internally calls capGen, which is normally bundled with Astro and
Apollo, to create this table. The Astro and Apollo Linear Parasitic Extraction (LPE) will look up appropriate
wire capacitances from the table during the extraction. The grdgenxo command, which is normally bundled
with Star-RCXT, is a more accurate engine to create the table than capGen. After processing and attaching
the grdgenxo-generated capacitance table to the Milkyway database, the Astro LPE/TLUPlus will be able to
extract the net capacitances using the same extraction engine but different CapTable compared to LPE/TLU.
Check_tlu_plus_files
TLU+ Files ( Cap Tables)
Contains the R and C values for every layer's per unit length..
P&R tool calculates C and R using the net geometry and the TLU+ look-up tables
42. Library Sanity Checks
Logical and Physical library inconsistencies:
Missing Cells
Missing or mismatched pins
Missing CEL or FRAM views
Duplicate cell name in the reference libraries
44. Gate Level Netlist
Design Preparation
Provides the logical connectivity information of the design.
Contains references to standard cells and macros, which are stored in the logical libraries
Uniquifying Netlist
Designs with multiple instances having same instance name.
P&R tool does not support non-uniquified designs
Linking
Timing Constraints
Communicates the design’s timing intentions to P&R tool.
49. Floor planning cont….
Power planning and management
Core Power Ring
Vertical and Horizontal Straps
Pad Power Ring
PAD to core ring power strap
Power rails
Power Planning Equations
Some Power Planned Chip Examples
50. Displaying the Design after Design Import
50
Hard/Custom
Blocks
Core Area
Pink module
guides consisting
of standard cells
52. Die Size Estimation/ Die Area Creation
Die Size depends on
Netlist Area
Utilization
Aspect Ratio
Height / width
Netlist Area is the sum of :
Standard Cell area
Hard Macro Area
IO Cell area
IO Cell area
Total Utilization = Netlist Area/ Total Die Area
Aspect Ratio= Horizontal Routing Resources / Vertical Routing Resources
53. Die Size Estimation/ Die Area Creation
4.2.2 Die size calculation:
Total gate count of the design = Tg ( 2 input NAND gate equivalents)
2 input nand gate area = An
Core area for 70% row utilization = Tg An = (Tg An) (0.7)
Hard macros area = Am
Total area(Ac) = Am (Tg An) (0.7)
Core edge = Sqrt (Ac)
IO cell dimensions = W H
Core to IO distance(d) = total width of power ring + spacing
between rings
Die edge = Core edge + 2(d + H)
54. Die Size Estimation/ Die Area Creation
Example:
Standard cell area 5000 sq um
Macro area 2000 sq um
55. Core Area Initialization
Core area depends on:
standard cells and hard macros.
Aspect ratio (Height/Width).
Target Utilization.
Standard cell rows
Height of the row will be same as the height of standard cell.
56. Row configuration
Row and site are same
All the standard cells height
will be integer multiple of the row
Flipped row are used for P/G
57. Row configuration
Flipped row to share common power and ground
Confidential: Authorized Distribution Only
58. Cell orientation & information
Orientations :
The default orientation is "vertically and face up" - N (North). Rotate by 90deg clockwise to
get E, S and W.
flip to get FN, FE, FS and FW.
The cell placement format represents (x,y)
placement of cells (may be undefined for some cells).
optional fixed status and optional spatial orientation of each cells.
Files in placement format have extension .pl and are to be used with standard
cell layuot (.scl) files and [multi-file] specifications of hypergraph with pins.
60. Flip-Chip Technology
Flip-chip technology provides higher levels of integration and higher
packaging densities.
a Flip chip is direct electrical connection of face-down (flipped) electronic components
onto substrate, board, or carrier by the conductive bumps
Pads are placed in a matrix to minimize chip size.
Used for very large designs
Eliminating packages and bond wires reduces the required board area by up to 95%, and
requires far less height.
Weight can be < 5% of packaged device weight
performance, flexibility, reliability, and cost are advantageous over other packaging
methods
61. Flip-Chip Technology
With flip-chip technology
The die is flipped upside-down and attached directly to the substrate using
solder bumps.
This method provides electrical connections with minute parasitic inductance
and capacitance.
Some percentage of the top metal layer is not available for signal routing.
Signal connections are required from metal layer 1 (where the pad cells are
located) to the corresponding bond pads on the top metal layer.
A byproduct advantage of flip-chip is more room for the bond pads.
62. Flip-Chip Technology
The flip-chip package, is an advanced packaging technology and created for higher integration
density and larger I/O counts.
For the flip-chip applications, typically the top metal or an extra metal layer, called a re-distribution
layer (RDL), is used to redistribute I/O pads to bump pads without changing the
placement of the I/O pads.
Bump balls are placed on the RDL and use the RDL to connect to I/O pads by bump pads.
62
63. Flip-Chip Technology
Recent IC’s place I/O pads (buffers) in the whole area of a die, instead of just placing them along
the die boundary.
Consequently, this placement results in shorter wirelength, higher chip density, and better signal
and power integrity.
63
64. Flip-Chip Technology
After floorplanning the circuit blocks and the I/O buffers, we need to route
from the block ports to the I/O pads (chip-level routing),
from the I/O pads to the bump pads (package-level routing).
64
65. IO & Bump Cell Placement
Following IOs and bumps are placed
Signal IOs & Bumps
Power IOs & Bumps
Corner Cells
Filler Cells
Physical-only pads (VDD/GND) that are not part of the input gate level
netlist need to be inserted prior to reading io constraints.
IO constraints are read in the form of IO file.
IO file define IO constraints such as pin/pad location, edge, order.
66. Problem Formulation
A. Package-level Routing :
Let Q be the set of I/O pads, and B be the set of bump pads. For practical
applications, each I/O pad is assigned to one bump pad.
66
67. Problem Formulation
B. Chip-level Routing :
Let P be the set of block ports. The number of I/O pads is larger than or equal
to the number of block ports, i.e., |Q| ≥ |P|, and each block port pi can be
assigned to only one I/O pad qj .
67
68. Basic Network Formulation
Bump pad Tile node
Intermediate node I/O pad
For a single layer
An edge is constructed between a block port
and an I/O pad if the block port is assigned
to the I/O pad of the same buffer type.
Each I/O pad connects either to its nearest
intermediate node or to its nearest tile node.
And ten type of edges.
68
The Routing
Algorithm
70. Floorplanning design limitations
Core limited design
The chip size is limited by the core size
Pad limited design
The chip size is limited by the no. of pads in the design.
70
CORE
Pad
CORE
Pad
Bond Pads
Corner Cells
Pad fillers
71. Floorplan types
Flat design
Design has only one(top) level of hierarchy
Netlist can be flat or hierarchical
Contains Hard macros(RAMS) and standard cells
Hierarchical design
Design has multiple level of hierarchy
Netlist can be only hierarchical
Contains Softmacros(blocks), Hard macros(RAMS) and standard cells.
Soft macros inturn have RAMS and blocks (if reqd) and standard cells
71
72. Flat design flow
Create floorplan cell
Place all macros
Place macros according to their connectivity preferably around the boundary
Power planning
P/G rings and straps
Create Groups and Regions(Optional)
For group of cells which needs to be placed closer together or at a specific location,
create groups and regions.
Place standard cells
congestion driven - if there are no constraints (or)
Timing driven - if it has timing constraints
72
73. Flat design flow:
Synthesize Clocks
Create clock trees using buffers to meet skew
Perform timing optimization
Fix transition, setup and hold violations
Route the design
Global route
Detail route
Verify design
Fix DRC, LVS and ANTENNA errors.
73
74. Hierarchical design flow:
Create floorplan cell
Flatten all child instances
Design contains Soft macros or blocks, Hard Macros and standard cells
Place cells
Arrange macros according to their connectivity
Pin Optimization
Assign pins based on the current floorplan and perform softmacro pin optimization for
all blocks and top level
Power planning
P/G rings and straps and macro/pad preroutes
Create Groups and Regions(Optional)
For all blocks individually and top level if required.
74
75. Flat design - Advantages/Disadvantages
Better timing as compared to hierarchical design
Better chip area as compared to hierarchical design
Fewer no of iterations to meet timing closure
One p&r engineer can handle the whole chip
75
76. Hierarchical design - Advantages over flat design
Can handle larger designs with Multi-million gates
Design is partitioned into multiple blocks, allowing several engineers
to work on one design at the same time.
provides a modular incremental approach to timing closure
i.e., Allows timing closure for individual blocks which allows timing re-budgeting
for other blocks that are not closed yet.
Design and signal integrity problems are best solved in hierarchical
designs
76
77. Timing Budgeting:
Purpose is to translate chip-level timing requirements of top cell into
timing requirements for individual top-level soft macros.
Generate timing delay models for all soft macros
Analyse the timing information and modify the floorplan or block locations
accordingly With top level constraints available, the tool allocates budgets to
each individual block
If timing violations exists in individual blocks, re-budgeting will resolve it by
borrowing/acquiring budgets from other blocks
77
78. Types of pad and bump designs:
In_line pads:
Pad size is limited by bondpad width.
Normally used for core limited designs
Used for smaller designs with less no. of pads.
78
Bondpad
Active Pad
CORE
Pad boundary
79. Types of pad designs
Staggered pads
Pad size is limited by active pad width
More no. of pads can be accomodated for the same core size.
Used for larger designs with high pinouts.
No of pads limited by the size of the bondpad.
79
Bondpad
Active Pad
CORE
Pad boundary
80. Macro Placement
Macro Placement is done based on Connectivity information.
Macros to IO cells
Macro to Macro
Macro placement is very critical for congestion and timing
Macro placement should result in uniform standard cell area.
Macro Placement Requires;
Flyline Analysis
Placement Blockage
Channel calculation
81. Macro placement
Read def
Place macro manually
Check the timing and fly lines
Set the orientation
82. Macro’s Definitions :
SOFT MACRO
A block which is not placed and routed
size and shape could be modified
Firm Macro:
Gate level implementation but no physical design
HARD MACRO
A block which cannot be altered
ex: RAM’s, PLL’s
GROUPS
A set of cells and hardmacros which needs to be placed together
Floorplan groups can be created for all softmacros or for 1st level of hierarchy below the top
cell or on all levels of hierarchy
REGIONS
Location of the floorplan group can be constrained by assigning groups to cell regions.
82
89. Placement Blockages
Hard
A hard blockage prevents the placement of standard cells and hard macros within the specified area during coarse
placement, optimization, and legalization. Hard macro
Soft
A soft blockage prevents the placement of standard cells and hard macros within the specified area during coarse
placement, but allows optimization and legalization to place cells within the specified area.
Partial
A partial blockage limits the cell density in the specified area during coarse placement, but has no effect during
optimization and legalization. For information about defining a partial placement blockage.
Pin
A pin blockage prevents the global router from routing in the specified area, and the pin placer from assigning pins to
the area.
90. Defining Placement Bounds (REGIONS)
A placement bound is a constraint that controls the placement of groups of leaf cells and
hierarchical cells. It allows you to group cells to minimize wire length and place the cells at the
most appropriate locations.
91. Types of Bounds (REGIONS)
Soft move bounds
For soft move bounds, the tool tries to place the cells within the specified
region; however, there is no guarantee that the cells are placed inside the
bounds
Hard move bounds
For hard move bounds, the tool must place the cells within the specified
region.
Exclusive move bounds
For exclusive move bounds, the tool must place the cells within the specified
region and must place all other cells outside of the region.
92. Finalizing Floor Plan
Congestion and Timing Analysis
Make sure congestion is under control after macro placement
Timing numbers are reasonably good.
So that we don't face any issues in routing and timing ahead in the flow.
Fix the macro locations so that placement tool will not change the macro
locations.
94. Power Planning
Power planning is done to provide uniform supply voltage to all cells
in the design.
Core Power Management
Core Ring
Core Power/Ground Straps
Standard cell rails
I/O Power Management
IO rings are created through:
IO Cell abutment
IO filler cells
95. Power Planning
Core Power Management
VDD and VSS rings are formed around the core and macros.
Power straps are created in the core area to tap power from Core Rings.
Standard cell rails are created to tap power from power straps to std cell
power/ground pins.
I/O Power Management
IO rings for power are established through IO cell abutment and through IO
filler cells.
Power rings are formed for I/O cells and trunks are constructed between core
power ring and power pads.
99. Power Planning
You can add power rings and power stripes to connect blocks and
cells to the power structures.
99
… Floorplan Power Place…
100. Add Rings: Basic Tab (Core Rings)
100
•Choose Power – Power
Planning – Add Ring.
•Core rings follow the
contour of the core
boundary or the I/O
boundary.
• You can specify the layers,
their widths, their spacing,
and the offset.
• You can also exclude selected
objects, such as blocks that
typically have their own
power structure.
Load the options file that
you created earlier.
101. Add Stripes
You can create stripes for power and ground nets by selecting Power – Power Planning – Add
Stripes.
Options
Set configuration
Nets – Specify the nets.
Layer – Specify the layer to use.
Width – Specify the width of the stripes that you want to create.
If the number of widths specified is less than number of nets specified, then the last
value specified for width is used for the unmatched nets.
Spacing – Specify the spacing between pair of the stripes.
Set pattern
You can define the distance between each stripe set and the number of sets.
Stripe Boundary
You can specify the target of the stripe by selecting an object for the stripe to
connect to, which enables relative power planning.
101
102. Add Stripes: Spacing Definitions
Spacing and Set Pattern Definitions
102
Width a
Spacing
Width b
VDD GND VDD GND
Set-to-set distance
Boundary offsets are measured from core boundary edge.
You can improve routability and availability of routing tracks by selecting the
width and spacing as it relates to the routing grid.
104. Power Planning methodology
Power/Ground Pads
Number of the core power pad required for each side of the chip = total core
power / [number of side* core voltage*maximum allowable current
for a I/O pad]
Core Ring current (mA) = core power / core voltage
Core PG ring width = (Total core current) / (No. of sides *
maximum current density of the metal layer used (Jmax) for PG ring)
Similar calculations are done for core power straps (width, pitch)
based on EM and IR requirements.
105. Power Network Analysis
To analyze power network :
Robustness
Voltage (IR) drop
Electro Migration
Adjust power network to solve reported issues
106. IR Drop and EM Analysis
IR Drop
Drop happens in supply voltage when traverses through the power network.
Depends on :
Power requirement of the design
Power network structure.
Electro Migration (EM)
Current density checks on power network
Depends on:
Design current requirement
Width of power meshes.
107. IR Drop Causes …
Improper placement of power/ground pads.
Insufficient core ring, power strap width.
Lesser no of power straps.
Lesser number of power pads.
Missing vias.
108. Power Planning Recap
Power planning is done to provide uniform supply voltage to all cells
in the design.
Core Power Management
Core Ring
Core Power/Ground Straps
Standard cell rails
I/O Power Management
IO rings are created through:
IO Cell abutment
IO filler cells
109. General Notations Of The Pwr/Gnd
# Digital Pwr/Gnd => VDD/VSS
# Analog Pwr/Gnd => AVDD*/AVSS*
# IO Pwr/Gnd => IOVDD*/IOVSS*
# Check the Data sheets for more details
Question:
What is the difference between the single, bc_wc, and on_chip_variation analysis modes?
Answer:
This article covers the differences between the single, bc_wc, and on_chip_variation analysis modes in PrimeTime. It will also explain how these three analysis modes are affected by the chosen slew propagation mode (worst_slew or worst_arrival).
The following topics are discussed:
Two slew propagation modes
Timing paths and their proper analysis
Three timing analysis modes
Potential for optimism in the single and bc_wc analysis modes
Two Slew Propagation Modes
Timing paths consist of a series of cells and nets connected together. The delays of the cells and nets represent the amount of time it takes for a signal transition (or edge) to propagate across those cells or nets. Consider buffer cells U1 and U2 connected together by net n1, as shown in Figure 1:
Figure 1: Buffer To Buffer Example Circuit
The rising cell delay across cell U1 and the rising net delay across net n1 can be shown graphically by the waveforms in Figure 2:
Figure 2: How Cell And Net Delay Arcs Are Measured
The dashed lines in Figure 2 represent the points at which the waveforms cross the delay threshold voltage (also called the delay trip point), which is typically 50% of the rail voltage. The cell and net delays represent the amount of time between these voltage threshold crossing points. We can also see the slew degradation, which is the slowdown of the slew rate due to resistance as it travels along the wire.
When detailed parasitics are annotated on the design with read_parasitics, PrimeTime performs detailed RC delay calculation to calculate the slews and delays. Delay calculation is performed in stages, where a stage is defined as a driving cell and the driven net. The input transition is applied to the driving cell's input. The response is computed at the driver cell's output pin and the downstream loads, and the cell/net delays and pin slews are derived from the responses:
Figure 3: Measuring Stage Response To Determine Delays And Slews
Stage delays and slews are a function of the input transition rate, and the characteristics of the parasitic network being driven. Since the parasitic networks are fixed, the slews are the real determining factor in determining the delay/slew characteristics of the logic. Slews are propagated from stage to stage in a forward direction to determine the timing of all stages. Since the output slews of a stage are influenced by the input slew, varying the slew at any point will affect the slews/delays for several downstream stages.
Figure 4: Propagating Slews Through The Design
In the string of buffers above, the propagation of slews is straightforward. We take the output slew from each gate's output, send it down the wire, and feed it into the next gate's input. What happens, however, when two slews arrive at the same point? This can happen at a combinational gate's output or at a load pin of a multidriven net. PrimeTime (and for that matter, all static timing analysis tools) must choose one of these slews to propagate forward. These points where a slew must be chosen are called slew merge points, as shown in Figure 5:
Figure 5: Examples Of Slew Merge Points
Let's take a closer look at the most common type of slew merge point, where multiple arcs arrive at a gate output:
Figure 6: Slew Merge Point At Cell Output Pin
In this example, arcs (a) and (b) each result in a unique slew arriving at output pin U1/Z. Slew (a) at U1/Z arrives first and has a slow rise rate. Slew (b) at U1/Z arrives last and has a fast rise rate. The decision of which slew to propagate is a crucial one, as the output slew directly controls the cell delays and slews of the downstream logic cone. Which slew do we propagate forward from U1/Z into U2/A for a max-delay calculation?
There are two slew propagation modes in PrimeTime:
worst_slew propagation - In this mode, the worst slew is chosen and propagated forward. This is the slowest (numerically largest) slew for max delays, and the fastest (numerically smallest) slew for min delays. For our example circuit, we would propagate the slower slew (a) forward into U2/A for a max-delay calculation. This is the default mode for PrimeTime and PrimeTime SI.
worst_arrival propagation - In this mode, the slew with the worst arrival time is chosen and propagated forwards. This is the latest-arriving slew for max delay, and the earliest-arriving slew for min delays. In this case, the faster slew (b) arrives last at U1/Z, and would be propagated forward into U2/A for a max-delay calculation.
Let's take a look at how this slew propagation setting would affect the max-delay propagation of the timing paths through U1/A and U1/B:
Figure 7: Slew Propagation And Timing Paths
In worst_slew mode, the slowest slew is used for edges (1) and (2). This is accurate for the timing path through edge (1), and conservative for the timing path through edge (2). In worst_arrival mode, the faster and later-arriving slew is used for edges (3) and (4). This is accurate for the timing path through edge (4), but is optimisticfor the timing path through edge (3).
worst_arrival enables us to track slews on a per-clock domain basis, since arrival times are measured against a reference launching event (our clock edge). As a result, the memory and runtime requirements of worst_arrivalare somewhat increased over worst_slew.
Note: worst_arrival is not supported in PrimeTime SI.
worst_slew is the default slew propagation mode in PrimeTime and PrimeTime SI for the following reasons:
The resulting timing correctly bounds (that is, it will never be optimistic) the analysis for sub-critical paths, although the critical path is more accurate in worst_arrival mode
The memory and runtime requirements are less than worst_arrival
The transition times selected for signal integrity effects correctly bound the analysis
worst_arrival is typically used by expert users for specific analysis runs. The slew propagation mode is controlled by the variable timing_slew_propagation_mode. For more information on slew propagation, see the man page for this variable.
Timing Paths and Their Proper Analysis
A timing path is the basic building block of static timing analysis. It checks the arrival time of one edge (the launching edge) against the required time resulting from another edge (the capturing edge). Timing paths can be classified into two major categories:
Setup paths are paths where the checked signal edge must be stable for some time (the setup time) beforethe capturing edge. In simple terms, this makes sure the launched edge gets to the capture point soon enough. Setup paths include normal data-to-clock setup paths, the assertion of data-to-data and clock gating checks, and asynchronous recovery checks. For proper analysis, setup paths must check the latest launching edge against the earliest capturing edge.
Hold paths are paths where the checked signal edge must be stable for some time (the hold time) after the capturing edge. In simple terms, this makes sure the launched edge does not arrive at the capture point too soon. Hold paths include normal data-to-clock paths, the deassertion of data-to-data and clock gating checks, and asynchronous removal checks. For proper analysis, hold paths must check the earliest launching edge against the latest capturing edge.
An example setup/hold path is shown in Figure 8:
Figure 8: Example Setup/Hold Path
The launch portion of this path consists of all cells/nets between the clock port and FF2/D (U1, U2, FF1 and U4). The capture portion consists of all cells/nets betweeen the clock port and FF2/CLK (U1, U3 and FF2). The CLK->D setup/hold arcs in the capturing sequential device are part of the capturing portion of the path. In this case, buffer cell U1 is common to both the launch and capture paths.
As mentioned previously, setup paths must check the latest launching edge against the earliest capturing edge for a proper analysis. This means that we must combine the slowest possible delays along our launch path with the fastest possible delays along our capture path. In our example path above, we must find the slowest possible launch path to the data pin of FF2, and the fastest possible capture path to the clock pin of FF2. We would then check to see if this latest-arriving launch edge arrives in time to be captured by the earliest possible capture edge.
Hold paths must check the earliest launching edge against the latest capturing edge. This means that we must combine the fastest possible delays along our launch path with the slowest possible delays along our capture path. In our example path above, we must find the fastest possible launch path to the data pin of FF2, and the slowest possible capture path to the clock pin of FF2. We would then check to see if this earliest-arriving launch edge arrives late enough to avoid being captured by the previous cycle's latest possible capture edge.
Three Timing Analysis Modes
There are three analysis modes: single, bc_wc, and on_chip_variation. The analysis mode can be specified with the set_operating_conditions command:
set_operating_conditions -analysis_type <type>
The selected analysis mode controls two very fundamental aspects of the timing analysis:
Whether min slews or max slews (or both) are selected at the slew merge points for propagation
How the resulting min-delay or max-delay arcs are combined to form setup and hold timing paths for analysis
Let's examine how each analysis mode affects timing analysis. The folders represent a database of cell delay arcs which are calculated and stored inside PrimeTime.
The single analysis mode analyzes a single operating corner. This goes back to the first releases of Design Compiler over a decade ago, when it was the only available analysis mode. In the single mode every timing arc is evaluated once using the "max" stimuli:
Max lumped capacitive loads are used if they are annotated
Max pin loads or receiver model characteristics are always used
Max slew propagation is performed at slew merge points
Figure 9: Delay Arcs Used In PrimeTime's single Analysis Mode
As a result, all delay and transition values in the single analysis mode represent the worst-case (slowest) timings at that single corner.
Both setup and hold paths use the computed max-delay arcs. Setup paths use the longest path through these arcs for launch, and the shortest path for capture. Hold paths use the shortest path through the arcs for launch, and the longest path for capture.
The bc_wc analysis mode analyzes two operating corners simultaneously. In the bc_wc mode every timing arc is evaluated twice, once using the "max" stimuli and once using the "min" stimuli:
Min lumped capacitive loads are used for the min arcs, and max lumped capacitive loads are used for the max arcs (if annotated)
Min pin caps or receiver models are used for the min arcs, and max pin caps or receiver models are used for the max arcs
Min slew propagation is performed at the slew merge points for min delays, and max slew propagation is performed at slew merge points for max delays
In the bc_wc mode, the two corners can represent two PVT (process/voltage/temperature) corners whichcannot physically coexist at the same time. For example, the min corner could be configured at 0 °C and 1.3 V, while the max corner could be configured at 100 °C and 1.1 V. The two corners in bc_wc mode represent two completely independent PVT corners.
Figure 10: Delay Arcs Used In PrimeTime's bc_wc Analysis Mode
Setup paths use the longest path through the max-delay arcs for launch, and the shortest path through the max-delay arcs for capture. Hold paths use the shortest path through the min-delay arcs for launch, and the longest path through the min-delay arcs for capture. In other words, the bc_wc analysis mode only checks setup at the max corner, and hold at the min corner. It is important to remember that setup paths are not checked at the min corner, and hold paths are not checked at the max corner. This could miss timing violations due to differences in how the launch and capture paths track the PVT difference between the corners.
The on_chip_variation analysis mode analyzes a single operating corner while considering the variation in arc timing which can exist within that corner. Just as in bc_wc mode, in on_chip_variation mode every timing arc is evaluated twice, once using the "max" stimuli and once using the "min" stimuli:
Min lumped capacitive loads are used for the min arcs, and max lumped capacitive loads are used for the max arcs
Min slew propagation is performed at the slew merge points for min delays, and max slew propagation is performed at slew merge points for max delays
Figure 11: Delay Arcs Used In PrimeTime's on_chip_variation Analysis Mode
In the on_chip_variation mode, the min and max corners represent two conditions which can physically coexist on the die at the same time. For example, the min corner could be configured at 98 °C and 1.22 V, while the max corner could be configured at 102 °C and 1.18 V. Unlike bc_wc, the min/max delays and slews in on_chip_variation mode establish the ranges for possible delays and slews. The actual delays and slews on the chip could be anywhere between these min/max bounds.
Setup paths use the longest path through the max-delay arcs for launch, and the shortest path through the min-delay arcs for capture. Hold paths use the shortest path through the min-delay arcs for launch, and the longest path through the max-delay arcs for capture.
When performing single-corner analysis, Physical Compiler (and all Design Compiler versions since the 1998.02 synthesis release) track min and max slews separately. This is consistent with the behavior of PrimeTime's on_chip_variation mode when a single operating condition is applied. If Design Compiler or Physical Compiler is configured for min/max corner analysis using the set_min_library -min/-max andset_operating_conditions -min/-max commands, it is similar to checking hold paths in a fast (min) corneron_chip_variation run, and checking setup paths in a slow (max) corner on_chip_variation run in PrimeTime. Only a single library is used within each corner.
Figure 12: Delay Arcs Used In DesignTime's min/max Analysis Mode(used by Physical Compiler, Design Compiler, and IC Compiler)
It is important to note that DesignTime's min/max mode refers to min and max corners. Hold paths are only checked at the min corner, but on-chip variation within the min corner is included in the analysis. Likewise, setup paths are only checked at the max corner, but on-chip variation within the max corner is included in the analysis.
The three analysis modes can be summarized in the following two charts:
analysis mode
setup launch path
setup capture path
single
slowest path through max-delay arcs,single operating condition,no derating
fastest path through max-delay arcs,single operating condition,no derating
bc_wc
slowest path through max-delay arcs,worst-case operating condition,late derating
fastest path through max-delay arcs,worst-case operating condition,early derating
on_chip_variation
slowest path through max-delay arcs,worst-case operating condition,late derating
fastest path through min-delay arcs,best-case operating condition,early derating
Table 1: Timing Parameters Used For Setup Checks
analysis mode
hold launch path
hold capture path
single
fastest path through max-delay arcs,single operating condition,no derating
slowest path through max-delay arcs,single operating condition,no derating
bc_wc
fastest path through min-delay arcs,best-case operating condition,early derating
slowest path through min-delay arcs,best-case operating condition,late derating
on_chip_variation
fastest path through min-delay arcs,best-case operating condition,early derating
slowest path through max-delay arcs,worst-case operating condition,late derating
Table 2: Timing Parameters Used For Hold Checks
Potential for Optimism in single and bc_wc Analysis Modes
The single and bc_wc analysis modes both have a serious accuracy limitation: either the fast launch/capture paths are computed by using max delay arcs (both single and bc_wc), or the slow capture path is computed by using the min delay arcs (bc_wc). These modes were suitable for designs in older technologies where slew sensitivity and slew variation were minimal. These modes can, however, result in optimism when used on modern small-geometry designs. To understand this issue better, let's take a look at some examples.
Example 1: Setup Timing Path Analyzed in the single or bc_wc Analysis Modes
Figure 13: Setup Timing Path Analyzed In The single Or bc_wc Analysis Modes
Figure 13 shows a setup timing path being analyzed in the single or bc_wc analysis modes. We know that in these analysis modes, max delays are used for all timing information (slews and delays) in setup paths. In a setup timing path, the launch path should be as slow as possible and the capture path should be as fast as possible. Our clock mux has a fast slew and a slow slew at its inputs. This will result in a fast slew and a slow slew at its output as well. Since we always propagate max slews in the single analysis mode or for setup paths in the bc_wc mode, the slow slew will be propagated into downstream cells U4 and U5. This will not yield the fastest possible timing for these gates. When we time a path captured by CLK1, these gates will not be as fast as they would behave in actual operation, and this optimism could result in a missed setup violation.
Example 2: Hold Timing Path Analyzed in single Analysis Mode
Figure 14: Hold Timing Path Analyzed In single Analysis Mode
Figure 14 shows a hold timing path being analyzed in the single analysis mode. We know that in the singleanalysis mode, max delays are used for all timing information (slews and delays) in all paths. In a hold timing path, the launch path should be as fast as possible and the capture path should be as slow as possible. Note, however, that our AND gate has a fast and slow slew at its inputs. This will result in a fast slew and a slow slew at its output as well. Since we always propagate max slews in the single analysis mode, the slow slew will be propagated into downstream cells U7 and U8, which will not yield the fastest possible timing for these gates. When we time a path launched by FF1, these gates will not be as fast as they would behave in actual operation, and this optimism could result in a missed hold violation.
Example 3: Hold Timing Path Analyzed in bc_wc Analysis Mode
Figure 15: Hold Timing Path Analyzed In bc_wc Analysis Mode
Figure 15 shows a hold timing path being analyzed in the bc_wc analysis mode. We know that in the bc_wcanalysis mode, min delays are used for all timing information (slews and delays) in hold paths. In a hold timing path, the launch path should be as fast as possible and the capture path should be as slow as possible. Our clock mux has a fast slew and a slow slew at its inputs. This will result in a fast and slow slew at its output as well. Since we always propagate min slews for hold paths in the bc_wc analysis mode, the fast slew will be propagated into downstream cells U4 and U5, which will not yield the slowest possible timing for these gates. When we time a path captured by CLK2, these gates will not be as slow as they would behave in actual operation, and this optimism could result in a missed hold violation.
Example 4: Launch/Capture Races Across PVT Variation
In the past, it was often true that designers would only check hold times at the fast corner. When using thebc_wc analysis mode, setup is only checked at the slow corner and hold is only checked at the fast corner. The cross-checks (hold at slow, setup at fast) are not performed. To see why this is not safe, let's take a look at an example.
Figure 16: Hold Timing Path Analyzed In bc_wc Analysis Mode
Figure 16 shows a hold path being analyzed in the bc_wc mode at the fast corner. The path is launched by CLK, and is captured by a divide-by-2 version of the clock. If we abstract this path into delays (and assume zero delays/check values in the sequential devices), we can represent the path as follows:
Figure 17: Hold Path Timing In The Fast Corner
We can see that the launching clock edge goes through 4 ns of clock delay and 2 ns of data delay, for a launch arrival of 6 ns at FF2. Our capture edge goes through 6 ns of total clock delay, which results in a required time for our data at FF2 of 6 ns. Luckily, our timing is just sufficient to meet this requirement, and we pass the hold time check with zero slack.
Now let's analyze this same hold path at our slow corner:
Figure 18: Hold Path Timing In The Slow Corner
We know that the logic will slow down as we move the timing path from fast PVT conditions to slow PVT conditions. This slowdown will not, however, be a completely linear effect across all library cells. Different library cells will react to PVT changes differently. In our example above, the timing of one of the capture path segments has slowed down more than the other segments. As a result, our arrival time at FF2 is 9 ns but our required time is 10 ns, resulting in a hold time failure of -1 ns. This violation would be missed by thebc_wc analysis mode.
This issue can affect setup paths too, but it is much less likely due to the difference in total propagation times between the launch and capture legs of a setup path.
Example 5: Output Loading Ranges in the single or bc_wc Analysis Modes
When specifying a device, the output conditions are typically given as a range of board-level capacitive loading values. The device must be able to tolerate any load within the range at any output port. Consider a clock-and-data output path at the top level:
Figure 19: Board Level Loading Ranges At The Top Level
To check setup timing in the path above properly, we need the slowest launch (data) timing and the fastest capture (clock) timing. This means that 10 pF loading should be used for DATOUT and 2 pF loading should be used for CLKOUT. To check hold timing properly in the path above, we need the fastest launch (data) timing and the slowest capture (clock) timing. This means that 2 pF loading should be used for DATOUT and 10 pF loading should be used for CLKOUT.
In the single analysis mode, we are always computing max delays. As a result, the 10 pF loading is used for all output ports. This would result in an optimistically slow capture path for the setup analysis, and an optimistically slow launch path for the hold analysis.
For setup paths in the bc_wc analysis mode, max-delays are computed for all delays. As a result, the 10 pF loading is used for both the launch and capture sides of the setup path. This would lead to an optimistically slow capture path. For hold paths, min-delays are computed for all delays. As a result, the 2 pF loading is used for both the launch and capture sides of the hold path. This would lead to an optimistically fast capture path.
This analysis is performed properly by the on_chip_variation analysis mode. For setup paths, 10 pF loading is used for DATOUT and 2 pF loading is used for CLKOUT. For hold paths, 2 pF loading is used for DATOUT and 10 pF loading is used for CLKOUT.
Use on_chip_variation For All Runs To Avoid Optimism
It is a common misconception that PrimeTime's on_chip_variation analysis mode is only needed to account for die variation by using the set_timing_derate command. In fact, there are multiple potential sources for on-chip timing variation, including (but not limited to):
Using set_timing_derate to specify early/late delay derate factors
Differences in min/max input port drive characteristics resulting from set_driving_cell orset_input_transition
Min/max annotated lumped loads (set_load -min/-max)
Min/max annotated slews (set_annotated_transition -min/-max)
Min/max annotated delays (set_annotated_delay -min/-max)
Reading and using both the min and max triplet arc delays from an SDF file
Delay calculation for all multiple input gates, which result in more than one slew at the output(s)
Crosstalk aggressions which can induce speedups/slowdowns in slews as they travel along wires
The on_chip_variation analysis mode is a must for accurate analysis of modern designs. Even if you are not specifying different min/max operating conditions or early/late timing derates, on-chip variation due to min/max slew propagation must still be taken into account and properly analyzed. At a minimum, it is important to understand that every multiple-input gate will have multiple slews at its output. The on_chip_variation mode is required so that the ranges of possible downstream delays and slews are captured and computed correctly. In Tables 1 and 2 above, any time the "slowest path through min-delay arcs" or the "fastest path through max-delay arcs" is used, the potential for optimism exists (as we have seen in the examples above).
For a thorough analysis, both setup and hold should be checked at each corner using the on_chip_variationanalysis mode.
As we have seen, slew propagation plays a crucial role in determining the accuracy of the timing analysis. For more information on the path-based slew propagation technology in PrimeTime, refer to the following article:
012134: Accurate Sign-Off Analysis with PrimeTime's Path-Based Analysis
The timing_propagate_single_condition_min_slew variable
As mentioned above, all setup and hold paths in the single operating condition use max-delays for analysis. Thetiming_propagate_single_condition_min_slew has been provided historically to force min-slew propagation. In PrimeTime versions up to 2000.05, this was done by modifying the single operating condition to be similar toon_chip_variation. In versions 2000.11 and later, setting this variable to true explicitly switched the analysis to the on_chip_variation analysis mode and issued an informational message:
pt_shell> set timing_propagate_single_condition_min_slew true
Information: Issuing set_operating_conditions equivalent to
timing_propagate_single_condition_min_slew setting. (PTE-037)
set_operating_conditions -analysis_type on_chip_variation -library [get_libs
{slow.db:slow}] -min slow -max slow
true
pt_shell>
In PrimeTime V-2003.12 and earlier releases, the default value of this variable was false, which left the singleanalysis mode unchanged. In the PrimeTime V-2004.06 release, the default value of this variable was changed totrue so that the more accurate on_chip_variation would become the default analysis mode. However, this change in the default value caused compatibility issues with customer scripts.
To address the compatibility issue and still provide an accurate default analysis, the behavior in PrimeTime W-2004.12 is as follows:
The variable is now hidden. This means you can set its value, but you cannot query it.
Although it is hidden, its effective default behavior is now true so that if you do not specify an analysis mode, the on_chip_variation analysis mode will be used.
The set_operating_conditions command now takes precedence over this variable. If you set an analysis mode with this command, the specified analysis mode is set, independent of the value of thetiming_propagate_single_condition_min_slew variable.
In the X-2005.06 release this variable will no longer be present, as you should be explicitly setting the analysis mode to the desired type. Note that it is strongly encouraged that only the on_chip_variation analysis mode be used for signoff-quality static timing analysis. If you do not specify an analysis mode, on_chip_variation will be used by default.
Setup/Hold Non-Monotonicity Support
In the on_chip_variation mode, PrimeTime propagates min and max transition times at every pin in the design. These transition times define the bounds for the range of transition values that propagate through the pin. When the transition times reach a sequential cell, some special consideration is needed to avoid optimism when determining the setup/hold requirements of a data signal against its capturing clock signal.
Refer to the following SolvNet article for more information on this topic: