4 1.soc Encounter
4 1.soc Encounter
4 1.soc Encounter
i~
CIC 2004/07
Class Schedule
Day1
Design Flow Over View Prepare Data Getting Started Importing Design Specify Floorplan Power Planning Placement Synthesize Clock Tree
Day2
Timing Analysis Trial Route Power Analysis SRoute NanoRoute Fill Filler Output Data DRC LVS extraction/nanosim
2
Chapter1
GDSII
Routed design
Specify Floorplan
Hight
Width
Amoeba Placement
Power Planning
10
11
Power Analysis
12
Add Filler
13
Power Route
14
Routing
15
Prepare Data
Gate-Level netlist (verilog) Physical Library (LEF) Timing Library (LIB) Timing constraints (sdc) IO constraint
16
17
18
19
a row
a site
20
Row Based PR
VDD
VSS
VDD
VSS
21
metal1 routing pitch Horizontal Vertical routing routing Metal1 Metal3 Metal5 Metal2 Metal4 Metal6
22
Higher density routing Easier usage of upper layer Must Follow minimum area rule
24
VSS
Pin type
input/output/inout function data/clock capacitance
Create clock Input delay Output delay Input drive Output loading
28
CHIP
CLK1
3,2,4,3 In2
In2
33
Out2
4~5f
34
Version: 1 MicronPerUserUnit: value Pin: pinName side |corner Pad: padInstanceName side|corner [cellName] Offset: length Skip: length Spacing: length Keepclear: side offset1 offset2
35
CORNER0
CORNER1
PAD_X2
PAD_VSS1
Pad: CORNER2 SW Pad: PAD_IOVDD1 S Pad: PAD_IOVSS1 S Pad: CORNER3 SE Pad: PAD_VDD1 E Pad: PAD_VSS1 E
PAD_X1
PAD_VDD1
PAD_IOVDD1
PAD_IOVSS1
CORNER2
CORNER3
36
Dont 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
37
38
Getting Started
Source the encounter environment:
unix% source /usr/cadence/cic_setup/soc.csh
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*
39
GUI
menus tool widgets switch bar
display control
auto query
40 cursor coordinates
Tool Wedgits
Design Import
Fit
Zoom In/Out
Zoom Select
Redraw
Summary Report
41
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.
42
Display Control
Select Bar
43
Key d e T 0-9 h H
Action popup Delete popup Edit editTrim View layer [0-9] hierarchy up hierarchy down
Import Design
Design Design Import
IO Assignment File:
get a IO assignment template: Design Save I/O File
45
Delay Name/Footprint:
required to run a fix hold time violation
Inverter Name/Footprint:
required to run IPO and TD placement.
For Cells: BUFXL BUFX1 BUFX2 BUFX3 BUFX4 BUFX8 BUFX12 BUFX16 BUFX20 Footprint : buf
46
48
49
Specify Floorplan
Floorplan Specify Floorplan
50
Double-back rows:
Row Spacing = 0
51
52
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.
53
Set placement status of all pre-placed block to preplaced in order to avoid these blocks be moved by amoebaPlace later. Floorplan Edit Floorplan Set Block Placement Status
54
Prevent the placement of blocks and standard cells in order to reduce congestion around a block.
Bottom
55
Block Placement
Flow step
I/O pre-placed Run quick block placement Throw away standard cell placement Manually fit blocks
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
57
58
59
60
61
62
Edit Route
Duplicate wire
Change layer
Change width
Delete wire
64
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.
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
66
67
68
Logical
Module Constraint
Soft Guide
Guide
Region
Fence
70
instPinName
The design instance input/output pin name
71
No Skip
Buffers and inverters remain after the scan chain reorder
Skip Buffer
Ignores buffers in the scan chain.
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
Solutions of these problems may be conflict Clock is one of the most important treasure in a chip, do not take it as other use.
73
74
Modify
75
76
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
77
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 utomatic,gated CTS
78
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 NO clk_L3_I2 clk__L3_I2 (default)
79
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
80
ClkGroup
Specifies tow or more clock domains for which you want CTS to balance the skew. ClkGroup +clockRootPinName1 +clockRootPinName2 ..
81
numberOfBuffer
the total number of buffers CTS should allow on the specified level
Example:
LevelSpec 1 2 CLKBUFX2 LevelSpec 2 2 CLKBUFX2
End
82
BufMaxTran number{ns|ps}
maximum input transition time for buffers (defalut 400)
MaxSkew number{ns|ps}
83
AddDriverCell driver_cell_name
Place a driver cell at the cloest possible location to the clock port location .
84
PostOpt YES|NO
whether CTS resizes buffers of inverters , refines placement,and corrects routing for signal and clock wires. default YES
87
PreservePin + inputPinName + .
Preserve
Preserve the netlist for the pin and pins below the pin in the clock tree.
88
Reconvergence clock
Crossover clock
90
Clock nets
Saves the generated clock nets used to guide clock net routing
92
93
94
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
95
In-Place Optimization
Timing In-Place Optimization
IPO
setup time hold time DRV (Design Rule Violation)
96
Congestion Optimization
encounter > congOpt [ -nrIterInCongOpt nrIter ] [ -maxCPUTimeInCongOpt time ]
maxCPUTimeInCongOpt
specifies the maximum CPU time in congestion optimization,in hours.
97
Balance Slew
encounter > balanceSlew [ -selNetFile selNetFileName ] [ -excNetFile excNetFileName ]
Speeds up or slows down the transition time if it is greater or less than the specified maximum transition time. Parameters
selNetFile selNetFileName
Specifies th file that contains the hierarchical net names that are excluded from the IPO pperation
excNetFile excNetFileName
Specifies the file that contains the hierarchical net (path) names for the IPO operations. Only these net names are considered.
98
Useful Skew
encounter > setAnalysisMode -usefulSkew encounter > skewClock encounter > optCritPath
99
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
100
V=25/20 H=16/18
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) .
101
Overflow Value One more track required Two more track required Three more track required Four more track required Five more track required Six or more track required
102
Timing Analysis
Timing Specify Analysis Condition Specify RC Extraction Mode Timing Extract RC Timing Timing Analysis
No Async/Async:
recovery, removal check
No Skew/Skew:
check with/without clock skew constraint
103
Slack Browser
Timing Timing Debug Slack Browser
104
Power Analysis
Timing Extract RC Power Edit Pad Location Power Edit Net Toggle Probability
105
analysis report:
A power graph report contains
average power usage worst IR drop worst EM violation
107
Display IR Drop
Power Display Display IR Drop
108
109
SRoute
Route Special Net (power/ground net)
Block pins Pad pins Pad rings Standard cell pins Stripes (unconnected)
110
Add IO filler
addIoFiller addIoFiller addIoFiller addIoFiller cell cell cell cell PFILL prefix IOFILLER PFILL_9 prefix IOFILLER PFILL_1 prefix IOFILLER PFILL_01 prefix IOFILLER -fillAnyGap
Connect io pad power bus by inserting IO filler. Add from wider filler to narrower filler.
ADD IO FILLER
111
112
NanoRoute
Route NanoRoute
113
NanoRoute Attributes
Route NanoRoute/Attributes
114
Crosstalk
Crosstalk problem are getting more serious in 0.25um and below for: Smaller pitches Greater height/width ratio Higher design frequency
115
Crosstalk Problem
Delay problem
Aggressor original signal impacted signal
Noise problem
Crosstalk Prevention
Placement solution
Insert buffer in lines Upsize driver Congestion optimization
Add buffer
Upsize
Routing solution
Limit length of parallel nets Wider routing grid Shield special nets
117
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.
118
Antenna Ratio
metal2 via2
Plasma + + + + + ++ + + +
metal2
Plasma
metal1 + + +
Antenna Ratio =
metal2
via1
120
Connect the NWELL/PWELL layer in core rows. Insert Well contact. Add from wider filler to narrower filler.
121
PR boundary
Bonding matel
Inner Bonding
Outer Bonding
122
123
routed.def routed.def
bondPads.cmd bondPads.cmd addbonding.pl addbonding.pl addbonding.pl routed.def (In unix terminal) bondPads.eco bondPads.eco source bondPads.cmd (In encounter terminal)
ioPad.list ioPad.list
finish
124
Output Data
Design Save GDS Design Save->Netlist Design Save->DEF
Export GDS for DRC,LVS,LPE,and tape out. Export Netlist for LVS and simulation. Export DEF for reordered scan chain.
125
Chapter2
127
zn
compare with
zn
gnd!
ERC
vdd! short clk
LPE/PRE
vdd!
extract i zn i zn
128
gnd!
DRC
Extract Devices
optional
ERC
LVS
LPE/PRE
Post-Layout Simulation
129
DRC flow
Prepare Layout
stream in gds2 add power pad text stream out gds2
Prepare command file run DRC View DRC error (DRC summary/RVE)
130
Prepare Layout
Stream In design Stream In core gds2 DFII Library Stream In IO gds2 LEF in RAM lef Add power Text Stream Out
131
GDSII GDSII
File->import->stream
132
133
134
135
Result log
CHIP.drc.summary (ASCII result) CHIP.drc.results (Graphic result)
137
138
139
140
LVS Overview
Layout Data
VDDclk rst cin sel GNDVDD
Schematic Netlist
b<0> b<1> b<2> b<3> b<4> b<5> gnd! a<5:0> b<5:0> clk rst cin sel carry s<5:0>
GND
141
...
a<0> b<0> initialcorresponding node pairs
a<0> b<0>
...
...
142
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.
143
i1 i2
i1 vs. i2
GND
Black-Box LVS
inv0d1
VDD
nd02d1 z
inv0d1
i1
nd02d1
z GND
i1 vs. i2
144
i2
LVS flow
Prepare Layout
The same as DRC Prepare Layout
Prepare Netlist
v2lvs
Prepare calibre command file run calibre LVS View LVS error (LVS summary/RVE)
145
umc18lvs.v umc18lvs.v
148
150
OVERALL COMPAISON RESULTS CELL SUMMARY INFORMATION AND WARNINGS Initial Correspondence Points
151
# # # # # # #
_ _ * * | \___/
152
************************************************* CELL SUMMARY ************************************************* Result ----------CORRECT Layout ----------CHIP Source -------------CHIP
153
Nets: Instances:
154
o Initial Correspondence Points: Nets: DVDD VDD DGND GND I_X[2] I_X[3] I_X[4] I_X[5] I_X[6] I_X[7] I_X[8] I_X[9] I_X[10] I_X[11] O_SCAN_OUT O_Z[0] O_Z[1] O_Z[2] O_Z[3] I_HALT I_RESET_ I_DoDCT I_RamBistE I_CLK I_SCAN_IN I_SCAN_EN I_X[0] O_Z[4] I_X[1] O_Z[5] O_Z[6] O_Z[7] O_Z[8] O_Z[9] O_Z[10] O_Z[11]
155
156
-------------------------------------------------------------------------------TEXT OBJECTS FOR CONNECTIVITY EXTRACTION -------------------------------------------------------------------------------O_Z[0] (523.447,31.68) 105 CHIP O_Z[1] (598.068,31.68) 105 CHIP O_Z[2] (821.931,31.68) 105 CHIP O_Z[3] (896.553,31.68) 105 CHIP O_Z[4] (971.175,31.68) 105 CHIP O_Z[5] (1164.455,372.964) 105 CHIP O_Z[6] (1164.455,446.966) 105 CHIP O_Z[7] (1164.455,520.968) 105 CHIP O_Z[8] (1164.455,594.97) 105 CHIP O_Z[9] (1164.455,668.972) 105 CHIP O_Z[10] (1164.455,742.974) 105 CHIP O_Z[11] (1164.455,816.976) 105 CHIP
157
-------------------------------------------------------------------------------PORTS -------------------------------------------------------------------------------O_Z[0] (523.447,31.68) 105 CHIP O_Z[1] (598.068,31.68) 105 CHIP O_Z[2] (821.931,31.68) 105 CHIP O_Z[3] (896.553,31.68) 105 CHIP O_Z[4] (971.175,31.68) 105 CHIP O_Z[5] (1164.455,372.964) 105 CHIP
158
159
Chapter3
-- Nanosim
M1 to substrate capacitance
M1
M1 to M1 capacitance
M1 to M2 capacitance
vdd! vdd!
gnd!
gnd!
161
M1 parasitic resistance
VIA
M1
vdd!
vdd!
M2 parasitic resistance
gnd!
gnd!
162
post-layout
163
....
critical path delay
...
. . .data
164
Layout
Delay Calculation
Extraction
Tr-level Analysis
165
netlist/parasitic extraction
Calibre LPE/PRE
SPICE netlist
simulation pattern
Nanosim
166
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 ).
167
168
Example:
Qentry M LPE tech UMC18 f CHIP.gds T CHIP s RAM1.spec t 18ra2sh s RAM2.spec t 18ra1sh_1 s RAM3.spec t 18ra1sh_2 c UMC18 i UMC18 o CHIP.netlist
Use Qstat to check the status of your job. The result is stored in result_# directory.
169
Replace/LPE
INPUT
gds2 ram spec
OUTPUT
output netlist TOP_CELL.NAME nodename spice.header nanosim.run log files for strem in, stream out, lpe
170
Running Nanosim
Qentry M {NANOSIM} n {CHIP.io} nspice CHIP.netlist spice.header nvec CHIP.vec m Top_cell_name c {CHIP.cfg} z {CHIP.tech.z} o Output_file_name out fsdb t Total_simulation_time Example:
Qentry M NANOSIM nspice CHIP.netlist spice.header nvec CHIP.vec m CHIP c CHIP.cfg z CHIP.tech.z o UMC18 t 100
Use Qstat to check the status of your job. The result is stored in result_# directory.
171
Modify PVT
.lib 'l18u18v.012' L18U_BJD .lib 'l18u18v.012' L18U18V_TT .lib 'l18u33v_g2.011' l18u33v_tt *epic tech="voltage 3.3 *epic tech="temperature 100"
172
in<7:0> 44 ii
xx xx xx
173
in[7:0] 44 ii
xx xx xx
174
176
Environment setup
unix% source /usr/debussy/CIC/debussy.csh
Starting nWave
unix% nWave &
177
178
179
180
: -3.53355e+05 uA : 3.53388e+05 uA : : : : : -4.54061e+05 -4.34973e+05 -3.88048e+05 -3.87280e+05 -3.84302e+05 uA uA uA uA uA at at at at at 6.78400e+02 4.00000e-01 2.59000e+01 1.27500e+02 5.77800e+02
181
ns ns ns ns ns