BeginnerQuestion 126 of 127Source: Synopsys ICC2 Implementation User Guide: Routing

How do you read routing statistics after detail routing?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Look at three things: wire length per layer, the split between horizontal and vertical wiring, and via statistics including the double via rate. report_design -routing gives shape counts, wire length and via statistics, and report_wirelength gives length per layer and direction. Together they tell you whether the router used layers sensibly and how much yield protection the vias have.

Technical Reference DiagramHow do you read routing statistics after detail routing?
Annotated sample of a routing statistics report with rows for wire length per layer, horizontal and vertical split, via counts, and the double via conversion rate called out.

Technical Explanation

  • report_design -routing reports final wiring statistics for signal and PG nets: shape counts and wire length per layer, the horizontal and vertical split, and totals.
  • The same report gives via statistics: how many of each simple via were used, the double via conversion rate per layer and for the block, and any custom vias.
  • report_wirelength covers signal and clock nets by default, not PG, and has two tables: wire length per layer, split by global and detailed routing, and wire length by direction.
  • In report_wirelength, "Virtual" is the estimated length before real routing, and it stays in the report even after route_auto. "BestAvailable" is the sum of all nets' lengths at whatever stage each net is in.
  • A healthy layer profile uses lower layers mostly for short local connections and upper layers for long nets. A lot of long wire on M2 usually means upper layers were blocked or congested.
  • The double via rate in report_design includes PG vias, so it will differ from the signal-only rate printed during redundant via insertion.

What To Check

  • Wire length per layer, compared with the same block's previous run.
  • Horizontal and vertical totals against the layer direction plan.
  • Via count per layer and the double via conversion rate.
  • Whether "Virtual" and "BestAvailable" are close or far apart.

Command Checks & Actions

ICC2report_design -routing

Reports wire length, shape counts and via statistics, including the double via conversion rate.

ICC2report_wirelength

Reports wire length per layer and per direction for signal and clock nets.

ICC2report_design -routing -hierarchical

Reports routing statistics across the whole physical hierarchy instead of only the top block.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): Wire length rising gradually toward upper layers for long nets, no single layer far above its neighbours, and double via rate in line with the previous run.
  • Suspicious (illustrative): A sudden jump in M2 or M3 wire length compared with the last run, or one via layer converting far worse than the rest.
  • Hard stop: Total wire length far above the virtual estimate across the block, which means heavy detours and a routability problem.

Common Mistake

The Trap: Comparing the double via rate from report_design -routing with the rate from the redundant via insertion log. One includes PG vias and the other does not. The numbers disagree by several percent and the engineer thinks insertion regressed, when the two numbers simply count different vias.

What The Interviewer Is Testing

  • Whether you can read a routing report for signs of trouble, not just totals.
  • Do you know what "Virtual" and "BestAvailable" mean?
  • A strong answer shows you know which via rate you are quoting.

Follow-up Question & Model Response

"What would it tell you if detailed wire length came out much higher than the virtual estimate?"

Candidate Model Response: It means real routes are much longer than the estimates used during placement and early optimization, usually because of detours around congestion, blockages or macros. Timing done on the estimates was optimistic. Look at where the extra length is, by layer and by area. If it is concentrated in one channel, that area is congested. If it is spread everywhere, the estimate itself may be poorly calibrated for this design.

Practical Example

Tapeout Scenario: A routed block's report shows (illustrative) M2 1.9 m, M3 3.1 m, M4 3.4 m, M5 2.2 m, M6 1.6 m of signal wire, 5.3 m horizontal and 6.9 m vertical, and a block double via rate of 71%. The previous run had M2 at 1.2 m. The extra 0.7 m on M2 traces to a new routing blockage on M4 to M6 over a macro that forced long nets down. Removing M4 from that blockage brings M2 back to 1.3 m.

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.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →