作者:Fisher Yang,文章来源:FPGA FAE技术分享选集
前言
在前三篇文章中,我们完成了开普勒KPL3858的开箱上电、UFS烧录启动以及LPDDR5X-8533内存子系统的介绍和性能测试。本篇聚焦KPL3858上的高速串行收发器(GTYP Transceiver)——通过AMD官方提供的IBERT(Integrated Bit Error Ratio Tester)示例设计,在Vivado 2025.1环境下完成从工程创建、比特流生成到上板测试的完整流程,并通过眼图扫描直观展示25.78125 Gbps速率下的信号完整性。
一、IBERT简介
IBERT(Integrated Bit Error Ratio Tester)是AMD LogiCORE™ IP,专为Versal架构GTM收发器的评估和监控而设计。它集成了带有前向纠错(FEC)能力的Fabric端码型发生器和校验器,并通过Vivado IP Integrator Block Design提供图形化操作界面,由Vivado Hardware Manager工具进行交互控制。
IBERT的主要功能包括:
1. 误码率(BER)实时监测;
2. 多种伪随机码型(PRBS 7/15/23/31等)发送与接收;
3. 2D眼图扫描(Eye Scan),直观评估信号完整性;
4. 收发器参数(均衡、预加重等)在线调整;
本次测试使用KPL3858板卡上的QSFP接口(J54),通过QSFP28 Loopback环回模块将GTYP QUAD 206的4个通道TX/RX自环,在25.78125 Gbps线速下进行测试。

图1 IBERT示例设计Block Design总览

图2 Versal Adaptive SoC Transceivers Wizard

图3 Transceiver Configs Protocol 0 配置页面
二、硬件准备
2.1 所需硬件
1. 开普勒KPL3858评估板(搭载XC2VE3858器件)
2. QSFP28 Loopback环回模块
3. USB Type-C数据线(连接J26)
4. 12V DC电源适配器(连接J128)
5. 安装有Vivado 2025.1以上版本的电脑
2.2 拨码开关设置
Versal器件支持多种启动模式,IBERT测试使用JTAG模式下载比特流。按如下设置拨码开关:
·SW1(BOOT MODE):全部拨到ON,即 0000 → JTAG模式。
注意:SW1的位置参见板卡丝印,拨码方向以板卡上标注为准。
2.3 硬件连接步骤
1. 将Loopback环回模块插入QSFP笼(J54);
2. 用USB Type-C线连接主机与板卡J26(JTAG/UART/HSDP)接口;
3. 将12V电源适配器连接至J128(12V IN),另一端接市电;
4. 按上述要求设置SW1拨码开关;
5. 拨动SW8从OFF到ON,为板卡上电;

图4 开普勒KPL3858 Board
三、软件准备
3.1 Vivado安装
本示例设计需要 Vivado 2025.1 或更高版本。可从AMD官方支持下载页面获取安装包,也可使用包含Vivado的Vitis完整安装版本。安装和授权方法参见Vivado安装与授权设计中心(DH233)。
3.2 文件准备
从AMD官网下载示例设计压缩包xtp801-vek385-ibert-es-2025-1.zip,解压到本地硬盘。建议使用较短的路径(如 C:\vivprj),并确保至少有 150 MB 可用空间。
注意:Windows系统存在260字符路径长度限制,路径过长会导致Vivado构建报错。建议严格按照文档推荐路径操作。
压缩包中包含以下预构建PDI文件(可跳过示例工程创建步骤直接使用):
·rdf0710-vek385-ibert-boot-es-2025-1.pdi — Boot PDI
·rdf0710-vek385-ibert-boot-es-2025-1.ltx — Boot Debug文件
·rdf0710-vek385-ibert-pld-es-2025-1.pdi — PLD PDI
·rdf0710-vek385-ibert-pld-es-2025-1.ltx — PLD Debug文件
四、示例工程创建
4.1 新建工程
打开Vivado GUI,在TCL Console中切换到工作目录:
cd {c:\vivprj}
在Vivado起始页点击 Open Example Project,进入示例工程向导。

图5 Open Example Project
向导操作步骤:
1. 点击 Next,然后点击 Refresh 更新模板列表;
2. 在Versal下拉列表中选择 Versal IBERT,点击 Next;
3. 工程名称填写KPL3855_ibert,路径选择上面的工作目录,勾选 Create project subdirectory,点击 Next;
4. 在器件搜索框中输入XC2VE3858-SSVA2112-2MP-E-S,选中该器件,点击 Next;
5. 查看资源汇总后点击 Finish,工程初始化完成;
4.2 收发器配置
工程初始化后,需要选择GTYP QUAD并配置参考时钟和线速:
1. 切换到 Right side 标签页,查看器件右侧的QUAD资源;
2. 选中 GTYP QUAD 206(对应QSFP接口);
3. 参考时钟选择 GTYP REFCLK X1Y2;
4. 将GTYP QUAD 206的 Refclk 设置为 322.265 MHz(由板卡上时钟芯片提供);
5. 将 Line Rate 设置为 25.78125 Gbps;
6. 点击 Next,确认汇总页后点击 Finish,该ibert项目将生成。

