JESD204 Eye Scan
About
Validating JESD204B serial links becomes increasingly difficult at higher data rates. The quality of the line cannot be determined by measuring the far-end eye opening at the receiver pins with readily available lab equipment. Traditional oscilloscopes suitable for JESD204B testing require 16-32 GHz bandwidth and cost over $150,000.
Xilinx 7-Series FPGA GTP transceivers include integrated signal integrity blocks with PLL, TX pre-emphasis, RX AGC, RX linear equalization, RX clock data recovery, and adaptation. The 2-D Eye Scan feature provides an “on-chip scope” to visualize post-equalization signal quality.
A separate sampler adjusts horizontally (time) and vertically (amplitude) in parallel with the normal CDR sampler, enabling error counting and BER calculation across offset settings.
The utility interfaces with the JESD204 Interface Framework through the following driver components:
Source code is available at GitHub.
BERT testing
The following table shows testing duration vs. BERT rates for a 5.0 Gbps link:
BERT Rate |
Bits |
Duration |
|---|---|---|
10-8 |
108 |
20 ms |
10-10 |
1010 |
2 seconds |
10-12 |
1012 |
3.33 minutes |
10-17 |
1017 |
~8 months |
With 8,192 pixels (64 x 128 offsets), capturing 10-8 BERT requires 2.7 minutes; 10-17 would take 5,400+ years.
Mask
The JESD204B specification defines receive keep-out masks based on channel baud rate. The vertical axis in the 2-D statistical eye diagram is in “codes”, not millivolts, since measurements occur post-equalization within the FPGA.
Installation
Debian/Ubuntu
apt-get update
apt-get install -y git build-essential gnuplot libgtk-3-dev libncurses-dev
CentOS/RedHat
yum update
yum -y groupinstall 'Development Tools'
yum -y install git ncurses-devel gtk3-devel gnuplot
Usage
Usage: jesd_eye_scan [-p PATH]
-p Allows setting a different directory root. Default is /.
This is useful when running the tool remote
Local execution
~$
jesd_eye_scan &
Remote execution (X11 forwarding)
~$
ssh -X root@<board-ip> jesd_eye_scan
Remote execution (SSHFS)
mkdir /home/user/mnt
sudo sshfs -o direct_io,sync_read,allow_other \
-o StrictHostKeyChecking=no root@<board-ip>:/ /home/user/mnt
LC_ALL=c jesd_eye_scan -p /home/user/mnt
Note
The LC_ALL=c prefix is important when running remotely, because the
locale on the client system can influence the format of the data.
Output
The tool displays three main windows:
Main Window — Overall eye diagram visualization
Status Information — System and link metrics
Lane Information — Per-lane statistics
The eye opening numbers show error-free regions in Unit Intervals (time domain) and codes (voltage scale). Heat map colors represent error density at each point.
Requirements
Tweaking
Converter-side adjustments available:
JESD204B pre-emphasis
JESD204B CML differential output drive level
These modifications trade off eye opening, power consumption, and potential EMI emissions.