HomeSTA CourseDay 9
DAY 9 · ADVANCED STA

Crosstalk and Signal Integrity in STA

By EcrioniX · Updated June 2026

Standard STA models each net in isolation. But on a real chip, nets run parallel to each other in dense metal routing, separated by only a few nanometres of dielectric. When one net switches, it capacitively couples onto its neighbours. This crosstalk can slow or speed up signals (delta delay), or inject voltage pulses onto quiet nets (glitch) — both of which can cause failures that standard STA would not predict.

1. The physics of crosstalk

Two parallel metal wires form a capacitor between them. When wire A (the aggressor) switches, current flows through this coupling capacitor into wire B (the victim). The amount of induced current depends on:

Aggressor-Victim Coupling Aggressor Net A (switching 0→1) Cc Cc Cc Cc Victim Net B (steady state = 0) Delta delay effect: • Same direction switch (A↑ & B↑): victim transitions faster (negative delta) • Opposite direction (A↑ but B↓): victim transitions slower (positive delta) • Victim not switching: glitch pulse induced (amplitude proportional to Cc/Ctotal)

2. Delta delay — crosstalk slowing and speeding

When the aggressor switches while the victim is also switching, the induced current either adds to or subtracts from the victim’s drive current:

Aggressor directionVictim directionDelta delay effectImpact on timing
Rising (0→1)Rising (0→1)Negative delta — victim transitions fasterHelps setup, hurts hold (data arrives early)
Falling (1→0)Falling (1→0)Negative delta — victim transitions fasterHelps setup, hurts hold
Rising (0→1)Falling (1→0)Positive delta — victim transitions slowerHurts setup, helps hold (data arrives late)
Falling (1→0)Rising (0→1)Positive delta — victim transitions slowerHurts setup, helps hold

For setup analysis, STA looks for the worst-case combination of aggressor and victim transitions that maximise the victim’s delay (positive delta = opposite-direction switching). For hold analysis, it looks for the combination that minimises delay (negative delta = same-direction switching).

3. Crosstalk glitch

A glitch occurs when the victim net is not switching but the aggressor is. The aggressor injects charge through Cc, momentarily raising or lowering the victim voltage. The glitch amplitude is approximately:

V_glitch ≈ VDD × Cc / (Cc + Cground)

Where Cground is the victim’s ground capacitance (total net load). If Cc is large relative to Cground — possible on long parallel runs with weak victim drivers — the glitch can exceed the logic threshold and cause false capture at a downstream flip-flop. This is a functional failure, not just a timing one.

Glitch failures are the hardest to debug

A glitch-induced capture looks like a random bit flip. It may only occur when a specific aggressor switching pattern coincides with a vulnerable victim state. These failures are sensitive to timing (which cycle the aggressor switches on) and are extremely difficult to reproduce in simulation. SI analysis in STA catches them before silicon.

4. How SI extends STA — PrimeTime SI mode

Standard PrimeTime reads coupling capacitance from SPEF files (the post-layout parasitics). Coupling caps are in the SPEF as *C *NET victim_net 0.xxx fF aggressor_net 0.yyy fF entries. In SI mode, PT performs:

  1. Aggressor identification: for each victim net, find all aggressor nets (those with coupling cap to victim)
  2. Simultaneous switching analysis: determine which aggressors switch simultaneously with the victim in the worst-case direction
  3. Delta delay computation: using aggressor slew, coupling cap, and victim characteristics, compute the worst-case delta delay
  4. Path propagation: add delta delay to the standard cell + wire delay for that net segment
  5. Glitch analysis: for quiet victims, compute glitch amplitude and flag if it exceeds the cell’s noise immunity threshold
Enabling SI analysis in PrimeTime
## Step 1: Read coupling capacitances (SPEF must include *C coupling caps) read_parasitics -format spef design.spef ## Step 2: Enable SI analysis set_si_delay_analysis -enable true ## Alternatively, set in the application variable: set_app_var si_enable_analysis true ## Step 3: Set the mode for how simultaneous switching is handled ## all_aggressors: worst-case all aggressors switch simultaneously (pessimistic) ## library_based: use statistical aggressor alignment (more accurate) set_app_var si_xtalk_delay_analysis all_aggressors ## Step 4: Run SI-aware timing analysis update_timing -full update_xtalk_analysis ; ## computes delta delays for all victim nets ## Step 5: Report SI results report_si_bottleneck -cost_type delta_delay -slack_lesser_than 0 ## Show all nets with significant crosstalk impact report_si_bottleneck -cost_type total_delta_delay \ -nets [get_nets -hierarchical *] -max_rows 50

5. Reading the SI timing report

When SI is enabled, the PrimeTime timing report includes an additional delta column showing the crosstalk contribution per net segment. The total delta on a critical path can easily add 50–200ps at 28nm.

PrimeTime SI timing report — annotated
Point Incr Path Delta Total ───────────────────────────────────────────────────────────── clock CLK (rise edge) 0.00 0.00 clock network delay 0.42 0.42 u_adder/FF_launch/CK (rise) 0.00 0.42 u_adder/FF_launch/Q (rise) 0.09 0.51 u_adder/U1/A (rise) net: n1 0.03 0.54 +0.012 <- delta delay from Cc u_adder/U1/Z (fall) 0.08 0.62 u_adder/U2/A (fall) net: n2 0.05 0.67 +0.031 <- larger coupling, long net u_adder/U2/Z (rise) 0.07 0.74 u_adder/FF_capture/D net: n3 0.02 0.76 +0.008 data arrival time 0.76 clock CLK (rise edge) 1.00 1.00 clock uncertainty -0.08 library setup time -0.04 required time 0.88 slack (MET) 0.12 ───────────────────────────────────────────────────────────── Total crosstalk delta on this path: +0.051 ns (Without SI: slack would have been 0.171 ns)

