Signal Integrity
Until now every wire had its delay to itself. On a real chip, wires run side by side for long distances, and a wire that switches pulls on its neighbours through the capacitance between them. That can make a signal later, earlier, or put a pulse on a line that should be quiet. This volume shows how much, and how each effect is fixed.
- What coupling capacitance is, and which wire is the aggressor and which the victim
- Why a neighbour switching the other way slows a net, and the same way speeds it up
- How crosstalk delta delays enter setup and hold checks
- How big a crosstalk glitch can be, and where it does the most damage
- How spacing, shielding, stronger drivers and shorter runs each fix crosstalk
12.1 Crosstalk: aggressors and victims
Two wires side by side have capacitance between them. When one switches, it pulls on the other. That is crosstalk: the switching wire is the aggressor, the disturbed one the victim.
Volume 02 treated every wire as if it were alone, with capacitance only to the ground below it. On a real chip, wires run next to each other for hundreds of micrometres, a fraction of a micrometre apart. The capacitance between neighbours - coupling capacitance - can be as large as the capacitance to ground.
Every net is a victim of its neighbours and an aggressor to them in turn. A timing tool with signal integrity switched on looks at every pair that runs close together, and asks what each can do to the other.
Crosstalk is the same capacitance you met in Volume 02, but to a neighbour that moves instead of to a ground that stays still. When the neighbour moves, so does the charge.
In crosstalk, what is the victim?
Show the answer
Answer: B. The aggressor is the wire that switches; the victim is its neighbour, whose delay or quiet value is disturbed through the coupling capacitance.
12.2 Crosstalk delay
If the neighbour switches the opposite way, the coupling capacitance effectively counts twice, and the victim is slower. If it switches the same way, the coupling vanishes, and the victim is faster. The change is the crosstalk delta delay.
Why twice? The victim's driver must swing its end of the coupling capacitor through the whole supply. If the other end swings the opposite way at the same time, the voltage across the capacitor changes by twice as much - so twice the charge must flow. If both ends move together, no charge flows at all.
Take a victim driven through 1.5 kOhm, with 30 fF to ground and 12 fF to its neighbour:
| Aggressor | Coupling counts as | Victim delay | Change |
|---|---|---|---|
| Quiet | 1 x Cc | 43.7 ps | - |
| Switches the opposite way | 2 x Cc | 56.1 ps | +12.5 ps |
| Switches the same way | 0 x Cc | 31.2 ps | -12.5 ps |
Each delay is 0.69 x R x (Cg + k x Cc), from Volume 02.
How the tool uses it
- Setup assumes the worst for lateness: slowing deltas on the data path, speeding deltas on the capture clock.
- Hold assumes the worst for earliness: speeding deltas on the data path, slowing deltas on the capture clock.
| Path | Without crosstalk | With crosstalk |
|---|---|---|
| The adder path (setup) | 1.76 ns | 1.70 ns, with +0.06 ns on its data nets |
| ...and its capture clock sped up by 0.03 ns | 1.67 ns | |
| The short path (hold) | 0.06 ns | 0.03 ns, with its data sped up by 0.03 ns |
Forgetting that crosstalk can speed a net up. Take a hold check on a short path, with the data rushing through because its neighbour switches the same way. That is one of the ways a chip that passed without signal integrity fails with it.
A victim has R = 2 kOhm, Cg = 20 fF and Cc = 10 fF. How slow is it when its neighbour switches the opposite way?
Show the answer
Answer: C. Opposite switching counts the coupling twice: 0.69 x 2 x (20 + 2 x 10) = 55.5 ps. Quiet, it would be 41.6 ps; with the neighbour switching the same way, 27.7 ps.
12.3 Crosstalk glitches
A victim that should stay quiet can still be kicked by a switching neighbour. The pulse is a crosstalk glitch. On a data line it is usually harmless; on a clock, a reset or an enable it can be a disaster.
How big can it be?
If nothing held the victim in place, the charge would share out between the two capacitances. That gives an upper bound: Vdd x Cc / (Cc + Cg). On a 0.90 V supply, with 30 fF to ground:
| Coupling | Glitch, at most | Of the supply |
|---|---|---|
| 4 fF | 0.106 V | 12% |
| 8 fF | 0.189 V | 21% |
| 12 fF | 0.257 V | 29% |
| 20 fF | 0.360 V | 40% |
The victim's own driver fights back, so the real peak is lower. But a weakly driven net with a lot of coupling can see a glitch approaching half the supply. That is enough to flip a gate.
Where a glitch does harm
- On a data line: usually harmless, if it dies away before the next clock edge. Only a glitch right at the edge is captured.
- On a clock: an extra clock edge. Every flip-flop on that branch acts twice.
- On an asynchronous reset: a spurious reset, at any moment.
- On a clock-gate enable: a chopped or extra clock pulse, as in Volume 07.
Tools report glitches separately from delays, as noise violations. Nets that must never glitch - clocks, resets - are usually protected before routing, not repaired after.
A victim has 30 fF to ground and 10 fF to an aggressor, on a 1.0 V supply. What is the most its glitch could be?
Show the answer
Answer: A. The charge-sharing bound is Vdd x Cc / (Cc + Cg) = 1.0 x 10 / 40 = 0.250 V. The 0.333 V answer divides by Cg alone, forgetting that Cc is part of the total.
12.4 Fixing signal integrity problems
Crosstalk is fixed by cutting the coupling or making the victim harder to push: more space, a shield, a stronger driver, or a shorter run side by side.
Here is each fix applied to the victim of sub-module 12.2, measured by how much an opposite-switching neighbour changes its delay:
| Fix | Quiet delay | Worst crosstalk change |
|---|---|---|
| Nothing | 43.7 ps | +12.5 ps |
| Double the spacing, so the coupling halves | 37.4 ps | +6.2 ps |
| Halve the length they run side by side | 37.4 ps | +6.2 ps |
| A stronger driver, 0.5 kOhm | 14.6 ps | +4.2 ps |
| Shield: a grounded wire in place of the neighbour | 43.7 ps | +0.0 ps |
The shield is the interesting one. The victim keeps all its capacitance - the shield is still 12 fF away - so it is no faster. But its neighbour never switches, so its delay is always 43.7 ps. That is why clock nets are often shielded: a steady delay matters more to a clock than a small one.
- Spacing and shorter runs cut the coupling itself. Routers do this automatically when told a net is sensitive.
- Upsizing the driver makes the victim recover faster, cutting both the delta delay and the glitch.
- Shielding removes the switching neighbour, at the cost of routing space.
- Timing windows, in the tool, check whether the aggressor can actually switch while the victim does. If it cannot, there is no crosstalk to fix.
Fixing every crosstalk violation by upsizing drivers. It works, but it adds power and area, and a stronger driver is itself a stronger aggressor to its neighbours. Spacing and shielding the few truly sensitive nets is usually cheaper.
Why is a shielded clock net useful even though it is no faster?
Show the answer
Answer: D. With a grounded wire beside it, the clock's delay is the same whatever its surroundings do. Skew is about differences in clock arrival, so a steady delay is worth more to a clock than a slightly shorter one.
What you learned
- Neighbouring wires couple through capacitance: the switching one is the aggressor, the other the victim.
- An opposite-switching neighbour doubles the coupling and slows the victim; a same-way one speeds it up.
- Setup adds the slowing delta to data and the speeding delta to the capture clock; hold does the reverse.
- A quiet net can be kicked into a glitch, at most Vdd x Cc / (Cc + Cg).
- Glitches matter most on clocks, resets and clock-gate enables.
- Spacing, shorter runs, stronger drivers and shields each reduce crosstalk.
Key words from this volume
Every word below has a plain-English entry in the glossary.
Practice
Crosstalk on the adder path
Signal integrity analysis finds 0.12 ns of crosstalk delay across the adder path's data nets. Its setup slack without crosstalk was 1.76 ns. What is it now, and should anyone worry?
Show the solution
The data path is 0.12 ns later, so the slack drops to 1.76 - 0.12 = 1.64 ns. Nobody needs to worry about this path: it still has plenty. Crosstalk matters on paths that were already close to zero.
Choose the fix
A reset net runs 2 mm beside a busy data bus and is picking up glitches. Which fix would you pick first, and why not simply upsize the reset's driver?
Show the solution
Shield it, or move it away from the bus. A reset must never glitch, and shielding removes the switching neighbour entirely rather than just making the glitch smaller.
Upsizing the driver does shrink the glitch, but it does not remove it, and a stronger reset driver becomes an aggressor to its own neighbours. For a net that must be glitch-free, remove the coupling rather than fight it.
Interview corner
Why does opposite switching slow a net?
"Explain why crosstalk can make a net slower or faster."
Show the solution
"The coupling capacitor between two nets carries charge in proportion to the voltage change across it. If the victim rises while the aggressor falls, the voltage across the coupling capacitor changes by twice the supply. So the victim's driver has to supply twice the coupling charge - the Miller effect - and the transition slows. If both rise together, the voltage across it hardly changes, no charge flows, and the victim speeds up. STA applies the slowing delta for setup and the speeding delta for hold."
Timing windows
"Why do signal integrity tools use timing windows?"
Show the solution
"To avoid reporting crosstalk that cannot happen. An aggressor only affects a victim if it can switch while the victim is switching. The tool computes the window of times each net can switch, from the timing analysis itself, and only counts aggressors whose windows overlap the victim's. Without that, every neighbour would be assumed to switch at the worst moment, and the results would be far too pessimistic."
Volume 13 brings every constraint in this course together: the complete SDC language, written line by line, and how to check that it says what you meant.