0% found this document useful (0 votes)
92 views30 pages

Innovus Place & Route User Guide

The document provides a comprehensive tutorial on using the Cadence Innovus Implementation System for the place and route (P&R) phase of digital circuit design. It covers initial setup, software commands, floorplanning, power planning, timing analysis, and optimization steps necessary to transform a Verilog netlist into a GDSII layout. The tutorial emphasizes the importance of various configurations and checks throughout the design process to ensure successful fabrication readiness.

Uploaded by

fesapek333
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views30 pages

Innovus Place & Route User Guide

The document provides a comprehensive tutorial on using the Cadence Innovus Implementation System for the place and route (P&R) phase of digital circuit design. It covers initial setup, software commands, floorplanning, power planning, timing analysis, and optimization steps necessary to transform a Verilog netlist into a GDSII layout. The tutorial emphasizes the importance of various configurations and checks throughout the design process to ensure successful fabrication readiness.

Uploaded by

fesapek333
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

SEI 2021/2022

Innovus P&R João Vaz

INTRODUCTION TO
INNOVUS
PLACE & ROUTE
(version 1.2021)

Sistemas Eletrónicos Integrados


(Period 1)

João Vaz

Instituto Superior Técnico


2021/2022
SEI 2021/2022
Innovus P&R João Vaz

• Introduction
Cadence Innovus Implementation System is a family of software
programs that perform all the flow steps to transform a digital circuit
RTL description into a GDSII layout representation ready for fabrication
submission.
This tutorial explains the place and route (P&R) phase.

• Place and Route typical flow


SEI 2021/2022
Innovus P&R João Vaz

• Innovus first-time configuration

It is assumed that a Verilog netlist with standard cells module was already
synthesized. In this tutorial a four bits counter (counter4bit_gates.v) will be used.
First of all, for organizing reasons, it is better to create a directory where your
designs will be kept. In this tutorial that directory name will be DIGITAL
Inside DIGITAL directory create the directory P_and_R where all tasks of digital flow
place and route will be made.

Inside DIGITAL/P_and_R run the command


$ /opt/ic_tools/pdk/faraday/cdsenv/innovus/create_lef_libs
and create also the directory COUNTER4BIT dedicated for this tutorial example.
Change to DIGITAL/P_and_R/COUNTER4BIT directory.

Finally, counter4bit_pr.tar should be copied to this directory. To untar use the


command
$ tar –xvf counter4bit_pr.tar
Three files ([Link], [Link], [Link]) will be obtained.
SEI 2021/2022
Innovus P&R João Vaz

• Running the software


The script that must be run before using the software is:
$ source /opt/ic_tools/init/init-innovus20-11-hf000

The software is started with the


command
$ innovus
(Note: Do not use “innovus &” because
the terminal window needs to be used
by the software)

• Innovus interface
A terminal and a graphical interface
appear. Both can be used to enter
commands and see results; however
terminal commands list is more
extensive.
SEI 2021/2022
Innovus P&R João Vaz

• Reading files Using menu “file/import design”

Advise: to avoid filling all the info next time you make the same
design import, use “save” and ”load” to fill all forms automatically.
SEI 2021/2022
Innovus P&R João Vaz

Initialization input files

Verilog files have a netlist of standard/macro


cells (sometimes called gatelist). These files
are generated by synthesis phase.

LEF files have the abstract layout views of


standard/macro cells showing dimensions,
PG and IO pins. Additionally, they have also
electrical properties and design rules for
vias and metal layers. They can also include
information to solve antenna errors.

If IO configuration file is already available, it can be loaded at this stage.

Power and ground (PG) nets should be defined at this stage (for example dvdd and
dgnd). They will be the global PG nets. Their names can be equal or not to standard
cells PG pins.

If available, the MMMC configuration file can also be loaded at this stage.
SEI 2021/2022
Innovus P&R João Vaz

Terminal commands:

If [Link] was previously saved, use the following commands to


initiate the design:

innovus > source [Link]


innovus > init_design

Please note that the gate netlist is loaded in this step.

Note: logs generated after this phase should be checked.

Also, the command


innovus > check_timing –verbose
can be used to check if there are timing problems with the constraints and
design.

Finally, the command


