Versal Gen2连载第四篇--KPL3858 IBERT示例设计和测试

作者: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