---
title: "How do you read an eye diagram?"
topic: "Eye diagram"
answer: "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."
url: "https://nearfieldnotes.com/notes/eye-diagram/"
site: "Near Field Notes"
author: "Michael Walker"
note: 8
family: "Signal integrity"
published: "2026-11-02"
revised: "2026-11-02"
revision: 1
video: "https://nearfieldnotes.com/videos/eye-diagram/"
---

Note 8 · [Signal integrity](https://nearfieldnotes.com/families/si/) · Rev 1 · [Watch the video · 0:10](https://nearfieldnotes.com/videos/eye-diagram/)

Eye diagram

# How do you read an eye diagram?

**Short answer:** 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.

**Note 8’s opening figure: The eye, building.** 2 bits a slice

![Note 8’s opening figure: The eye, building](https://nearfieldnotes.com/notes/eye-diagram/fig-opening.png)

*What the figure shows:* How an eye diagram is built. A 10.3 Gbit/s stream after 6 cm of FR-4 scrolls past a 2-bit window. Each slice the window cuts is stacked on the last: 1, 2, 3, 4, then 20 slices, then 100,000, which is 9.7 µs of the stream. The stack is the eye.

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](https://nearfieldnotes.com/glossary/#g-jitter), noise, duty cycle, edge boost or a [reflection](https://nearfieldnotes.com/glossary/#g-reflection) changed.

**Fig. 8: The link.**

![Fig. 8: The link](https://nearfieldnotes.com/notes/eye-diagram/fig-8.png)

*What the figure shows:* Figure 8: the link. A driver sends random bits with 34 ps edges down an FR-4 trace 3 to 17 cm long to a receiver that reads each bit at its middle. The eye is taken at the receiver's pins.

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

**Fig. 8b: What the trace does.**

![Fig. 8b: What the trace does](https://nearfieldnotes.com/notes/eye-diagram/fig-8b.png)

*What the figure shows:* Figure 8b: 14 bits as the driver sends them, square, and as they reach the receiver after 6 cm of FR-4, with rounded edges. A lone bit after a run doesn't reach the full level before the next bit starts.

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

**Fig. 8c: The parts of an eye.**

![Fig. 8c: The parts of an eye](https://nearfieldnotes.com/notes/eye-diagram/fig-8c.png)

*What the figure shows:* Figure 8c: a 10 Gbit/s eye after 12 cm of FR-4 with jitter and noise, 10^6 bits, with its parts numbered. 1, the sampling point in the middle. 2, eye height there, 300 mV. 3, eye width at the threshold, 77 ps of the 97 ps bit. 4, the crossing, 20 ps wide. 5, the rail, 162 mV thick. 6, the edge from 20 to 80%, 67 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.

Eye diagram

### Read it at the middle, then at the edges

**1 Sampling point.** The middle of the bit, where the receiver decides 1 or 0.

**2 Eye height.** Your voltage margin at that point. 300 mV here, of a 462 mV swing.

**3 Eye width.** Your timing margin, measured on the threshold. 77 ps of the 97 ps bit.

**4 Crossing.** Where the edges cross. Its width is the jitter, 20 ps here.

**5 Rail.** The 1s and 0s piled up. A thick rail is bits carrying the last few, and noise. 162 mV here.

**6 Edge.** Its slope is the [rise time](https://nearfieldnotes.com/glossary/#g-rise-time). The driver’s 34 ps edge takes 67 ps from 20 to 80% after the trace.

## What to recognize

*Six eyes, one problem each*

**Fig. 8d: Six eyes, six problems.**

![Fig. 8d: Six eyes, six problems](https://nearfieldnotes.com/notes/eye-diagram/fig-8d.png)

*What the figure shows:* Figure 8d: six 10 Gbit/s eyes, one problem each. 1, healthy: thin rails and sharp crossings. 2, split rails: loss, each bit carrying the last few. 3, ghost lines: a reflection. 4, the crossing above the middle: duty-cycle distortion. 5, fuzzy crossings: jitter. 6, fuzzy rails: noise 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.

Key to eye diagrams

### What is closing this eye?

1. 1a Rails split into separate lines Loss, 2
2. 1b Each rail one band Go to 2
3. 2a Faint copies of the lines, offset in time A reflection, 3
4. 2b No copies Go to 3
5. 3a Edges cross above or below the threshold Duty-cycle distortion, 4
6. 3b Edges cross on it Go to 4
7. 4a Crossings wide, rails thin Jitter, 5
8. 4b Rails thick and smooth Noise 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](https://nearfieldnotes.com/notes/via-stubs/) sizes the stub.

## Look longer yourself

*Two lanes, 10² to 10¹² bits*

**Note 8’s explorer: Eye width.**

![Note 8’s explorer: Eye width](https://nearfieldnotes.com/notes/eye-diagram/fig-explore.png)

*What the figure shows:* A 10 Gbit/s eye after the chosen number of bits, and its width at the threshold against the spec's 72%. The long trace's eye closes slowly, to 80% at 10^12 bits. The noisy clock's keeps closing, to 70% at 10^12 bits.

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.

**Fig. 8e: How long you looked.**

![Fig. 8e: How long you looked](https://nearfieldnotes.com/notes/eye-diagram/fig-8e.png)

*What the figure shows:* Figure 8e: eye width at the threshold against bits seen, 10^2 to 10^12. The long trace's eye is 83% at 10^5 bits and 80% at 10^12. The noisy clock's is 82% at 10^5 and 70% at 10^12, under the spec's 72%.

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

Jitter

### 82% open on a scope, 70% at 10¹² bits

**Field marks.** The noisy clock’s lane is 3 cm of FR-4 with 0.0215 UI rms of random jitter. After a scope’s 10⁵ bits its eye is 82% open. After 10¹² bits it is 70%, under the 72% its spec needs.

**Look-alike.** The long trace’s lane is 83% open on the same scope. Most of its jitter comes from the trace and a wobbling clock, and that part stops at a fixed size. At 10¹² bits it is still 80% open.

**Range.** Random jitter has no limit. The longer you look, the wider the crossings get. Read the crossings, then ask how many bits drew them.

**Habitat.** An SFP+ host’s output. SFF-8431 allows 0.28 UI of jitter at one error in 10¹² bits, so the eye must stay 72% open.

**Fig. 8f: A mask test.**

![Fig. 8f: A mask test](https://nearfieldnotes.com/notes/eye-diagram/fig-8f.png)

*What the figure shows:* Figure 8f: two 10 Gbit/s eyes in SFF-8431's mask, grown until each has 50 hits in a million samples. Eye 1 stops at 28% margin with 48 hits on the hexagon's slanted sides. Eye 2 stops at 28% with all 50 on the bars.

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

Mask test

### Both pass with 28% margin, for different reasons

**Field marks.** The mask is a keep-out: the hexagon in the middle and the bars above and below. A sample inside it is a hit. SFF-8431 allows 5 in 100,000.

**Margin.** How far the mask can grow before the hits reach that limit. Both eyes stop at 28%.

**Where it hit.** Hits on the slanted sides are jitter. Hits on the flats are noise or loss. Hits on the bars are overshoot.

**Look-alike.** Eye 1 is 3 cm of FR-4 with random jitter, and 48 of its 50 hits land on the slanted sides. Eye 2 is 4.4 cm with 10% boost on its edges and a little noise, and all 50 land on the bars. Same margin, different fix.

#### 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.py The link, the trace and the statistical eye
- post/cards.py The labeled eye and the six problem eyes
- anim/mask.py The mask test and its margin

#### Sources

- [SFF-8431, the SFP+ electrical spec](https://members.snia.org/document/dl/25891)
- [Keysight on mask margin and hit ratio](https://helpfiles.keysight.com/scopes/FlexDCA-UG/Content/Topics/Eye-Mask-Mode/Mask-Testing/d_mask_margins_explanation.htm)

What should the next note be? [Ask for one](https://nearfieldnotes.com/#ask-for-a-note)

---

Source: https://nearfieldnotes.com/notes/eye-diagram/

Cite as: Michael Walker, “Eye diagram”, Near Field Notes, Note 8, Rev 1, 2 Nov 2026. https://nearfieldnotes.com/notes/eye-diagram/

Figures: free to reuse under CC BY 4.0 (https://nearfieldnotes.com/license/). Each one's image is linked under its name. Credit Michael Walker, Near Field Notes, and link the figure: this address plus #fig- and its number, like https://nearfieldnotes.com/notes/eye-diagram/#fig-8.