innovus > checkDesign –all
can be used to check if there are any errors.
SEI 2021/2022
Innovus P&R João Vaz

• Floorplan (FP) Using menu “floorplan”

The standard cells have fixed 3.2um height, and 0.4um multiples width. Track routes (middle line of a path) are
spaced by 0.4um in both vertical and horizontal directions. It is better to check the initial layout size and chose
the core size of appropriate value maintaining a core utilization around 60 to 70%. The layout grid is 0.01um.
The core height should be a 3.2um multiple and the core width 0.4um multiple. Core to IO margins should be
0.4um multiples. After creating the FP all the gatelist pins are concentrated at the layout origin by default.
SEI 2021/2022
Innovus P&R João Vaz

• Power Using menu “power/connect global nets”

The “Pin Names” are


the standard cells PG
pins, in this case VCC
and GND. In “scope”
use “apply all”.

The “Global Nets” are


the ones defined in
file/import, which are
dgnd and dvdd.

If the gatelist has 1’b1


or 1’b0, tie high and
tie low connections to
global nets should be
added.

The connection list is


made by adding each
node type at a time. In
the figure dgnd to
GND connection was
made first.
SEI 2021/2022
Innovus P&R João Vaz

• PG rings Using menu “power/power planning/add rings”

There are two ways to add the PG rings:


i) one at each time: In “Net(s)” only one node is written, the metal type and width for each
side is chosen, and the offset to core. Spacing is not used.
ii) all at the same time: The same as i) but with spacing between rings.
SEI 2021/2022
Innovus P&R João Vaz

Additional remarks:

The metals routing has, by default, some rules that are related with the vertical
or horizontal direction of the paths. For example

M1, M3, M5, … prefer to use horizontal direction


M2, M4, M6,… prefer to use vertical direction

If on the layers control window “tracks” are set visible, a grid of track lines will
be visible. The color of these line correspond to the metal colors. The “Pref
tracks” are the preferred and the “NPref tracks” are the non preferred tracks.

This is why, by default, “add rings” menu uses horizontal M1 and vertical M2.

For this simple example M1 and M2 rings will be used.


SEI 2021/2022
Innovus P&R João Vaz

• Special route Using menu “route/special route”

The special route creates M1 horizontal stripes and connect them to PG rings.
These stripes that will have alternatively dgnd and dvdd to bias the STD cells.
Finally, “verifyGeometry” terminal command should be run to check for
possible DRC errors.
SEI 2021/2022
Innovus P&R João Vaz

• Pin’s editor
Using menu “edit/pin editor”
Usually, the previous pins placement is not
the one that the designer wants.
This task can be made after FP, but it will
be explained now when FP and PG rings
are already created.

Using the pin editor form it is possible to:


1) Place pins in a certain IO boundary side
2) Place pins in a certain metal layer
3) Place pins in a certain position

Each modification will be visible in the


layout after pressing apply. Groups of pins can be defined which is useful to
create buses from individual pins.

Finally, it is possible to “assign a fixed status” for selected pins. This way
following design phases like place or route won’t change pin’s locations.
It is important to place pins on tracks and spaced apart of 0.4um multiples.
Use odd metals for horizontal pins, and even metals for vertical pins.

In the end the pins arrangement can be saved in a file for future loading using
the menu “file/save/IO file”.
SEI 2021/2022
Innovus P&R João Vaz

Now the pins are placed on different sides, with a certain order and location.

Left side pins Right side pins

Bottom side pins


SEI 2021/2022
Innovus P&R João Vaz

• Add stripes (optional) Using menu “power/power planning/add stripes”


In large area designs standard cells bias can be improved by placing vertical stripes
connecting PR rings to inner points of horizontal PG rows. This way bias IR drop for cells far
away from rings is minimized.

Usually an upper metal (M7 in this case) is chosen because it has lower resistance than M1-M6.

By the same reason PG rings can be made with higher metals like M6-M8. When using M8, vias
V78 are required but, because of its size, a larger space between core to IO boundary is needed
(the 2.4um of this example is not enough).
SEI 2021/2022
Innovus P&R João Vaz

• Well taps and Endcaps (during FP)


When available well tap cells can be placed in the design to improve n/p wells
bias.

