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# 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 综合文章
器件
的页面