Professional Documents
Culture Documents
2005
NCTU
Cell
Cell--based APR Design Flow
Chen Chih-Lung
email : lung@si2lab.org
pg. 2 (61)
C/C++
System C
Matlab
RTL
Synthesis
RTL Compiler
Design Vision
BuildGates
Verplex
PrimePower
Physical Design
Verilog-XL
NC-Verilog
NC-VHDL
Debussy
pg. 3 (61)
Apollo
Silicon Ensemble
SoC Encounter
Magma
pg. 4 (61)
Wiring Problem
Wiring delay dominates
overall delay
New problems due to large
wire resistance
Timing closure
Signal Integrity closure
(crosstalk, )
Power closure (IR drop, )
pg. 5 (61)
SoC Encounter
SoC Encounter
It is a hierarchical physical implementation environment
Comprised of the following tools
First Encounter
virtual prototyping, placement, clock tree insertion, GDSII generation
NanoRoute
signal integrity (SI) and timing aware routing
CeltIC
sign-off quality SI analysis
Fire&Ice QX
sign-off quality parasitic extraction
VoltageStorm
IR drop analysis
pg. 6 (61)
"
#
%
&
'
- $(
"
"
,%
pg. 7 (61)
Getting Started
Data preparation
Library files
Technology information and Physical libraries
umc18_5lm.lef
umc18io3v5v_5lm.lef
umc18_5lm_antenna.lef
rams.vclef
Timing libraries
slow.lib
fast.lib
umc18io3v5v_fast.lib
umc18io3v5v_slow.lib
rams timing libraries
CeltIC libraries
umc18.cdB
Timing constraints
To generate timing constraint files from Design Vision, add the script
write_sdc sdc_filename
pg. 9 (61)
pg. 10 (61)
pad_instance_name
Field
pad_instance_name
direction
[pad_type]
Usage
direction
E (eastern pads)
W (western pads)
N (northern pads)
pad_type
pg. 11 (61)
pg. 12 (61)
Note:
1. Do not use
background execution!!
2. Log file name:
encounter.log#
3. Command file name:
command.log#
pg. 13 (61)
Import Design
Import design
Import design files into Encounter environment
pg. 14 (61)
In Power tab
In Misc. tab
pg. 16 (61)
Floorplanning
Calculating core size, width and height
When calculating core size of standard cells, the core utilization must
be decided first. Usually the core utilization is higher than 85%
The core size is calculated as follows
Core Size of Standard Cell =
Note: because stripes and macros will be added, width and height are
usually set larger than the value calculated above
Ex:
2,000,000
= 2,352,941
0.85
Floorplanning (cont.)
Core margins
When setup the floorplan, remember to leave enough space for
Power/Ground (P/G) ring
Note: the width needed for P/G ring will be discussed in power planning
pg. 18 (61)
Floorplanning (cont.)
Setup the floorplan
Define core width, height and core margin
pg. 19 (61)
Floorplanning (cont.)
Macro placement
Move macro blocks to proper position
Floorplanning (cont.)
Result of floorplanning
pg. 21 (61)
Power Planning
Power issue
Metal migration (also known as electro-migration)
Under high currents, electron collisions with metal grains cause the metal to
move. The metal wire may be open circuit or short circuit.
Prevention: sizing power supply lines to ensure that the chip does not fail
Experience: make current density of power ring < 1mA/m
IR drop
IR drop is the problem of voltage drop of the power and ground due to high
current flowing through the power-ground resistive network
When there are excessive voltage drops in the power network or voltage
rises in the ground network, the device will run at slower speed
IR drop can cause the chip to fail due to
Gate count = 70 k
4000 Flip-Flops
80% FF with dynamic gated clock
Current needed = 0.2mA/MHz
Note: the value should multiply with 1.8~2 for no gated design
Example:
Example
Core width = height = 1600
Stripe set added = 15
IO power pad
One set IO power pad (PVDDR along with PVSSR) can provide the power
for
3~4 output pads, or
6~8 input pads
pg. 24 (61)
Fill In
Metal 5
Metal 4
Width
All 20
( or the demanded value)
Offset
Center in channel
pg. 25 (61)
Click Update
Fill In
Wire Group
Number of bits
pg. 26 (61)
Note: Specify Start (Y) and Stop (Y) for horizontal stripes
pg. 27 (61)
Fill In
Field
Fill In
Connect
Pins:
VDD
To Global Net
VDD
Connect
Nets:
VDD
To Global Net
VDD
Connect
Tie Hight
To Global Net
VDD
Fill In
Field
Fill In
Connect
Pins:
GND
To Global Net
GND
Connect
Nets:
GND
To Global Net
GND
Connect
Tie Low
To Global Net
GND
pg. 29 (61)
Fill In
Block pins
(off)
Pad pins
(on)
Pad rings
(off)
(off)
Stripes (unconnected)
(off)
pg. 30 (61)
pg. 31 (61)
Choose M2, M3. Then there will be no cell placed under strip
pg. 32 (61)
Tips
You may restart from this step by freeing design and reloading the saved
netlist into Encounter
Free Design: type the command freeDesign in the command line
Restore Design:
pg. 33 (61)
pg. 34 (61)
Pre-CTS Optimization
Pre-CTS timing analysis
timeDesign command
It will run trial route, RC extraction, timing analysis, and generates detailed
timing reports
Type the following command in the command line
timeDesign preCTS
The generated timing reports are saved in ./timingReports/ , including
_preCTS.cap, _preCTS.fanout, _preCTS.tran, and _preCTS_all.tarpt
If the timing is met, pre-CTS optimization can be skipped
Reports
Congestion distribution
pg. 35 (61)
Timing Summary
To optimize timing placed design for the first time with ideal clocks
optDesign preCTS
To further optimize a design after above command execution
optDesign preCTS incr
pg. 36 (61)
pg. 37 (61)
Example
AutoCTSRootPin
clk
MaxDelay
10ns
MinDelay
0ns
SinkMaxTran
400ps
BufMaxTran
400ps
MaxSkew
400ps
NoGating
NO
Buffer
CLKBUFX1
CLKBUFX2
CLKINVX1
CLKINVX2
PostOpt
YES
pg. 38 (61)
pg. 39 (61)
Fill In
CHIP.ctstch
pg. 40 (61)
Fill In
Handle Clock Crossover
and Reconvergence
Post-CTS Optimization
Post-CTS timing analysis
timeDesign command
Type the following command in the command line to check setup time
timeDesign postCTS
Type the following command in the command line to check hold time
timeDesign postCTS hold
The generated timing reports are saved in ./timingReports/ , including
_postCTS.cap, _postCTS.fanout, _postCTS.tran, and
_postCTS_all.tarpt
Post-CTS optimization
optDesign command
To correct setup violations and design rule violations
optDesign postCTS
To correct hold violations
optDesign postCTS hold
pg. 41 (61)
SRoute
Connect standard cell power
Connect from core power pads to standard cells
Fill In
Block pins
(off)
Pad pins
(off)
Pad rings
(off)
(on)
Stripes (unconnected)
(off)
pg. 42 (61)
SRoute (cont.)
Result of standard cell power connection
pg. 43 (61)
NanoRoute
Process Antenna Effect (PAE)
PAE phenomenon
During deep submicron wafer fabrication, gate damage can occur when
excessive static charges accumulate and discharge, passing current
through a gate
Prevention of PAE
Method 1: changing the routing so the routing layers connected to a gate or
connected to a gate through lower layers are not so large
Method 2: inserting diodes that protect the gate by providing an alternate
path to discharge the static charge
pg. 44 (61)
NanoRoute (cont.)
Signal Integrity (SI) Issue
Crosstalk
Charge sharing
Supply noise
Leakage
Propagated noise
Overshoot
Under shoot
SI closure
Occur when a design is free from SI induced functional glitch and
timing failure
pg. 45 (61)
NanoRoute (cont.)
SI prevention
Placement-based SI prevention
Reduce crosstalk glitch and delay variation
pg. 46 (61)
NanoRoute (cont.)
SI prevention (cont.)
Routing-based SI prevention
Wiring Spacing
Layer Switching
Net Re-ordering
pg. 47 (61)
NanoRoute (cont.)
NanoRoute
Routing the design without creating DRC or LVS violations
Routing the design without degrading timing or creating signal integrity
violations
Fill In
Fix Antenna
Insert Diodes
pg. 48 (61)
ANTENNA
NanoRoute (cont.)
Result of NanoRoute
pg. 49 (61)
Celtic
Celtic
SI analysis
Type the following command in the command line to do glitch noise
analysis
timeDesign postRoute si
SI repair techniques
pg. 50 (61)
Celtic (cont.)
Celtic (cont.)
Re-route with victim file
freeDesign
Restore design
Add SI Victim File celtic.eco when restart NanoRoute
pg. 51 (61)
Post-Route Optimization
Post-Route timing analysis
timeDesign command
Type the following command in the command line to check setup time
timeDesign postRoute
Type the following command in the command line to check hold time
timeDesign postRoute hold
The generated timing reports are saved in ./timingReports/ , including
_postRoute.cap, _postRoute.fanout, _postRoute.tran, and
_postRoute_all.tarpt
Post-Route optimization
optDesign command
To correct setup violations and design rule violations
optDesign postRoute
To correct hold violations
optDesign postRoute hold
pg. 52 (61)
Add Filler
Adding filler cells
Purpose of adding filler cells
Fill all the gaps between standard cell instances
Provide decoupling capacitances to complete connections in the standard
cell rows
Metal filler inserted after routing, but before parasitic extraction and
GDSII out
Command
Execute the following command in the encounter prompt
source run_addfiller.cmd
pg. 53 (61)
Stream Out
Merging GDSII files
Merge the GDSII files of standard cells (and macros if any) into
complete layout and output to a single GDSII file for hierarchical
designs
Fill In
CHIP.gds
Map File
streamOut.map
Library Name
DesignLib
CHIP
umc18_core.gds umc18_io_final.gds
pg. 54 (61)
Calculate Timing
Extract RC
Just click OK
Calculate delay
Fill In
Ideal Clock
CHIP.sdf
pg. 55 (61)
Save Netlist
Save netlist for post-layout simulation
Command
Execute the following command in the encounter prompt
saveNetlist CHIP_PR.v
pg. 56 (61)
Wire-Edge
Dishing, slotting
pg. 57 (61)
Erosion
Fill In
umc18_5lm.lef umc18io3v5v_5lm.lef
(remove umc18_5lm_antenna.lef)
lefdef.layermap
Library Name
library
Technology File
icecaps.tch
pg. 58 (61)
pg. 59 (61)
Fill In
Ideal Clock
CHIP_fi.sdf
pg. 60 (61)
CHIP_PR.v
Netlist for post-layout simulation
CHIP_LVS.v
Netlist for Calibre LVS (Layout Versus Schematics)
CHIP.sdf
Timing delay file generated by SoC Encounter (default)
CHIP_fi.sdf
Timing delay file generated by Soc Encounter (Fire&Ice)
pg. 61 (61)