Skip to content
Ch 02 / 16 Chapter 2: Design import and database sanity
CHAPTER 2

Design import and database sanity

Import turns a netlist, a set of libraries and a technology description into one design database. The qualification question is whether that database contains the intended design, completely bound to the intended libraries, with nothing silently dropped or invented on the way in.

2.1 Stage purpose

In the Legacy UI, a design is loaded by setting a group of Tcl global variables and then calling init_design. The globals name the Verilog netlist (init_verilog), the LEF files (init_lef_file), the MMMC view file (init_mmmc_file), the top cell (init_top_cell), and the power and ground net names (init_pwr_net, init_gnd_net). init_design can only be called when no design or library data is loaded yet, which is one more reason chapter 1 insists on a fresh session.

In the Common UI, the RAK lab loads the same kind of data as a sequence: read_mmmc, read_physical -lefs, elaborate_design -script, then init_design. The lab is a synthesis flow that starts from RTL, so it does not show how a gate-level netlist is read for place and route. That step is still to be confirmed.

init_design also creates a default floorplan: a square box at 70 percent utilisation, default rows and tracks taken from the technology LEF. These are placeholders, not an intended floorplan.

Import can succeed with problems inside it. A cell that has a LEF view but no timing model loads, places and routes, and simply has no delay. A module instantiated twice loads normally, and only fails later when an optimisation step needs to change one instance without the other. Thus, the import gate is about what the tool accepted with a warning, not about whether it stopped.

2.2 Entry prerequisites

Must already be trueWhy
Chapter 1 passed in this sessionImport results are only comparable within a qualified session.
The netlist comes from a known synthesis run, with its cell and port countsThe inventory check compares against these numbers.
Technology LEF first in the LEF list, then cell and macro LEFsCell LEFs refer to layers and sites the technology LEF defines. If a cell is defined twice, only the first geometry is read.
The MMMC file names every library set the views needLibraries are loaded through the views, not separately.
The list of intended exceptions is written down: physical-only cells, logical-only cells and black boxesWithout it, a missing view cannot be told apart from an intended one.
The power and ground net names and library PG pin names are knownglobalNetConnect needs both.

2.3 Relevant files and analysis context

The inputs are the gate-level Verilog, technology and cell LEF, macro LEF abstracts, Liberty timing libraries referenced by the MMMC file, and the PG net names. Timing views are created at import, but timing correctness belongs to chapter 3. Here we only need the libraries to be bound.

Logical view: what the netlist saysPhysical view: what exists as metalU1U2U3net n1U1U2U3unplaced: no location, no wireVDD pins tied to net VDD (globalNetConnect)no rails or stripes until power planningcheckDesign -netlist, checkNetlist: should be cleanverifyConnectivity: unrouted nets expected here
Figure 3. Logical and physical connectivity right after import
Read it. The left panel is what the netlist and globalNetConnect create. The right panel is what exists as geometry: pins, but no wires, no rails and no cell locations. A physical connectivity check at this stage reports unrouted nets, and that is expected.

Figure 3 shows a distinction that causes confusion at import. Logical connectivity is present as soon as the netlist is read: every connection the netlist states exists, and floating pins are what the checks look for. Power and ground pins belong to a net only after globalNetConnect ties them, because a gate-level netlist often leaves them implicit. Physical connectivity does not exist yet. Thus, an unrouted-net count from a physical check at this point is not a failure, while a dangling or multiply driven net in the logical checks is.

2.4 Checks and command cards

2.4.1 Pre-stage checks

Before init_design, the only checks are on the inputs themselves: the files exist, the LEF order is right, and the global variables point at the files the project configuration lists. These are script checks rather than Innovus checks, so they are not carded here. The import itself is a state-changing step and is shown for completeness.

