SlideShare une entreprise Scribd logo
1  sur  110
VLSI 
Physical Design
Table of Contents 
1. Introduction to VLSI 
2. Design Flow in VLSI 
3. Physical Design Flow 
4. Data Prepare 
5. Floorplan
Introduction to VLSI 
Small scale integration (SSI) 1 – 10 gates 
Medium Scale Integration (MSI) 10 – 100 gates 
Large Scale Integration (LSI) 100 – 1000 gates 
Very Large Scale Integration (VLSI) 1000 – 100000 gates 
Ultra High Scale Integration (ULSI) > 100000 gates
Design Flow in VLSI ASIC 
Physical Design 
Design Specification 
Behavioral Description 
RTL Description 
Logical Synthesis/ Timing 
Verification/ STA 
Custom Design 
Floor planning 
Placement & Routing 
STA / Physical Verification / DFM 
GDS  package  Silicon 
Chip On Board 
Functional Verification
Design Flow in VLSI ASIC
Physical Design Flow 
Data Prepare 
Read Design 
Floorplan 
Physical 
Design 
Placement 
CTS 
Route 
STA,DRC,LVS 
& DFM 
GDS
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
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
?????????? 
??????????????????????????????????
Table of Contents 
1. Introduction to VLSI 
2. Design Flow in VLSI 
3. Physical Design Flow 
4. Data Prepare 
5. Floorplan
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
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
Constraints: Commands 
 Clocks  create_clock 
 Input Delay  set_input_delay 
 Output Delay  set_output_delay 
 Output Load  set_load 
 Input Drive Resistance  set_driving_cell 
 False Paths  set_false_path 
 Multicycle Paths  set_multicycle_path 
 Operating Conditions  set_operating_conditions 
 Wireload Model  set_wire_load
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:
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.
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
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.
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.
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
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
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
Timing derate 
set_timing_derate -early | -late [-rise] [-fall] [-clock] [-data] [-cell_delay] [- 
cell_check] [-net_delay] [-static] [-dynamic] [-scalar | -variation | - 
aocvm_guardband | -pocvm_guardband] [-pocvm_coefficient_scale_factor] [- 
increment] derate_value object_list
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.
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.
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
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
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
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.
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
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); 
}
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
Wire load model
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"; 
}
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”} ;
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 ; 
} 
}
.lib specification
Library Architecture 
Multi-VT Libraries 
Library Cell Offerings 
Transition Time Trade-off 
Routing Layer Stack Variants 
Wide Track –Vs– Narrow Track
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 
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
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
Layermap files 
conducting_layers 
c4b c4 
tm1 tm1 
metal10 m10 
metal9 m9 
metal8 m8 
metal7 m7 
metal6 m6 
metal5 m5 
metal4 m4 
metal3 m3 
metal2 m2 
metal1 m1 
poly p 
tcn tcn 
gcn gcn 
via_layers 
tv1 tv1 
via10 via10 
via9 via9 
via8 via8 
via7 via7 
via6 via6 
via5 via5 
via4 via4 
via3 via3 
via2 via2 
via1 via1 
The Mapping File maps 
the technology file 
layer/via names to .itf 
layer/via names.
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
Design preparation
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.
Linking the design
Netlist: 
Combo loops 
Assign statements 
Floating inputs 
Multi driven nets 
Constraints: 
Design Sanity Checks 
All flops are clocked. 
No unconstrained paths 
Input delays, Output delays. Input slew, Output load
Table of Contents 
1. Introduction to VLSI 
2. Design Flow in VLSI 
3. Physical Design Flow 
4. Data Prepare 
5. Floorplan
Floor planning 
Die Size Estimation/ Die Area Creation 
Core Area Initialization 
Limitations / Types 
Row configuration 
Cell orientation 
Flip chip technology IO & Bump Placement 
Macro Placement 
Flight-lines (Fly-lines) 
Placement Blockage 
Routing Blockages 
Evaluating the macro placement 
Congestion Analysis 
Timing Analysis
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
Displaying the Design after Design Import 
50 
Hard/Custom 
Blocks 
Core Area 
Pink module 
guides consisting 
of standard cells
Die Size Estimation/ Die Area Creation 
Resources
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
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)
Die Size Estimation/ Die Area Creation 
Example: 
Standard cell area 5000 sq um 
Macro area 2000 sq um
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.
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
Row configuration 
Flipped row to share common power and ground 
Confidential: Authorized Distribution Only
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.
Standard Cell Placement
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
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.
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
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
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
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.
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
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
 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