When available endcaps are cells that can be placed in the design for providing
an AC shunt capacitor (MOS type) between P and G. Usually they are placed in
the PG rows extremes.

The pdk in use does not provide this kind of cells.


SEI 2021/2022
Innovus P&R João Vaz

• MMMC configuration Using menu “timing/configure MMMC”


First time configuration can be done with GUI interface. In this technology case only two delay
corners, best case – BC (ff lib and lower RC parasitics), and worth case – WC (ss lib and higher
RC parasitics) can be created.

Configuration can be saved. In the next design initialization, during import design phase, the
saved file can be in included on the bottom of the form.
Note: RC corners should only be created if [Link] file is available. The cap table file can be
generated by encounter if an .ict tech file is available from the PDK.
SEI 2021/2022
Innovus P&R João Vaz

Inputs for timing analysis

MMMC filling for BcWc case, where two corners (ff and ss) are provided in pdk.

Library sets: Timing libraries for BC (ff) and WC (ss) used during synthesis. These
libraries take into account standard cells PTV information.

RC corners: If cap table is only available for typical corner (tt), two RC corners can
be build based on tt. One for +10% R and C dispersion and 125º, other for -10% R
and C dispersion and -40º. RC corners are related with interconnect parasitics.

Delay corners: Build for WC and BC using correspondent timing libraries and RC
corner.

Constraint modes: SDC file from synthesis must be selected.

Views configuration for timing analysis

Analysis views (including setup and hold views): Build for WC and BC using
correspondent delay and RC corner.
SEI 2021/2022
Innovus P&R João Vaz

Menu final commands commands:

Up to a certain FP stage, the design floorplan can be saved and loaded using the
GUI file menu. The saved FP contains also the IO pins location.

Equivalent terminal command:

To save the design FP use the following command


innovus > saveFPlan counter4bit_PG_rings.fp

To load a design FP use the following command


innovus > loadFPlan counter4bit_PG_rings.fp

Before start placing it is advisable to make if CMOS is 130nm


innovus > setDesignMode -process 130

Like this several default options for the following steps are automatically
chosen.

After completing floorplan, the pre-place stage is reached


SEI 2021/2022
Innovus P&R João Vaz

• Timing analysis Using menu “timing/Report timing”

Report timing can be performed in the pre-


place design phase.

Setup type should be performed. Hold type is


only available in Pre-CTS design phase. Output
appears on terminal window.
Worth negative slack (WNS) must be positive.
Total negative slack (TNS) also.

At this design phase (Pre-Place) the gatelist


can be almost equal to synthesis gatelist, so
usually there are no timing problems, except if
the were inherited from synthesis.
SEI 2021/2022
Innovus P&R João Vaz

• Place Using menu “place/place standard cell”

The standard cell are placed in


the core, and by default, an
initial routing draft is made (no
free from drc errors). If the pins
were still in the origin, they are
placed around the die borders
in the most convenient way to
minimize routing.

Pre-Place optimization option is selected by default which it is advisable. The other


options can be seen in “Mode” menu, selecting “Place”.
SEI 2021/2022
Innovus P&R João Vaz

Equivalent terminal command:

To place the design with default options, use the following super command
innovus > placeDesign

Please note that terminal commands cannot exactly have the same options of
menu command. The log file .cmd shows what the menu commands really do.

If necessary, at any stage, the complete design can be erased for starting a new
one by using
innovus > freeDesign

After placement, the pre-CTS stage is reached.


SEI 2021/2022
Innovus P&R João Vaz

• Timing analysis
In pre-CTS an initial not precise routing is
made, so timing analysis should be
repeated.
Setup and Hold should be performed, to
check negative WNS.

Output appears on terminal window.

WNS must be positive and design rules


violation (DRV) absent. Total negative
slack (TNS) also.

• Optimization
Using menu “ECO / Optimize Design”

If negative Setup WNS or DRV were found,


optimization can be performed to solve
them.
SEI 2021/2022
Innovus P&R João Vaz

• CTS (clock tree synthesis)

The Clock Tree Synthesis phase includes buffers/inverters in the clock tree to
cope with fanout and skew. During initial design import phase innovus analyses
and automatically select from .lib standard cells the buffers, inverters and delay
cells that are suitable to use in the clock tree. This choice can be override by
the user.

