Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DAY 1 i 1 2
Introduction & Overview IC Compiler Basic Flow Placement, Power & Test
Synopsys 20-I-071-SSG-007
1- 1
Unit Objectives
Create a Milkyway library to hold your design Read all necessary files required to run IC Compiler, resolving common errors/warnings Set up timing for analysis and optimizations Execute the basic flow for placement, CTS and routing in IC Compiler
1- 2
Unit Roadmap
Data Setup
Read netlist and SDC Setup timing libraries Setup Milkyway Apply the floorplan
Break
Basic Flow
Placement Clock tree synthesis Routing Analysis
1- 3
Unit 1 Unit 5
Unit 2
Unit 3 Unit 6
Unit 7
1- 4
Gate-Level Netlist
IP
IC Compiler
Optional: Floorplan
1- 5
Output
DEF MW
1. 2. 3. 4.
IO pads placed Chip/core boundary Cell rows, wire tracks created Macro placement final
Floorplan
Power plan
Design Planning
Output
1. 2. 3.
Std cells placed Clock tree(s) built Clock and signal routing completed
1- 6
Logical Data
Logical Data Logical Data
Physical Data
place_opt
clock_opt
route_opt
Analysis
Output
create_clock period 10 ... set_input_delay max 1.2 ... set_output_delay max 2.5 ... set_driving_cell ... ......
link
check_timing
1- 8
!
Milkyway and DDC can also contain design attributes
IC Compiler does not support non-uniquified designs, i.e. designs with multiple instantiations! When reading in a non-uniquified design, the first commands of your ICC script should be: current_design MY_TOP_DESIGN uniquify
MY_TOP_DESIGN
PARSER3
1- 11 10
Logical Libraries
Provide timing and functionality information for all standard cells (and, or, flipflop, )
Provide timing information for hard macros (IP, ROM, RAM, )
Specified as follows:
set link_library "* gates.db io.db rams.db"
* = Search all designs in memory
1- 12 11
NLDMs are not accurate enough for 90 nm and below Use CCS
1- 14 12
Galaxy
CCS Support
Tools Timing Noise Power
NanoChar PrimeTime IC Compiler Design Compiler n/a
IC Compiler
Milkyway
1- 15 13
By default, you must specify the unix-path for all files (relative or absolute) You may specify where to look for files:
lappend search_path ./design_data ../scripts lappend search_path [glob $MW_libs/*/LM]
The above paths will be used by IC Compiler for reading or accessing files
1- 16 14
Target Libraries
Along with the link_library and search_path variables, you need to specify the logical library that will be used for mapping/optimization: set target_library "gates.db"
1- 17 15
Resolving References
Gate-level netlists contain references to standard cells and macros, which are stored in the logical libraries, as well as other hierarchical logic blocks The link command will ensure that all references can be resolved link_library
nand nor inv ff pci_core risc_core sdram_if
gates.db
Gate-Level Netlist(s)
link
ip.db
mem.db
1- 18 16
Shortcuts
Replaces: read_verilog netlist orca.v current_design ORCA_TOP uniquify link save_mw_cel as ORCA_TOP
1- 19 17
Timing Constraints
Timing Constraints are required to communicate the designs timing intentions to IC Compiler
They should be the same ones used for synthesis with Design Compiler (preferably SDC)
read_sdc timing_constraints.sdc
create_clock period 10 [get_ports clk] set_input_delay 4 clock clk \ [get_ports sd_DQ[*]] set_output_delay 5 clock clk [get_ports sd_LD] set_load 0.2 [get_ports pdevsel_n] set_driving_cell lib_cell buf5 \ [get_ports pdevsel_n] ...
1- 20 18
Constraint Management
2006.06 and later
remove_sdc
1- 21 19
Timing Check
check_timing
Before proceeding, you should ensure that the design is completely constrained IC Compiler will not optimize paths that are not constrained for timing No checking for missing external loads or drive characteristics will be performed!
1- 22 20
check_timing reports all unconstrained paths False paths are also considered unconstrained!
1- 23 21
Physical Data
Logical Data
Physical Data Data Physical
place_opt
clock_opt
route_opt
Analysis
Output
IP
Floorplan
check_physical_constraints 1- 24 22
Physical Libraries
Reference Libraries (Milkyway)
Blockage Y Pins (direction, layer and shape) Dimension bounding box
VDD
A B
INV
Contain physical information of standard and macro cells necessary for placement
NAND_1 GND
Abstract View
BUF
FF
NOR
1- 26 23
CEL: The full layout view FRAM: The abstract view used for P&R LM: Logic Model with Timing and Power info (optional*) VENDOR_XYZ_std_cell_90nm
CEL/
and2a1 and2a2 . xor3a27
FRAM/
and2a1 and2a2 . xor3a27
1- 27 24
Tech File is unique to each technology Contains metal layer technology parameters:
1- 28 25
abc_6m.tf
dielectric unitTimeName timePrecision unitLengthName lengthPrecision gridResolution unitVoltageName } ... Layer "m1" { layerNumber maskName pitch defaultWidth minWidth minSpacing ...
1- 29 26
1- 30 27
Site Arrays
Array of placement sites
RAM
Fixed Cells
Example: RAM placement
Port Locations
Signal I/O
Useful if reading a new netlist of the same design that was floorplanned in IC Compiler or JupiterXT. 1- 32 29
1- 33 30
Physical Logical library inconsistencies Insufficient core placement area Warns about narrow placement regions (Chimneys) Reports on number of physical_only_cells, available sites and overall utilization RC parameters
see man page for more details
1- 34 31
By default, link_library, search_path, target_library and TLU+ settings are stored with the CEL
If library files change or move to somewhere else, the settings have to be re-applied. See notes section below!
When you re-open the CEL, by default the stored settings are not re-applied, unless you set: set auto_restore_mw_cel_lib_setup true open_mw_cel orca_init 1- 35 32
Technology File
abc_6m.tf
Design Library
design_lib_orca
TLU+ RC models
orca_init
more later
1- 36 33
MW Design Library
./design_lib_orca/
Database T.O.C, technology data etc.
Saved Cell
CEL/
orca_init:1
1- 37 34
STOP
CEL/
ORCA_init
ORCA_floorplanned
ORCA_placed
ORCA_cts ORCA_routed
1- 38 35
Summary
Gate-Level Netlist
read_verilog/vhdl/ddc
Or: import_design Logical Constraints .sdc read_sdc
IC Compiler
read_def
Physical Constraints DEF or MW library
+ tech file
check_timing check_physical_constraints
10 Minute Break
1- 41 38
create_mw_lib design_lib_orca -open \ -technology techfile.tf \ -mw_reference_library "mw/sc mw/io mw/ram32" set mw_logic0_net "VSS" set mw_logic1_net "VDD" import_designs design.ddc \ -format ddc \ -top ORCA_TOP read_def allow_physical design.def save_mw_cel overwrite # CEL saved as ORCA_TOP
1- 42 39
1
~user
.synopsys_dc.setup
3
.synopsys_dc.setup
Commands in .synopsys_dc.setup are executed upon tool startup, in the order shown above.
1- 43 40
Placement stage
Logical Data Physical Data place_opt clock_opt route_opt Analysis Output
1- 44 41
1- 45 42
route_opt
Analysis
Output
1. 2.
clock_opt
1- 46 43
Routing
Logical Data Physical Data place_opt clock_opt
route_opt
Analysis
Output
route_opt
Detailed Route
Then performs numerous logic, placement, routing and crosstalk optimizations to produce the best routed design
1- 47 44
Analysis
Logical Data Physical Data place_opt clock_opt route_opt
Analysis Analysis
Output
1- 48 45
Analysis Details
report_design -physical
1- 49 46
Output
Logical Data Physical Data place_opt clock_opt route_opt Analysis
Output Output
1- 50 47
run.tcl
1- 51 48
When running a design through the IC Compiler flow, you will require local disk space to store the database. Example:
Design size (instances) Milkyway database** size place_opt clock_opt route_opt
---------------------------------------------------------------
150K
250K 400K 625K 700K 850K
56MB
150MB 242MB 277MB 344MB 917MB
62MB
178MB 269MB 325MB 419MB 950MB
120MB
303MB 460MB 569MB 741MB 1.5GB
The above table shows the incremental disk space requirements for each step. So, to complete a 150K design, you need 56 + 62 + 120 = 238 MB. 1- 52 49
IC Compiler uses the /tmp directory for temporary data storage. This can be changed using a Unix env. variable:
setenv $TMPDIR directory_name
Overall disk space required for the /tmp directory is 3x the physical RAM size
For example, a machine with 16G of physical RAM needs a minimum of 48G of disk space for the /tmp directory
You need to pay special attention to the RAM utilization when you run several large designs on the same machine, even with multiple CPUs
Designs of the same size but different constraints or levels of logic can require very different storage 1- 53 50
1- 54 51
Timing and optimization in IC Compiler is controlled by many variables and commands. Example
set enable_recovery_removal_arcs true set timing_self_loops_no_skew true set_cost_priority {max_delay max_capacitance} set_ahfs_options -enable_port_punching true
Memorizing all these variables and commands can be a challenge the GUI provides help! Use the GUI to perform your timing and optimization setup, then copy the variables / commands into your setup file 1- 55 52
1- 56 53
0.5 ns
Rnet
Cpin
Cnet
Cell Delay = (Input Transition Time, Cnet + Cpin) Net Delay = (Rnet, Cnet + Cpin)
TLU+ Models
IC Compiler calculates C and R using the net geometry and the TLU+ look-up tables UDSM process effects modeled
UDSM Process Effects Conformal Dielectric Metal Fill Shallow Trench Isolation Copper Dishing: Density Analysis Width/Spacing Trapezoid Conductor
See Appendix B for details
TLU+
ICC, PC, Astro
nxtgrd
Star-RCXT
1- 58 55
ITF (process file) provided by the vendor TLU+ model is generally not provided
Where:
-itf2TLUPlus generates TLU+ instead of nxtgrd file -i is the ITF file -o is the output, binary TLU+ model file
1- 59 56
Performs sanity check on TLU+ settings Execute this command after setting TLU+ to ensure correct TLU+ and map file
1- 60 57
Mapping file
The Mapping File maps the .tf (MW technology file) layer/via names to Star-RCXT .itf layer/via names. abc.tf
Layer "METAL" { layerNumber maskName = 14 = "metal1"
abc.itf
DIELECTRIC cm_extra3 { THICKNESS=0.06 ER=4.2 } CONDUCTOR cm { THICKNESS=0.26 WMIN=0.16 } DIELECTRIC diel1d { THICKNESS=0.435 ER=4.2 }
abc.map
conducting_layers poly metal1 metal2 poly cm cm2
1- 61 58
Now that R and C are known from TLU+, the delays can be calculated
U2
U1
R2
R1
C2
C1
Calculating Net Delay is done using Delay Calculation algorithms: Elmore, Arnoldi 1- 62 59
Virtual Route
Pin-to-pin timing
Prior to routing, net geometry is estimated based on a Virtual Route Since Virtual Routing is only an estimate, an Elmore model is used for delay calculation 1- 63 60
Detailed Route
After routing, detailed nets are available and extraction can be more accurate
By default, Elmore is still used Arnoldi can be turned on for postroute calculations 1- 64 61
Create a Milkyway library to hold your design Read all necessary files required to run IC Compiler, resolving common errors/warnings Set up timing for analysis and optimizations Execute the basic flow for placement, CTS and routing in IC Compiler
1- 65 62
45 minutes
Goals:
place_opt
clock_opt
route_opt
1- 66 63
Appendix A
64
Milkyway Terminology
Milkyway tool (create/edit Milkyway Library) read_lef, read_plib, Milkyway Library Library db (can be part of
Ref Lib as LM view)
Reference Library Design Library Setup using Milkyway library: search_path link_library target_library set_mw_lib_reference
1- 68 65
Logical libraries (.db) Physical libraries (MW) Libraries are provided by the ASIC vendor
libraries must match cell names pins
physical only cell
Cell
Logical Library
Cell Attribute
Physical Library
size
set_mw_lib_reference {art005}
1- 69 66
1- 70 67
Command: read_lef
Specify the tech LEF, if one is available; unless the MW library has already been prepared with a MW techfile.
Finally, specify you cell LEF files.
Press Apply: This converts the cells in the LEF file into FRAM views and adds them to the Milkyway library.
1- 71 68
Command: read_plib
Specify the tech pdb, if one is available; unless the MW library has already been prepared with a MW techfile.
Finally, specify you cell PDB files.
Press Apply: This converts the cells in the pdb/plib file into FRAM views and adds them to the Milkyway library.
1- 72 69
Appendix B
DSM Effects
70
DSM Effects
UDSM Process Effects Conformal Dielectric Metal Fill Shallow Trench Isolation Copper Dishing: Density Analysis Width/Spacing Trapezoid Conductor
Conformal Dielectric
1- 74 71