A wire's delay depends on the capacitance it must charge. Part of that capacitance goes to the neighbouring wire. If the neighbour holds still, the coupling capacitance acts as ordinary capacitance. If it switches, the voltage across it changes, and the charge the victim's driver must supply changes with it.
Neighbour (aggressor) behaviour | Effective coupling factor | Effect on the victim |
|---|---|---|
Switches in the same direction | about 0 | Victim is helped: delay decreases |
Stays quiet | 1 | Reference: coupling acts as ground capacitance |
Switches in the opposite direction | about 2 | Victim is hindered: delay increases |
C_effective = C_ground + k * C_coupling
k = 0 (same direction), 1 (quiet), 2 (opposite direction)
delay (lumped, first order) = 0.69 * R_driver * C_effectiveR = 2000.0 # driver resistance, ohm
Cg, Cc = 8.0, 6.0 # ground and coupling capacitance, fF (illustrative)
def delay_ps(k):
return 0.69 * R * (Cg + k * Cc) / 1000.0 # ohm * fF = fs, so divide by 1000 for ps
d = {k: round(delay_ps(k), 2) for k in (0, 1, 2)}
assert d == {0: 11.04, 1: 19.32, 2: 27.6}
slowdown = round(d[2] - d[1], 2)
speedup = round(d[1] - d[0], 2)
assert slowdown == 8.28 and speedup == 8.28
assert round(d[2] / d[1], 3) == 1.429
print("PASS: delay by aggressor behaviour", d, "; slowdown", slowdown, "ps and speedup", speedup, "ps relative to quiet")With 8 fF to ground and 6 fF of coupling, the same victim takes 19.32 ps with a quiet neighbour, 27.60 ps with a neighbour switching against it and 11.04 ps with one switching with it. The opposite-direction case is 43% slower than the quiet one. The factors 0 and 2 are the textbook idealisation of an aggressor that switches as fast as the victim; real analysis uses the actual slews and a proper electrical model, so treat the numbers as an orientation.
SI analysis is on in every setup and hold scenario that signoff depends on.
Coupling capacitance appears in the extracted parasitics and the same extraction feeds timing and SI.
The worst-delay nets are checked for their aggressors, not only for their nominal delay.
When it switches against the victim it slows it (hurting setup on that path); when it switches with the victim it speeds it up (hurting hold on that path).