I-01Load the design
Question it answersDid the intended inputs load into a new database?
StageImport
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateFresh session, no design or library data loaded.
Legacy UI
set init_verilog   <netlist.v>
set init_lef_file  {<tech.lef> <cells.lef> <macros.lef>}
set init_mmmc_file <views.tcl>
set init_top_cell  <top>
set init_pwr_net   VDD
set init_gnd_net   VSS
init_design
Common UI
read_mmmc <file>; read_physical -lefs {...}; elaborate_design -script <file>; init_design Verified (Sequence, Synthesis-Flow Context)
The CUI sequence shown is from the RAK synthesis flow, where elaborate_design reads the design between read_physical and init_design. For a gate-level PnR import, the CUI netlist read is not verified here.
Mappingmulti-command
Options used
init_* globals name the netlist, LEFs, MMMC file, top cell and PG nets. init_design reads them.
Scope and viewWhole design.
Effect on sessionchanges analysis configuration; updates the design database
OutputThe design database in memory, and import messages in the log.
Fields that matterError and warning IDs issued during load (card S-03), including cells with no timing, empty modules, a non-unique netlist, the usable buffer, inverter and delay cell lists, and cells with no function defined.
HealthyNo errors. Warnings are known for this library set.
WarningNew warning IDs, for example about sites or pins in a cell LEF.
Hard stopAny error, or a warning that a cell has no library or a module could not be resolved.
Common misuseTreating a completed init_design as a qualified import. Completion only means the tool could build a database.
Root cause and fixCorrect the input that produced the first new message, then reload in a fresh session.
Rerun after a fixReload in a fresh session, then every card in this chapter.
VerificationLegacy syntax checked against the Innovus Legacy text reference.

2.4.2 Post-stage checks

