Cadence Innovus (Legacy UI) · stage 7 of 16

Placement and post-placement qualification

Covers the placement run log, placement legality, fixed and dont_touch preservation, density and congestion, physical and tie connections, post-placement timing, DRVs, and pre-CTS optimisation.

7 min read · Free, no login

Get Innovus + ICC2 Cheat Sheets at ₹199

This stage checks the placement run and what comes after it: the run log and scan reordering, placement legality, preservation of fixed and dont_touch status, density and congestion, physical and tie-cell connections, timing and design-rule violations after placement, and pre-CTS optimisation.

Sanity check cheat sheet

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.

CardCheck and whenCommandHealthyReviewHard stop
L-01 Placement run and log
After place_design
place_design
report_scan_chain -out_file <f>
scanTrace -verbose
The run finished without errors, legalisation moves are recorded and understood, and scan reordering ran if scan is defined. A warning that scan reordering was skipped, or that placement ran non-timing-driven when constraints were expected. The run ended with an error, or it used settings that differ from the recorded set.
L-02 Placement legality
After placement and after any later cell change
checkPlace <report_file> No violations, Unplaced is zero, and the placed and fixed counts match the baseline and the log. A few pin access or pre-route DRC findings that you can list, locate and explain. Any overlap, out-of-core, off-grid, orientation, region or fence violation, or any unplaced instance.
L-03 Fixed and dont_touch status preserved
After placement
dbGet -p top.insts.pStatus fixed
dbGet top.insts.isDontTouch 1 -p
report_preserves -dont_touch
FIXED count and macro list equal the baseline, and dont_touch differences are explained by the log. The dont_touch count differs only by cells that the log explains, such as buffers removed. A macro or preplaced cell is no longer FIXED, or a protected object lost its dont_touch setting.
L-04 Density and pin density
After placement
reportDensityMap -gridInRow <n> -threshold <d>
reportPinDensityMap
No bin above the project density limit, and the bin size used is stored with the report. A few bins above the limit that are not in a macro channel and not over a congestion hotspot. Bins above the project limit in a macro channel, or over a hotspot found in L-05.
L-05 Congestion after placement
After placement
earlyGlobalRoute
reportCongestion -hotSpot -overflow
The maximum hotspot score is within the project budget. The reference calls a score below 100 typically routable, as guidance only. Overflow limited to one or two small hotspots away from macro channels, with mild density findings. A hotspot score above the project budget, or a hotspot in a macro channel that placement settings cannot relieve.
L-06 Physical cells and tie connections
After placement
verifyEndCap -report <f>
verifyWellTap -report <f>
checkDesign -tieHiLo -noHtml -outfile <f>
No missing or wrong end caps or taps, and no unconnected tie terminal. Unconnected tie terminals reported before the flow has run addTieHiLo. Recheck after it. A missing or wrong end cap, a missing well tap or a tap spacing violation in a row where cells are placed.
L-07 Timing after placement
After placement, before optimisation
timeDesign -preCTS -outDir <dir> Setup WNS and TNS meet the project target for this stage in every required view, and the views listed match the plan. Negative slack that the project expects to recover, with the failing paths listed and owned. Negative slack has no owner and no optimisation plan.
L-08 Timing analysis coverage
After timeDesign
report_analysis_coverage -verbose {violated untested} Untested is zero, or every untested check has a reason you accept, such as a constant or a false path. Untested checks whose reason is a known constant, disabled arc or false path, each with an owner. Untested checks with no endpoint clock or no data signal on flops that should be timed.
L-09 DRVs and high-fanout nets
Before and after optimisation
timeDesign -preCTS -drvReports -outDir <dir>
reportFanoutViolation -outfile <f>
report_constraint -drv_violation_type {max_transition max_capacitance max_fanout} -all_violators
Counts are within the project budget, and every violating net is listed in the type files. Maximum fanout violations are present. optDesign does not repair them unless setOptMode -opt_fix_fanout_load is set. Maximum transition or capacitance violations remain after optDesign -preCTS, or counts exceed the project budget.
L-10 Pre-CTS optimisation
After L-07 to L-09
check_timing -type loops
setOptMode -opt_fix_fanout_load true
optDesign -preCTS
WNS and TNS improve or meet the target, DRVs are cleared, density stays within the project budget, and the L-02 recheck is clean. Some slack stays negative, with the cause listed and a plan for the next stage. WNS or TNS is worse than before the run, new DRVs or placement violations appeared, or the run was interrupted.

Command cheat sheet

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