IO file format 
 (iopad 
(topright 
(inst name="IOPADS_INST/Pcornerur" ) 
) 
(top 
(inst name="IOPADS_INST/Ptdspip15" ) 
(inst name="IOPADS_INST/Ptdspop15" ) 
 ………….. 
(inst name="IOPADS_INST/Ptdspop09" ) 
) (topleft 
(inst name="IOPADS_INST/Pcornerul" ) 
) 
(left 
(inst name="IOPADS_INST/Pscanckip" ) 
(inst name="IOPADS_INST/Pscanenip" ) 
 ……… 
 ) 
69
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
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
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
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
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
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
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
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
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
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
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
Macro placement 
Read def 
Place macro manually 
Check the timing and fly lines 
Set the orientation
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
Initialize floorplan 
Read def 
IO placement 
Create floorplan 
Create_rectlinear block 
Derive pg connections 
Set wiretracks 
unset_preferred_routing_direction -layer metal1 
remove_track -layer metal1 -dir X 
set_preferred_routing_direction -layer metal1 -dir vertical 
create_track -layer metal2 -dir Y -coord 0.040 -space 0.080 -bounding_box [list {0 0} 
[list $fubx $stop_y]]
Create floorplan 
 create_floorplan 
[-bottom_io2core distance] 
[-control_type aspect_ratio | width_and_height | boundary] 
[-core_aspect_ratio ratio] 
[-core_utilization ratio] 
[-flip_first_row] 
[-keep_io_place] 
[-keep_macro_place] 
[-keep_std_cell_place] 
[-left_io2core distance] 
[-min_pad_height] 
[-no_double_back] 
[-pad_limit] 
[-right_io2core distance] 
[-start_first_row] 
[-top_io2core distance] 
[-use_vertical_row]
Create Floorplan 
Place macro 
Add halo (boundary and macro) 
Add fib cells 
Add tap cells 
Create route guide (create routing blockages) 
Create power mess 
Add fiducial cells 
Insert diodes for I/P ports
Flyline Analysis & Macro Placement
Placed Macros
Placement Blockage 
Placement blockages are used to reduce congestion around the macros 
88
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.
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.
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.
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.
Power Planning
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
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.
Core Power Ring, Stripes & Power Pads 
96
Power / Ground Rings and Stripes 
97 
Design 
Views 
Visibility 
Toolbar Icons 
Floorplannin 
g Icons 
Selectabilit 
y 
Pull-Down 
Menus
IOs ,core ring &power Strap 
IO ring break
Power Planning 
You can add power rings and power stripes to connect blocks and 
cells to the power structures. 
99 
… Floorplan Power Place…
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.
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
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.
Add Stripes: Spacing Definitions
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.
Power Network Analysis 
To analyze power network : 
Robustness 
Voltage (IR) drop 
Electro Migration 
Adjust power network to solve reported issues
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.
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.
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
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
References 
Cadence Encounter 
Synopsis ICC 
Prime time 
Google.com

Contenu connexe

Tendances

VLSI Physical Design Flow(http://www.vlsisystemdesign.com)
VLSI Physical Design Flow(http://www.vlsisystemdesign.com)VLSI Physical Design Flow(http://www.vlsisystemdesign.com)
VLSI Physical Design Flow(http://www.vlsisystemdesign.com)VLSI SYSTEM Design
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)shaik sharief
 
Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows Olivier Coudert
 
ASIC DESIGN : PLACEMENT
ASIC DESIGN : PLACEMENTASIC DESIGN : PLACEMENT
ASIC DESIGN : PLACEMENThelloactiva
 
vlsi design flow
vlsi design flowvlsi design flow
vlsi design flowAnish Gupta
 
Vlsi physical design
Vlsi physical designVlsi physical design
Vlsi physical designI World Tech
 
Physical Verification Design.pdf
Physical Verification Design.pdfPhysical Verification Design.pdf
Physical Verification Design.pdfAhmed Abdelazeem
 
ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI Jayant Suthar
 
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemSynopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemMostafa Khamis
 

Tendances (20)

VLSI Physical Design Flow(http://www.vlsisystemdesign.com)
VLSI Physical Design Flow(http://www.vlsisystemdesign.com)VLSI Physical Design Flow(http://www.vlsisystemdesign.com)
VLSI Physical Design Flow(http://www.vlsisystemdesign.com)
 
Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)Multi mode multi corner (mmmc)
Multi mode multi corner (mmmc)
 
Back end[1] debdeep
Back end[1]  debdeepBack end[1]  debdeep
Back end[1] debdeep
 
Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows Timing and Design Closure in Physical Design Flows
Timing and Design Closure in Physical Design Flows
 
Pd flow i
Pd flow iPd flow i
Pd flow i
 
Eco
EcoEco
Eco
 
ASIC DESIGN FLOW
ASIC DESIGN FLOWASIC DESIGN FLOW
ASIC DESIGN FLOW
 
VLSI routing
VLSI routingVLSI routing
VLSI routing
 
ASIC DESIGN : PLACEMENT
ASIC DESIGN : PLACEMENTASIC DESIGN : PLACEMENT
ASIC DESIGN : PLACEMENT
 
vlsi design flow
vlsi design flowvlsi design flow
vlsi design flow
 
Vlsi physical design
Vlsi physical designVlsi physical design
Vlsi physical design
 
Physical Verification Design.pdf
Physical Verification Design.pdfPhysical Verification Design.pdf
Physical Verification Design.pdf
 
Chapter1.slides
Chapter1.slidesChapter1.slides
Chapter1.slides
 
Low Power VLSI Design
Low Power VLSI DesignLow Power VLSI Design
Low Power VLSI Design
 
ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI
 
Inputs of physical design
Inputs of physical designInputs of physical design
Inputs of physical design
 
Clock Tree Synthesis.pdf
Clock Tree Synthesis.pdfClock Tree Synthesis.pdf
Clock Tree Synthesis.pdf
 
Study of vlsi design methodologies and limitations using cad tools for cmos t...
Study of vlsi design methodologies and limitations using cad tools for cmos t...Study of vlsi design methodologies and limitations using cad tools for cmos t...
Study of vlsi design methodologies and limitations using cad tools for cmos t...
 
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation SystemSynopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
Synopsys Fusion Compiler-Comprehensive RTL-to-GDSII Implementation System
 
Static_Time_Analysis.pptx
Static_Time_Analysis.pptxStatic_Time_Analysis.pptx
Static_Time_Analysis.pptx
 

En vedette

Ethertnet data transfer.ppt
Ethertnet data transfer.pptEthertnet data transfer.ppt
Ethertnet data transfer.pptMantra VLSI
 
CRC Error coding technique
CRC Error coding techniqueCRC Error coding technique
CRC Error coding techniqueMantra VLSI
 
Divide by N clock
Divide by N clockDivide by N clock
Divide by N clockMantra VLSI
 
Basic electronics
Basic electronicsBasic electronics
Basic electronicsMantra VLSI
 
Vlsi physical design-notes
Vlsi physical design-notesVlsi physical design-notes
Vlsi physical design-notesDr.YNM
 
Floorplanning in physical design
Floorplanning in physical designFloorplanning in physical design
Floorplanning in physical designMurali Rai
 
Logical design vs physical design
Logical design vs physical designLogical design vs physical design
Logical design vs physical designMd. Mahedi Mahfuj
 
Placement and routing in full custom physical design
Placement and routing in full custom physical designPlacement and routing in full custom physical design
Placement and routing in full custom physical designDeiptii Das
 
Design challenges in physical design
Design challenges in physical designDesign challenges in physical design
Design challenges in physical designDeiptii Das
 
1 introduction to vlsi physical design
1 introduction to vlsi physical design1 introduction to vlsi physical design
1 introduction to vlsi physical designsasikun
 
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlocksPhysical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlockseInfochips (An Arrow Company)
 
CAD: introduction to floorplanning
CAD:  introduction to floorplanningCAD:  introduction to floorplanning
CAD: introduction to floorplanningTeam-VLSI-ITMU
 
Asic backend design
Asic backend designAsic backend design
Asic backend designkbipeen
 
VLSI
VLSI VLSI
VLSI So Ma
 

En vedette (20)

Synthesis
SynthesisSynthesis
Synthesis
 
Ethertnet data transfer.ppt
Ethertnet data transfer.pptEthertnet data transfer.ppt
Ethertnet data transfer.ppt
 
CRC Error coding technique
CRC Error coding techniqueCRC Error coding technique
CRC Error coding technique
 
Verilog HDL
Verilog HDLVerilog HDL
Verilog HDL
 
Number system
Number systemNumber system
Number system
 
Divide by N clock
Divide by N clockDivide by N clock
Divide by N clock
 
verilog code
verilog codeverilog code
verilog code
 
Basic electronics
Basic electronicsBasic electronics
Basic electronics
 
Vlsi physical design-notes
Vlsi physical design-notesVlsi physical design-notes
Vlsi physical design-notes
 
Floorplanning in physical design
Floorplanning in physical designFloorplanning in physical design
Floorplanning in physical design
 
Logical design vs physical design
Logical design vs physical designLogical design vs physical design
Logical design vs physical design
 
Placement and routing in full custom physical design
Placement and routing in full custom physical designPlacement and routing in full custom physical design
Placement and routing in full custom physical design
 
Design challenges in physical design
Design challenges in physical designDesign challenges in physical design
Design challenges in physical design
 
floor planning
floor planningfloor planning
floor planning
 
1 introduction to vlsi physical design
1 introduction to vlsi physical design1 introduction to vlsi physical design
1 introduction to vlsi physical design
 
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate BlocksPhysical Design Flow Challenges at 28nm on Multi-million Gate Blocks
Physical Design Flow Challenges at 28nm on Multi-million Gate Blocks
 
CAD: introduction to floorplanning
CAD:  introduction to floorplanningCAD:  introduction to floorplanning
CAD: introduction to floorplanning
 
Asic backend design
Asic backend designAsic backend design
Asic backend design
 
BUMP
BUMPBUMP
BUMP
 
VLSI
VLSI VLSI
VLSI
 

Similaire à Physical design

Library Characterization Flow
Library Characterization FlowLibrary Characterization Flow
Library Characterization FlowSatish Grandhi
 
Dynamic time warping and PIC 16F676 for control of devices
Dynamic time warping and PIC 16F676 for control of devicesDynamic time warping and PIC 16F676 for control of devices
Dynamic time warping and PIC 16F676 for control of devicesRoger Gomes
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)theijes
 
DESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOP
DESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOPDESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOP
DESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOPVLSICS Design
 
Pipeline hazards in computer Architecture ppt
Pipeline hazards in computer Architecture pptPipeline hazards in computer Architecture ppt
Pipeline hazards in computer Architecture pptmali yogesh kumar
 
DESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATOR
DESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATORDESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATOR
DESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATORVLSICS Design
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuningprathap kumar
 
An introduction to scan test for test engineers
An introduction to scan test for test engineersAn introduction to scan test for test engineers
An introduction to scan test for test engineersMohit Mongia
 
Synchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtechSynchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtechMapYourTech
 
Use of a Levy Distribution for Modeling Best Case Execution Time Variation
Use of a Levy Distribution for Modeling Best Case Execution Time VariationUse of a Levy Distribution for Modeling Best Case Execution Time Variation
Use of a Levy Distribution for Modeling Best Case Execution Time VariationJonathan Beard
 
Jack_Knutson_SNUG2003_ Copy
Jack_Knutson_SNUG2003_ CopyJack_Knutson_SNUG2003_ Copy
Jack_Knutson_SNUG2003_ CopyJack Knutson
 

Similaire à Physical design (20)

Library Characterization Flow
Library Characterization FlowLibrary Characterization Flow
Library Characterization Flow
 
Major project iii 3
Major project  iii  3Major project  iii  3
Major project iii 3
 
M Tech New Syllabus(2012)
M Tech New Syllabus(2012)M Tech New Syllabus(2012)
M Tech New Syllabus(2012)
 
ZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptxZERO WIRE LOAD MODEL.pptx
ZERO WIRE LOAD MODEL.pptx
 
Dynamic time warping and PIC 16F676 for control of devices
Dynamic time warping and PIC 16F676 for control of devicesDynamic time warping and PIC 16F676 for control of devices
Dynamic time warping and PIC 16F676 for control of devices
 
Burst clock controller
Burst clock controllerBurst clock controller
Burst clock controller
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)
 
DESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOP
DESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOPDESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOP
DESIGN AND IMPLEMENTATION OF AREA AND POWER OPTIMISED NOVEL SCANFLOP
 
Transition fault detection
Transition fault detectionTransition fault detection
Transition fault detection
 
file-3.ppt
file-3.pptfile-3.ppt
file-3.ppt
 
file-3.ppt
file-3.pptfile-3.ppt
file-3.ppt
 
ASCIC.ppt
ASCIC.pptASCIC.ppt
ASCIC.ppt
 
Pipeline hazards in computer Architecture ppt
Pipeline hazards in computer Architecture pptPipeline hazards in computer Architecture ppt
Pipeline hazards in computer Architecture ppt
 
DESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATOR
DESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATORDESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATOR
DESIGN AND PERFORMANCE ANALYSIS OF NINE STAGES CMOS BASED RING OSCILLATOR
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
 
An introduction to scan test for test engineers
An introduction to scan test for test engineersAn introduction to scan test for test engineers
An introduction to scan test for test engineers
 
Synchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtechSynchronization and timing loop presentation -mapyourtech
Synchronization and timing loop presentation -mapyourtech
 
Use of a Levy Distribution for Modeling Best Case Execution Time Variation
Use of a Levy Distribution for Modeling Best Case Execution Time VariationUse of a Levy Distribution for Modeling Best Case Execution Time Variation
Use of a Levy Distribution for Modeling Best Case Execution Time Variation
 
Atm
AtmAtm
Atm
 
Jack_Knutson_SNUG2003_ Copy
Jack_Knutson_SNUG2003_ CopyJack_Knutson_SNUG2003_ Copy
Jack_Knutson_SNUG2003_ Copy
 

Dernier

Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmDeepika Walanjkar
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
STATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subjectSTATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subjectGayathriM270621
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESkarthi keyan
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfShreyas Pandit
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONjhunlian
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxRomil Mishra
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfisabel213075
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organizationchnrketan
 

Dernier (20)

Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
Stork Webinar | APM Transformational planning, Tool Selection & Performance T...
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
STATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subjectSTATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subject
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTESCME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
CME 397 - SURFACE ENGINEERING - UNIT 1 FULL NOTES
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdf
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTIONTHE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
THE SENDAI FRAMEWORK FOR DISASTER RISK REDUCTION
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
List of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdfList of Accredited Concrete Batching Plant.pdf
List of Accredited Concrete Batching Plant.pdf
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organization
 

Physical design

  • 2. Table of Contents 1. Introduction to VLSI 2. Design Flow in VLSI 3. Physical Design Flow 4. Data Prepare 5. Floorplan
  • 3. Introduction to VLSI Small scale integration (SSI) 1 – 10 gates Medium Scale Integration (MSI) 10 – 100 gates Large Scale Integration (LSI) 100 – 1000 gates Very Large Scale Integration (VLSI) 1000 – 100000 gates Ultra High Scale Integration (ULSI) > 100000 gates
  • 4. Design Flow in VLSI ASIC Physical Design Design Specification Behavioral Description RTL Description Logical Synthesis/ Timing Verification/ STA Custom Design Floor planning Placement & Routing STA / Physical Verification / DFM GDS  package  Silicon Chip On Board Functional Verification
  • 5. Design Flow in VLSI ASIC
  • 6. Physical Design Flow Data Prepare Read Design Floorplan Physical Design Placement CTS Route STA,DRC,LVS & DFM GDS
  • 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
  • 13. Constraints: Commands  Clocks  create_clock  Input Delay  set_input_delay  Output Delay  set_output_delay  Output Load  set_load  Input Drive Resistance  set_driving_cell  False Paths  set_false_path  Multicycle Paths  set_multicycle_path  Operating Conditions  set_operating_conditions  Wireload Model  set_wire_load
  • 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
  • 22. Timing derate set_timing_derate -early | -late [-rise] [-fall] [-clock] [-data] [-cell_delay] [- cell_check] [-net_delay] [-static] [-dynamic] [-scalar | -variation | - aocvm_guardband | -pocvm_guardband] [-pocvm_coefficient_scale_factor] [- increment] derate_value object_list
  • 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 ; } }
  • 37. Library Architecture Multi-VT Libraries Library Cell Offerings Transition Time Trade-off Routing Layer Stack Variants Wide Track –Vs– Narrow Track
  • 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
  • 41. Layermap files conducting_layers c4b c4 tm1 tm1 metal10 m10 metal9 m9 metal8 m8 metal7 m7 metal6 m6 metal5 m5 metal4 m4 metal3 m3 metal2 m2 metal1 m1 poly p tcn tcn gcn gcn via_layers tv1 tv1 via10 via10 via9 via9 via8 via8 via7 via7 via6 via6 via5 via5 via4 via4 via3 via3 via2 via2 via1 via1 The Mapping File maps the technology file layer/via names to .itf layer/via names.
  • 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.
  • 46. Netlist: Combo loops Assign statements Floating inputs Multi driven nets Constraints: Design Sanity Checks All flops are clocked. No unconstrained paths Input delays, Output delays. Input slew, Output load
  • 47. Table of Contents 1. Introduction to VLSI 2. Design Flow in VLSI 3. Physical Design Flow 4. Data Prepare 5. Floorplan
  • 48. Floor planning Die Size Estimation/ Die Area Creation Core Area Initialization Limitations / Types Row configuration Cell orientation Flip chip technology IO & Bump Placement Macro Placement Flight-lines (Fly-lines) Placement Blockage Routing Blockages Evaluating the macro placement Congestion Analysis Timing Analysis
  • 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
  • 51. Die Size Estimation/ Die Area Creation Resources
  • 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
  • 69. IO file format  (iopad (topright (inst name="IOPADS_INST/Pcornerur" ) ) (top (inst name="IOPADS_INST/Ptdspip15" ) (inst name="IOPADS_INST/Ptdspop15" )  ………….. (inst name="IOPADS_INST/Ptdspop09" ) ) (topleft (inst name="IOPADS_INST/Pcornerul" ) ) (left (inst name="IOPADS_INST/Pscanckip" ) (inst name="IOPADS_INST/Pscanenip" )  ………  ) 69
  • 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
  • 83. Initialize floorplan Read def IO placement Create floorplan Create_rectlinear block Derive pg connections Set wiretracks unset_preferred_routing_direction -layer metal1 remove_track -layer metal1 -dir X set_preferred_routing_direction -layer metal1 -dir vertical create_track -layer metal2 -dir Y -coord 0.040 -space 0.080 -bounding_box [list {0 0} [list $fubx $stop_y]]
  • 84. Create floorplan  create_floorplan [-bottom_io2core distance] [-control_type aspect_ratio | width_and_height | boundary] [-core_aspect_ratio ratio] [-core_utilization ratio] [-flip_first_row] [-keep_io_place] [-keep_macro_place] [-keep_std_cell_place] [-left_io2core distance] [-min_pad_height] [-no_double_back] [-pad_limit] [-right_io2core distance] [-start_first_row] [-top_io2core distance] [-use_vertical_row]
  • 85. Create Floorplan Place macro Add halo (boundary and macro) Add fib cells Add tap cells Create route guide (create routing blockages) Create power mess Add fiducial cells Insert diodes for I/P ports
  • 86. Flyline Analysis & Macro Placement
  • 88. Placement Blockage Placement blockages are used to reduce congestion around the macros 88
  • 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.
  • 96. Core Power Ring, Stripes & Power Pads 96
  • 97. Power / Ground Rings and Stripes 97 Design Views Visibility Toolbar Icons Floorplannin g Icons Selectabilit y Pull-Down Menus
  • 98. IOs ,core ring &power Strap IO ring break
  • 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.
  • 103. Add Stripes: Spacing Definitions
  • 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
  • 110. References Cadence Encounter Synopsis ICC Prime time Google.com

Notes de l'éditeur

  1. 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:  
  2. 38
  3. 39
  4. 50
  5. 88
  6. 97
  7. 99
  8. 100
  9. 101
  10. 102