I-02Library binding and black boxes
Question it answersIs every instance bound to a cell that has both a physical and a timing view, except the intended exceptions?
StageAfter import
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateDesign loaded.
Legacy UI
check_design -type "library netlist" -out_file <f>
checkDesign -netlist -physicalLibrary -timingLibrary -powerGround \
    -noHtml -outfile <f>
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-type "library netlist" runs the library checks (physical-only cells with LEF but no .lib, logical-only cells with .lib but no LEF) and the netlist checks in one call.
-out_file writes the complete list; the console is limited by the message display limit.
-netlist -physicalLibrary -timingLibrary -powerGround selects the checkDesign categories for netlist, physical library, timing library and PG pins. PG findings before the ties of I-06 are expected.
-timingLibrary checks that the cells are defined in a timing library; it does not check for timing arcs, so run checkTimingLibrary for that.
-noHtml -outfile writes only a text report to the named file instead of the default HTML plus text pair.
Scope and viewWhole design and loaded libraries.
Flow behaviourIf check_design finds errors, the reference states that the current script stops. Put it where a stop is the intended outcome, or run it in a separate check script.
Effect on sessionwrites files
Outputcheck_design: a message summary with IDs and counts on the console, and the full result in the out file as a Tcl dictionary. checkDesign: a text report.
Fields that mattercheck_design: physical-only and logical-only cells, undriven, multiply driven and unloaded nets, empty modules. checkDesign: cells missing from LEF or the timing library, floating inputs, multiple-driver nets, PG pin problems.
HealthyOnly the intended exceptions appear, each on the written list.
WarningPhysical-only cells that are known fillers or other physical-only cells; review them against the library.
Hard stopA functional cell with no timing model, a cell with no LEF, a multiply driven net, or an undriven input on a functional path.
Common misuseReading only the console table, which is bound by the message display limit while the out file is not, or assuming a cell with no timing model is harmless because import completed.
Root cause and fixAdd the missing library or LEF to the MMMC or LEF list, or fix the netlist at synthesis.
Rerun after a fixReload, then rerun the cards listed in section 2.7 for the kind of change.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
I-03Netlist structure and uniqueness
Question it answersIs the netlist structurally sound, and is every module that later steps will modify instantiated only once?
StageAfter import
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateDesign loaded.
Legacy UI
checkNetlist -outfile <f>
checkUnique -verbose
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-outfile names the checkNetlist report file. The syntax shows it as required while the parameter text gives a default name, so always pass it.
-verbose prints the detail of what checkUnique found.
Scope and viewWhole netlist. The reference states that clock tree synthesis and in-place optimisation need each non-leaf module instantiated once. A master and clone partitioning flow sets init_design_uniquify to 0 and follows its own methodology.
Effect on sessionwrites files. Some commands in this card only read or report.
OutputcheckNetlist writes design summary, design statistics, I/O pad summary and design rule checks; errors carry an asterisk and possible errors a question mark. checkUnique returns 1 if unique, 0 if not.
Fields that matterDesign rule section of checkNetlist; checkUnique return value.
HealthycheckNetlist rule section clean; checkUnique returns 1.
WarningRule findings on test or spare logic that the methodology accepts.
Hard stopcheckUnique returns 0 before optimisation in a flat flow.
Common misuseDebugging a failed optimisation or CTS step before checking uniqueness; run checkUnique first.
Root cause and fixUniquify the netlist at synthesis or in the flow before placement.
Rerun after a fixReload the uniquified netlist; rerun I-03 and I-04.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
I-04Design inventory against synthesis
Question it answersDo the instance, net, port and area numbers match what synthesis produced?
StageAfter import
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateDesign loaded.
Legacy UI
reportNetStat
reportGateCount -stdCellOnly -outfile <f>
report_area -detail -out_file <f>
dbGet top.numInsts
dbGet top.terms.name
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-stdCellOnly counts only standard-cell area in the gate count, excluding blocks and I/O cells.
-detail adds the area breakdown by cell type.
-outfile, -out_file write the reports to files.
Scope and viewWhole design. report_area uses LEF data and excludes physical cells unless -include_physical is given, while synthesis area normally comes from the .lib, so state the basis before comparing. dbGet top.terms.name lists bits, so compare bit counts and take counts with llength.
Effect on sessionwrites files. Some commands in this card only read or report.
OutputCounts of cells, nets, pins and I/Os; gate count; area per module; instance and port counts from dbGet.
Fields that matterInstance count, port count, standard-cell area, block count.
HealthyEvery count matches the synthesis report, or differs by a known amount such as physical-only cells added by a script.
WarningA small unexplained difference.
Hard stopA large difference in instances or ports, which usually means a wrong netlist file or a different top cell.
Common misuseComparing gate counts between tools. Gate count is area divided by an assumed gate size, set by the dbgSitesPerGate global (default 3), so it is not comparable unless the definition matches.
Root cause and fixConfirm init_verilog and init_top_cell point at the released netlist.
Rerun after a fixReload; rerun I-04.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
I-05Technology layers and preplaced objects
Question it answersAre the layers the expected ones, and is anything already fixed in place?
StageAfter import
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateDesign loaded.
Legacy UI
dbGet head.layers.extName
dbGet -p top.insts.pStatus fixed
dbGet top.insts.?
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
.? lists the attribute names available on an object. Use it to confirm an attribute exists in your release before using it in a script.
-p returns pointers to the objects that match, rather than the attribute values.
-e avoids printing 0x0 for an empty result, so that llength gives 0 when nothing matches.
report_metal_stack is the command for direction, pitch, width and spacing of each routing layer; see the cheat sheet.
Scope and viewTechnology and whole design. Rows and tracks created by init_design are defaults, not a floorplan.
Effect on sessionreads or reports only
OutputTcl lists on the console.
Fields that matterLayer names in stack order, including cut layers and OVERLAP; number of FIXED instances (placement status fixed; cover is a separate status).
HealthyRouting layers match the technology LEF; FIXED count is zero, or equals the macros fixed by an imported floorplan.
WarningExtra layers that the methodology does not route on.
Hard stopMissing layers, or FIXED instances nobody expected.
Common misuseWriting dbGet attribute paths from memory instead of listing them with .? first.
Root cause and fixFix the LEF list or the floorplan input. A fixed status is not set by the netlist, LEF or MMMC file alone, so look for a floorplan or DEF read or a script command.
Rerun after a fixReload; rerun I-05 and the cards listed in section 2.7.
VerificationLegacy syntax checked against the Innovus Legacy text reference.
I-06Power and ground identity
Question it answersIs every PG pin tied to the intended power or ground net?
StageAfter import
ProductInnovus Implementation. The reference entry names no separate licence requirement for this command.
Required stateDesign loaded; PG nets named.
Legacy UI
globalNetConnect VDD -type pgpin -pin VDD -all
checkDesign -netlist -physicalLibrary -timingLibrary -powerGround \
    -noHtml -outfile <f>
Common UINot yet verified No Common UI form is printed. The provided files do not document one.
MappingNot established in the provided documentation
Options used
-type pgpin -pin VDD connects every PG pin named VDD to the global net VDD. Pin names are library-specific.
-all applies the connection to all instances.
-override replaces earlier global connections, and -netlistOverride also replaces PG connections written in the netlist; without them an existing tie is kept.
-powerGround checkDesign category for power and ground pins.
Scope and viewWhole design.
Effect on sessionupdates the design database; writes files
OutputglobalNetConnect updates the logical connections; checkDesign reports what is still unconnected. It cannot tell which of several power nets a pin should be on, so compare with the connection rules.
Fields that matterPG pins with no net, power and ground swaps, and PG pins on signal nets.
HealthyNo PG pin left unconnected in the checkDesign report.
WarningPins on physical-only cells that are tied later in the flow by design.
Hard stopA PG pin of a functional cell or macro left unconnected, swapped between power and ground or on a signal net.
Common misuseAssuming PG is fine because no wires are expected yet. This check is about logical ties, which must be correct before power planning.
Root cause and fixAdd or correct the globalNetConnect rules. For multi-supply designs, the power intent drives this and is covered with power planning in Chapter 5.
Rerun after a fixRerun globalNetConnect and checkDesign -powerGround.
VerificationLegacy syntax checked against the Innovus Legacy text reference.

