环回(loopback)是 GT 的一种特殊配置模式。可以把发送端的数据直通过自身 PMA 层或对方器件(不加进一步处理)后再转回给发送器件的接收端,并校验是否有误码。这种工作方式可以检验 GT 配置是否正常,外部链路信号质量等。在比较复杂的断链场景下一般作为一个基本的调试定位手段。
环回分为近端(Near-End)环回和远端(Far-End)环回。具体介绍可以参考 AM01, CH2。
https://docs.amd.com/r/en-US/am017-versal-gtm-transceivers
近端环回比较常用且方便,远端环回则需要两个独立的器件来通信。AMD 的开发板一般只有一块 FPGA 或者 AMD Versal Adaptive SoC 芯片,做远端环回测试的话需要把两块开发板对接起来,并且保证两块板子的时钟同源。本文我们介绍一种用一块开发板测试远端环回功能的办法。
以 Versal VPK120 开发板为例。其上包含一块 VP1202 的芯片,可用 GT Quad 如下:
https://www.xilinx.com/products/boards-and-kits/vpk120.html
示例选择 Quad 203 来模拟发送端器件。查看https://docs.amd.com/r/en-US/ug1568-vpk120-eval-bd
QSFP-DD1 和 QSFP-DD2 的连接关系如下:
可以看到 Q203 的 ch0 和 Q204 的 ch1 可以对应连通。选择 Quad 204 模拟作为接收端器件,使用 DAC 电缆线对接两个 QSFP-DD。
Step 1:
在 AMD Vivado Design Suite 2024.1 里面建立测试工程。因为是模拟两个不同器件,这里分别用不同的 gt_bridge 去控制两个 Quad。Create Block Design, 里面添加两个 gt_bridge 和两个 gt_quad_base。在 gt_bridge 里面选择好协议如下 (可按自己需要选择):
使用 Run Block Automation – Customized_Connections, 自动化连线:
自动化连线结果如下:
Step 2:
远端环回需要两个器件使用同源时钟,我们把 Quad 203 和 204 的 REFCLK 修改为同一个。另外去掉该基本测试里面不必要的 IO 控制,只保持 GT serial ports 即可。
驱动控制逻辑所需的 apb3clk,可以用 CIPS 来产生:
修改后的 Diagram 如下:
保存,生成 HDL wrapper。
Step 3:
根据 VPK120 开发板的设置,添加 REFCLK 和 GTM 位置约束:
接下来按普通流程生成下载文件 pdi 即可。
Step 4:
将 VPK120 的 SW1 设置为 0000 (JTAG),启动并下载 pdi 文件。
Step 5:
按照刚才对照的硬件连接关系,在 Serial I/O Links 中建立链:
选择自己想要测试的 PRBS pattern,设置第一个 Link Q204 ch1. RX 为 Far-End PMA 模式,Q203 ch0.RX 为None(由于此处双向通信,两个 Link 的设置可以互换)。此时 Q204 作为了远端执行环回的器件,Q203 则是发送端器件。这样就模拟了两个器件以远端环回对接的连接方式:
设置 TX Main-Cursor;如果外部 Cable 插损比较大,还可以针对性调节其他 TX Cursor:
分别复位两个 Link。之后在 IBERT GTM Real-Time Scan Plots 的眼图里面,可以看到通信已经建立起来:
应用此文的办法,可以在有限的实验室环境下做针对 Far-End PMA/PCS Loopback 的一些特性测试和观察,方便进一步学习。
全部0条评论
快来发表一下你的评论吧 !