Near Field Notes

Note 8Signal integrityRev 1Watch the video · 0:10

Eye diagram

How do you read an eye diagram?

Measure the opening at its middle. Its height is your voltage margin and its width your timing margin. Then ask how many bits drew it. A 10 Gbit/s lane 82% open on a scope is 70% open at the 10¹² bits its spec counts.

The eye, building

2 bits a slice

1slice194 ps of the stream2slices stacked291 ps of the stream3slices stacked388 ps of the stream4slices stacked485 ps of the stream20slices stacked2.0 ns of the stream100,000slices stacked9.7 µs of the streamThe stream at the receiver010110110110100110100110100111100111011110A 2-bit slice1 bit, 97 ps1slice194 ps of the stream2slices stacked291 ps of the stream3slices stacked388 ps of the stream4slices stacked485 ps of the stream20slices stacked2.0 ns of the stream100,000slices stacked9.7 µs of the streamThe stream at the receiver010110110110100110100110100111100111011110A 2-bit slice1 bit, 97 ps1slice194 ps of the stream2slices stacked291 ps of the stream3slices stacked388 ps of the stream4slices stacked485 ps of the stream20slices stacked2.0 ns of the stream100,000slices stacked9.7 µs of the streamThe stream at the receiver010110110110100110100110100111100111011110A 2-bit slice1 bit, 97 ps

A 10.3 Gbit/s stream after 6 cm of FR-4. A window cuts it into 2-bit slices, one bit apart, and stacks them. A scope draws an eye the same way.

Where an eye comes from

A 10 Gbit/s SFP+ lane

A serial link like the one behind an SFP+ fiber module. A driver sends random bits down an FR-4 trace, and the receiver reads each bit at its middle. The trace rounds every edge, so each bit still carries some of the last few. Every eye on this page is this link with its trace length, clock jitter, noise, duty cycle, edge boost or a reflection changed.

The link
Fig. 8The eye is taken hereDriverRandom bits,34 ps edgesFR-4 trace3 to 17 cmReceiverReads each bitat its middleFig. 8The eye is taken hereDriverRandom bits,34 ps edgesFR-4 trace3 to 17 cmReceiverReads each bitat its middleFig. 8The eye is taken hereDriverRandom bits,34 ps edgesFR-4 trace3 to 17 cmReceiverReads each bitat its middle

The driver, the trace and the receiver. A scope on the receiver’s pins sees the stream at the top of the page.

What the trace does
  • Sent
  • After 6 cm
Fig. 8bmV+3000−300010000011101011 bit, 97 psFig. 8bmV+3000−300010000011101011 bit, 97 psFig. 8bmV+3000−300010000011101011 bit, 97 ps

The same bits as sent and as they arrive. A lone bit after a run never reaches the full level.

The parts of an eye
Fig. 8c101234651 bit, 97 psFig. 8c101234651 bit, 97 psFig. 8c101234651 bit, 97 ps

12 cm of FR-4 with jitter and noise, 10⁶ bits. The darker the band, the more bits took that path. The long dashed line is the threshold between 1 and 0. The short ones mark 20 and 80% of the edge.

192

What to recognize

Six eyes, one problem each
Six eyes, six problems
Fig. 8d1 HealthyThin rails,sharp crossings2 Split railsLoss: each bitcarries the last few3 Ghost linesA reflection: a stub,connector or Z step4 Crossing too highDuty-cycledistortion5 Fuzzy crossingsJitter6 Fuzzy railsNoise or crosstalkFig. 8d1 HealthyThin rails,sharp crossings2 Split railsLoss: each bitcarries the last few3 Ghost linesA reflection: a stub,connector or Z step4 Crossing too highDuty-cycledistortion5 Fuzzy crossingsJitter6 Fuzzy railsNoise or crosstalkFig. 8d1 HealthyThin rails,sharp crossings2 Split railsLoss: each bitcarries the last few3 Ghost linesA reflection: a stub,connector or Z step4 Crossing too highDuty-cycledistortion5 Fuzzy crossingsJitter6 Fuzzy railsNoise or crosstalk

10.3 Gbit/s eyes, 10⁶ bits each. 1 is 3 cm of FR-4. 2 is 17 cm. 3 has an echo 18% as big, 1.6 bits late.

194

Key to eye diagrams

