We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 64098

Implementing RTL based Eye Scan in 7 Series GTX


This article describes a module that can easily be inserted into a design and interfaced to the GT's DRP port to perform a simple Eye Scan. 

The data is ported to an ILA module which can then be exported to a CSV file for analysis. Some analysis can be done on screen.


The module can be inserted in the top level code that performs the Eye Scan. The instantiation and code is shown below.

There is a VIO in the module which starts the scan. This can also be used to write to the GT through the DRP ports, in order to modify parameters so that performance comparisons can be done.


        .gt0_drpaddr_in                 (gt0_drpaddr_i),
        .gt0_drpdi_in                   (gt0_drpdi_i),
        .gt0_drpdo_out                  (gt0_drpdo_i),
        .gt0_drpen_in                   (gt0_drpen_i),
        .gt0_drprdy_out                 (gt0_drprdy_i),
        .gt0_drpwe_in                   (gt0_drpwe_i),


eyeScan eyeInst(


Changes are needed to some attributes to enable the Eye Scan. The ES_SDATA_MASK will vary depending on the width of the internal data bus. In the case shown below it is set to 20.



            .ES_ERRDET_EN                           ("TRUE"),

            .ES_QUAL_MASK                           (80'hFFFFFFFFFFFFFFFFFFFF),
            .ES_SDATA_MASK                          (80'hFFFFFFFFFF00000FFFFF),


In addition pma_rsv2 bit 5 needs to be set to 1. For the example design the value becomes:


          .PMA_RSV2                               (16'h2070),

The values outside of bit 5 can vary depending on the design. These attributes can be changed in the constraint file and could also be changed with the VIO ports in the eyeScan.v module.

To run the Eye Scan set the ILA to run on trigger. Then press the go button in the VIO screen. The ILA output will show the vertical and horizontal positons and the sample count and errors at that position.

In the sample shown below you can see the eye is open from 43 to -17 on the horizontal axis at a vertical position of 75.





This output can be exported to a CSV file for processing in Excel or Matlab to get the normal eye diagram.


Associated Attachments

Name File Size File Type
eyeScan.v 11 KB V
vio_0.xci 102 KB XCI
ila_0.xci 298 KB XCI
AR# 64098
Date Created 03/30/2015
Last Updated 08/19/2016
Status Active
Type General Article
  • Kintex-7
  • Virtex-7