This stage checks the floorplan before power planning and placement begin: die and core geometry, floorplan legality and utilisation, macro placement and overlap, pin assignment, early routability, readiness for power planning, and a snapshot of special-net connectivity.
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.
| Card | Check and when | Command | Healthy | Review | Hard stop |
|---|---|---|---|---|---|
| F-01 | Die and core geometry After floorplan |
dbGet top.fplan.boxesdbGet top.fplan.coreBox |
Coordinates equal the specification. | A core offset that differs from the specification by a small amount; snapping is one possible cause, not verified. | Die size different from the specification, which changes everything downstream including the package or parent-level plan. |
| F-02 | Floorplan legality and utilisation After floorplan |
getFPlanMode -checkTypessetFPlanMode -checkTypes {blockOnly narrowChannel} -narrowChannelThreshold <w>checkFPlan -reportUtil |
No violations for the recorded check types. TU and EU within the project budget. | EU noticeably higher than TU, which means blockages and other floorplan constraints remove more area than planned. | Off-grid blocks, illegal row orientation, EU at or above 100 percent in a fence or region, or EU above the project limit. |
| F-03 | Macro placement and overlap After macro placement |
dbGet -e -p top.insts.pStatus fixedcheckPlace <report_file>checkPlace -macroBlockage <report_file> |
Fixed count equals the macro list; no checkPlace violations for macros; no channel below the width. | Fixed standard cells that the specification does not mention, such as preplaced taps or spare cells. | A macro left unplaced or not fixed, any macro overlap, out-of-core or off-grid violation, or a channel below the budget width. |
| F-04 | Pin assignment After pin placement |
checkPinAssignment -outFile <f> |
No violations, and the pin order and side match the pin plan where the plan is entered as pin guides or groups. | Pins placed but not yet matched to the parent pin plan in a hierarchical flow. | Unplaced or overlapping pins, pins off track, or pins on a side that the pin plan does not allow. |
| F-05 | Early routability After macro placement and an initial standard-cell placement |
earlyGlobalRoutereportCongestion -hotSpot -overflow |
Hotspot score and overflow within the project budget. Tool guidance calls a maximum hotspot score below 100 typically routable; the budget is the gate. | Within budget, but hotspots concentrated in one macro channel. | Hotspot score or overflow above the project budget. |
| F-06 | Ready for placement Before power planning (Chapter 5) and placement (Chapter 6) |
check_design -type place -out_file <f> |
No errors. | Followpin, well-tap or termination-cell findings before those rails and cells exist; record them and recheck after power planning. | Pin access issues or PG rail misalignment on rows where standard cells will be placed. |
| F-07 | Special-net connectivity snapshot After floorplan, before power planning |
verifyConnectivity -net {VDD VSS} -type special -noAntenna -report <f> |
Recorded as a baseline; opens are expected until power planning. | Some macro PG pins already show as connected because floorplan preroutes exist; record which. | None at this stage; this snapshot is a baseline for Chapter 5. |
Command cheat sheet
Legacy UI commands. Angle brackets are placeholders, and values shown are examples, not project limits.
| Geometry and grids | |
|---|---|
dbGet top.fplan.boxes | The design shape coordinates. |
dbGet top.fplan.coreBox | The core box coordinates. |
get_snap_grid_info -type placement | The current placement snap grid settings. |
get_snap_grid_info -type manufacturing | The current manufacturing grid settings. |
getAllLayers metal | The list of metal layers, to confirm the routing stack the floorplan uses. |
| Floorplan legality and utilisation | |
getFPlanMode -checkTypes | The check types checkFPlan will run. Record it with every checkFPlan report. |
setFPlanMode -checkTypes {blockOnly narrowChannel} -narrowChannelThreshold <w> | Selects the block-level types (basic, oddEvenSiteRow, macroPin, color) and the narrow-channel check. The threshold is in microns and is required for narrowChannel. macroPin is checked only with setFPlanMode -snapBlockGrid LayerTrack. Changes the session. |
setFPlanMode -checkTypes all | Selects every checkFPlan check type, including power domain, partition and fence types that add noise in a flat block. Changes the session. The default is basic. |
checkFPlan | Floorplan violation markers for the selected check types. |
checkFPlan -outFile <f> | The same with the detail written to a file. |
checkFPlan -reportUtil -outFile <f> | Adds target (TU) and effective (EU) utilisation for the design, fences and regions. |
checkFPlanSpace -outfile <f> | Floorplan spacing rule violations, with markers. |
reportUnsnapBlocks | Blocks that are not snapped according to the floorplan snap preferences. |
checkDesign -floorplan -noHtml -outfile <f> | Off-grid tracks, instances not snapped to row sites, unplaced I/O pins, off-grid PG preroutes. |
check_design -type place -out_file <f> | PG rail alignment, pin access issues, missing followpins, misaligned well-tap cells and missing termination cells. Stops the script on errors. |
check_library -place -all_lib_cell -file <f> | Library cells that cause problems against the existing preroutes, such as bad DRC geometry or bad pin access. Meaningful once preroutes exist. |
violationBrowserReport -all -report <f> | Every violation flagged so far by the verification commands, written to one file. |
| Macros and channels | |
dbGet top.insts.pHaloBox | The halo box attribute of instances, to compare macro halos with the specification. The attribute name is listed by dbGet top.insts.? and the per-macro query was not run. |
dbGet -p top.insts.pStatus fixed | Pointers to every fixed instance; compare the count with the macro list. With no match it prints 0x0, so use -e when counting. |
checkPlace <report_file> | Overlap, out-of-core, off-grid, orientation, region and fence violations, with markers, and the number of unplaced macros. Treats macros as fixed. Halos count in the overlap check. |
checkPlace -macroBlockage <report_file> | Adds overlap checks between hard macros and macro-only blockages, which are ignored by default. |
checkPlace -noHalo <report_file> | The overlap check without block halos, using the place-and-route boundary instead. |
checkMacroLLOnTrack | Hard macros whose lower-left corner is not on a Metal1/Metal2 track intersection. The default assumes those layers run in opposite directions, so confirm the layer directions in your technology. Option usage not verified. |
check_macro_place_constraint | A check of the macro constraints that the macro placer will honour. |
report_narrow_channel -width <w> | A list of narrow channels between core, macros, halos and hard blockages (the default objects), judged against the given width. Returns the channel boxes. |
report_narrow_channel -width <w> -direction x | The same check in the x direction only. The default checks both directions. |
reportCellPad -file <f> | The cells with user padding and their padding. Padding counts in checkPlace utilisation. |
reportInstPad -all | The padding of every padded instance. |
| Pins | |
checkPinAssignment -outFile <f> | Pins on wrong layers, off track, overlapping, unplaced, or too close to blockages and power. Writes <design>.checkPin.rpt when no file is named. |
checkPinAssignment -report_violating_pin -outFile <f> | The same report listing every violating pin. |
checkPinAssignment -preCheck | A feasibility check that finds why pins stay unplaced in a fully abutted design. No other option can be combined with it. |
checkDesign -io -noHtml -outfile <f> | Unplaced I/O cells and pins, floating I/O pad pins, I/O pins tied to core cells. |
getPinAssignMode | The current pin assignment settings, such as the allowed layer range. |
reportPinAssignStatistics -outFile <f> | Pin QoR data per partition. For hierarchical flows. |
| Routability | |
earlyGlobalRoute | Estimated routes in the database for congestion and parasitic estimates. Use after placement. Not DRC clean; not for SI. |
reportCongestion | Average congestion and the local hotspot score. Needs a route to exist. Blockage area is left out of the hotspot report unless -includeBlockage is given. |
reportCongestion -hotSpot | The maximum and total hotspot area, the contiguous gcells with overflow. |
reportCongestion -hotSpot -num_hotspot 10 | The same, listing the given number of hotspots. |
reportCongestion -overflow | Horizontal and vertical overflow. |
reportCongestion -3d -overflow | Layer-based overflow from the 3D congestion map. |
reportDensityMap | A placement density map and report, threshold 0.75 by default. Use after placement. |
reportDensityMap -threshold 0.85 | The same, reporting only grids above 0.85. |
reportPinDensityMap | A pin density map and report. Use after placement. |
getDensityMapMode | The current density map settings, such as the threshold and grid. |
| Physical cells and power structure | |
verifyEndCap -report <f> | Markers for missing end-cap cells and end caps of the wrong type. Run after addEndCap. |
verifyEndCap -wrongLocation -report <f> | Adds a check that end caps sit in the right location. |
verifyWellTap -report <f> | Markers for missing well-tap cells and taps that break the distance rule, with the actual and rule distance. Run after addWellTap. |
report_pg_keepout | Every PG keepout box in the design. Option form not verified. |
reportPowerDomain -file <f> | Power-domain information. For multi-supply designs; not applicable to a single-supply block. |
| PG snapshot | |
verifyConnectivity -net {VDD VSS} -type special -noAntenna -report <f> | Opens and unconnected PG pins on the named PG nets, with markers. |
verifyConnectivity -type special -noUnConnPin -report <f> | Special-wire checks that ignore pins not connected to any other object. |
verifyPowerVia -net {VDD VSS} -report <f> | Missing power-grid vias where rails and stripes overlap. Meaningful once the grid exists. |
checkDesign -powerGround -noHtml -outfile <f> | Unconnected or wrongly tied PG pins. |