To perform CTS use the terminal command


innovus > ccopt_design

After CTS, results can be viewed with


innovus > report_ccopt_clock_trees
innovus > report_ccopt_clock_structure

On “Clock/CCOpt Clock Tree Debugger” menu a GUI interface is available.

After CTS, the pos-CTS stage is reached.


SEI 2021/2022
Innovus P&R João Vaz

• Timing analysis
In pos-CTS timing analysis should be
repeated.
Setup and Hold should be performed, to
check negative WNS and DRV.

• Optimization
Using menu “ECO / Optimize Design”

If negative Setup or Hold WNS values and


DRV were found, optimization can be
performed to solve them.
SEI 2021/2022
Innovus P&R João Vaz

• Nano route Using menu “route/nanoroute/route”

The NanoRoute consists of


global Route and then on
detail Route. The previous Post-CTS route is optimized.
Command like “verify_drc” and “verify_connectivity” should be run to see if there are
any errors.
It is possible to chose which metal levels are used in option “Mode”.
SEI 2021/2022
Innovus P&R João Vaz

• Timing analysis
In post-Route timing analysis should be
repeated.
Setup and Hold should be performed, to
check negative WNS.

• Optimization

If negative Setup or Hold WNS values and


DRV were found, optimization can be
performed to solve them.
SEI 2021/2022
Innovus P&R João Vaz

Equivalent terminal command:

To route the design with default options, use the following super command
Encounter > routeDesign

After finishing nanoroute the design stage is post-route

Timing analysis should be performed, and optimization can be repeated.


But for timing analysis to work the following command should be given:

innovus > setAnalysisMode -analysisType onChipVariation


SEI 2021/2022
Innovus P&R João Vaz

• Filler cells Using menu “place/physical cell/add filler”

Filler cells will fill the core empty space and additionally help biasing n-well and p-well on empty space.
Run again “verifyGeometry” and “verifyConnectivity”. The layout is now ready for fabrication.

Please note that one important aspect is neglected during this simple tutorial, the time optimization and
analysis. Additionally, all optimizations were made using default options.
SEI 2021/2022
Innovus P&R João Vaz

• Sign-off

At this stage the design is almost ready for fabrication.

Several analysis should be made, like, timing analysis, final DRC, logical
equivalence (LEC), etc.

innovus > checkDesign –all


can be used to check if there are any errors.

A final gate netlist can be generated with


innovus > saveNetlist counter4bit_pr.v

Common questions

Powered by AI

In Innovus, several techniques are employed to minimize the impact of interconnect parasitics, which can degrade performance and timing. These include the strategic use of routing layers, where metals such as M1, M3, and M5 favor horizontal routing while M2, M4, and M6 are preferred for vertical paths. This preference helps reduce parasitic capacitance and resistance by aligning conductive paths with the lowest resistance routes . Additionally, the software supports the incorporation of upper metal layers for power distribution like M7, which further reduce resistance . MMMC configurations also account for interconnect parasitics by modeling them within their RC corner analyses, providing optimized pathways that account for potential variations .

Clock Tree Synthesis (CTS) in Innovus addresses clock skew and fanout issues by incorporating buffers and inverters into the clock tree. These additions help mitigate the delay differences experienced due to various path lengths, ensuring that clock signals reach each sequential element simultaneously. During the design import phase, Innovus selects suitable buffers, inverters, and delay cells from the standard cell .lib files, optimizing the clock tree's performance . The CTS process involves reporting and adjusting the clock structure to ensure that the clock signal is uniformly distributed across the chip, minimizing skew and effectively managing fanout . The process uses the 'ccopt_design' command for optimization and 'report_ccopt_clock_trees' to analyze the clock tree structure, allowing fine-tuning of the clock routes for optimal performance.

Innovus ensures that the design remains logically equivalent to the synthesized netlist through several verification and optimization steps throughout the P&R process. After each major step such as placement, CTS, and routing, checks are conducted using commands like 'checkDesign –all', which validates the design against logical errors that could have arisen during the transformations . Additionally, Logical Equivalence Checking (LEC) is performed, contrasting the post-P&R netlist with the synthesized netlist to ensure that no functional discrepancies exist. The utilization of constraints and verification reports aids in preserving logical integrity, allowing for iterative verification throughout the design cycle .