Notice that I-06 changes the database. That is deliberate: PG ties are part of preparing the design. In a check-only script, run only the checkDesign part and report what is unconnected.

2.5 Required reports, artefacts and how to read them

ReportWhenFields that support qualificationEvidence class
check_design out fileafter importTcl dictionary: check type, message ID, severity, count, violationsimplementation
checkDesign text reportafter import and after PG tiescells missing from LEF or timing library, floating inputs, multiple-driver nets, unconnected PG pinsimplementation
checkNetlist reportafter importdesign rule checking sectionimplementation
Inventory snapshotafter importinstances, ports, nets, area, compared with synthesispreliminary
Exception listafter importcells without a timing or physical view, and black boxes, each with an ownerimplementation
Reading a check_design summarySynthetic report, not tool output
check_design, type library netlist                     ## illustrative excerpt
## simplified: the tool prints Severity, ID, Count, Summary
category   check               count
library    physical_only        2      ## cells with LEF, no .lib
library    logical_only         0
netlist    undriven             3
netlist    multiple_driver      0
netlist    unloaded            41
netlist    empty_modules        1

Let us read the excerpt line by line. Two physical-only cells could be fillers or tap cells, which have no timing by design, or two real cells whose .lib was never added. Only the out file with the cell names tells which. Three undriven nets need names: a tie-off left for the flow is acceptable, a floating input on a functional gate is not. Forty-one unloaded nets are often spare outputs and scan-out ends, but they are worth a quick scan. The empty module is a black box: it is acceptable only if it is on the exception list, otherwise a module definition is missing.

2.6 Healthy, suspicious and hard-stop examples

FindingStatusWhy
Instance and port counts match synthesisPASSThe intended netlist is in memory.
Physical-only cells are all filler or tap cellsPASSThey have no timing by design.
Unloaded nets on spare outputsWARN / REVIEWNormal, but name the pattern once in the review.
A functional cell has no timing modelHARD STOPIts paths will be untimed, and timing later looks better than it is.
checkUnique returns 0HARD STOPCTS and optimisation need unique modules.
Unrouted nets in a physical checkWARN / REVIEWExpected before routing; not evidence of a logical problem.
Power intent checks in a single-supply blockNOT APPLICABLENo power intent is loaded.

2.7 Debugging, corrective action and reruns

Import problems have their root cause in an input file, so the fix is always in the input or in the global variables that point at it. It is better to reload than to patch the database, because a patched database cannot be reproduced from its inputs, and chapter 16 requires exactly that reproduction.

After fixingRerun
a LEF or library listreload; I-01 to I-06
the netlistreload; I-01 to I-04, then chapter 3, because constraints refer to netlist objects
PG tie rulesI-06 only
the top cell namereload; everything in this chapter

2.7.1 Worked example: a macro with no timing model

Suppose check_design lists a cell PLL_TOP as physical-only, and the exception list does not mention it. The cell has a LEF abstract, so floorplanning and placement treat it normally. But with no Liberty model there are no timing arcs through it, so the paths it should carry are broken. checkDesign -timingLibrary does not check arcs; checkTimingLibrary does. In chapter 3, the endpoints it feeds would appear as unconstrained or untested in check_timing and report_analysis_coverage, and a timing summary would not show them at all. The fix is to add the PLL timing model to the library set in the MMMC file, or to add the cell to the exception list with an owner and a reason. Either way, the decision is recorded before the import gate closes.

2.8 Exit criteria and stage checklist

  • Load. init_design completed with no errors in a fresh session.
  • Binding. Every instance is bound to a cell with physical and timing views, except the written exception list.
  • Structure. No multiply driven nets; undriven nets are named and accepted; checkUnique returns 1.
  • Inventory. Instance, port and area numbers match synthesis or differ by an explained amount.
  • Technology. Layer list as expected; no unexpected FIXED instances.
  • PG identity. Every PG pin of functional cells and macros is tied to the intended net.
  • Reports kept. check_design out file, checkDesign report and inventory snapshot are stored with the run manifest.

