How do you read an IR-drop map?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Read an IR map as a picture of current flowing out from the supply points: the drop should grow smoothly from each tap toward the far and busy regions. The RedHawk manual lists what to look for: how many hotspots there are and whether they are where you expect, unexpected colour jumps that suggest missing straps or connections, unexpected black areas that mean missing data or connections, and whether the colour change from source to hotspot makes sense. In ICC2, load the map with open_rail_result (ICC2) after a RedHawk Fusion run.
Technical Explanation
- Hotspots first: count them and ask whether each one is expected. A hotspot over a dense, high-activity block far from the taps is normal physics. A hotspot right next to a tap usually means the current cannot get from the tap into the grid.
- Colour jumps: a sharp change along a straight line, such as one strap or one row, points to a missing strap, a missing via row or a broken connection. Follow it with a missing via check rather than adding metal.
- Black areas: RedHawk describes them as a black box element, missing data, a missing logical connection or a missing physical connection. Until they are explained, the numbers around them are not trustworthy.
- The gradient from source to hotspot should make sense: several steps of gradual change, not a cliff. A smooth gradient with a high peak is a capacity problem; a cliff is a connectivity problem.
- Read VDD and VSS separately. RedHawk shows both maps, and the ground map can hold a problem the power map does not.
- Check the legend before the colours. An auto-scaled map paints the worst bin red whether it is 5 mV or 80 mV, so set fixed ranges tied to your budget. The standalone RedHawk log lists the five worst drops per net; in ICC2,
report_rail_result(ICC2) gives the numbers. - After a background run with
analyze_rail -voltage_drop static -nets {VDD VSS} -bg(ICC2) andopen_rail_result -back_annotate(ICC2), the instance-based map reflects moved instances but the parasitic map does not, so do not read a stale parasitic map as current.
What To Check
- Number and location of hotspots, and whether each is expected.
- Straight-line colour steps that follow a strap, row or macro edge.
- Black or empty regions, and what data or connection is missing there.
- Legend range tied to the budget, for both VDD and VSS maps.
- The worst values as numbers, not only as colours.
Command Checks & Actions
analyze_rail -voltage_drop static -nets {VDD VSS}Produces the static voltage drop results the map is drawn from.
open_rail_resultLoads the rail results so the maps can be displayed in the GUI.
report_rail_result -type effective_voltage_drop -supply_nets {VDD VSS} -limit 50 eff_drop.rptWrites the 50 worst effective drops per cell PG pin so the colours can be checked against numbers.
analyze_rail -voltage_drop static -check_missing_via -nets {VDD VSS}Follows up a sharp colour step with a missing via check.
perform analysis -staticStandalone static run; the log lists the five worst drops per net and the map opens from the IR button.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): A smooth gradient from the taps, worst drop 38 mV over the ALU against the 40 mV budget, and every remaining hotspot over known high-activity logic.
- Suspicious (illustrative): A 14 mV step across one strap line, or a hotspot sitting next to a tap.
- Hard stop: A black region over a macro or cell area, which invalidates the numbers there, or any value above budget.
Common Mistake
The Trap: Judging the map by colour on an auto-scaled legend. The reviewer sees red in one corner, adds straps, and misses that the whole map spans only 12 mV, while a second block with a 60 mV range looks similar in colour and is the real problem. Fixed ranges tied to the budget would have shown the difference in seconds.
What The Interviewer Is Testing
- Can the candidate tell a capacity problem from a connectivity problem on a map?
- Knowing that black areas mean missing data or connections and must be explained before signoff.
- Backing colour with numbers from reports.
Follow-up Question & Model Response
"The map shows a black region over a memory macro. What do you do?"
Candidate Model Response: Treat the numbers there as unknown, not as zero drop. Check whether the macro has a model and power data, whether its library is in the rail library list, and look at the report files RedHawk Fusion writes in RAIL_CHECKING_DIR, such as libcell.missing_liberty. Then check its PG pins for physical connection, since an unconnected pin also shows as missing. Rerun and confirm the region is populated before reading any value from it.
Practical Example
Tapeout Scenario: (illustrative) On a 0.8 V block the map shows a worst drop of 46 mV against a 40 mV on-die budget. There are two hotspots: the ALU at 38 mV, expected, and one next to the north-east tap at 46 mV, with a 14 mV step along one M6 strap. A missing via check finds 22 missing M6-M7 vias on that strap. After inserting them, the north-east spot falls to 24 mV and the worst drop is the ALU at 38 mV, inside budget.
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