Programming Eye Scan to Debug Link Connections

Understanding the Eye Scan State Model

The Eye Scan API abstracts the Eye Scan algorithm provided by Xilinx into a simple API with few states. The general programming flow is as follows: Open Session»Configure Properties»Start»Measure»Close Session.
Note You can loop measurements for frequent updates.
Figure 4. Eye Scan State Model

1378

Programming Eye Scan

  1. Open a session with Open Session (Poly).vi.
  2. Configure the properties using the Property Node, located on the NI Eye Scan VI palette (FPGA Interface»Software-Designed Instruments»NI High-Speed Serial»NI Eye Scan). Some properties have default values, but you must configure the following properties before starting the scan:
    • Data Width
    • Rx Output Divider
    • Equalization Mode
      Note These properties must match the confiuration of the FPGA core in order for Eye Scan to work properly. Refer to your CLIP settings to determine the settings to specify for the properties above.
  3. Call Start.vi to begin measuring on the first point.
  4. Call Measure (Poly).vi. Once Eye Scan finishes measuring the active point, it automatically reconfigures for the next point and begins measuring that point. This process continues until one of the following occurs:
    • Number of New Points Requested completes
    • Every requested point is scanned
    Note To receive updates to the progress of Eye Scan while taking measurements and without using a large amount of computational resources, call Measure (Poly).vi with a a small timeout value in a loop.
    Note To stop Eye Scan before measurement is complete, call Stop.vi. Calling Stop.vi moves Eye Scan to the Stopped state and discards the data from the point currently being measured. Previously acquired points may no longer be obtained by calling Measure (Poly).vi. Once Eye Scan is stopped, you can reconfigure properties and call Start.vi to restart the measurement.
  5. Once the last point has been measured, Eye Scan moves to the Finished state. In the Finished state, call Measure (Poly).vi to retrieve all previously acquired data since the last Start.vi call.
  6. To begin a new Eye Scan, reconfigure and call Start.vi again.
    Notice When you call Start.vi, all previously acquired data is discarded.

Rectangular and N Point Eye Scan Examples

Use the figure below as a guide for running Rectangular Eye Scan in your own application. This example measures a single channel and updates the Bit Error Ratio graph.
Note Use the Horizontal Step Size and Vertical Step Size properties to control the density of your Eye Scan plot. You can compute the points to be measured based on step size, from zero up to the largest absolute value that is closest to the maximum value, without exceeding it.
Figure 5. Rectangular Eye Scan

1378

Use the figure below as a guide for running N Point Eye Scan in your own application. This example scans four points with a Bit Error Ratio floor of 2.33E-10 and produces a 4-point eye to be used in measuring pass/fail conditions.
Note To obtain a 6-point eye, add two extra points to the array using the Array of Points to Measure property.
Figure 6. N Point Eye Scan

1378