A post-route IR hotspot: fix the grid, move cells, or add decap?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Diagnose before choosing. If the hotspot shows in static analysis and the resistance from the cells to the taps is high, the grid is the cause and needs more metal or vias. If the grid is fine but many high-current cells sit together, spread or downsize them. If static is clean and only dynamic analysis shows the droop, decap is the right fix, because decap does nothing for an average-current drop.
Technical Explanation
- Static drop is average current times grid resistance. Decap stores charge for fast events, so it cannot lower a static drop. Only less resistance or less current can.
- Minimum path resistance analysis,
analyze_rail -min_path_resistance(ICC2), shows the lowest-resistance path from each instance to its tap. A hotspot with high path resistance and normal current points at the grid: missing vias, a thin strap, or a strap that stops short.analyze_rail -voltage_drop static -check_missing_via(ICC2) finds overlaps with no via. - Grid repair in ICC2 goes through
signoff_create_pg_augmentation(ICC2), which uses RedHawk Fusion voltage drop results to add PG shapes through IC Validator. The block must be fully routed, the power and ground nets named, and the block saved first. Standalone RedHawk offersmesh fix(RH) androute fix(RH) for what-if repairs. - High current with normal resistance points at placement: clumped clock buffers or a dense cluster of high-drive cells. RedHawk
cell swap(RH) tries moving hot instances to better nodes within a fix window, 40 by 40 um by default. - In ICC2,
eco_opt -types power_integrity(ICC2) downsizes aggressor cells using the rail database while watching timing and DRC. It needs a dynamicanalyze_rail(ICC2) run saved torail.database(ICC2) and PrimeTime set up withset_pt_options(ICC2), and it only works if the aggressors are not timing or DRC critical and smaller variants exist without dont_use or dont_touch. - Dynamic-only droop with a healthy static map is the decap case. Place it close to the hot instances, since decap far from the switching cells has resistance between it and the load.
- Every fix shifts timing: grid shapes take tracks, moved cells change wires, and decap adds leakage. Rerun timing and DRC after each choice, and see
ir-drop-aware-timingfor the timing side.
What To Check
- Whether the hotspot appears in static, dynamic, or both.
- Minimum path resistance from hot instances to taps, compared with the block average.
- Missing vias and unconnected pins inside the hotspot.
- Instance power density and clock buffer count in the hotspot.
Command Checks & Actions
analyze_rail -voltage_drop static -nets {VDD VSS}Static drop map; tells you whether the hotspot is an average-current problem.
analyze_rail -min_path_resistance -nets {VDD VSS}Path resistance from instances to taps, to separate grid weakness from current density; -nets is required.
analyze_rail -voltage_drop static -check_missing_via -nets {VDD VSS}Missing vias and unconnected pin shapes in the hotspot, using the set_missing_via_check_options settings; save the block first.
signoff_create_pg_augmentation -node genericAdds PG augmentation shapes driven by the voltage drop results.
eco_opt -types power_integrityDownsizes non-critical aggressor cells to cut local current.
cell swap -eff_vdd_tw -reportStandalone what-if: moves or swaps hot instances toward better supply nodes.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Static drop 31 mV against a 40 mV budget, dynamic 57 mV against 64 mV, and path resistance within 10% of the block average.
- Suspicious (illustrative): Dynamic over budget in one 40 um region while static is fine, with no decap in that region.
- Hard stop: Static drop over budget with path resistance 2.8 times the average, which no decap can fix.
Common Mistake
The Trap: Adding decap to a hotspot that shows up in static analysis. The static drop does not move, leakage goes up, and the real cause, a missing via stack on one strap, is found two weeks later.
What The Interviewer Is Testing
- Whether static versus dynamic is the first split in the answer.
- Knowledge of minimum path resistance as the grid diagnostic.
- Awareness of the prerequisites for power-integrity ECO.
Follow-up Question & Model Response
"The grid fix would take two routing tracks from a congested channel. What else can you do?"
Candidate Model Response: Reduce current first. Spread the hot cells, for example clock buffers that CTS placed together, or downsize aggressors that have slack with eco_opt -types power_integrity (ICC2). If the hotspot is dynamic, decap in nearby white space may be enough. Check whether a via stack is missing somewhere upstream, since a via costs no track. Only if none of these closes it do you trade tracks, and then you rerun congestion and timing on the channel.
Practical Example
Tapeout Scenario: Post-route static analysis at 0.8 V shows 52 mV in one corner against a 40 mV (5%) budget (illustrative). Path resistance there is 2.8 times the block average, and -check_missing_via (ICC2) finds 14 overlaps with no via between M6 and M7 straps. Adding the vias brings static to 31 mV. Dynamic then shows 68 mV against 64 mV in a 40 um patch with 90 clock buffers; spreading them and adding 20 pF of decap gives 57 mV.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

Continue practising