Thus, the import gate makes sure that the database holds the intended design and nothing else. If a binding problem slips through, it does not stop the flow. It removes paths from timing, which makes every later report optimistic. In the next chapter we load the constraints and check that the timing environment covers the design that is now in memory.

CHAPTER 2 SANITY CHECKS

2.9 Sanity check cheat sheet: Design import

One row per command card. Read left to right: the check, the command that answers it, then what a healthy result, a result to review and a hard stop look like. Judge every row against your project budgets, because this book sets no universal limits.

CardCheck and whenCommandHealthyReviewHard stop
I-01Load the design
Import
set init_verilog <netlist.v> set init_lef_file {<tech.lef> <cells.lef> <macros.lef>} set init_mmmc_file <views.tcl> set init_top_cell <top> set init_pwr_net VDD set init_gnd_net VSS
init_design
No errors. Warnings are known for this library set.New warning IDs, for example about sites or pins in a cell LEF.Any error, or a warning that a cell has no library or a module could not be resolved.
I-02Library binding and black boxes
After import
check_design -type "library netlist" -out_file <f>
checkDesign -netlist -physicalLibrary -timingLibrary -powerGround \ -noHtml -outfile <f>
Only the intended exceptions appear, each on the written list.Physical-only cells that are known fillers or other physical-only cells; review them against the library.A functional cell with no timing model, a cell with no LEF, a multiply driven net, or an undriven input on a functional path.
I-03Netlist structure and uniqueness
After import
checkNetlist -outfile <f>
checkUnique -verbose
checkNetlist rule section clean; checkUnique returns 1.Rule findings on test or spare logic that the methodology accepts.checkUnique returns 0 before optimisation in a flat flow.
I-04Design inventory against synthesis
After import
reportNetStat
reportGateCount -stdCellOnly -outfile <f>
report_area -detail -out_file <f>
Every count matches the synthesis report, or differs by a known amount such as physical-only cells added by a script.A small unexplained difference.A large difference in instances or ports, which usually means a wrong netlist file or a different top cell.
I-05Technology layers and preplaced objects
After import
dbGet head.layers.extName
dbGet -p top.insts.pStatus fixed
dbGet top.insts.?
Routing layers match the technology LEF; FIXED count is zero, or equals the macros fixed by an imported floorplan.Extra layers that the methodology does not route on.Missing layers, or FIXED instances nobody expected.
I-06Power and ground identity
After import
globalNetConnect VDD -type pgpin -pin VDD -all
checkDesign -netlist -physicalLibrary -timingLibrary -powerGround \ -noHtml -outfile <f>
No PG pin left unconnected in the checkDesign report.Pins on physical-only cells that are tied later in the flow by design.A PG pin of a functional cell or macro left unconnected, swapped between power and ground or on a signal net.
CHAPTER 2 CHEAT SHEET

2.10 Command cheat sheet: Design import

Legacy UI commands. Angle brackets are placeholders, and values shown are examples, not project limits.

