Manual Eye Scan:
UltraScale GTH and GTY allow a real-time, not disruptive Eye Scan. The User can at the same time receive data and check the equalized signal eye extension for a full BER and signal margin control, without missing a single bit.
Most of the information required can be found in (UG576) UltraScale and UltraScale+ GTH and (UG578) UltraScale and UltraScale+ GTY, RX Margin Analysis.
This Answer Record will guide you through a step-by-step simple case of running a Manual Eye Scan.
The Eye Scan feature is already implemented in IBERT, where a GUI helps with a simple customization of the Eye Scan, and IBERT drives the Eye Scan automatically.
However, some additional HDL is required to pair the Eye Scan feature with your design (this option is referred to here as Manual Eye Scan).
Because the Eye Scan engine is controlled by a few attributes mapped in the DRP space, most of the required code is just to take care of the DRP Read, Modify and Write operations.
For those designs where the DRP port is already used, this comes for free.
The ports required for the Eye Scan are listed in Table 4-18 of (UG576) and (UG578). In a small number of cases, one additional port (EYESCANRESET) might be needed.
The following steps are required for a Manual Eye Scan:
The Manual Eye Scan can get very sophisticated, and can do the following:
It can also have different utilities to a plain Eye Scan, as will be shown later.
However, the atomic access to the Eye Scan will always step through the three simple passages given. There are many options to get to the same result; probably the more flexible is to let a microprocessor handle the Eye Scan.
A very fast Eye Scan could be developed entirely in HDL. (Xilinx Answer 64098) is a good example of a simple Eye Scan measurement realized with the ILA.
Differences between ES2 and Production Silicon
There are important differences between the two silicon releases. The setup for ES2 will give incorrect results if applied to Production Silicon. The differences are given in the table below:
|Datarate < 10Gbps||Datarate >= 10Gbps|
|ES_HORZ_OFFSET||same as ||same as |
Table 1 - ES_HORZ_OFFSET and USE_PCS_CLK_PHASE_SEL setup per datarate and ES2 Silicon
|Datarate < 10Gbps||Datarate >= 10Gbps|
|(*) needs phase realignment|
Table 2 - ES_HORZ_OFFSET and USE_PCS_CLK_PHASE_SEL setup per datarate and Production Silicon
Correct GTY DRP address
Some DRP addresses in the GTY (UG578) v1.1 DRP map in Appendix C are wrong.
Please use the table below:
|DRP Address Hex US||DRP Bits||R/W||Name||Attribute Bit|
Table 3 - Relevant Eye Scan attributes DRP address for GTY US
Flow diagram and step by step GTY Eye Scan
Once the transceiver is correctly set up and working, the basic Eye Scan goes through the measurement loop of the FSM. The FSM default startup state is WAIT.
By changing the ES_CONTROL[1:0] (the signals arm and run, respectively), from the WAIT state, run initiates the BER measurement loop (left) and arm starts the diagnostic loop (right). In this Answer Record only the measurement loop is explored.
The FSM automatically starts the error counting and the received samples counting. The counters are updated continuously, until one of the two counters reaches the saturation point. At this point the FSM reaches the state END.
We always have access to the FSM actual status by reading the ES_CONTROL_STATUS.
In the END status it is possible to read the counters and calculate the BER.
10 Steps for a BER measurement
The following step by step path should guide you to a single sample position error measurement in LPM mode, when the offset sampler is on 0V differential and +4/64 UI right offset.
By sweeping the offset sampler position inside the eye extension, the user can complete the Eye Scan. Please refer to the User Guide for the complete description of each attribute used.
Step 1: The GT should be up and running. Here for example, you configure the transmitter and receiver equalizers, run the reset sequences, wait for reset done, and check that buffers are not overflowing etc.. In this example the LPM mode is used.
Step 2: Set ES_HORZ_OFFSET and USE_PCS_CLK_PHASE_SEL in accordance with Table 1 and Table 2
Step 3: Be ready for the scan:
Step 4: Before running the error counting, we need to tell the Eye Scan engine what to measure. This is well described in the User Guide, in the Eye Scan Architecture chapter.
Commonly, a statistical eye view uses the following:
Step 5: set the vertical offset. For example:
Step 6: set the horizontal offset position. For example, 4 taps to the right with respect to the data sampler:
Step 7: run the Scan by bringing the FSM to RESET and decide on the measurement loop:
Step 8: check that the FSM is in END status.
Step 9: when the FSM is in END status we can finally read errors, samples, and calculate the BER.
Step 10: bring back the FSM to WAIT status and cycle again.
Repeat for a different offset position starting from Step 5.
The Realignment sequence
The realignment sequence has been introduced for Production silicon and datarate below 10Gbps. The aim of this sequence is to get a correct sync between the Eye Scan clock and the data clock.
In case of bad synchronization, the error counter will saturate and the Eye Scan will show a closed eye. The sequence should be executed at the end of the Eye Scan measurement, if the eye appears completely closed even if there are no data errors.
The sequence below moves the Eye Scan clock in 2 UI increments. The realignment sequence is as follows: