LEF Format
-- APR technology : via generate
To connect wide metal , create a via array to
reduce via resistance
Defines formulas for generating via arrays
Layer Metal1
Direction HORIZONTAL
OVERHANG 0.2
Layer Metal2
Direction VERTICAL
OVERHANG 0.2
Layer Via1
RECT –0.14 –0.14 0.14 0.14
SPACING 0.56 BY 0.56
Default via
Generated via
23
LEF Format
-- APR technology : via stack
Without via stack
With via stack
Higher density routing
Easier usage of upper layer
Must Follow minimum area rule
24
LEF Format
-- APR technology : Top of Stack Via
Metal3
Via23_TOS
Via12
Metal1
LEF Format
-- APR technology : Physical Macros
Define physical data for
¾
¾
¾
¾
Standard cells
I/O pads
Memories
other hard macros
describe abstract shape
¾
¾
¾
¾
Size
Class
Pins
Obstructions
28
LEF Format
-- APR technology : Physical Macros cont.
VDD
Y
B
VSS
A
MACRO ADD1
CLASS CORE ;
FOREIGN ADD1 0.0 0.0 ;
ORIGEN 0.0 0.0 ;
LEQ ADD ;
SIZE 19.8 BY 6.4 ;
SYMMETRY x y ;
SITE coresite ;
PIN A
DIRECTION INPUT ;
PORT
LAYER Metal1 ;
RECT 19.2 8.2 19.5 10.3 ;
……
END
END A
PIN B
…..
END B
OBS
……
END
END ADD1
29
LIB Format
Operating condition
¾ slow, fast, typical
Pin type
¾
¾
¾
¾
input/output/inout
function
data/clock
capacitance
gate-level netlist
If designing a chip , IO pads , power pads and Corner
pads should be added before the netlist is imported.
Make sure that there is no “assign” statement and no
“ *cell*” cell name in the netlist.
¾ Use the synthesis command below to remove assign statement.
set_boundary_optimization
¾ Use the synthesis commands below to remove “*cell*” cell name
define_name_rules name_rule –map {{\\*cell\\* cell”}}
change_names –hierarchy –output name_rule
Static Timing Analysis
Main steps of STA
¾ Break the design into sets of timing paths
¾ Calculate the delay of each path
¾ Check all path delays to see if the given timing constraints are met
Use set_max_delay or set_min_delay to overwrite STA constraint
53
Static Timing Analysis
hold time
To meet the hold time requirement:
Trequire <= Tarrival
Reg to Reg
¾ Tarrival = Tclk1+ TDFF1(clk->Q)+TPATH
¾ Trequire = Tclk2+ TDFF2(hold)
Clk_source
¾ Tslack = Tarrival-Trequire
clk1
TDFF1+Tpath
clk2
Thold
Tslack
Trequire
Tarrival
54
Static Timing Analysis
hold time
PI to Reg
¾ Tarrival = TPI(delay)+ TPATH
¾ Trequire = Tclk+ TDFF(hold)
¾ Tslack = Tarrival-Trequire
Reg to PO
¾ Tarrival = Tclk+ TDFF(clk->Q)+TPATH
¾ Trequire = - TPO(output delay)
¾ Tslack = Tarrival-Trequire
PI to PO
¾ Tarrival = TPI(delay)+ TPATH
¾ Trequire = - TPO(output delay)
¾ Tslack = Tarrival-Trequire
55
Timing exception: False path
Why are there false path constraints in a design?
¾ A path may exist in the circuit but never be used in its normal
functional operation
¾ A functional path may exist but the timing is very slow or irrelevant
¾ A block may be reused and certain signal functions are no longer
required
¾ A path may exist in the circuit but no combination of input vectors may
ever exercise it
¾ A combinational loop exists in the design that needs to be broken
56
Timing exception: multi-cycle path
Multicycle paths occur because the designer knows that the
particular logic function will not be used till a later cycle
57
IO constraint
Create an I/O assignment file manualy using the following template:
Version: 1
MicronPerUserUnit: value
Pin: pinName side |corner
Pad: padInstanceName side|corner [cellName]
Offset: length
Skip: length
Spacing: length
Keepclear: side offset1 offset2
58
IO constraint cont.
PAD_CLK
PAD_HALT
PAD_IOVDD1
PAD_IOVSS1
Version: 1
Pad: CORNER0 NW PCORNERDGZ
Pad: PAD_CLK N
Pad: PAD_HALT N
Pad: CORNER1 NE PCORNERDGZ
Pad: PAD_X1
W
Pad: PAD_X2
W
Pad: CORNER2 SW PCORNERDGZ
Pad: PAD_IOVDD1 S PVDD2DGZ
Pad: PAD_IOVSS1 S PVSS2DGZ
Pad: CORNER3 SE PCORNERDGZ
Pad: PAD_VDD1 E PVDD1DGZ
Pad: PAD_VSS1 E PVSS2DGZ
DI
¾ maximum number of copies for one specific kind of I/O pad
switching from high to low simultaneously without making
ground voltage level higher than 0.8 volt for one ground pad
DF
¾ Drive Factor, DF = 1/DI
SDF
¾ Sum of Drive Factor
60
SSO Consideration cont.
Parameter of DF
¾
¾
¾
¾
operating condition
package inductance
slew-rate control IO
IO type with different drive strength
In SSO case
¾ Required number of ground pads = SDF
¾ Required number of power pads = SDF/1.1
Non SSO case (suggest)
¾ Required number of ground pads = SDF/1.5
¾ Required number of power pads = SDF/1.6
61
SDF Example
IO Type
2mA
4mA
8mA
12mA
16mA
24mA
DF Value
0.02
0.03
0.09
0.18
0.3
0.56
If a design has 20 PDB02DGZ(2mA), 10
PDD16DGZ(16mA). then
SDF = 20 x 0.02 + 10 x 0.3 = 3.4
In SSO case,
¾ number of VSS pad = 3.4 Î 4
¾ number of VDD pad = 3.4/1.1 = 3.09 Î 4
62
Tips to Reduce the Power/Ground Bounce
Don’t use stronger output buffers than what is necessary
Use slew-rate controlled outputs
Place power pad near the middle of the output buffer
Place noise sensitive I/O pads away from SSO I/Os
Place VDD and VSS pads next to clock input buffer
Consider using double bonding on the same power pad to
reduce inductance
63
Cadence On-Line document
unix% /usr/cadence/SOC/cur/tools/bin/cdsdoc &
unix% /usr/cadence/IC/cur/tools/bin/cdsdoc &
unix% /usr/cadence/LDV/cur/tools/bin/cdsdoc &
…..
html browser must be installed
do not set the proxy in html browser
64
Getting Started
Source the encounter environment:
unix% source /usr/cadence/cic_setup/soc.csh
Invoke soc encounter :
unix% encounter
Do not run in background mode. Because the terminal become the
interface of command input while running soc encounter.
The Encounter reads the following initialization files:
¾ $ENCOUNTER/etc/enc.tcl
¾ ./enc.tcl
¾ ./enc.pref.tcl
Log file:
¾ encounter.log*
¾ encounter.cmd*
65
GUI
menus
design views
tool widgets
switch bar
design display area
display control
name of
selected
object
design views
auto query
cursor coordinates
66
Tool Wedgits
Design Import
Zoom
In/Out
Fit
Hierarchy
Zoom
Previous Down/Up
Zoom
Select
Redraw
Calculate
Attribute Xwindow
Fence
Editor dump/undump
Density
Undo/Redo Design
Browser Summary Report
67
Design Views
FloorplanView
¾ displays the hierarchical module and block
guides,connection flight lines and floorplan objects
Amoeba View
¾ display the outline of modules after placement
Placement View
¾ display the detailed placements of cells, blocks.
68
Display Control
Select Bar
69
Common Used Bindkeys
Key
Action
Key
Action
q
Edit attribute
space
Select Next
f
Fits display
e
popup Edit
z
Zoom in
T
editTrim
Z
Zoom out
0-9
toggle layer[0-9] visibility
Arrows
pans design area in the
direction of the arrow
h/H
hierarchy up/down
x
clear Drc
Escape
K
Cancel
Removes all rulers
Looking for more bindkey:
Design->Preference, Binding Key
70
Import Design
9
9
DesignÆDesign Import…
Max Timing Libraries
¾ containing worst-case conditions for
setup-time analysis
Min Timing Libraries
9
¾ containing best-case conditions for
hold-time analysis
Common Timing Libraries
¾ used in both setup and hold analysis
IO Assignment File:
9
9
¾ get a IO assignment template:
DesignÆSaveÆI/O File…
9
71
Import Design -- Timing
Default Delay Pin Limit:
¾ Nets with terminal counts greater than
the specified value are assigned the
default net delay and net load entries.
9
Default Net Delay:
¾ Set the delay values for a net that
meets the pin limit default.
Default Net Load:
¾ Set the load for a net that meets the
pin limit default.
9
Input Transition Delay:
¾ Set the Primary inputs and clock nets.
72
Import Design -- Power
Specify the names of Power Nets and Ground Nets
9
9
73
Import Design – IPO/CTS
9
9
9
9
74
Import Design –IPO/CTS
Buffer Name/Footprint:
¾ specifies the buffer cell family to be inserted or swapped.
¾ required to run IPO and TD placement.
Footprint Example:
Delay Name/Footprint:
¾ required to run a fix hold time violation
Inverter Name/Footprint:
¾ required to run IPO and TD placement.
Get footprint of library cells by:
¾ TimingÆReportÆCell Footprint
Global Net Connection
FloorplanÆ Gloval Net Connections…
9
9
77
Specify Floorplan
9
9
FloorplanÆSpecify Floorplan …
9
9
9
9
9
9
78
Specify Floorplan – Doube back rows
Double-back rows:
Row Spacing > 0
Row Spacing = 0
79
Core Limit, I/O Limnt
80
Place Blocks
FloorplanÆPlace Blocks/ModulesÆPlace …
automatic place blocks ( blackboxes
and partitions) and hard macros at the
top-level design.
Block halo
¾ Specifies the minimum amount of
space around blocks that is preserved
for routing.
81
Manually Place Block
Move/Resize/Reshape floorplan object.
Use functions in : FloorplanÆEdit Floorplan to
edit floorplan.
82
Add Halo To Block
FloorplanÆEdit Block Halo…
Prevent the placement of blocks and standard cells in order to reduce
congestion around a block.
Top
Left
9
9
9
9
Right
Bottom
83
Block Placement
Flow step
¾ I/O pre-placed
¾ Run quick block placement
¾ Throw away standard cell
placement
¾ Manually fit blocks
Block place issue
¾ power issue
¾ noise issue
¾ route issue
84
Block Placement
Preserve enough power pad
Create power rings around block
Follow default routing direction rule
Reserve a rounded core row area for placer
block
Default direction
85
Power Planning: Add Rings
FloorplanÆCustom Power PlanningÆAddRings
86
Power Planning: Add Rings
Use wire group to avoid
slot DRC error
9
9
9
87
Power Planning: Wire Group
9Use wire group
no interleaving
9number of bits = 2
9Use wire group
9interleaving
9number of bits = 2
88
Power Planning: Block Ring
89
Power Planning: Block Ring cont.
90
Power Planning: Block Ring cont.
Block A
Block B
Block C
Without shared ring edges
Block A
Block B
Block C
With shared ring edges
91
Power Planning: Add Stripes
9
9
92
Power Planning: Add Stripes
9
9
9
9
9
9
93
Power Planning:
Add Stripes
9
9
9
crossover
via array
94
Edit Route
Duplicate wire
Change layer
Fix wire wider than max width
Split wire Trim wire
Change width
Merge wire
Clear DRC markers
Delete wire
95
Edit Route cont.
Trim wire
Fix wire wider
than max width
96
Edit Route cont.
Move Wire
Add Wire
Cut Wire
Stretch Wire
97
Specify Scan Chain
encounter > specifyScanChain scanChainName
–start {ftname | instPinName}
– stop {ftname | instPinName}
Specifies a scan chain in a design. The actual tracing of the scan chain
is performed by the scanTrace or scanReorder command
ftname
¾ The design input/output pin name
instPinName
¾ The design instance input/output pin name
98
Scan Chain Reorder
SCAN IN
D
D
D
Q
D
Q
D
Q
D
D
Q
Q
D
D
Q
D
Q
Q
D
Q
D
Q
Q
Q
D
D
Q
D
Q
SCAN OUT
Q
Q
D
D
D
D
Q
Q
Q
D
SCAN IN
D
D
D
SCAN OUT
Q
D
Q
D
Q
Q
Q
Q
D
Q
99
Placement
PlaceÆPlace…
Prototyping : Runs quickly, but components may not be placed at legal
location.
Timing Driven:
¾ Build timing graph before place.
¾ meeting setup timing constraints
with routability.
¾ Limited IPO by
upsizeing/downsizing instances.
Reorder Scan Connection
9
9
¾ nets connected to either the
scan-in or scan-out are ignored.
Check placement after placed
¾ placeÆCheck Placement
100
Floorplan Purposes
Develop early physical layout to ensure design objective can be
archived
¾
¾
¾
¾
Minimum area for low cost
Minimum congestion for design routable
Estimate parasitic for delay calculation
Analysis power for reliability
gain early visibility into implementation issues
101
Difference Floorplan
Difference Performance
102
Wire Load After Placement
Logical
wire load after placement
103
Module Constraint
Soft Guide
Guide
Region
Fence
Soft Guide
Guide
Region
Fence
104
Guide , Region, Fence
Placement constraint
Create guide for timing issue
A critical path should not through
two different modules
The more region, the more
complicated floorplanning
105
Add Tiehi/Tielo cell
Tiehi/Tielo cell connect tiehi/tielo net to supply voltage or
ground with resister
Tiehi/Tielo cell is added for ESD protection.
Set add tiehi/tielo cell mode:
encounter> setTieHiLoMode –maxFanOut #num –maxDistance #num
PlaceÆTieHiLoÆAdd TieHiLo
106
Clock Problem
Clock problem
¾
¾
¾
¾
¾
¾
¾
Heavy clock net loading
Long clock insertion delay
Clock skew
Skew across clocks
Clock to signal coupling effect
Clock is power hungry
Electromigration on clock net
Clock is one of the most important treasure in a chip, do
not take it as other use.
107
Clock Tree Topology
108
Synthesize Clock Tree
Create Clock Tree Spec
clock spec
Specify Clock Tree
Synthesis Clock Tree
Modify
netlist
synthesis report
clock nets
routing guide
Display Clock Tree
109
Create Clock Tree Spec.
ClockÆCreate Clock Tree Spec
9
9
9
110
CTS
CTS traces the clock starting from a root pin, and stops at:
¾
¾
¾
¾
A clock pin
A D-input pin
An instance without a timing arc
A user-specified leaf pin or excluded pin
Write a CTS spec. template:
¾ specifyClockTree -template
111
CTS spec.
A CTS spec. contain the following information.
¾
¾
¾
¾
¾
¾
Timing constraint file (optional)
Naming attributes (optional)
Macro model data (optional)
Clock grouping data (optional)
Attributes used by NanoRoute routing solution (optional)
Requirement for manual CTS or automatic CTS
112
CTS spec.
--Naming Attributes Section
TimingConstraintFile filename
¾ define a timing constraint file for use during CTS
NameDelimiter delimiter
¾ name delimiter used when inserting buffers and updating clock
root and net names.
¾ NameDelimiter # Î create names clk##L3#I2
¾ default Î clk__L3_I2
UseSingleDelim YES|NO
¾ YES Î clk_L3_I2
¾ NO Î clk__L3_I2 (default)
113
CTS Spec.
-- NanoRoute Attribute Section
RouteTypeName name
RouteTypeName CK1
……
END
NonDefaultRule ruleName
¾ Specify LEF NONDEFAULTRULE to be used
PreferredExtraSpace [0-3]
¾ add space around clock wires
Shielding PGNetName
¾ Defines the power and ground net names
114
CTS Spec.
-- Automatic Gated CTS Section
AutoCTSRootPin clockRootPinName
MaxDelay number{ns|ps}
MinDelay number{ns|ps}
SinkMaxTran number{ns|ps}
¾ maximum input transition time for sinks(clock pins)
BufMaxTran number{ns|ps}
¾ maximum input transition time for buffers (defalut 400)
MaxSkew number{ns|ps}
117
CTS Spec.
-- Automatic Gated CTS Section cont.
NoGating {rising|falling|NO}
¾ rising : stops tracing through a gate(include buffers and inverters) and
treats the gate as a rising-edge-triggered flip-flop clock pin.
¾ falling: stops tracing through a gate(include buffers and inverters) and
treats the gate as a falling-edge-triggered flip-flop clock pin.
¾ No: Allows CTS to trace through clock gating logic. (default)
AddDriverCell driver_cell_name
¾ Place a driver cell at the cloest possible
location to the clock port location .
¾ Traces through the pin, even if the pin is a clock pin
PreservePin
+ inputPinName
+ …….
Preserve
¾ Preserve the netlist for the pin and pins below the pin in the
clock tree.
122
CTS Spec.
-- Automatic Gated CTS Section cont.
DefaultMaxCap capvalue
¾ CTS adheres to the following priority when using maximum
capacitance value:
9 MaxCap statements in the clock tree specification file
9 DefaultMaxCap statement in the clock tree specification file
9 Maximum capacitance values in the SDC file
9 maximum capacitance values in the .lib file
MaxCap
+ bufferName1 capValue1{pf|ff}
+ bufferName2 capValue2{pf|ff}
+ …..
¾ Buffer should be inserted if the given capacitance value is exceeded
123
number of sub trees
rise/fall insertion delay
trigger edge skew
rise/fall skew
buffer and clock pin transition time
detailed delay ranges for all buffers add to clocks
Clock nets
¾ Saves the generated clock nets
¾ used to guide clock net routing
Clock routing guide
¾ Saves the clock tree routing data
¾ used as preroute guide while running Trial Route
126
Display Clock Tree
ClockÆDisplayÆDisplay Clock Tree…
127
Display Clock Tree
--by phase delay
128
Clock Tree Browser
ClockÆClock Tree Brower
Display trig edge, rise/fall delay, rise/fall skew, input delay,
input tran of each cell.
Resize/Delete leaf cell or clock buffer
Reconnect clock tree
129
Optimization
TimingÆOptimization…
IPO
¾
¾
¾
¾
setup time
hold time
SI
DRV (Design
Rule Violation)
130
Optimization Advanced Option
131
Useful Skew
balanced clock
132
Trial Route
perform quick routing for congestion and parasitics
estimation
Prototyping:
¾ Quickly to gauge the
feasibility of netlist.
¾ components in design might
no be routed at legal location
The vertical (V) overflow is 25/20 (25 tracks are required , but only 20 tracks are available) .
The Horizontal (H) overflow is 16/18 (16 tracks are required , and18 tracks are available) .
134
Connect io pad power bus by inserting IO filler.
Add from wider filler to narrower filler.
ADD IO FILLER
148
Add IO filler cont.
In order to avoid DRC error
¾ The sequence of placing fillers must be from wider fillers to
narrower ones.
¾ Only the smallest filler can use -fillAnyGap option.
149
NanoRoute
RouteÆNanoRoute
150
NanoRoute Attributes
RouteÆNanoRoute/Attributes
151
Crosstalk
Crosstalk problem are getting more serious in 0.25um and
below for:
¾ Smaller pitches
¾ Greater height/width ratio
¾ Higher design frequency
Antenna Effect
In a chip manufacturing process, Metal is initially deposited
so it covers the entire chip.
Then, the unneeded portions of the metal are removed by
etching, typically in plasma(charged particles).
The exposed metal collect charge from plasma and form
voltage potential.
If the voltage potential across the gate oxide becomes large
enough, the current can damage the gate oxide.
157
Antenna Ratio
Plasma
metal2
via2
+ + + + + ++ + + +
metal2
metal1
Plasma
+ + +
via1
poly gate oxide
Antenna Ratio =
Area of process antennas on a node
Area of gates to the node
158
Connect the NWELL/PWELL layer in core rows.
Insert Well contact.
Add from wider filler to narrower filler.
160
Add bonding pads (stagger IO pads only)
Linear IO pad
Stagger IO pad
Abutted Stagger IO
PIN
Logic and driver
PR boundary
Bonding matel
Inner Bonding
Outer Bonding
161
Add bonding pads (stagger IO pads only)
For the limitation of bonding wire technique , the stagger IO
pads are used in order to reduce IO pad width.
We have to add the bonding pads after APR is finished if
stagger IO pads is used. But SE does not provide a built-in
function for add bonding pads, CIC reaches this purpose by
the way of importing DEF.
CIC provides a perl script to calculate the bonding pad
location. The full flow is described in next page
Using Calibre RVE
Add in .cdsinit
setSkillPath(“. ~/ /usr/memtor/Calibre_ss/cur/shared/pkgs/icb/tools/queryskl”)
load(“calibre.skl”)
178
Using Calibre RVE
179
Using Calibre RVE
180
LVS Overview
Layout Data
Schematic Netlist
VDDclk rst cin sel GNDVDD
a<0>
b<0>
a<1>
b<1>
a<5:0>
a<2>
b<2>
b<5:0>
a<3>
b<3>
clk
a<4>
b<4>
rst
a<5>
b<5>
cin
VDD
gnd!
sel
GND s<0> s<1>. . . . .
s<5:0>
carry
GND
181
Initial Correspondence Points
Initial correspondence points establish a starting place for
layout and schematic comparison.
Create initial correspondence node pairs by
¾ adding text strings on layout database.
¾ all pins in the top of schematic netlist will be treated as an initial
corresponding node if calibre finds a text string in layout which
matches the node name in schematic.
VDD
global pin : VDD and GND
...
a<0>
...
b<0>
a<0>
b<0>
...
initial corresponding
node pairs
182
Black-Box LVS
Calibre black-box LVS
¾ One type of hierarchical LVS.
¾ Black-box LVS treats every library cell as a black box.
¾ Black-box LVS checks only the interconnections between library
cells in your design, but not cell inside.
¾ You need not know the detail layout of every library cells.
¾ Reduce CPU time.
183
Black-Box LVS vs. Transistor-Level LVS
Transistor Level LVS
VDD
i1
z
i1
z
vs.
i2
i2
GND
Black-Box LVS
inv0d1
VDD
inv0d1
i1
nd02d1
i1
z
GND
vs.
nd02d1
z
i2
184
i2
LVS flow
Prepare Layout
¾ The same as DRC Prepare Layout
*************************************************
CELL SUMMARY
*************************************************
Result
----------CORRECT
Layout
----------CHIP
Source
-------------CHIP
194
Check Calibre LVS Summary
INFORMATION AND WARNINGS
******************************************************************
INFORMATION AND WARNINGS
******************************************************************
Matched
Layout
----------11525
Check Calibre LVS Log
Extraction Errors and Warnings for cell “CHIP”
Extraction Errors and Warnings for cell "CHIP"
---------------------------------------------WARNING: Short circuit - Different names on one net:
Net Id: 18
(1) name "GND" at location (330.301,216.95) on layer 102 "M2_TEXT"
(2) name "GND" at location (673.2,29.1) on layer 101 "M1_TEXT"
(3) name "VDD" at location (748.1,31.5) on layer 101 "M1_TEXT"
(4) name "VDD" at location (208.93,274.56) on layer 101 "M1_TEXT"
The name "VDD" was assigned to the net.
200
Chapter3
Post-Layout Timing Analysis
-- Nanosim
What Introduce After Place&Route?
Interconnection wire’s parasitic capacitance.
M1 to substrate
capacitance
M2
M1
M1 to M1
capacitance
M1 to M2
capacitance
vdd!
vdd!
gnd!
gnd!
202
What Introduce After Place&Route?
Interconnection wires’ parasitic resistance.
M2
M1 parasitic resistance
VIA
VIA parasitic resistance
M1
vdd!
vdd!
gnd!
gnd!
M2 parasitic resistance
203
Pre-Layout And Post-Layout Design
A pre-layout design (before P&R) and a post-layout design
(after P&R)
pre-layout
What is Nanosim
Nanosim is a transistor- level timing simulation tool
for digital and mixed signal CMOS and BiCMOS
designs.
Nanosim handles voltage simulation and timing
check.
Simulation is event driven, targeting between SPICE
( circuit simulator ) and Verilog ( logic simulator ).
208
Prepare for Post-Layout Simulation
Apply for a CIC account
¾ http://www.cic.org.tw ⇒ 工作站帳號申請.
¾ fill in your personal data and your request.
Install identd program
¾ this program is used to identify yourself when you log into CIC’s
account from remote machine.
Select Signals --- nWave
Signals ⇒ Get Signals ...
220
Check Simulation Result --- nWave
221
Power Analysis Result
The power analysis result is stored in Nanosim simulation
log (xxx.log) file
. . . . . .
Current information calculated over the intervals:
0.00000e+00 Node: VDD
Average current
RMS current
Current
Current
Current
Current
Current
. . . . . .