CommandWhat it produces
Load the design
set init_verilog <netlist.v>The gate-level netlist file that init_design will read.
set init_lef_file {<tech.lef> <cells.lef>}The LEF list, technology LEF first.
set init_mmmc_file <views.tcl>The MMMC view file that defines library sets, corners and views.
set init_top_cell <top>The top cell to build the database for.
set init_pwr_net VDDThe power net name for the design.
set init_gnd_net VSSThe ground net name for the design.
init_designThe design database built from the init_* globals. Works only when no design or library is loaded yet.
set init_design_uniquify 1Uniquifies the design during the read and flatten. Default 0. Optimisation is not allowed on a non-unique design.
set init_verilog_tolerate_port_mismatch 0Default. The netlist read stops with an error when instance ports do not match the cell. Keep it at 0 for qualification.
set init_lef_check_antenna 1Default. Warnings for LEF pins with zero antenna gate or diff area.
getImportMode -treatUndefinedCellAsBboxWhether undefined cells are read as black boxes. Default false. The provided reference documents the read form only.
Library and netlist checks
check_design -type library -out_file <f>Cells with LEF but no .lib (physical-only) and with .lib but no LEF (logical-only).
check_design -type netlist -out_file <f>Undriven, multiply driven and unloaded nets, constant-driven pins, feedthrough modules and empty modules.
check_design -type "library netlist" -out_file <f>Both of the above in one table, with the full detail in the out file. Stops the script if errors are found.
check_design -type assign_statements -out_file <f>Assign statements in the netlist, checked before writing a netlist out.
checkDesign -netlist -noHtml -outfile <f>Output pins tied to power or ground, floating inputs and multiple-driver nets, as a text report. Add -danglingNet to list nets with no instance or top-level terminal.
checkDesign -physicalLibrary -noHtml -outfile <f>Cells not defined in LEF, plus LEF cells with missing dimensions, pin direction or geometry, sizes that are not a site multiple, or macros without full obstruction.
checkDesign -timingLibrary -noHtml -outfile <f>Cells used in the design that are not defined in the timing library.
checkDesign -powerGround -noHtml -outfile <f>Power and ground pins that are unconnected or connected to the wrong net.
checkDesign -tieHiLo -noHtml -outfile <f>Unconnected tie-high and tie-low terminals, and tie pins on different P/G nets.
checkDesign -io -noHtml -outfile <f>Unplaced I/O cells and pins, floating I/O pad pins, I/O pins tied to core cells.
checkDesign -all -noHtml -outfile <f>All checkDesign categories in one text report.
checkNetlist -outfile <f>Design summary, design statistics, I/O pad summary and design rule checks.
checkNetlist -outfile <f> -includeSubModuleThe same report plus port-definition checks for submodules.
checkUniqueReturns 1 if every non-leaf module is instantiated once, 0 if not.
checkUnique -verboseThe same result with the detail of what is not unique.
checkTimingLibrary -outfile <f>Inconsistencies in the loaded timing libraries.
checkTimingLibrary -checkPower -outfile <f>The same, plus cells without power constructs such as leakage or internal power.
reportDanglingPort -outfile <f>Ports disconnected inside and outside a module, or connected inside but not outside.
reportDanglingNet -outfile <f>The total net count and the number of dangling nets with zero terminals, including PG nets, and how many are removable.
Inventory
reportNetStatCounts of cells, nets, pins and I/Os, nets by number of terminals, and the primitives used.
reportGateCount -outfile <f>The design size in gate counts, using the dbgSitesPerGate gate size (default 3).
reportGateCount -stdCellOnly -outfile <f>Gate count from standard-cell area only, excluding blocks and I/O cells.
reportGateCount -level 1 -outfile <f>Gate counts for the top module and one level of children. Modules of 1000 gates or fewer are ignored unless -limit is given.
report_area -summaryThe area summary for the whole design.
report_area -detail -out_file <f>Area per module plus a breakdown by cell type.
report_area -include_physical -out_file <f>Area including physical-only cells, which are excluded by default.
report_gates -out_file <f>The library cells used and their source libraries, cell area, and the split into timing models, sequentials, clock gates, inverters, buffers and logic.
report_sequential -out_file <f>The sequential elements of the design: flops, latches and clock gates.
report_preservesEvery preserve that affects optimisation: dont_touch, read_only, dont_use and use_cells attributes with non-default values.
report_preserves -dont_useOnly the dont_use and use_cells settings.
Database queries
dbGet top.numInstsThe number of instances in the top cell.
dbGet top.terms.nameThe names of all top-level ports, one per bit. Count them with llength.
dbGet top.nets.nameThe names of all nets in the top cell.
dbGet -u top.insts.cell.nameThe unique list of library cells used in the design.
dbGet head.libCells.nameThe names of all loaded library cells.
dbGet head.layers.extNameAll technology layers in stack order: routing layers, cut layers and OVERLAP.
dbGet -p top.insts.pStatus fixedPointers to every instance whose placement status is fixed. An empty result prints 0x0, so add -e before taking llength.
dbGet top.insts.isDontTouch 1 -pPointers to every dont_touch instance.
dbGet top.insts.?The attribute names available on instances. Use it before scripting an attribute.
getDbGetModeThe current setDbGetMode settings, such as the display limit for long lists.
report_metal_stackEach routing layer with its preferred direction, track offset and pitch, minimum width and spacing, and default wire width.
PG ties
globalNetConnect VDD -type pgpin -pin VDD -allLogical connection of every PG pin named VDD to net VDD. Pin names are library-specific.
globalNetConnect VSS -type pgpin -pin VSS -allThe same for ground.
globalNetConnect VDD -type tiehi -allConnects pins tied to constant 1'b1 to net VDD.
globalNetConnect VSS -type tielo -allConnects pins tied to constant 1'b0 to net VSS.