How do you read a report_si_bottleneck report to find the worst nets?
From PDVerse STA Mentor Guide ยท pdVerse Mentor Guide
Short Answer
The report_si_bottleneck (PT) command ranks nets by how much crosstalk delay or noise they contribute across every scenario, then prunes duplicates so you get one unique, sorted list of the worst offenders instead of scrolling through a separate report per scenario. You read it top to bottom, fixing the highest-cost net first, since it usually touches the most violating paths per unit of repair effort.
Technical Explanation
Without this report, finding the nets worth fixing means digging through individual path reports and mentally tallying which nets keep reappearing. report_si_bottleneck does that tallying for you.
- It ranks nets, not paths. A single problem net can sit on dozens of violating paths at once, so ranking by net โ rather than by path โ points straight at the fix with the widest impact.
- The
-cost_typeoption decides what "worst" means. For example,-cost_type total_victim_delay_bump(PT) ranks by how much total delay a net's coupling adds across all the paths it affects, which is one practical way to prioritize. - It works across every scenario at once. Rather than running the report separately per corner or mode, the command gathers results across all active scenarios, sorts them, and removes duplicate nets so the same physical net does not appear once per scenario.
- The
-slack_lesser_thanoption filters out noise from nets that barely matter, keeping the list focused on nets whose associated paths are close to or past a violation, rather than every net that has any coupling at all. - Why it matters: SI fixes โ shielding, spacing, resizing a driver โ cost layout effort, so spending that effort on the net at the top of this list clears the most violations per fix, instead of chasing whichever net happens to show up in the first path report you open.
- What breaks: fixing nets in the order they appear in a plain
report_timing(PT) path dump instead of this ranked view โ that order reflects which paths happen to be worst, not which net, once fixed, removes the most violations.
Common Mistake
The Trap: fixing SI violations path by path, in whatever order report_timing (PT) happens to list them, instead of net by net.
- A designer reruns
report_timingafter every fix, picks the next worst path, and fixes whatever net sits on it, not realizing several of the paths already fixed and still-violating paths share the very same aggressor net. - This wastes fix attempts on paths that would have cleared automatically once the shared aggressor net was addressed once, at the top of a
report_si_bottlenecklist.
Follow-up Question & Model Response
If the top net in a report_si_bottleneck list is a clock network net, would you fix it the same way as a top-ranked data net?
Candidate Model Response: No, and that distinction matters before doing anything else. A clock net acting as an aggressor against data nets is fixed on the aggressor side โ shielding it, or reducing its coupling to nearby data routing โ since you generally do not want to touch clock tree structure to fix a data-side SI problem. A clock net acting as a victim is more serious, because crosstalk on a clock net can shift an entire downstream launch or capture edge, not just one data path's arrival time, so I would prioritize that case even above a data net with a similar cost ranking, and verify the fix with report_clock_timing (PT) afterward.
Practical Example
Running report_si_bottleneck -cost_type total_victim_delay_bump -max -slack_lesser_than 2 -significant_digits 6 (PT) across a block's four corners returns a single net, bus_ctrl[12], at the top with a combined victim delay bump of 340ps spread across 14 distinct paths, more than triple the next entry. Adding 0.4 microns of extra spacing to that one net during a routing ECO clears 11 of the 14 affected paths in the next SI-enabled run, compared with an estimated six separate fixes if the paths had been addressed individually.
Complete STA Handbook
Master Signoff-Ready Static Timing Analysis
Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Continue practising