FPGA signal integrity · Diagnosis
Diagnosis: SSN or crosstalk?
The fastest way to separate SSN from crosstalk is to change switching count, adjacency, and edge rate one at a time.
Observable signatures
SSN points to the bank/package/PDN
- Noise scales with the number of simultaneous outputs.
- Multiple otherwise unrelated pins in the same bank look noisy.
- Quiet pins move during a large output-switching event.
- Lower drive or slower slew improves many victims at once.
Crosstalk points to a local aggressor
- One victim follows one or a few neighboring nets.
- Failure depends on physical adjacency or routing layer.
- Specific data patterns such as 0101/1010 are worse.
- Spacing, termination, or moving one net changes the symptom.
Test sequence
- Classify the failing net: same I/O bank as the switching group, adjacent on PCB/package/connector, or both.
- Run trigger patterns: walking-1, walking-0, all-toggle, pseudorandom, quiet-bus, and real traffic.
- Measure with a real reference: use a short ground spring/coax probe. A long ground lead can create the apparent bounce.
- Change one variable: slew, drive, bank placement, disabled neighboring outputs, or source resistance.
- Check vendor SSO tables: device family, package, I/O standard, VCCIO, load, and bank usage all matter.
Interpretation
- If the problem tracks total simultaneous switching count, suspect SSN first.
- If the problem tracks one physical aggressor, suspect crosstalk first.
- If both are true, treat it as combined bank-wide bounce plus local coupling.
Sources: Microchip AN4848; AMD/Xilinx XAPP689; Altium, “Is it Simultaneous Switching Noise or Crosstalk?”; UBC, “Crosstalk-Aware Routing in FPGAs”; Design & Reuse, “How to reduce simultaneous switching output noise with a stand-alone SerDes.”