IntermediateQuestion 184 of 192Source: Synopsys PrimeTime User Guide: Signal Integrity Analysis and ECO Flow, Crosstalk Delta Delay Fixing

How do you find and fix the nets that cause the most crosstalk delay?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

Start with report_si_bottleneck -cost_type delta_delay (PT) to rank victim nets by the crosstalk delay they add on failing paths. Then fix them with fix_eco_drc -type delta_delay -delta_delay_threshold <v> (PT), which sizes drivers and inserts buffers on victims whose delta delay exceeds the threshold. A threshold is needed because there is no delta delay constraint, and so no delta delay slack to drive the fixing.

Technical Reference DiagramHow do you find and fix the nets that cause the most crosstalk delay?
A victim net running beside two aggressors with its crosstalk bump waveform, ranked in a bottleneck cost table, then shown after its driver is upsized and a buffer splits the coupled run, with a smaller bump.

Technical Explanation

  • report_si_bottleneck (PT) has four cost types. delta_delay ranks victims by absolute delta delay, delta_delay_ratio by delta delay relative to stage delay, total_victim_delay_bump by the sum of bump heights, and delay_bump_per_aggressor ranks aggressor nets by the bumps they cause on victims.
  • The default slack level is zero, so only nets on violating paths get a cost. -slack_lesser_than widens it. Without -max or -min both setup and hold are considered, and clock nets are left out unless you add -include_clock_nets.
  • For one reported net, report_delay_calculation -crosstalk (PT) from the driver pin to a load pin lists the aggressors, which ones are active, their bump heights and whether their timing windows line up.
  • fix_eco_drc -type delta_delay (PT) targets victims whose delta delay cost exceeds the threshold and that lie on a negative-slack path. The threshold must be positive and applies to both slowdown and speedup. It picks nets with the same bottleneck analysis, so the report previews its targets, and in DMSA the report merges all scenarios.
  • Delta delay fixing requires a PrimeTime-ADV-PLUS license (PT UG, ECO chapter).
  • Sizing and buffering help because a stronger victim driver holds its net more firmly, and a buffer shortens the coupled run each driver sees. Long parallel routes may still need spacing or shielding in ICC2; set_coupling_separation (PT) lets you test that gain in PrimeTime first.

What To Check

  • The top victims by delta delay on failing paths, setup and hold separately.
  • Active aggressors per victim and whether their windows really overlap.
  • Delta delay on the same nets after fixing, and the path slack they sit on.
  • Nets sizing could not help, which need a routing fix.

Command Checks & Actions

PrimeTime (pt_shell)report_si_bottleneck -cost_type delta_delay -min -max -slack_lesser_than 0.0 -all_nets

Previews the victim nets delta delay fixing will target, highest cost first.

PrimeTime (pt_shell)report_si_bottleneck -cost_type delta_delay -minimum_active_aggressors 3

Lists victims hit by three or more active aggressors.

PrimeTime (pt_shell)report_delay_calculation -crosstalk -from [get_pins g1/Z] -to [get_pins g2/A]

Shows aggressors, bump heights and window alignment for one victim.

PrimeTime (pt_shell)fix_eco_drc -type delta_delay -verbose -delta_delay_threshold 0.05 -methods {size_cell insert_buffer} -buffer_list {BUFX1 BUFX2 BUFX3} -physical_mode open_site

Fixes victims with more than 0.05 ns delta delay on failing paths.

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): The top 20 victims drop from 40 to 60 ps of delta delay to under 15 ps, and their paths pass.
  • Suspicious (illustrative): Delta delay falls but path slack barely moves, meaning crosstalk was not what limited those paths.
  • Hard stop: Victims left above threshold with the note that no fix fits, or new noise violations after fixing.

Common Mistake

The Trap: Setting the threshold very low, such as 0.001 ns, so every victim with any bump gets fixed. The tool resizes hundreds of drivers with tiny delta delay, area and leakage go up, and the stronger drivers become aggressors for their own neighbours. The next extraction shows new crosstalk elsewhere.

What The Interviewer Is Testing

  • Knows why delta delay fixing needs a threshold.
  • Uses the bottleneck report to preview targets before fixing.
  • Knows when sizing cannot help and routing must change.

Follow-up Question & Model Response

"Why not fix the aggressor instead of the victim?"

Candidate Model Response: Sometimes you should: the delay_bump_per_aggressor cost type finds aggressors that hurt many victims at once. But slowing an aggressor's edge can break the aggressor's own timing, since it is a signal on some other path. fix_eco_drc -type delta_delay (PT) works on victims, which is safer for timing. When one aggressor dominates, the cleaner fix is often physical, such as spacing or shielding the pair in ICC2.

Practical Example

Tapeout Scenario: After route, 85 setup paths fail with worst -32 ps (illustrative). report_si_bottleneck -cost_type delta_delay (PT) shows 14 victims carrying 38 to 61 ps of delta delay. With a 0.03 ns threshold, fix_eco_drc (PT) upsizes 11 drivers and inserts 3 buffers, and delta delay on those nets drops to 6 to 14 ps. 71 of the 85 paths pass. The other 14 run beside one wide bus, and the team adds spacing on that bus in ICC2.

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.

Static Timing Analysis (STA) Handbook — ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff. →