Setting up floorplanning contributes to the successful placement of standard cells by defining the layout's size and structure. The core size is chosen to maintain a utilization rate between 60% and 70%, directly affecting the area's efficiency for cell placement . Power routing is achieved by creating power/ground (PG) rings and stripes, which serve as critical paths for power distribution across the chip, ensuring all cells are biased properly. The use of multiple metal layers for PG rings and stripes, combined with correct spacing, minimizes electrical resistance and potential IR drop, thus supporting efficient power distribution . Both steps are fundamental in defining a structured, flexible environment for placing standard cells within the designated areas, ensuring operational reliability.

Timing analysis is crucial at various stages of the P&R workflow to ensure the circuit meets performance requirements and operates reliably. Initially, during the pre-place stage, timing analysis helps to identify any inherited timing problems from the synthesis phase . In the pre-CTS stage, another analysis is needed because the initial placement and routing might introduce new issues. Post-CTS analysis is critical to detecting imbalances introduced by clock skew or fanout problems . Finally, during post-route, timing analysis confirms that all previous stages’ adjustments harmonize, ensuring the WNS and TNS are positive and that the design adheres to all setup and hold constraints. This iterative checking and optimization process ensures timing correctness across all stages, preventing costly design failures .

When defining the core size during the floorplanning stage, it is crucial to consider the utilization rate, targeting around 60% to 70% to balance between layout density and routing flexibility . The core height should align with the standard cells' fixed height of 3.2um, and the width should be a multiple of 0.4um to facilitate alignment with the routing grid. Core-to-IO margins are also kept as multiples of 0.4um to maintain consistency and alignment in design rules. These considerations help ensure that adequate space is available for routing and additional components like power rings, which influences the efficiency of the place and route phases significantly .

Power planning, including the addition of power rings and stripes, is integral to maintaining power integrity and enhancing overall chip performance. Power rings serve as primary conduits for delivering stable power across the chip, reducing IR drop and potential latch-up. They are strategically placed using upper metal layers like M6 to M8, which offer lower resistance . Meanwhile, adding stripes within large designs ensures uniform voltage distribution and mitigates IR drop by connecting various power rail segments in distributed locations across the chip. These elements collectively help in delivering consistent power and grounding, enhancing the reliability of the chip under varying operational loads and reducing electromigration risks . Vias are used effectively to link the rings and stripes across multiple layers, further optimizing vertical power distribution within the chip.

Filler cells play a pivotal role in the final stages of the Innovus P&R process by filling empty spaces within the core. This not only ensures that there are no gaps left between placed standard cells but also assists in biasing n-well and p-well regions, preventing electrical issues like latch-up . The addition of filler cells contributes to a more uniform diffusion and layout density, which is crucial for the validity of design rules before fabrication. Moreover, it aids in DRC (Design Rule Check) compliance, preparing the chip layout for the final sign-off, thereby enhancing the chip's manufacturability and reliability .

A Multi-Mode Multi-Corner (MMMC) configuration enhances the reliability of timing analysis by providing a comprehensive view of the timing uncertainties across different operational conditions. This approach involves using different timing libraries for 'best case' and 'worst case' scenarios, captured as delay corners in the form of BC and WC. By including variations in parameters like voltage, temperature, and process conditions, MMC setups encompass the broad range of conditions a chip might encounter in real-world usage. This ensures robustness, as the design is optimized not merely for a nominal scenario but across a spectrum of possible conditions, reducing the likelihood of failure in varying environments .

The initial steps to configure the Innovus Interface for P&R involve setting up the environment and preparing necessary files. First, create a dedicated directory for organizing designs, such as the 'DIGITAL' directory with a subdirectory 'P_and_R'. Within 'P_and_R', create a directory for the specific project, in this case, 'COUNTER4BIT'. Copy the file 'counter4bit_pr.tar' into this directory and extract its contents using the command '$ tar –xvf counter4bit_pr.tar'. Then, run the script '$ source /opt/ic_tools/init/init-innovus20-11-hf000' to initialize the software. Open the Innovus interface with the command '$ innovus', ensuring not to use 'innovus &' as the terminal needs to be used by the software .

You might also like