UPGRADE YOUR BROWSER

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# 70872

UltraScale+ GTH 的手动眼扫描

描述

UltraScale+ GTH 可实现实时无中断眼扫描。用户可同时接受数据并查看平衡信号眼扩展,以实现在不丢失一个比特位的情况下,全面控制 BER 及信号裕量。

所需的大多数信息都可在 (UG576) UltraScale 及 UltraScale+ GTH 的 RX 裕量分析中找到。

本答复记录将向您介绍一个逐步运行手动眼扫描的简单案例。

解决方案

IBERT 中已实现眼扫描特性,其中 GUI 有助于完成眼扫描的简单定制而且 IBERT 可自动驱动眼扫描。

眼扫描程序在 IBERT 外部实现时,例如与用户应用平行,我们可以参考“手动眼扫描”。

因为 DRP 空间中映射的一些属性可控制眼扫描引擎,该代码应执行以下任务:

  • 照顾 DRP 读取、修改和写入工作
  • 将偏移取样器移动至眼内
  • 驱动眼扫描 FSM
  • 分析结果(例如计算偏移取样器 BER)

眼扫描所需的端口见 UG576。请参考 RX 裕度分析章节。 

手动眼扫描能变得非常高级并能执行以下任务:

  • 扫描整个眼睛或其一部分
  • 连续运行或单次使用
  • 改变 BER 目标
  • 评估信号质量并监控其随时间的变化

眼扫描的自动访问将始终逐步通过既定的简单段落。有许多选项都可得到相同的结果;或许让微处理器处理眼扫描更为灵活。

在 HDL 中可以全面开发极快的眼扫描。(Xilinx 答复 64098)就是采用 ILA 实现简单眼扫描测量的良好实例。

XAPP1322 和 XAPP1292 提供基于 Tcl 的眼图扫描。

 

UltraScale+ GTH DRP 地址:

UltraScale + GTH 眼扫描的相关 DRP 地址可在(UG576), RX Margin 分析表4-21:DRP-地址映射 GTH 中找到。

 





 
 

流程图与逐步 UltraScale+ GTH 眼扫描:

一旦收发器正确设置并可投入使用,基本眼扫描就可通过 FSM 的测量环路。

如果偏移取样器数量有误但没有数据错误,可能就需要“重新排列顺序”。

要发现这种情况,我们可以在该框架下实现一个检查器(请参考 XAPP884)。

 





FSM 默认启动状态为 WAIT。

ES_CONTROL[1:0] 可以分别为“arm”和“run”,将该信号的 WAIT 状态改为“run”,可启动 BER 测量环路(左),改为“arm”,则可启动诊断环路(右)。本答复记录只讨论测量环路。

FSM 可自动启动错误计数和接收样本计数。两个计数器不断更新,直到其中一个达到饱和点。这时,FSM 就会变为 END 状态。

我们通常可以通过读取 ES_CONTROL_STATUS 查看 FSM 的实际状态。

在 END 或 WAIT 状态下,可以读取计数器并计算 BER。






启动眼扫描:

 

Step 1:

按照表 4-20 设置 ES_HORZ_OFFSET[11]。

 

Step 2:

例如,您可以配置发送器及接收器均衡器、运行复位顺序、等待复位完成,并检查确保缓冲器不溢等。

本实例采用 LPM 模式。DFE 模式需要两个眼扫描:一个带 + UT 号;一个带 - UT 号。

 

Step 3:

准备扫描:

ES_CONTROL [5:0] = 6b000000

ES_EYE_SCAN_EN = 1b1 启动眼扫描

ES_ERRDET_EN = 1b1 启动错误检测:当(且只有当)相应的偏移数据样本不同意恢复数据样本时,Sdata 总线的每个比特位为 1。

ES_PRESCALE 对应于 BER 目标(我们可以将其设置为极小的初始值,例如 5b00100)

 

Step 4:

在运行错误计数之前,我们需要为眼扫描引擎指定需要测量的内容。在用户指南眼扫描架构章节中有详细说明。

通常,统计眼视图可使用:

ES_SDATA_MASK = {80{1b1}, 80{1b0}} for 80-bit data width

ES_QUAL_MASK = {160{1b1}}

 

Step 5:

将纵横偏移设为 0。

RX_EYESCAN_VS_NEG_DIR = 1b0(相当于 7 系列器件中的 ES_VERT_OFFSET[7])

RX_EYESCAN_VS_UT_SIGN = 1b0(相当于 7 系列器件中 ES_VERT_OFFSET[8])

RX_EYESCAN_VS_CODE = 7b0000000(相当于 7 系列器件中 ES_VERT_OFFSET[6:0])

RX_EYESCAN_VS_RANGE = 2b00 (这为眼睛扫描设置了 1.5mV /代码的比例因子)

ES_HORZ_OFFSET[10:0] = 11'b00000000000

 
 

Step 6:

通过将 FSM 带入 RESET 运行扫描,并选定测量环路:

设置 ES_CONTROL = 6b000001

Step 7:

查看 FSM 是否为 END 状态。

读取 ES_CONTROL_STATUS[0] 应等于 1b1

读取 ES_CONTROL_STATUS[3:1] 应等于 3b010 

 

Step 8:

将 FSM 返回 WAIT 状态。

设置 ES_CONTROL [5:0] = 6b000000

Step 9

现在 FSM 处于 WAIT 状态,通过检查错误计数器(ES_ERROR_COUNT)读取显示的错误,并与样本计数(ES_SAMPLE_COUNT)进行比较。

如果垂直和水平偏移量为零,我们预计偏移采样器和数据采样器总是匹配的。 

如果错误计数器显示错误,则表示眼图扫描需要重新对齐。请执行重新排列顺序。

如果错误计数器中没有错误,请直接跳到第 10 步。

 

重新排列顺序:

该顺序的目的就是在眼扫描时钟与数据时钟之间获得正确的同步。

同步性欠佳时,错误计数器就会饱和,而眼扫描则会闭眼。 

在完全闭眼而没有数据错误时,应执行该顺序。

重新排列顺序为:

ES_HORZ_OFFSET = x880
EYESCANRESET = 1

ES_HORZ_OFFSET = x800
EYESCANRESET = 0

返回第 6 步。

完成眼扫描。

Step 10:

设置新的纵横错误:请正确设置以下参数:

设置 RX_EYESCAN_VS_NEG_DIR 和 RX_EYESCAN_VS_CODE
设置 ES_HORZ_OFFSET[10:0] 和 ES_HORZ_OFFSET[11]

Step 11:

通过将 FSM 带入 RESET 运行眼扫描,并选定测量环路:

设置 ES_CONTROL = 6b000001

 

Step 12:

查看 FSM 是否为 END 状态。

读取 ES_CONTROL_STATUS[3:1] 应等于 3b010 和 ES_CONTROL_STATUS[0]=1

 

Step 13:

将 FSM 返回 WAIT 状态并重复一次。

设置 ES_CONTROL [5:0] = 6b000000

FSM 为 END 或 WAIT 状态时,我们可以读取错误、样本并可计算 BER。

 

对于新偏移位置而言,请从第 10 步开始重复。

 

AR# 70872
日期 07/02/2018
状态 Active
Type 综合文章
器件
的页面