The general ICC flow is as shown in figure 1. The first step in ICC Flow is Data Setup. In this step, we create “Container” which is known as “Design Library”. The inputs which are required for physical design are loaded into this Design Library. i.e., The Design Library contains Logical/Timing Library files, Physical Library Directories, Constraints, Gate-level Netlist, Technology File, RC (TLU+) Model Files. We provide these Design Library as input to the IC Compiler. The output of the IC Compiler will be Placed, Routed and Optimized layout with Clock Trees as shown in below figure 2.
Inputs for ICC Physical Design Flow:
As shown in figure 2 the inputs for ICC Physical Design flow are logical/Timing libraries, Physical libraries, Technology file, Design Constraints, Gate Level Netlist, RC (TLU+) Model Files. These are given to the ICC tool. Here I am going to discuss about these inputs.
Logical/Timing Libraries (.db):
Logical Libraries are library files which provide timing and functionality information of each and every standard cells (AND, OR, Flipflops etc) used in the design. It also provides timing information of hard macros such as IP, ROM, RAM etc. Logical Libraries define and load the Logical DRC such as Maximum fanout, Maximum Transistion, Min/Max Capacitances. Logical libraries are also used at Synthesis step in DC. These are in .db form. Logical libraries are specified by the variables target_library and link_library.
Physical/Reference Libraries (Milkyway .db):
Physical/Reference libraries contain Physical Information of standard, macro and pad cells, which is necessary for placement and routing. These libraries define placement tile (Height of placement rows, minimum width resolution, preferred routing direction, Pitch of routing tracks etc). These libraries are specified with command create_mw_lib -mw_reference_library.
A Technology file is provided by the technology vendor. Technology file is unique for each technology. Technology file contains the information related to metal/via information such as:
- Units and precision for electrical units (Voltage, Current, Power etc)
- Define colors and patterns of layers for display
- Number and Name designations for each metal/via
- Physical and Electrical characteristics of each metal/via
- Define Design rules such as minimum wire widths and minimum wire to wire spacing
- Contains ERC rules, Extraction Rules, LVS rules
- Provide parameterized cells (PCELLs) for MOS, caps etc
- Create menus and commands (Ex: create contact)
RC (TLU+) Model:
ICC calculates delay for every net and every cell. To calculate delay tool needs each net R’s and Capacitances. IC Compiler calculates interconnect R and C values using net geometry and TLU+ look up tables. It models UDSM process effects. TLU+ is a binary table which has R and C values for delay calculation.
It can be in the form of Verilog or VHDL(.v or,vhdl). This netlist is produced during logical synthesis, which takes place prior to the physical design stage.
Design constraints (like system clock definition and clock delays, Multiple cycle paths, Input and output delays, Minimum and maximum path delays, Input transition and output load capacitance, False paths) are identical to those which were used during the front-end logic synthesis stage prior to physical design. It is available in the form of SDC (Synopsys Design Constraints).