What is closing this eye?

  1. 1aRails split into separate linesLoss, 2
  2. 1bEach rail one bandGo to 2
  3. 2aFaint copies of the lines, offset in timeA reflection, 3
  4. 2bNo copiesGo to 3
  5. 3aEdges cross above or below the thresholdDuty-cycle distortion, 4
  6. 3bEdges cross on itGo to 4
  7. 4aCrossings wide, rails thinJitter, 5
  8. 4bRails thick and smoothNoise or crosstalk, 6

The number after each answer is its eye in Fig. 8d. Loss is fixed with a shorter or lower-loss trace, or equalization. A reflection is a stub, a connector or a step in impedance. Note 17 sizes the stub.

195

Look longer yourself

Two lanes, 10² to 10¹² bits
Lane
10⁵ bits
Eye width

Noisy clock after 10⁵ bits: 82% open

87%85%84%83%82%82%81%81%80%80%80%91%87%84%82%80%78%76%74%73%71%70%Spec, 72%87%85%84%83%82%82%81%81%80%80%80%91%87%84%82%80%78%76%74%73%71%70%Spec, 72%87%85%84%83%82%82%81%81%80%80%80%91%87%84%82%80%78%76%74%73%71%70%Spec, 72%
Eye width
82%
Time on the link
9.7 µs

Two 10.3 Gbit/s lanes. The long trace is 12.5 cm with a slowly wobbling clock. The noisy clock is 3 cm with random jitter. Light: pixels hit at least once by now. The spec counts 10¹² bits.

How long you looked
  • Long trace
  • Noisy clock
Fig. 8eEye width, % of a bit6070809010²10⁴10⁶10⁸10¹⁰10¹²bits seenSpec, 72%A scope’s 10 µsLong trace, 80%Noisy clock, 70%Fig. 8eEye width, % of a bit6070809010²10⁴10⁶10⁸10¹⁰10¹²bits seenSpec, 72%A scope’s 10 µsLong trace, 80%Noisy clock, 70%Fig. 8eEye width, % of a bit6070809010²10⁴10⁶10⁸10¹⁰10¹²bits seenSpec, 72%A scope’s 10 µsLong trace, 80%Noisy clock, 70%

Eye width on the threshold, where fewer than one bit in all those seen would be read wrong.

196
A mask test
  • Spec mask
  • Grown to the limit
  • Hits
Fig. 8fEye 148 of 50 hits on the slanted sidesEye 250 of 50 hits on the barsFig. 8fEye 148 of 50 hits on the slanted sidesEye 250 of 50 hits on the barsFig. 8fEye 148 of 50 hits on the slanted sidesEye 250 of 50 hits on the bars

SFF-8431’s mask on two 10.3 Gbit/s eyes, grown until each has 50 hits in 10⁶ samples.

198

Conditions

Link
10.3125 Gbit/s, random 1s and 0s, ±300 mV, as an SFP+ lane runs
Driver
34 ps edges from 20 to 80%, the fastest SFF-8431 allows
Trace
50 Ω FR-4 with copper and dielectric loss, 3 to 17 cm
Jitter
Random and periodic jitter added as spreads of timing, as a time shift of the received waveform
Noise
Random, at the receiver
Eye
Statistical: the chance a bit hits each pixel, so the eye can be read at 10¹² bits without simulating them all
Limits
SFF-8431 rev 4.1, table 12: jitter at most 0.28 UI, its mask, and a hit ratio of 5 in 100,000
Solver
A statistical eye in Python. The bits are simulated one by one through the trace.

Simulated only. Nothing on this page has been measured on a board yet.

Limits

  • The trace is its loss alone. No connector, package or via is in the model, and the only reflection is the one added to eye 3.
  • Crosstalk isn’t modeled. Eye 6’s fuzz is random noise, which looks the same on a scope.
  • Jitter moves the whole received waveform in time. That is the usual statistical-eye shortcut, and it misses jitter that changes an edge’s shape.

Files

  • eyesim/stat.pyThe link, the trace and the statistical eye
  • post/cards.pyThe labeled eye and the six problem eyes
  • anim/mask.pyThe mask test and its margin

Sources

Like this note?

Rev 1 ·
  1. Rev 1First published

Each fix gets a line here, with the reader's name if they want credit.

Did it answer your question?

Want more on this?

Report a problem

What should the next note be? Ask for one