One-Dimensional Eye Scan

Clock and Data Recovery Unit based on Deserialized Oversampled Data (XAPP1240)

Document ID
Release Date
3.1 English

The NIDRU allows plotting the eye diagram using live data while not affecting the data traffic. This is a useful debugging feature because it allows measuring the sampling margins. Also, during normal operation, this feature is useful for detecting links that are degrading over time, before the degradation can result in a visible BER.

The resolution of the eye scan is 256 taps for a single UI, independent of the oversampling rate.

The PH_NUM attribute is used to activate and configure the eye scan logic:

PH_NUM = 0 = no eye scan

PH_NUM = 1 = the eye scan operates with one exploring phase, ranging from –128 to 127, equivalent to –0.5 UI to 0.5 UI

PH_NUM = 2 = the eye scan operates with two exploring phases using the automatic eye scan controller. Ph_0 sweeps the right portion of the eye from 0 up to 127 (from 0 to 0.5 UI). PH_1 sweeps the left side of the eye from –1 to –128.

In automatic mode (AUTOM = 1), all steps to perform an eye scan are managed by the embedded eye scan controller and each sweep can be triggered by pulsing the START_EYESCAN port for at least one clock cycle. The output EYESCAN_BUSY is set to 1 until all 256 points are swept. The port WAITING_TIME is used to specify how many clock cycles should be devoted to each single sweeping point.

This Figure shows the eye scan controller timing diagram when PH_NUM = 1.

Figure 3:      Eye Scan Controller Timing Diagram with PH_NUM = 1

X-Ref Target - Figure 3


This Figure shows the eye scan controller timing diagram in automatic mode when PH_NUM = 2.

Figure 4:      Eye Scan Controller Timing Diagram in Automatic Mode with PH_NUM = 2

X-Ref Target - Figure 4


The measurement time for each point is specified by the user through the port WAITING_TIME, which specifies the error accumulation time in clock cycles of FREFCLK. This Equation allows relating the value of WAITING_TIME to the target BER:

Equation 7      xapp1240-k7-us-clk-data-recovery00017.jpg

To plot the eye scan, plot the ports ERR_PH_0 and ERR_PH_1 in the simulator viewer on an ILA core. ERR_PH_0 and ERR_PH_1 signals are valid only when the corresponding EN_ERR_PH_x signals are set to 1.

When PH_NUM = 1, the full eye shape can be seen on one line. When PH_NUM = 2, the two halves of the eye are simultaneously plotted on two independent lines.

Example plots are shown in Simulating the NIDRU (This Figure and This Figure) and FPGA Hardware Test Bench (This Figure and This Figure).

When AUTOM = 1, the eyescan is acquired only once if TRIGGER_MODE is set to 0, otherwise it is acquired continuously. The port EYE_AP reports to the user the last measured eye aperture, and can be used easily as a continuous measurement of the link quality. The resolution is 1UI/256.

In manual mode (AUTOM = 0), both phases can be moved by the user to measure the eye aperture in any given point inside the eye. PH_0 is the port for phase 0, PH_1 is the port for phase 1.


IMPORTANT:   Never move the exploring phases by more than 1 step per clock cycle.

The timing diagrams in automatic mode (implemented in the eye scan controller), can be used as examples to derive the timing diagram for any desired custom mode setup.