What does -check_prerequisites on place_group_repeaters actually validate before attempting placement, and what do a couple of its real error codes tell you?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
-check_prerequisites validates a real checklist before placement is attempted: site rows present, each net has one driver and can have multiple loads, pin/port locations assigned, standard cells carrying the pins are placed, supernets routed, route ends within 5 microns of driver/load pins in the search region, and more. Real error examples: ECO-329 ("the net net_wo_load does not have loads") and ECO-331 ("the cell driver1 of the pin driver1/X is not placed") -- both point to a genuinely missing prerequisite, not a placement algorithm failure.
Technical Explanation
- -check_prerequisites validates a real checklist BEFORE placement is attempted: site rows present, each net has exactly one driver (multiple loads allowed), pin/port locations assigned, standard cells carrying the pins are actually placed, supernets are routed, route ends are within 5 microns of driver/load pins/ports in the search region, and several more conditions.
- ECO-329 ("the net net_wo_load does not have loads") means exactly what it says -- the net has no loads at all, a structural netlist problem, not a placement algorithm issue.
- ECO-331 ("the cell driver1 of the pin driver1/X is not placed") means the driving cell for that pin hasn't been placed yet -- group repeater placement genuinely cannot proceed until the driver itself has a real location.
- Running -check_prerequisites BEFORE attempting the real placement catches these structural problems up front, rather than letting the actual placement operation fail partway through with a less clear error.
What To Check
- Warning sign: place_group_repeaters or add_group_repeaters fails with an ECO-3xx-series error mid-operation.
- Inspect: re-run with -check_prerequisites first to get a clear, structural diagnosis rather than debugging from the mid-operation failure alone.
- Correct: fix the specific structural issue -check_prerequisites identifies (missing loads, unplaced driver, etc.) before re-attempting placement.
Command Checks & Actions
place_group_repeaters -cells <list> -check_prerequisitesValidates the full prerequisite checklist before attempting real placement, surfacing structural problems (missing loads, unplaced drivers) as clear, specific errors.
query_objects / get_pins / get_cellsUsed to inspect the specific object referenced in an ECO-3xx error code and confirm the actual structural cause.
Healthy, Suspicious & Hard-stop Results
- Expected: -check_prerequisites passes cleanly before real group repeater placement is attempted, or any reported issues are resolved first.
- Investigate: a group repeater placement operation fails mid-run with an ECO-3xx error -- re-run with -check_prerequisites to get a clearer, earlier diagnosis of the same underlying issue.
- Stop: group repeater placement is repeatedly re-attempted after failures without ever running -check_prerequisites to identify the actual structural cause.
Common Mistake
The Trap: Skipping -check_prerequisites and going straight to group repeater placement, then having to debug a placement failure mid-operation instead of getting a clear, structural error up front.
What The Interviewer Is Testing
Whether you know -check_prerequisites is a real, substantive validation (not a formality) and can interpret specific documented error codes correctly, connecting them to real structural causes.
Practical Example
Debug Scenario: place_group_repeaters fails with Error: The cell driver1 of the pin driver1/X is not placed. (ECO-331). Running -check_prerequisites first would have caught this exact issue before the real placement attempt -- the driving cell genuinely needs to be placed before group repeater placement can proceed.
Physical Design & Planning Handbook
Master ASIC Physical Design Planning & Floorplanning
Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.
Continue practising