IntermediateQuestion 93 of 222

How do you analyze and debug placement routing congestion heatmaps?

From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide

Last updated:

Short Answer

Congestion debugging starts with a fast global-routing trial over a grid of G-cells (think of it as running a rough traffic simulation before building real roads) to estimate routing demand versus available capacity. The core metric is overflow: Overflow = Demand โˆ’ Supply per G-cell, where supply is how many tracks that tile actually has (layers ร— tile height รท (width+spacing)) and demand is how many nets need to cross it.

Technical Reference DiagramHow do you analyze and debug placement routing congestion heatmaps?

Technical Explanation

  • Congestion debugging starts with a fast global-routing trial over a grid of G-cells (think of it as running a rough traffic simulation before building real roads) to estimate routing demand versus available capacity.
  • The core metric is overflow: Overflow = Demand โˆ’ Supply per G-cell, where supply is how many tracks that tile actually has (layers ร— tile height รท (width+spacing)) and demand is how many nets need to cross it.
  • There are real pass/fail thresholds, not just "looks red on the map": max G-cell overflow should stay โ‰ค2โ€“3 tracks, and total overflow across the whole chip should be under 0.5% of total routing resources โ€” beyond that, expect real detail-routing DRC failures.
  • Once you see overflow, triage by pattern rather than just re-running placement blindly: overflow that's heavily vertical (V-overflow) usually points to a narrow macro corridor or a missing horizontal routing layer in that area.
  • Overflow sitting directly on top of complex cells (AOI gates, wide MUXes) is a pin-density hotspot โ€” these cells have many pins crammed into a small footprint, and the fix is often cell padding (spreading the cells out) rather than a floorplan change.
  • An "X"-shaped overflow pattern is a strong tell for criss-crossing dataflow โ€” usually caused by macros oriented so their pins face away from each other, forcing every connecting net to detour across the die; reorienting or repositioning the macros is the real fix, not just adding routing layers.

Common Mistake

The Trap: Proceeding to CTS when G-cell overflow exceeds 5 to 10 tracks. The detailed router will fail to connect pins, creating thousands of unresolvable open nets and DRC shorts.

Follow-up Question & Model Response

"What is the difference between Global Routing Cell (GRC) congestion and trial route congestion?"

Candidate Model Response: GRC congestion evaluates statistical track demand across coarse grid boundaries. Trial route performs fast planar pathfinding to identify specific layer bottlenecks.

Practical Example

Reporting Routing Congestion:

# Synopsys ICC2: Report detailed global route congestion metrics
report_congestion -grc_based -by_layer

# Cadence Innovus: Check congestion map
checkCongestion -detailed

PnR Flow Mentor Guide

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.

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle
PnR Flow Physical Design Mentor Guide โ€” eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out.