What's the actual sequence for enabling IR-drop-aware placement, and how does the tool decide which cells get the most spreading treatment?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
The flow: place and legalize the block first (or place_opt -to final_place), then source a RedHawk setup script, run analyze_rail -voltage_drop static -nets {VDD VSS}, then enable place.coarse.ir_drop_aware, then optionally set additional IR-drop settings and re-run placement (or place_opt -from final_place). It requires Digital-AF and SNPS_INDESIGN_RH_RAIL license keys. The tool creates three cell categories by total cell count: Upper (top 1%, most spread), Middle (next 5%, less spread), Lower (the rest, not spread) -- percentages changeable via dedicated app-options.
Technical Explanation
- The flow sequence: place and legalize the block first (or place_opt -to final_place), THEN source a RedHawk setup script, THEN run analyze_rail -voltage_drop static -nets {VDD VSS} to get real IR-drop data BEFORE enabling IR-drop-aware placement.
- Only after that analysis does place.coarse.ir_drop_aware get enabled, with optional further IR-drop settings, followed by re-running placement (or place_opt -from final_place) to actually apply the awareness.
- Requires the Digital-AF AND SNPS_INDESIGN_RH_RAIL license keys -- both, not either.
- The tool creates THREE cell categories by total cell count: Upper (top 1%, most spread), Middle (next 5%, less spread), Lower (the rest, not spread at all) -- a graduated, not binary, response to IR-drop risk.
- The Upper/Middle percentage split is changeable via place.coarse.ir_drop_default_target_high_percentage and ...low_percentage.
- By default these percentages are interpreted as percentages of TOTAL CELL COUNT (ir_drop_default_target_high/low_population = true); setting that to false instead interprets the numbers as percentages of SUPPLY VOLTAGE.
Formula Or Decision Rule
Default cell categorization by IR-drop risk: Upper = top 1% (most spread), Middle = next 5% (less spread), Lower = remaining 94% (not spread) -- percentages adjustable, and their MEANING (cell-count-based vs voltage-based) is itself a separate toggle.
What To Check
- Warning sign: place.coarse.ir_drop_aware is enabled but placement shows no observable change in cell spreading near known high-power-density regions.
- Inspect: confirm analyze_rail was actually run before enabling ir_drop_aware and re-running placement -- without real rail data, the awareness has nothing to act on.
- Correct: run the full documented sequence in order, including the RedHawk setup and analyze_rail steps, before expecting IR-drop-aware behavior.
Command Checks & Actions
analyze_rail -voltage_drop static -nets {VDD VSS}Generates the real rail voltage-drop data IR-drop-aware placement needs before it can make any informed spreading decisions.
set_app_options -name place.coarse.ir_drop_aware -value trueEnables IR-drop-aware placement, which only has an effect once real rail analysis data is already available.
Healthy, Suspicious & Hard-stop Results
- Expected: IR-drop-aware placement shows the documented graduated response (heaviest spreading for the top 1% highest-IR-drop-risk cells) after the full required sequence is run.
- Investigate: ir_drop_aware is enabled but no spreading behavior change is observed -- check whether analyze_rail was actually run first, since the awareness has no real data to act on otherwise.
- Stop: IR-drop-aware placement is enabled and re-run repeatedly without ever confirming the prerequisite RedHawk setup and analyze_rail steps completed successfully first.
Common Mistake
The Trap: Enabling place.coarse.ir_drop_aware without first running the required analyze_rail step -- the tool's IR-drop-aware placement decisions depend on having real rail-analysis data available first, not just the flag being set.
What The Interviewer Is Testing
Whether you know the required sequence (place/legalize -> RedHawk setup -> analyze_rail -> enable ir_drop_aware -> re-run) and the specific default percentage breakdown, not just that "IR-drop-aware placement exists."
Practical Example
Debug Scenario: A design enables place.coarse.ir_drop_aware and re-runs placement, but shows no change in cell distribution near a known high-power-density region. Checking the flow, analyze_rail was never actually run beforehand -- IR-drop-aware placement has no real voltage-drop data to base its spreading decisions on without it.
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