AR# 68785

UltraScale+ GTY 的手动眼扫描

描述

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

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

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

解决方案

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

 

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

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

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

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

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

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

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

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

 

 

传输速率 < 10Gbps

传输速率 >= 10Gbps

ES_HORZ_OFFSET[11]

0

1


表 1 — 每个传输速率的 ES_HORZ_OFFSET[11] 设置

 

UltraScale+ GTY DRP 地址:

UltraScale+ GTY 眼扫描的相关 DRP 地址可查看 (UG578) 表 C-2 下的 RX 裕量分析:GTYE4_CHANNEL 原语的 DRP 映射。

 

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

一旦收发器正确设置并可投入使用,基本眼扫描就可通过 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:初始化

ES_EYE_SCAN_EN = 1b1 启动眼扫描

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

按照表 1 设置 ES_HORZ_OFFSET[11]。

 

Step 2: 重置

复位 GT:GT 应该启动并运行。 

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

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

 

Step 3:

准备扫描:

ES_CONTROL [5:0] = 6b000000

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

 

Step 4:

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

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

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

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(这可设置眼扫描比例系数)

ES_HORZ_OFFSET[10:0] = 11'b00000000000

 

Step 6:

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

设置 ES_CONTROL = 6b000001

 

Step 7:

查看 FSM 是否为 END 状态。

读取 ES_CONTROL_STATUS 应等于 3b010

 

Step 8:

将 FSM 返回 WAIT 状态。

设置 ES_CONTROL [5:0] = 6b000000

 

Step 9

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

因此,当 FSM 处于 WAIT 状态时,如果错误计数器显示错误,则表示眼图扫描需要重新对齐。请执行重新排列顺序。

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

 

重新排列顺序:

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

同步性欠佳时,错误计数器就会饱和,而眼扫描则会闭眼。在完全闭眼而没有数据错误时,应执行该顺序。

重新排列顺序为:

ES_HORZ_OFFSET = x880
EYESCANRESET = 1

ES_HORZ_OFFSET = x800
EYESCANRESET = 0

返回第 6 步。

 

完成眼扫描。

Step 10:

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

RX_EYESCAN_VS_CODE

ES_HORZ_OFFSET[10:0]

 

Step 11:

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

设置 ES_CONTROL = 6b000001

 

Step 12:

查看 FSM 是否为 END 状态。

读取 ES_CONTROL_STATUS 应等于 3b010

 

Step 13:

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

设置 ES_CONTROL [5:0] = 6b000000

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

 

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

 

AR# 68785
日期 10/16/2018
状态 Active
Type 综合文章
器件