6. Identifying worst SI violations — report_si_bottleneck

report_si_bottleneck — finding crosstalk hotspots
## Report nets with highest delta delay contribution report_si_bottleneck \ -cost_type delta_delay \ -slack_lesser_than 0.1 \ -max_rows 20 ## Output example: ## Net Name Aggressor Nets Max Delta Slack Impact ## u_bus_data[7] clk_tree_buf14 0.083 ns -0.045 ns ## u_ctrl_en u_alu_out[3] 0.071 ns -0.028 ns ## u_ddr_dq[15] u_ddr_dqs 0.055 ns -0.021 ns ## Report all glitch violations report_si_bottleneck -cost_type glitch -slack_lesser_than 0 ## Find aggressor-victim pairs for a specific net report_si_delay_analysis -nets [get_nets u_bus_data[7]] ## Show coupling capacitance ratios report_net -connections -verbose -si [get_nets u_bus_data[7]]

7. Fixing crosstalk violations

The physical fixes for crosstalk address the coupling capacitance, the aggressor slew rate, or the victim net’s susceptibility:

Fix techniqueHow it worksCostBest for
ShieldingInsert a GND or VDD wire between aggressor and victim; Cc to shield is much lower than Cc to aggressorHigh area (needs extra routing track)Clock tree nets, critical data paths
SpacingIncrease physical distance between aggressor and victim; Cc drops with distanceMedium (needs re-routing)Nets with long parallel runs
Buffer insertion on victimBreak victim net into shorter segments; reduces high-impedance segment lengthLow–medium (area for buffer)Long weak-drive victim nets
Layer changeRe-route aggressor or victim to a different metal layer (often with ground plane below)Medium (routing congestion impact)Clock vs data on parallel layers
Driver upsizing on victimStronger driver lowers victim net impedance; harder to inject glitchMedium (area, power)Glitch violations on low-drive nets
Reducing aggressor slewSlow down aggressor transitions; less dV/dt = less induced currentLow (timing impact on aggressor path)When aggressor is not timing-critical
ECO Tcl for crosstalk fix — shield insertion
## Identify shielding candidate nets from SI report set si_critical_nets [get_nets -of [get_pins {u_bus* u_clk_div*}]] ## Check current coupling ratio foreach net $si_critical_nets { set cc [get_net_attribute $net coupling_cap] set ct [get_net_attribute $net total_cap] set ratio [expr {$cc / $ct}] if {$ratio > 0.3} { puts "Shielding candidate: [get_object_name $net] (Cc/Ct = $ratio)" } } ## In layout tool: set shielding constraint on these nets # In Innovus/ICC2: # set_net_shielding -nets [get_nets u_bus_data[7]] -shield_net VDD ## After re-routing with shields, re-run SI analysis update_xtalk_analysis report_si_bottleneck -cost_type delta_delay -max_rows 10

SI analysis requires SPEF with coupling capacitances

A SPEF file for SI must include coupling capacitance lines (marked with coupling net names, not just total cap to ground). If your extraction flow only extracts ground capacitance (total cap model), SI analysis cannot be performed correctly. Ensure your extraction tool is run with -coupling or equivalent option. The percentage of coupling vs total cap grows significantly at 28nm and below — often 40–60% of total cap is coupling.

Day 9 Key Takeaways

Frequently Asked Questions

What is crosstalk in STA?

Crosstalk occurs when a switching aggressor net capacitively couples noise onto an adjacent victim net. It causes two effects: delta delay (the victim transition is sped up or slowed down) and crosstalk glitch (a spurious voltage pulse on a quiet victim that can cause a logic error). Standard STA ignores crosstalk; Signal Integrity (SI) analysis extends STA to model it.

What is delta delay in crosstalk analysis?

Delta delay is the timing deviation on a victim net caused by an aggressor switching simultaneously. Same-direction switching (both nets rising or falling) speeds up the victim (negative delta), which helps setup but hurts hold. Opposite-direction switching slows the victim (positive delta), which hurts setup but helps hold. SI-aware STA computes the worst-case delta for each victim in each timing check direction.

What is a crosstalk glitch?

A glitch is a momentary voltage pulse induced on a victim net that is not switching. When an aggressor switches rapidly with significant coupling capacitance to a quiet victim, charge is injected into the victim. If the glitch exceeds the logic threshold of a downstream cell, it may be incorrectly captured as a logic transition, causing a functional failure even though no timing path was violated.

How does PrimeTime handle signal integrity analysis?

In SI mode, PrimeTime reads coupling capacitances from SPEF, identifies aggressor nets for each victim, determines worst-case simultaneous switching scenarios, computes the delta delay for each victim net segment, and adds it to the standard path delay. It also performs glitch analysis. The results are visible in the timing report as a delta column per net segment.

What are the main fixes for crosstalk violations?

The primary fixes are: (1) shielding — inserting a GND/VDD wire between aggressor and victim to interrupt Cc; (2) spacing — increasing physical distance; (3) buffer insertion on the victim to break high-impedance segments; (4) layer change to route on a layer with a ground plane; (5) driver upsizing on the victim to lower its impedance and reduce glitch amplitude.

← Previous
Day 8: Timing Exceptions