ASIC Layout - 2 Digital Innovus PDF
ASIC Layout - 2 Digital Innovus PDF
Cadence “Innovus”
Std. Cell
Layouts Floorplan Digital Implementation
Chip/Block System
Libraries
Process Data
Place & Route
Design Rules Std. Cells
Layout vs.
Generate Design Rule Backannotate
Schematic
Mask Data Check Schematic
Check
Calibre Calibre Calibre
IC Mask Data ADiT/Eldo Simulation Model
Netlist-to-layout
design flow
Synopsys
“JupiterXT”
Cadence
“SOC Innovus”
Innovus
Digital
Implementation
(EDI)
System GUI
EDI design flow
Floorplan (“flat”) through implementation
Design Import (specify input files)
File > Design Import
Gate-level netlist
Verilog file(s)
IO pin planning
Power planning
Executes init_design
command to load data.
Netlist files
Verilog gate-level netlist(s)
Gates from the standard cell library
Design can be hierarchical or flat
Tcl commands:
set design_netlisttype verilog
set init_verilog [list file1.v file2.v]
set init_design_set_top 1 0 to auto-assign top cell
set init_top_cell “top” specify if above = 1
Physical/Technology Library
Libraries in LEF (Library Exchange Format)
Technology Library
Technology-specific characterizations of metal layers, vias, etc.
Standard Cell Library
Abstract view of each cell (box, pins, obstructions)
Includes metal layers for pins (read tech. library first!)
Tcl command:
set init_lef_file { \
*/techlef/v.20160204/lef/bicmos8hp_6AM_31_tech.lef \
*/std_cell/v.20130404/lef/IBM_BICMOS8HP_SC_1P2V_12T_RVT_091712.lef \
}
CORE
Tcl command:
set init_mmmc_file {modulo6.tcl}
Core Cell
GND
rails
Space for
Power rings
Specify floorplan
Specify by size
or by coordinates
0.5
1
2
Core utilization %
leaves space for routing
Core to IO boundary
leaves space for
power rings
Floorplan Tcl Command
Initiate floorplanning and generate tracks
Aspect Density
Core Ratio
to IO (H/W)
Modulo6
W
Aspect = 1
(3 cell rows)
core H
Core-to-IO Margin
margins = 20
Power Planning:
Add Power Rings
Around core
or I/O box
-center 0 \ 1 to center
rings in channel
-spacing $pspace \
-width $pwidth \
-offset $poffset \
-threshold auto \
-layer {bottom M1 top M1 right M2 left M2 }
Metal wire layers
Power Rings
modulo6
Ground
core
Power M2
M1
Power stripes
Optional: Additional connections from power rings
to power/ground rails in the core.
Nets to be connected
Objects to connect
to power
Jog & change metal layers
to avoid obstacles
Tcl:
sroute –connect {blockPin padPin padRing corePin floatingStripe } \
-allowJogging true \ To avoid
-allowLayerChange true \ DRC errors
-blockPin useLef \
-targetViaLayerRange {M1 AM } Objects to
connect to
rings/stripes
After
Special
Routing
VSS
VDD
Pin Editor Form – to adjust placement
spacing direction
spacing amount (unless “spread”)
Bottom pins
spread evenly
between (x y)=
(4,0) to (50,0)
placeDesign
setDrawView place
(to view the cells) Optional placeDesign switches:
-inPlaceOpt or -prePlaceOpt
Place Standard Cells – Mode Setup
setPlaceMode
-congEffort auto \
–timingDriven true \
-ignoreScan true
After
Placing
Cells
Draw View
“place”
Timing analysis and optimization
Ideally perform at three times during the design flow
Pre-CTS (clock tree synthesis) – trial route after placing cells
Post-CTS – clock tree should improve timing
Post-Route – after completed routing
design-rule violation
Timing optimization Command for postRoute only
buffer
# Create the clock tree spec from the .sdc file (from synthesis)
createClockTreeSpec -output $BASENAME.ctstch
Clock net
changed
Buffer cell
added
NanoRoute
Setup
Default
options
usually
OK
Command: globalDetailRoute
Add Filler Cells
From initial Innovus script:
# Set the name(s) of the filler cell(s) in the cell libraryset
fillerCells [list FILL1 FILL2 FILL4 FILL8 FILL16 FILL32 FILL64 ]
Menu:
Place > Physical Cell > Add Filler
After routing
Filler cells
added
Design verification
Verify connectivity, looking for:
Antennas
Opens
Loops
Unconnected pins
Verify geometry with data from LEF file:
Widths
Spacings
Internal geometries of wires/objects
TCL:
verifyConnectivity –type regular –error 50 –warning 50 -report Conn_regular.rpt
verifyConnectivity –type special –error 50 –warning 50 -report Conn_special.rpt
verifyGeometry –allowSameCellViols –noSameNet -noOverlap -report Geom.rpt
Write results
# Export the DEF, v, spef, sdf, lef, and lib files
global dbgLefDefOutVersion
set dbgLefDefOutVersion 5.5
defOut -floorplan -netlist -routing $BASENAME.def
saveDesign ${BASENAME}_done.enc –def