Professional Documents
Culture Documents
W5 Iccii Lab Physical Synthesis
W5 Iccii Lab Physical Synthesis
Objective
Learn how to compile the design with IC Compiler II and what kind of commands are needed for it.
Introduction
IC Compiler II is a single, convergent netlist-to-GDSII synthesis design tool for chip designers
developing very deep submicron designs. It takes as input a gate-level netlist, a detailed floorplan,
timing constraints, physical and timing libraries, and foundry-process data, and it generates as output
either a GDSII-format file of the layout.
IC Compiler II
NDM .ndm
Fig.1.Input and output files of IC compiler II
The logic, timing, and power information of the cell is typically contained in a set of Synopsys database
(.db).
Tech file
A technology file provides technology-specific information, such as names and physical and electrical
characteristics of each metal layer and routing design rules. IC Compiler II uses the Milkyway design
library to access the technology information.
TluPlus
The parasitic attributes define the metal layer parasitics. In general, IC Compiler II gets the parasitic
information from the TLUPlus files rather than from the technology file.
Invoke ICC II
IC Compiler II
1. Start IC Compiler II graphical user interface (GUI) from work directory. To start the IC Compiler II
command-line interface, enter the following command at the UNIX or Linux prompt:
%icc2_shell -gui
2. When IC Compiler II starts, it automatically reads “.synopsys_dc.setup” file from the current
directory. In this lab this file is located in the work directory. Start IC Compiler II from that
directory to automatically read the file and set up the libraries. To check whether the libraries
were set, open File> Setup > Application Setup menu (Fig. 4).
If these values are not set, either exit and start IC Compiler II from “work” directory or fill in the files
manually.
In IC Compiler II, specify the .db files to use for the design by setting target_library, and link_library
variables.
target_library variable specifies the .db library files containing the logic cells that can be used for
optimization, for example, different NAND gates having various areas, drive strengths, delays, and
power usage.
link_library variable specifies the .db libraries containing all the logic cells that can be used to resolve
hierarchical references in the design during execution of the link command.
To create the NDM design library, choose File > Create Library. The Create Library dialog box
appears. (Fig.5)
The create_mw_lib command and the Create Library dialog box have options to specify the name
of the new NDM library, the name of the associated technology file, the names of the associated NDM
reference libraries, and the bus naming style.
Type or browse for the map file in the “Map file” text box. Type or browse for the maximum and
minimum TLUPlus model files.
Read the Verilog file for the design by choosing Task > Create Block > Create Design Library and
specifying the Verilog netlist file, which is a gate-level design in one or more files (Fig.7 and Fig .8).
Setup is completed.
Floorplan information includes the core area, top-level ports, and placement sites. To floorplan the
design, choose Floorplan>Initialize Floorplan (Fig.8 and Fig.9).
Indicate the method which specifies the size of the core area:
1. Aspect ratio – A ratio of height divided by width (the default)
2. Width & height – The exact width and height
3. Row number – A number of rows
4. Boundary – A fixed size according to the boundary defined in design planning
After creation rectangular rings the straps are automatically connected to the closest power and
ground ring at, or beyond, both ends of the straps.
The create_pg_strap command creates power straps in a design. Use a few wide straps rather
than many thin straps to improve the placement quality and decrease the placement runtime.
The same as from Menu bar choose Task > Design Planning > Ring/Hard Macro/ Std cell Pattern
(Fig.13 and Fig.14).
place_opt - command performs simulation placement, routing, and optimization on the current
design. During the placement phase this design's standard cells have been automatically placed in
horizontal placement rows.
To run placement, choose Placement > Core Placement and Optimization Task > Placement >
Placement > Create Placement(Fig.15 and Fig 16).
The Core Placement and Optimization dialog box appears. Select “Power optimization.”
During clock tree synthesis, IC Compiler II builds clock trees that meet the clock tree design rule
constraints while balancing the loads and minimizing the clock skew. IC Compiler II fixes the
placement of the clock sinks, performs incremental logic and placement optimization, and fixes the
placement of both the buffers and registers on the clock tree. The clock_opt command performs
clock tree synthesis, routing of clock nets, extraction, optimization, and optionally hold-time violation
fixing on the current design. If clock tree synthesis fails, or the routing of clock nets fail, the command
returns with a value of 0.
To perform clock tree synthesis and optimization, use the clock_opt command or choose CTS >
Core CTS and Optimization in the GUI. (Fig.17 and Fig.18). The Core CTS and Optimization dialog
box appears and select route clock cells. To perform clock tree synthesis choose Task > Clock tree >
Chack Clock Trees
Connect power and ground pins in standard cells to the straps and rings and connect power and
ground rails in the standard cells. To make sure the global router can recognize the routing
obstruction, Route the standard cells before performing global routing.
The route_auto command connects power and ground pins in the standard cells to the power and
ground rings or straps, and connects power and ground rails in the standard cells.
The same as from Menu bar choose Task > Routing> Create Routing Blockage (Fig. 19 and
Fig.20).
The route_opt this command performs simultaneous routing and postroute optimization on the
current design. The output of this command is a postroute optimized design.
Finally, for routing the design choose Route >Core Routing and Optimization. The core routing and
optimization dialog box appears (Fig.21 and Fig. 22).
create_stdcell_filler this command fills empty spaces in standard cell rows with instances of
master filler cells in the library (Fig.23).
To do this first Physical Signoff Options should be set. To do this go to Signoff > Set Physical
Signoff Options menu, the setup window will open (Fig. 24). It should be set up with tool name,
runset and map file. To check DRC choose Verification > Signoff DRC.
IC Compiler II can different data in form of overlay maps. For example, choose View> Map mode,
then in the opened sidebar select Cell Density. Then click Reload ( Fig.26).
Write the design in gate-level Verilog: Task > Design Planning > Write Floorplan & Verilog >
Verilog (Fig. 27).
Extract parasitics using File > Export > Write Parasitics menu, in the opened dialog press OK. To
write the design with Standard Parasitic Exchange Format (SPEF) from Menu bar choose File >
Export > Write Parasitics (Fig. 28).
To write the data in specified library to a file in GDS format choose File > Export > Write Stream (Fig.
26).
Use script created carry out all of these operations using commands. There is a flow.tcl script in
scripts directory. To source the script write in newly opened ICC window. Explore script to learn
commands
Report