图6 GTYP Right Side
4.3 生成比特流
完成设计审查后,在Flow Navigator中点击 Generate Device Image。若提示实现结果不可用,点击 Yes 让Vivado自动完成综合、实现并生成PDI文件。
构建完成后,弹出窗口中选择 Open Hardware Manager,或从Flow Navigator中打开。
注意:构建过程中Vivado会显示进度状态。构建完成后不要关闭Vivado,直接进入上板测试步骤。
五、上板测试
5.1 连接硬件
确认板卡已按第二章完成硬件连接并上电。在Vivado Hardware Manager中:
1. 点击 Open Target → Auto Connect,Vivado将自动识别连接在JTAG上的器件;
2. 确认Vivado Hardware Manager中出现xc2ve3858器件;

图7 Hardware Manager JTAG识别到2VE3858
5.2 下载PDI
点击 Program Device,在弹出的Program Device对话框中选择PDI文件:
若使用自行构建的工程文件:
1. PLD PDI:versal_ibert_wrapper_pld.pdi(路径:impl_1文件夹下);
2. PLD调试探针:versal_ibert_wrapper_pld.ltx
若使用预构建文件:
1. Boot PDI:rdf0710-vek385-ibert-boot-es-2025-1.pdi
2. Boot调试探针:rdf0710-vek385-ibert-boot-es-2025-1.ltx
3. PLD PDI:rdf0710-vek385-ibert-pld-es-2025-1.pdi
PLD调试探针:rdf0710-vek385-ibert-pld-es-2025-1.ltx
选择完成后点击 Program。

图8 Program Device对话框——选择PDI和LTX文件
注意:Vivado默认使用分段配置流(Segmented Configuration Flow),会生成Boot PDI和PLD PDI两个文件,分别配置处理系统和可编程逻辑。
下载完成后,确认板卡上DONE指示灯(DS1)点亮,表示配置成功。
5.3 创建串行链路
在Serial I/O Links标签页中点击 Create Links(或在HARDWARE MANAGER标题下点击该链接)。

图9 Create Links
在Create Links对话框中,为每个通道配置TX和RX的1:1对应关系,点击 + 逐一添加通道到Link Group 0,确认后点击 OK。



图10 Serial I/O Links标签页——4通道链路状态总览
5.4 验证时钟锁定
链路创建完成后,在Serial I/O Links标签页中向右滚动,检查以下指标:
1. PLL列:确认所有通道PLL已锁定(Locked),表明参考时钟正常

图11 Serial I/O Links——通道锁定状态
2. TXUSRCLK Freq / RXUSERCLK Freq:两者应基本一致

图12 Serial I/O Links——TXUSRCLK/RXUSERCLK频率列
5.5 复位收发器
在正式测试前,建议按以下顺序复位收发器,确保从干净状态开始:
1. TX Reset
2. RX Reset
3. BERT Reset

图13 Serial I/O Links——Reset
同时将 Loopback Mode 设置为 None(对应外部Loopback环回模块)。

图14 Serial I/O Links——Loopback Mode
5.6 PRBS误码率测试
设置TX和RX码型进行误码率测试:
1. 将所有通道的 TX Pattern 设置为 PRBS 31;
2. 将所有通道的 RX Pattern 设置为 PRBS 23(故意不匹配);
3. 观察链路状态变为红色,BER显示为1E0,表示链路丢失;
4. 将 RX Pattern 改为 PRBS 31(与TX匹配);
5. 链路状态变为绿色,显示实际线速(约25.78 Gbps);
6. 点击 BERT Reset 清除之前不匹配产生的误码计数;



图15 Serial I/O Links——TX码型设置(PRBS 31)RX码型设置(PRBS 23)

图16 Serial I/O Links——链路锁定(绿色)及线速显示
5.7 眼图扫描
眼图扫描是评估收发器信号完整性的直观手段。在链路正常传输状态下:
1. 切换到 Serial I/O Scans 标签页,点击 Create scan;

图17 Serial I/O Links——Create Scan
2. Link下拉框中选择 Link 0 (TX, RX),保持其余默认设置,点击 OK

图18 Serial I/O Links——Create Scan Link0
3. 扫描完成后观察结果:蓝色区域越大,表示信号完整性越好,说明TX/RX跳变与参考时钟同步性越高;

图19 眼图扫描结果——25.78125 Gbps下的数据眼图
4. 点击播放按钮重复扫描,观察Open Area、Open UI%等指标的变化;
5. 如需测试其他通道,右键点击Scan 0选择Delete,重新创建扫描并选择对应通道;

图20 Serial I/O Links——Scan Delete
总结
本文基于AMD官方XTP801文档,在开普勒KPL3858评估板上完成了IBERT示例设计的完整流程:
1. 工程创建:通过Vivado CED流程快速生成IBERT Block Design,选择GTYP QUAD 206,配置322.265 MHz参考时钟和25.78125 Gbps线速;
2. 比特流生成:Vivado自动完成综合、实现,生成Boot PDI和PLD PDI分段配置文件;
3. 上板测试:通过QSFP Loopback模块完成4通道PRBS 31误码率测试,链路锁定于25.78 Gbps,BER为0;
4. 眼图扫描:蓝色眼图区域开阔,信号完整性良好,验证了开普勒KPL3858高速串行接口的设计质量;
5. IBERT是高速接口调试的利器,后续可在此基础上调整均衡参数、测试不同线速等场景的验证。
下一篇预告:基于开普勒KPL3858 PS 10GbE/1GbE及PL ETH的介绍和测试,敬请期待。
如果您对Versal Gen2及KPL3858开发板感兴趣,欢迎联系您身边的科通FAE及Sales,也欢迎邮件联系:
simonyang@comtech.cn
charlesxu@comtech.cn