Genus Physical Flow
Genus Physical Flow
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
About This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Additional References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Reporting Problems or Errors in Manuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Cadence Online Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Other Support Offerings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Supported User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Man Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Command-Line Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Getting the Syntax for a Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Getting Attribute Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Searching For Commands When You Are Unsure of the Name . . . . . . . . . . . . . . . . 16
Documentation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Text Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Physical Information in Genus Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Physical Flows in Genus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Files Needed for Physical Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Physical Information in the Design Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2
Simple PLE Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Physical Layout Estimation (PLE) Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Attributes Affecting the PLE Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Tasks Associated with PLE Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Reading the LEF Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
RTL Floorplanning Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
RTL Floorplanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Settings Required for predict_floorplan Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Incomplete DEF in RTL Floorplanning Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Recommended Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4
iSpatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Genus iSpatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Attributes Affecting the iSpatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Pre-requisites for iSpatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Tasks Associated with iSpatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Synthesizing the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Analyzing the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Exporting Files for Place and Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Handing off to Innovus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Basic Script for iSpatial Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5
Genus-Physical Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Physical Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Attributes Affecting the Genus-Physical Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6
Structured Data Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
SDP Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
SDF File Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
SDP File Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
datapath Statement Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
column Statement Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
inst Statement Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
row Statement Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
SDP File Syntax Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
SDP Information in the Design Information Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
SDP Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Datapath-SDP Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
FF Column SDP Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
A
Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Preface
Additional References
The following sources are helpful references, but are not included with the product
documentation:
■ TclTutor, a computer aided instruction package for learning the Tcl language:
http://www.msen.com/~clif/TclTutor.html.
■ TCL Reference, Tcl and the Tk Toolkit, John K. Ousterhout, Addison-Wesley
Publishing Company
■ Practical Programming in Tcl and Tk, Brent Welch and Ken Jones
■ IEEE Standard Hardware Description Language Based on the Verilog Hardware
Description Language (IEEE Std.1364-1995)
■ IEEE Standard Hardware Description Language Based on the Verilog Hardware
Description Language (IEEE Std. 1364-2005)
■ IEEE Standard for SystemVerilog--Unified Hardware Design, Specification, and
Verification Language (IEEE STD 1800-2009)
■ IEEE Standard VHDL Language Reference Manual (IEEE Std. 1076-1987)
■ IEEE Standard VHDL Language Reference Manual (IEEE Std. 1076-1993)
■ IEEE Standard VHDL Language Reference Manual (IEEE Std. 1076-2008)
Note: For information on purchasing IEEE specifications go to http://shop.ieee.org/store/ and
click on Publications & Standards.
Customer Support
Cadence offers live and online support, as well as customer education and training programs.
■ Video Library
Several videos are available on the support website: Genus: Video Library
■ Legacy User Interface. Genus can also operate in legacy mode which supports RTL
Compiler commands/attributes and scripting.
To start Genus with legacy UI, you can
❑ Start the tool with legacy UI as follows:
%genus -legacy_ui -files script
....
legacy_genus:/>
❑ Switch to legacy UI if you started the tool with the default common UI.
%genus
genus:root: 13> set_db common_ui false
legacy_genus:/>
Important
This document provides information specific to the common user interface.
Messages
■ You can get detailed information for each message issued in your current Genus run
using the report_messages command.
genus:root:> report_messages
The report also includes a summary of how many times each message was issued.
■ You can also get specific information about a message.
For example, to get more information about the TUI-613 message, you can type the
following command:
genus:root:> vls -a TUI-613
message:TUI/TUI-613 (message)
Attributes:
base_name = TUI-613
count = 0
escaped_name = TUI/TUI-613
help = The user_speed_grade is only applicable to datapath subdesigns.
id = 613
name = TUI/TUI-613
obj_type = message
print_count = 0
priority = 1
screen_print_count = 0
severity = Warning
type = The attribute is not applicable to the object.
If you do not get the details that you need or do not understand a message, either contact
Cadence Customer Support to file a CCR or email the message ID you would like improved
to [email protected]
Man Pages
In addition to the Command and Attribute References, you can also access information about
the commands and attributes using the man pages in Genus.
Command-Line Help
You can get quick syntax help for commands and attributes at the Genus command-line
prompt. There are also enhanced search capabilities so you can more easily search for the
command or attribute that you need.
Note: The command syntax representation in this document does not necessarily match the
information that you get when you type help command_name. In many cases, the order of
the arguments is different. Furthermore, the syntax in this document includes all of the
dependencies, where the help information does this only to a certain degree.
If you have any suggestions for improving the command-line help, please e-mail them to
[email protected]
For example:
genus:root:> help path_group
For example:
genus:root:> help max_transition
This returns the help for the max_transition attribute and shows on which object types the
attribute can be specified.
Documentation Conventions
To aid the readers understanding, a consistent formatting style has been used throughout this
manual.
■ UNIX commands are shown following the unix> string.
■ Genus commands are shown following the genus:root: xx> string.
1
Introduction
Custom wire-load models are considered to be the starting point for synthesis, as they are
more accurate than the vendor-supplied wire-load models. But the disadvantage is that you
need to place the design to create custom wire-load models. In addition, placement depends
on an initial pass of gate generation done with ad hoc methods. Furthermore, custom wire-
load models represent a static view of the design and depend on the netlist used to generate
the placement. As the RTL and constraints change over the design cycle, the custom wire-
load models become increasingly inaccurate. In many cases, the custom wire-load models
generated at the start of the design can be worse than the vendor-supplied wire-load models
at the end of the project.
Physical layout estimation (PLE) uses physical information to model the effects of placement
based on the current state of the RTL and the constraints, and provides you with a level of
analysis and optimization that would not be available with a traditional synthesis methodology.
Furthermore, using physical information gives a level of down-stream predictability that is
superior to using vendor supplied wire-load models. Predictability will enable you to better
gauge how the design will perform after place and route and help to reduce frontend to
backend hand-off iterations. Ultimately, using physical information in synthesis gives you the
opportunity to develop a smaller, faster design in less time than with traditional synthesis.
The following table summarizes the differences between performing synthesis using physical
layout estimation or wire-load models.
You do not need a deep, technical knowledge of physical design to use physical information
in Genus. The usage model is kept simple on purpose and the physical data is as abstract as
possible. Reading through this document should be sufficient to becoming effective in using
physical information in synthesis.
Each flow has a particular purpose. Choosing the best flow depends on design
characteristics and goal objectives.
Summarizing this information from a different perspective. The following table summarizes
each flow and its purpose:
* Turnaround time (TAT) is the time which the tool takes to execute the flow or the runtime of
the flow.
** Prediction is early insight into real timing and placement related issues in the physical
implementation of the design.
Genus
LEF Capacitance
Libraries Table File
Files added
for physical
Optional file
Mandatory or
File type Description
Optional
LEF Mandatory LEF libraries are the physical libraries that
contain information such as layer, via,
placement site type, routing design rules,
process information, and standard cell and
macro cell definitions.
Mandatory or
File type Description
Optional
Capacitance Table Recommended Capacitance tables contain the same type of
parasitic information as the LEF files but the
resistance and capacitance information in
the capacitance table is more detailed and
therefore more accurate than in the LEF file.
The values in a capacitance table comes
from the same process definition files that
drive sign off extraction as well as the
various other extractors used in Cadence
tools.
DEF Recommended DEF files are ASCII files that contain
in the Genus- information that represent the design at any
PLE and Genus- point during the layout process. In Genus,
iSpatial flow, and the DEF is primarily used for floorplan
is required for the information.
Genus-Physical
flow
(genus:root:>)
root
timing
layers
tech sites
vias
The root directory contains the root attributes which apply to all designs that you read in. The
root directory has six main directories.
Directory Description
designs Have several subdirectories each representing a design in memory.
hdl_libraries Contain information about the ChipWare and third party libraries,
and about the Verilog modules and/or VHDL architectures and
entities that were read using the read_hdl command.
libraries Have several subdirectories each representing a technology library
in memory. The physical_cells contain information about the
physical cells that are present in the LEF files (have a LEF MACRO
definition), but not in synthesis libraries.
messages Contain all information for all messages that can be displayed
during an Genus session. Physical-related messages are stored in
the INVS, PHYS, and PLC subdirectories.
obj_types List all attributes for all database objects (designs, modules, pins,
and so on) in the design hierarchy.
Each design also has a physical directory with the following subdirectories:
Subdirectory Description
blockages Information about the BLOCKAGES defined in the DEF file.
bumps Information about the solder bumps on the chip. A BUMP is
instantiated in the DEF COMPONENTS section but is not
instantiated in the netlist.
def_pins Information about external pins in the design. The information
is based on the PIN statement in the DEF file.
fills Information about every metal FILL defined in the DEF file.
gcells information about the global routing cells (gcell). Gcells are
derived from the GCELLGRID statements in the DEF file.
groups Information about the GROUPS defined in the DEF file.
layers Information about the metal layers defined in the LEF or
capacitance table file.
Subdirectory Description
pcells Information about the physical cells (pcell) instantiated in the
COMPONENTS section of the DEF file. Pcells are not instantiated
in the netlist.
pdomains Physical information about the power domains defined in the
DEF file.
pnets Information based on the NETS section in the DEF file.
regions Information about every REGION defined in the DEF file.
rows Information about every ROW defined in the DEF file.
route_rules Information based on the NONDEFAULTRULES statement in
the DEF file.
sites Information based on the SITE statement in the LEF file.
slots Information about the slotting of the wires in the design. The
information is based on the SLOTS statement in the DEF file.
specialnets Information based on the SPECIALNETS statement in the DEF
file.
styles Information based on the STYLES statement in the DEF file.
tracks Track (or routing grid) information for each layer. The
information is based on the TRACKS statements in the DEF
file.
vias Information about fixed vias and generated vias. The via names
correspond to the via names specified in the VIAS statement.
2
Simple PLE Flow
Start
Target
Read timing libraries
libraries
LEF
Read LEF libraries
libraries
Capacitance
file Load parasitic information
QRC tech
file
Synthesize No
Export design
Optional task Yes
2. Use the get_db command to confirm the list of imported LEF files:
In simple-PLE flow, the cell area defined in the LEF libraries is used instead of the cell area
defined in the timing library (.lib).
Genus will check whether the following definitions are in the LEF file:
■ CAPACITANCE CPERSQ
■ EDGECAPACITANCE
■ RESISTANCE RPERSQ
■ SITE
■ WIDTH
If any of these definitions are missing, Genus will issue a warning message.
Genus supports LEF 5.8 and above. Refer to the LEF/DEF Language Reference for more
information on LEF files.
Related Topics
■ lef_library
MACRO definitions
If there is at least one MACRO definition in the LEF file, Genus checks if all the cells in the
timing library have a corresponding definition in the LEF library. Any cells that are defined in
the timing library but not in the LEF will be marked as avoid (they will not be used during
synthesis) and a warning message will be issued. The resistance and capacitance
information can be found in the capacitance table file.
Note: Genus supports LEF 5.8 and above. Refer to the LEF/DEF Language Reference for
more information on LEF files.
Check if the lef_library attribute was set more than once or was part of a loop.
In the following example, the existing LEF file is replaced because it specifies the files
separately with two set_db commands as opposed to a Tcl list with one set_db command.
genus:root:> set_db lef_library tech.lef
genus:root:> set_db lef_library cell.lef
The capacitance in a LEF comes from a foundry and is generated by whatever process it sees
as appropriate. The capacitance information in a capacitance table or QRC technology file
comes from the same process definition files that drive sign off extraction as well as the
various other extractors used in Cadence tools. The process definition files define layer
thicknesses, compositions, and spacing.
Scaling factors are used to align a design with a particular process. A capacitance table is
process specific where as a scaling factor is design specific. The scaling factors are provided
to be consistent with Innovus. Only use a scaling factor if it will also be used in the back-end.
1. Use the cap_table_file attribute to load the capacitance table file:
genus:root:> set_db cap_table_file my.cap
Note: If you specify both a capacitance table file and a QRC technology file, the QRC
technology file takes precedence.
Genus will check if the following information is available in the parasitic file:
■ PROCESS_VARIATION
■ BASIC_CAP_TABLE
■ width
■ Cc
■ Carea
■ Cfrg
If any of these definitions are missing, Genus will issue a warning message. It will purposely
disregard the EXTENDED_CAP_TABLE section because the PLE is intended to synchronize
with a view of the design where fast extractors are typically used.
Tip
For best results, the corner for the parasitic file used should match the corner for the
timing library. That is typically max or worst.
Related Topics
■ cap_table_file
■ qrc_tech_file
After you load both your LEF and parasitic files, Genus will perform consistency checks
between the two files. This happens automatically, much like the check between the LEF and
timing library files.
■ Number of Layers — Genus will check to determine if the number of layers defined in
the LEF and the parasitic files are equal.
If the LEF has more layers than the parasitic file, then an error message will be issued
and you will need to manually check both of the files to resolve the inconsistency.
If the parasitic file has more layers than the LEF, a warning message will be issued and
the number of routing layers will be set to the number specified in the parasitic file.
■ Width of Layers — Genus will check to determine if the width of the layers defined in
the LEF and the parasitic files are equal. A warning will only be issued if the width
difference defined in the two files is greater than 10%.
Genus reports the inconsistencies in the log file. Review the log file for the same. For
example, check for messages PHYS-15 through 27.
Capacitance
Layer / Length Data source:
Name Direction Utilization (pF/micron) cap_table_file
------------------------------------------------
M1 H 0.00 0.000274
M2 V 1.00 0.000242
M3 H 1.00 0.000242
M4 V 1.00 0.000242
M5 H 1.00 0.000242
M6 V 1.00 0.000304
Resistance
Layer / Length Data source:
Name Direction Utilization (ohm/micron) lef_library
-------------------------------------------------
Metal1 H 0.00 0.439130
Metal2 V 1.00 0.360714
Metal3 H 1.00 0.360714
Metal4 V 1.00 0.360714
Area
Layer / Length Data source:
Name Direction Utilization (micron) lef_library
-------------------------------------------------
Metal1 H 0.00 0.230000
Metal2 V 1.00 0.280000
Metal3 H 1.00 0.280000
Metal4 V 1.00 0.280000
Metal5 H 1.00 0.280000
Metal6 V 1.00 0.440000
Note: The Interconnect mode in the report header is set to global, which indicates that
you are running in PLE mode.
Related Topics
■ report_ple
These modes are set using the interconnect_mode attribute. To test and set this mode,
follow these steps:
1. The interconnect_mode attribute is automatically set to ple when you read in LEF
libraries.
2. To switch to the wireload mode, manually set the interconnect_mode attribute to
wireload after loading the LEF libraries.
Note: Do not change this setting for PLE or Genus-P flows.
Related Topics
■ interconnect_mode
In Genus, you provide floorplan information through a DEF file. DEF files can contain both
logical information and physical information.
■ Logical information includes grouping information and physical constraints
■ Physical information includes
❑ The die or block bounding box
The die determines the placement area and therefore influences the net length.
❑ Pin and macro locations
These influence the standard cell placement and thus the net length.
The DEF file must define the die size. For better synthesis results, you should also have
the pin, macro locations, and standard cell placement specified in the DEF.
2. Use the def_file attribute to check which DEF is loaded in the tool:
genus:root:> get_db design:design_name .def_file
Genus will perform a consistency check between the DEF and the Verilog netlist and issue
relevant messages if necessary. For example:
Parsing DEF file...
Warning : DEF parser message. [PHYS-155]
: WARNING (DEFPARS-7019): The PATTERNNAME statement is obsolete in version
5.6 and later.
Warning : Component not present in netlist. [PHYS-171]
: The component ’IOPADS_INST/Pcornerll’ does not exist.
: This message has a default max print count of ’25’, which can be
changed by setting the ’max_print’ attribute.
Warning : Component not present in netlist. [PHYS-171]
: The component ’IOPADS_INST/Pcornerlr’ does not exist.
...
Done parsing DEF file (time 0s).
An example of DEF statistics printed after the DEF file has been processed:
Components
----------
Cover: 0
Fixed: 71
Physical: 0
Bump: 0
Placed: 0
Unplaced: 1
TOTAL: 72 (1 is class macro)
Pins
----
Cover: 0
Fixed: 0
Physical: 5
Placed: 0
Unplaced: 57
TOTAL: 62
Nets
----
Read: 0
Skipped: 0
TOTAL: 0
SpecialNets
-----------
Read: 2
Skipped: 0
TOTAL: 2
Fences: 0
Guides: 1
Regions: 1
Done processing DEF file.
========================
Physical Message Summary
========================
Note: Genus supports DEF 5.8 and above. Refer to the LEF/DEF Language Reference
for more information on DEF files.
Related Topics
■ def_file
■ read_def
Cover A component that has a location and is a part of A large number of cover cells can indicate that
a cover macro. A COVER component cannot be the DEF file is not a floorplan but instead
moved. could be the DEF for a fully placed design.
Fixed A component that has a location and that cannot All components in a floorplan DEF should be
be moved by automatic tools. set as fixed to avoid unwanted movement
during placement
Physical A component that is instantiated in the DEF but A large number of physical components can
not in the netlist. indicate that the DEF is not a floorplan DEF.
Placed A component that has a location and that can be These components are not expected in a
moved by automatic tools. floorplan.
Unplaced A component that has no location. These components are not expected in a
floorplan.
class A large component. For example, a memory. The number of class macros should be less
macro than or equal to the number of fixed
components.
Related Topics
■ Glossary
■ read_def
Instance Module Cells Count Cell Area Net Area Total Area
-----------------------------------------------------------------------------
DTMF_CHIP 4969 1218398 74621 1293018
IOPADS_INST iopads 67 721450 0 721450
DTMF_INST dtmf_recvr_core 4902 496948 71032 567980
TDSP_CORE_INST tdsp_core 2831 74538 41884 116422
MPY_32_INST mult_32 775 21339 10900 32238
M16X16_INST m16X16 592 18422 7083 25505
EXECUTE_INST execute_i 631 21472 7071 28543
ALU_32_INST alu_32 583 8898 7730 16628
TDSP_CORE_GLUE_INST tdsp_core_glue 458 8073 5268 13341
DECODE_INST decode_i 157 5279 1394 6673
PROG_BUS_MACH_INST prog_bus_match 57 2628 474 3102
PORT_BUS_MACH_INST port_bus_match 57 2635 466 3100
DATA_BUS_MACH_INST data_bus_match 55 2644 437 3081
TDSP_CORE_MACH_INST tdsp_core_match 36 1221 383 1604
ACCUM_STAT_INST accum_stat 17 316 119 435
RAM_256x16_TEST_INST ram_256X16_test 17 113630 132 113762
RAM_128x16_TEST_INST ram_128X16_test 17 100778 132 100910
RESULTS_CONV_INST result_conv 1779 46573 23785 70358
ARB_INST arb 22 69455 233 69688
SPI_INST spi 45 2415 509 2924
DMA_INST dma 45 1943 454 2396
ULAW_LIN_CONV_INST ulaw_lin_conv 58 1207 592 1800
DATA_SAMPLE_MUX_INST data_sample_mux 28 659 85 744
DIGIT_REG_INST digit_reg 10 725 0 725
TDSP_DS_CS_INST tdsp_ds_cs 22 446 123 568
TDSP_MUX tdsp_data_mux 17 439 12 451
The Interconnect mode in the report header is still set to global because in the
simple PLE flow the design is synthesized without placement information.
The report shows the total count of cells mapped against the hierarchical blocks, the
combined cell area in each of the blocks and the top level design. The Cell Area
numbers are based on the information in the LEF libraries. The Net Area refers to the
estimated post-route net area and is based on the minimum wire widths defined in the
LEF and capacitance table files and the area of the design blocks.
2. Use the report_qor command to get an overall report containing slack information,
instance count, area information, cell power, runtime, and host name information.
genus:root:> report_qor
==============================================================
Generated by: Genus(TM) Synthesis Solution version
...
...
Interconnect mode: global
Area mode: physical library
==============================================================
Timing
--------
Clock Period
--------------
vclk1 5000.0
vclk01 5000.0
vclk2 5000.0
vclk02 6000.0
Instance Count
--------------
Leaf Instance Count 4969
Physical Instance Count 0
Sequential Instance Count 546
Combinational Instance Count 4423
Hierarchical Instance Count 26
Area
------------
Cell Area 1216937.389
Since you performed physical synthesis and started with a floorplan, the report also
contains the floorplan utilization in %.
Related Topics
■ report_area
■ report_qor
■ Timing derate file (.derate.tcl) — generated when Genus changed the default timing
derate values
Related Topics
■ write_design
3
RTL Floorplanning Flow
RTL Floorplanning
The early-physical and iSpatial flow in Genus involves placement of synthesized logic and,
hence, provides better correlation and prediction of back-end QOR. But, this flow requires a
floorplan. If, however, a floorplan DEF is not available, Genus can create one based on target
utilization.
Hence, if either no DEF file has been read (during early design stages), or, an incomplete
DEF has been read, you can use the RTL Floorplanning Flow. This flow calls Innovus for
creating a floorplan. This floorplan will be of sufficient quality to perform Genus functions but
will not include power routing, end-caps, and other such information.
Start
Perform elaboration
Apply constraints
Predict Floorplan
Synthesize
Handoff to Innovus
Note: This floorplan is just a rough starting point. You should carefully create a floorplan
based on the needs of the design. Things like the floorplan size, port locations, macro
placement, obstructions, and regions can have a very significant impact on the timing,
congestion, and overall QOR. The Genus-created floorplan is a very preliminary estimate of
the design QOR while running the iSpatial Flow.
Related Topics
■ iSpatial Flow
Related Topics
■ predict_floorplan_enable_during_generic
■ physical_force_predict_floorplan
■ predict_floorplan
In case a viable DEF is not loaded, Genus will error out during iSpatial flow (syn_opt -
spatial). To overcome this, set the physical_force_predict_floorplan attribute to
true. This will indicate Genus to invoke Innovus to create the floorplan first and then initiate
the iSpatial flow.
genus:root: > set_db physical_force_predict_floorplan true
Note: If you have to place the macros using this flow, it will check out the
Innovus_GigaPlace_GXL_Opt License.
In case Innovus is not invoked, it is safe to presume that Genus considers that floorplan DEF
provided with the netlist is complete.
Related Topics
■ physical_force_predict_floorplan
Recommended Flow
set_db invs_temp_dir invs_temp_dir
set_db innovus_executable path_to_innovus_build
...
set_db predict_floorplan_enable_during_generic true
set_db physical_force_predict_floorplan true; # if an incomplete input floorplan
is read before syn_generic
syn_generic -physical
syn_map -physical
set_db physical_force_predict_floorplan false; # to disable executing
predict_floorplan again
syn_opt -spatial
...
4
iSpatial Flow
The iSpatial flow in Genus uses internal engines of Innovus for physical synthesis. This helps
realize a unified placement, routing, and optimization engine from front-end to back-end. This
helps to improve predictability of front-end synthesis to back-end placement and routing,
reducing optimization efforts that waste runtime, area, and power; and hence, shorter
turnaround time. The resulting layout can be directly taken into Innovus for further incremental
preCTS optimization. The flow can also be used to deliver quick feedback on floorplan quality.
The iSpatial flow also introduces physical restructuring. After placement and physical
optimization, the netlist can be restructured to improve the design efficiency and optimize
timing—when the true critical paths are visible.
This flow also supports Cadence or third-party DFT IP, which minimizes the impact of test on
PPA. It uses the scan reordering engine from the Innovus system, estimating congestion and
QoR in an earlier stage of the whole process, improving the consistency of the front-end and
back-end.
The whole flow runtime of the iSpatial flow has also been greatly reduced from bringing a
higher quality design into the Innovus system. Without having to optimize the placement, the
Innovus system only does incremental optimization, therefore converging timing quickly.
Start
Design setup
iSpatial setup
Synthesize
Analyze
Handoff to Innovus
For the most common features, dedicated Genus attributes have been created to pass down
the flow configuration into the Innovus iSpatial call. Any other feature not available in Genus
via attribute can be injected into the flow via the postload script.
Note: Use of a postload file is under limited access and needs a special key. Contact
Cadence support in case you need to use a postload file. You then need to set the keys via
the limited_access_feature attribute, as shown in the following example:
set_db limited_access_feature [list
{syn_opt_ispatial_restricted_features NNN} \
]
Related Topics
■ MMMC Flow
2. To get an overall report containing slack information, instance count, area information,
cell power, runtime, and host name information, use the report_qor command.
3. To print an area report, use the report_area command.
The timing information after iSpatial is based on accurate extraction data from Innovus and,
thus, correlates very well with timing seen after importing the design into Innovus.
Related Topics
■ report_qor
■ report_area
Only the DB handoff passes the placement information to Innovus. DB contains information
that tells Innovus that a full place_opt_design is not required. Only the database handoff
ensures that a lot of the design setup like MMMC configuration, design-specific attributes like
dont_touch, dont_use are passed in a consistent manner between the tools. Hence, it is
recommended to not use the -incremental switch when running Innovus
place_opt_design in either handoff modes.
Note: When attribute opt_spatial_effort is set to extreme, write_db -innovus -
db would do DB handoff with placement and route information and pre-CTS would run in
incremental mode automatically. Also, if opt_spatial_effort is extreme, you can force
netlist handoff by using write_design -innovus -db -handoff false
read_def DESIGN/floorplan/xxx.def
#early physical flow
syn_generic -physical
syn_map -physical
#iSpatial call
syn_opt -spatial
#reports
report_qor
write_snapshot -directory output_directory -tag final
5
Genus-Physical Flow
■ Physical Flow
■ Attributes Affecting the Genus-Physical Flow
■ Tasks Associated with Genus-Physical Flow
■ Sample Script for Genus-Physical Flow
Physical Flow
In addition to using technology information and cell areas from the LEF libraries, and parasitic
resistance and capacitance values from the LEF libraries or capacitance tables, the Genus-P
flow uses a complete placement and considers congestion and legal placement as a cost
function during the RTL-to-gates phase, to create a better netlist. This flow ensures both the
best accuracy and the most predictable closure with back-end tools.
Start
Target
libraries
Read timing libraries
No
Synthesize, estimate, and optimize for
silicon with syn_gen, syn_map, Meet
syn_opt -physical constraints?
Task added for
Physical
Analyze Yes
Export design
2. If this attribute is not set, the following (default) search order is used:
❑ Innovus environment variable
❑ PATH environment variable
❑ CDN_SYNTH_ROOT environment variable
predict_floorplan
[-constraints file] [-script string] [design]
To use this command, you need to have the Innovus License and set the
innovus_executable attribute:
Alternatively, you can use the predict_floorplan_script attribute in place of the
-script option and set the predict_floorplan_constraints attribute for the
-constraints option for this command.
set_db innovus_executable <path_to_innovus>
Related Topics
■ predict_floorplan
■ innovus_executable
Tip
When using physical-aware mapping in the Genus-Physical flow, you do not need to
use the create_ple_model flow. The PLE data is automatically generated based
on internally generated placement and using the native parasitic extraction engine.
If the PLE model is stale, the tool will issue warnings indicating a possible number of reasons
why the model might not be valid. Check the header of the encrypted file for clues.
When you compare the PLE report with the PLE report when no generated PLE data are
used, you see that the Data source for the capacitance and resistance values is no longer the
cap_table_file, but user override, because the values are based on trialRoute
extraction.
.......
Interconnect mode: global
Area mode: physical library
============================================================
Aspect ratio : 0.98
Shrink factor : 1.00
Scale of res/length : 1.00
Scale of cap/length : 1.00
Net derating factor : 1.00
Thermal Factor : 1.00
Via Resistance : 6.40 ohm (from lef_library)
Site size : 5.70 um (from lef [tech+cell])
Capacitance
Layer / Length Data source:
Name Direction Utilization (pF/micron) user override
------------------------------------------------------------------
<extracted> U n/a 0.000126
<extracted> V n/a 0.000128
<extracted> H n/a 0.000125
Resistance
Layer / Length Data source:
Name Direction Utilization (ohm/micron) user override
------------------------------------------------------------------
<extracted> U n/a 0.353355
<extracted> V n/a 0.353355
<extracted> H n/a 0.353355
Area
Layer / Length Data source:
Name Direction Utilization (micron) lef_library
------------------------------------------------------------------
Metal1 H 1.00 0.230000
Metal2 V 1.00 0.280000
...
Metal6 V 1.00 0.440000
Related Topics
■ Generating PLE Correlation Data
The syn_opt -physical command calls the Innovus place and route tool to create a
good quality initial placement.
Important
You will need the Genus Physical Option (GEN40) to execute the command and to
access an Innovus executable. It is highly recommended to use the same version of
Innovus as Genus, or at most one version older.
The syn_opt -physical command will not work with encrypted netlists.Therefore,
decrypt your netlist before using this command.
2. The tool generates several Innovus interface files during the syn_opt -physical
command. Files with the genus2invs prefix can be used to transfer data from Genus to
the Innovus place and route tool. Files with the invs2genus prefix can be used to
transfer data from the place and route tool to Genus. Before you use the syn_opt
-physical command, set the following root attribute to specify the directory where
these files should be stored.
genus:root:> set_db invs_temp_dir directory
Tip
Setting this attribute prevents deletion of the directory. In case you encounter a
program failure, you can use these files to restore the session.
In the Genus Physical flow, the assign statements inserted by Innovus on constants will not
be removed by default, because inserting extra buffers to remove assigns on constants could
lead to higher congestion. To remove assigns on constants after the Physical flow, use the
following command:
remove_assigns_without_optimization -dont_skip_unconstrained_paths \
-design design
Note: The command will not remove assignment statements when this could lead to an NEQ.
Related Topics
■ invs_temp_dir
The Interconnect mode in the report header is now set to placement because the
design is synthesized using detailed placement information.
The report shows the total count of cells mapped against the hierarchical blocks, the
combined cell area in each of the blocks and the top level design. The Cell Area
numbers are based on the information in the LEF libraries. The Net Area refers to the
estimated post-route net area and is based on the minimum wire widths defined in the
LEF and capacitance table files and the area of the design blocks.
2. To get an overall report containing slack information, instance count, area information,
cell power, runtime, and host name information, use the report_qor command.
genus:root:> report_qor
===============================================================
Generated by: Genus(TM) Synthesis Solution version
...
Interconnect mode: placement
Area mode: physical library
===============================================================
Timing
--------
Clock Period
--------------
vclk01 5000.0
vclk02 5000.0
vclk1 5000.0
vclk2 6000.0
Instance Count
--------------
Leaf Instance Count 5304
Physical Instance Count 0
Sequential Instance Count 546
Combinational Instance Count 4758
Hierarchical Instance Count 1
Area
------------
Cell Area 1225632.599
Physical Cell Area 0.000
Total Cell Area (Cell+Physical) 1219518.676
Net Area 98646.488
Total Area (Cell+Physical+Net) 1318165.164
Physical Data
-------------
Total Net Length 352308.89 um
Average Net Length 60.62 um
Routing Congestion H: 0.08% V: 0.03%
Because you executed the syn_opt -physical command, the QoR report also
contains a Physical Data section that lists the total and average net length in micron,
and the routing congestion in %. Routing congestion is a measure of track overflow.
Related Topics
■ report_area
■ report_qor
Use the -base_name option to specify both an output directory and a custom basename:
genus:root:> write_design -innovus -base_name output/final
Related Topics
■ write_design
6
Structured Data Path
■ SDP Capability
■ SDF File Syntax
❑ SDP File Skeleton
❑ column Statement Syntax
❑ inst Statement Syntax
❑ row Statement Syntax
❑ SDP File Syntax Summary
■ SDP Information in the Design Information Hierarchy
❑ Row with several instances
■ SDP Flows
SDP Capability
Genus with the Genus Physical Option allows you to specify Structured Data Path (SDP)
information to get better performance, power, and area.
You can specify the SDP information by importing an SDP relative placement file. Correct
SDP placement ensures uniform routing.
Important
SDP is a semi-custom methodology that requires manual intervention so you need
to have detailed design knowledge in order to get better speed, power, and area.
The tool makes it easy for you to try different SDP experiments and evaluate their
impact on congestion, timing, and power. However, the tool still relies on the relative
placement information you specify for placing and handling SDP elements.
SDP provides a uniform environment for data path and control logic for placement, routing,
and timing analysis.
SDP controls data path cell placement so that SDP cells are fixed before normal placement
for other standard cells.
The main advantage of this SDP placement is that it ensures uniform routing.
literal or boldface Non-italic words indicate keywords that you must type literally.
They can only be used in the places indicated by the syntax.
Keywords are case insensitive.
italic Words in italics indicate user-defined arguments for which you
must substitute a name or a value.
| Vertical bars (OR-bars) separate possible choices for a single
argument.
[ ] Brackets denote options. When used with OR-bars, they
enclose a list of choices from which you can choose one.
{ } Braces denote arguments and are used to indicate that a
choice is required from the list of arguments separated by OR-
bars. You must choose one from the list
{ argument1 | argument2 | argument3 }
Braces, used in Tcl command examples, indicate that the
braces must be typed in.
... Three dots (...) indicate that you can repeat the previous
argument. If the three dots are used with brackets (that is,
[argument]...), you can specify zero or more arguments. If
the three dots are used without brackets (argument...), you
must specify at least one argument, but can specify more.
{ } Braces in bold-face type must be entered literally.
Related Topics
■ SDP File Syntax Summary
■ row Statement Syntax
■ column Statement Syntax
■ inst Statement Syntax
Related Topics
■ row Statement Syntax
flip {X | Y | XY} Specifies to flip the instance around the X or Y axis, or both.
Default: Y
justifyBy {SW|SE|NW|NE|N|W|S|E|MID}
Specifies the anchor point that will be used to align the
instance.
Default: SW
name Specifies the name of the instance.
orient {R0|R90|R180|R270|MX|MY|MY90|MX90}
Specifies the orientation to be set for the instance.
Default: R0
[ skipSpace Val
| inst name [orient {...}] [justifyBy {...}] [flip {...}]
| column column {
[ orient {...}]
[ justifyBy {...}]
[ flip {...}]
[ skipSpace Val
| inst name [orient {...}] [justifyBy {...}] [flip {...}]
| row row {
[ orient {R0|R90|..}]
[ justifyBy {NW|SW|SE|NE|W|E|N|S|MID}]
[ flip {X| Y| XY}]
[ skipSpace Val
| inst name [orient {...}] [justifyBy {...}] [flip {...}]
| colomn column {... }]...
}
}...
}...
}...
datapath name {
[hierPath name]
[origin x y]
column column {
[ orient {R0|R90|..}]
[ justifyBy {NW|SW|SE|NE|W|E|N|S|MID}]
[ flip {X| Y| XY}]
[ skipSpace Val
| inst name [orient {...}] [justifyBy {...}] [flip {...}]
| row row {
[ orient {...}]
[ justifyBy {...}]
[ flip {...}]
[ skipSpace Val
| inst name [orient {...}] [justifyBy {...}] [flip {...}]
| column column {
[ orient {R0|R90|..}]
[ justifyBy {NW|SW|SE|NE|W|E|N|S|MID}]
[ flip {X| Y| XY}]
[ skipSpace Val
| inst name [orient {...}] [justifyBy {...}] [flip {...}]
| row row {... }]...
}
}...
}...
}...
(genus:root:>)
root
design
SDP
constants
cpf
dex_settings
dft
hinsts
insts
instances_seq
modes
nets
hnets
port_busses_out
ports_in
ports_out sdp_instances
The design hierarchy has a directory for datapath components, columns, rows, and instances.
To represent spaces between rows, columns, and instances, the concept of dummy rows,
columns, and instances was introduced. For each row, column, or instance defined in the
SDP file a corresponding dummy is added:
■ skip_column_x
■ skip_row_x
■ skip_instance_x
Each dummy item has the same attributes as the corresponding actual items, but only two
attributes are relevant: index and skip_value. These attributes give an indication of the
position of the empty spaces and how many empty spaces there are. See the examples below
for more information.
SDP file
datapath my_row {
row adder {
justifyBy SW
inst inMux
inst inFF
inst leftShifter
inst rightShifter
inst outFF
inst outMux
}
}
Visual Representation
/designs/test/sdp_groups/my_row/
/designs/test/sdp_groups/my_row/sdp_columns ;empty
/designs/test/sdp_groups/my_row/sdp_rows/
/designs/test/sdp_groups/my_row/sdp_rows/adder
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_columns ;empty
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/skip_instance_0
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/skip_instance_1
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/skip_instance_2
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/skip_instance_3
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/skip_instance_4
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/skip_instance_5
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/inFF
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/inMux
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/leftShifter
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/outFF
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/outMux
/designs/test/sdp_groups/my_row/sdp_rows/adder/sdp_instances/rightShifter
/designs/test/sdp_groups/my_row/sdp_rows/skip_row_0/
/designs/test/sdp_groups/my_row/sdp_rows/skip_row_0/sdp_columns ;empty
/designs/test/sdp_groups/my_row/sdp_rows/skip_row_0/sdp_instances ;empty
In this example, one actual row was created with 6 instances (shown in blue). The tool created
dummy entries for each of these actual SDP items (shown in red). Since the SDP file has no
skipSpace statements, the skip_value will be 0 for all the dummy entries.
SDP file
datapath mydp {
row adder {
justifyBy SW
column inMux {
inst M0
inst M1
inst M2
}
column inFF {...}
skipSpace 2
column outFF {...}
column outMux {...}
}
}
Visual Representation
/designs/test/sdp_groups/mydp
/designs/test/sdp_groups/mydp/sdp_columns ;empty
/designs/test/sdp_groups/mydp/sdp_rows
/designs/test/sdp_groups/mydp/sdp_rows/adder
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inFF
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inFF/sdp_instances/...
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inFF/sdp_rows/...
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_instances
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_instances/M0
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_instances/M1
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_instances/M2
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_instances/skip_instance_0
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_instances/skip_instance_1
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_instances/skip_instance_2
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/inMux/sdp_rows ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/outFF
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/outFF/sdp_instances/...
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/outFF/sdp_rows/...
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/outMux
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/outMux/sdp_instances/...
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/outMux/sdp_rows/...
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_0
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_0/sdp_instances ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_0/sdp_rows ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_1
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_1/sdp_instances ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_1/sdp_rows ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_2
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_2/sdp_instances ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_2/sdp_rows ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_3
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_3/sdp_instances ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_columns/skip_column_3/sdp_rows ;empty
/designs/test/sdp_groups/mydp/sdp_rows/adder/sdp_instances ;empty
/designs/test/sdp_groups/mydp/sdp_rows/skip_row_0
/designs/test/sdp_groups/mydp/sdp_rows/skip_row_0/sdp_colums ;empty
/designs/test/sdp_groups/mydp/sdp_rows/skip_row_0/sdp_instances ;empty
This example has one actual row with 4 columns (shown in blue). The first column has 3
instances. The dummy entries for each of these actual SDP items are shown in red. The SDP
file has one skipSpace statement, the skip_value will be 2 for skip_column_1.
SDP Flows
There are two flows using Genus Physical and Innovus
■ Datapath-SDP Flow or Combinational Flow
■ FF Column SDP Flow
The type of flow can be set through the attribute sdp_type. The default value is no_value.
These flows read in an SDP file which describes the relative placement of structured datapath
elements in the design. To read in a SDP relative placement file, use the read_sdp_file.
Related Topics
■ sdp_type
■ read_sdp_file
■ FF Column SDP Flow
Datapath-SDP Flow
Also known as the Combinational Flow, this flow is used for large SDP blocks in the design
as shown in the figure.
A
Terminology
■ Abbreviations
■ Glossary
Abbreviations
Glossary
Index
A simple PLE flow 45
SDF file
attributes syntax 79
cap_table_file 34, 35 SDP file
def_file 38 reading in 90
innovus_executable 68, 69
interconnect_mode 37
lef_library 33
predict_floorplan_constraints 69
predict_floorplan_script 69
qrc_tech_file 34, 35
C
cells
reporting cell count 42, 72
commands
predict_floorplan 68
read_def 38
read_sdp_file 90
report_area 41, 59, 72
report_ple 36, 37
report_qor 42, 43, 59, 72, 73
syn_opt -physical 70, 71
write_design -innovus 43, 59, 74
D
design information hierarchy
physical information 25
SDP information 85
P
physical information
in design hierarchy 25
S
scripts
Genus-Physical flow 75
ispatial flow 61