Placement settings and run record
getPlaceModeThe current value of every placement mode option. Use it to record the settings behind a placement run.
getPlaceMode -place_global_cong_effortThe current global placement congestion effort only.
getOptMode -opt_fix_fanout_loadThe current setting that decides whether optDesign repairs fanout violations.
report_command_mode -non_defaultEvery mode option that differs from its default. A compact record of what the placement and optimisation modes were set to.
report_command_mode -filter {setPlaceMode} -userOnly the placement mode options you set by hand.
setPlaceMode -place_global_cong_effort highRaises the congestion effort of global placement for the next run. Changes a mode setting.
setPlaceMode -place_global_auto_blockage_in_channel softSelects how global placement treats automatic blockages in narrow channels. Changes a mode setting.
setPlaceMode -resetReturns the placement mode options to their defaults. Changes a mode setting.
place_designGlobal placement, legalisation and pre-placement optimisation. Timing-driven when constraints are loaded, and scan reorder when scan information is loaded. Changes the database.
place_design -noPrePlaceOptPlacement without the pre-placement optimisation step that removes buffer trees. Changes the database.
place_design -incrementalRe-places an already placed design after small changes. It does not remove buffer trees. Changes the database.
place_opt_designPlacement and pre-CTS optimisation in one command. An alternative to running place_design then optDesign -preCTS. Changes the database.
Legality and fixed objects
checkPlace <report_file>Checks placed and fixed cells for overlap, off-grid, orientation, site, blockage, region and fence violations, prints placed, fixed and unplaced counts and writes a violation report. Adds markers and writes a file.
checkPlace -noPreplaced <report_file>The same check without checking the fixed instances themselves, which are treated as placement blockages. Adds markers and writes a file.
checkPlace -clearMarkerRemoves the violation markers left by an earlier check. Changes only the GUI markers.
check_design -type place -out_file <f>Checks run before placement, such as rail alignment, pin access and missing termination cells. Writes a file.
checkDesign -place -noHtml -outfile <f>A text report of placement problems: instances with placement violations, outside the core, or overlapping other instances or placement blockages. Writes a file.
dbGet -p top.insts.pStatus fixedThe instances whose placement status is fixed. Use it to confirm macros and preplaced cells did not move.
dbGet top.insts.isDontTouch 1 -pThe instances carrying the dont_touch attribute.
report_preserves -dont_touchThe dont-touch settings that affect optimisation.
report_preserves -dont_useThe dont-use settings that affect optimisation.
Density and congestion
reportDensityMapA placement density map and report, with the default threshold and a bin size of ten rows.
reportDensityMap -gridInRow <n> -threshold <d>The density report with your own bin size in rows and your own display threshold.
reportDensityMap -gridInMicron <microns> -ignoreFiller trueThe density report with bins measured in microns and filler cells left out.
reportPinDensityMapA pin density map and report, using the default pin density threshold.
reportPinDensityMap -gridInRow <n> -threshold <d>The pin density report with your own bin size and threshold.
earlyGlobalRouteA quick global route that estimates congestion and parasitics. It is not DRC clean and not for signal integrity analysis. Changes the database.
reportCongestion -hotSpot -overflowAverage congestion, overflow and the local hotspot score. Needs a route to exist first.
reportCongestion -hotSpot -num_hotspot <n>The hotspot score for the worst n hotspots.
Physical and tie cells, scan
verifyEndCap -report <f>Checks that pre and post end cap cells match the end cap mode settings and lists missing or wrong cells. Adds markers and writes a file.
verifyWellTap -report <f>Checks well-tap spacing and missing well-tap cells. Areas under blocks, halos and blockages are skipped. Adds markers and writes a file.
checkDesign -tieHiLo -noHtml -outfile <f>A text report of unconnected tie pins and tie pins connected to different nets.
getTieHiLoMode -nonDefaultThe tie cell settings that are not at their default value.
setTieHiLoMode -maxFanout <n> -maxDistance <d>Limits how many pins one tie cell drives and how far it may sit from them. Changes a mode setting.
addTieHiLo -cell <tieHi tieLo>Adds the two tie cells named in quotation marks and connects tie pins. Changes the database.
scanTrace -verboseThe number of scan elements and the start and end scan points, recorded in the log.
report_scan_chain -out_file <f>Scan chain information: bit count, order and wire length of each chain segment. Writes a file.
Timing and coverage after placement
check_timing -type loopsReports combinational timing loops. Break them with set_disable_timing before optimising.
report_analysis_coverage -verbose {violated untested}Counts of checks that are met, violated and untested, with the untested reason for each listed check.
report_analysis_coverage -check_type <check_type_list> -sort slackThe coverage report limited to chosen check types and sorted by slack.
timeDesign -preCTS -expandedViews -outDir <dir>Adds view-specific reports and restores views pruned by auto view pruning. Changes the database and the analysis settings, and writes files.
timeDesign -preCTS -outDir <dir>Early global route, extraction and timing with ideal clocks, plus summary reports. Changes the database and the analysis settings, and writes files.
timeDesign -preCTS -reportOnly -outDir <dir>Timing reports from extraction and timing data already in memory, without a new extraction. Writes files.
timeDesign -preCTS -hold -outDir <dir>The same flow for hold checks, which on ideal clocks is not a qualification result. Changes the database and the analysis settings, and writes files.
timeDesign -preCTS -numPaths <n> -outDir <dir>Timing with more paths per group in the reports. Changes the database and the analysis settings, and writes files.
DRVs, fanout and pre-CTS optimisation
timeDesign -preCTS -drvReports -outDir <dir>Timing plus transition, capacitance and fanout reports. Changes the database and the analysis settings, and writes files.
report_constraint -drv_violation_type {max_transition max_capacitance max_fanout} -all_violatorsEvery net or pin that violates the chosen design rule constraints.
reportFanoutViolation -outfile <f>The pins that exceed the fanout constraints, after timing analysis. Writes a file.
setOptMode -opt_fix_fanout_load trueAllows optDesign to repair fanout violations. Changes a mode setting.
setDelayCalMode -enable_high_fanout <true|false>Controls the special delay treatment of very high fanout nets. Changes a mode setting.
optDesign -preCTSPre-CTS timing optimisation on all views, ending with a summary of setup, DRV and density figures. Changes the database.
optDesign -preCTS -drvOptimisation limited to design rule violations. Changes the database.
optDesign -preCTS -incrAn incremental setup-only pass that needs an earlier optDesign run and cannot be combined with -drv. Changes the database.
optDesign -preCTS -outDir <dir> -prefix <name>Pre-CTS optimisation with its reports saved under your own directory and file name prefix. Changes the database and writes files.