利用 IBERT 进行 GTX 信号眼图测试

利用 IBERT 进行 GTX 信号眼图测试

8.5.4.1 概述

Vivado中提供了1种IBERT工具用于对Xilinx FPGA芯片的高速串行收发器进行板级硬件测试。通过IBERT我们可以获取误码率,观察眼图,调节串行收发器的参数,从而有助于判断可能存在的问题,便于验证硬件的稳定性和信号完整性。

本教程使用IBERT工具对与SFP连接的GTX进行1.25Gbps和10.3125Gbps速率下的测试。从误码率和眼图两个角度来验证开发板GTX部分工作的稳定性和可靠性。

本教程共包含ibert_1_25g和ibert_10g两个例子,分别对应1.25Gbps和10.3125Gbps速率,均基于vivado 2017.4版本开发。

8.5.4.2 测试原理

IBERT中的BERT是Bit Error Ratio Test的缩写,指比特出错概率测试,简而言之就是误码率测试。Vivado中IBERT工具的测试原理是通过收发器由外部回环进行自收自发而实现。就是将同一组收发器的TX和RX进行短接,TX发送端通过发送某种特定序列的数据流,在RX接收端接收后,通过比对发送和接收的数据,从而得出接收端误码的统计值。

在开发板中,将光模块插入SFP屏蔽笼内,然后通过单根光纤将光模块的TX和RX短接,便可以通过IBERT工具对GTX进行测试。

8.5.4.3 IBERT设置

在Vivado中找到IBERT 7 Series GTX这个IP核。

图8‑73 IBERT 7 Series GTX

(一)千兆1.25G速率

IBERT测试协议选择Custom1,GTX参考时钟选择频率选择125MHz,只需要测试与SFP连接的4组GTX,所以GTX Quad选择1。如下图所示。千兆以太网使用了1000BASEX标准,采用了8b/10b编码方式,所以GTX的传输速率为1000Mbps×10/8=1250Mbps=1.25Gbps。如下图所示。采用Custom1协议,我们暂且不研究这个协议内容,传输速率为1.25Gbps。

由于2组与SFP连接的GTX都位于BANK 116,所以在QUAD_116中选择使能协议。在开发板中,底板时钟芯片输出的差分时钟是与REFCLK0连接,所以参考时钟要选择为MGTREFCLK0116,下图所示。

不妨将GTX输入的125MHz的时钟同时作为IBERT内部逻辑的工作时钟,这样就可以不使用额外的外部时钟,如下图所示。当然,用户也可以将该时钟设置为外部时钟,例如通过核心板的 FPGA时钟晶振提供,大家可以自行尝试。

点击OK,完成IBERT IP核配置。

(二)千兆10.3125G速率

IBERT 10.3125Gbps传输设置如下:

由于2组与SFP连接的GTX都位于BANK 116,所以在QUAD_116中选择使能协议。在开发板中,底板时钟芯片输出的差分时钟是与REFCLK0连接,所以参考时钟要选择为MGTREFCLK0116。

如下图所示

点击OK,完成IBERT IP核配置。

8.5.4.4 使用example design

IBERT的example design稍作修改就可以直接使用对GTX进行测试。

在IBERT IP核配置完成后,右击打开example design工程。

由于开发板的SFP屏蔽笼的tx_disable引脚都默认接了上拉电阻。要使收发回环测试可以正常进行,必须要将tx_disable引脚拉低。因此,在example design的顶层模块,添加4个sfp_tx_disable引脚,且均置为0即可。如下图所示。

然后,在xdc文件中添加sfp_tx_disable引脚的约束即可,如下图所示。注意:不同的开发板管脚定义不一样:

1.set_property PACKAGE_PIN D9 [get_ports {sfp_tx_disable[0]}]  

2.set_property PACKAGE_PIN D11 [get_ports {sfp_tx_disable[1]}]  

3.set_property PACKAGE_PIN C9 [get_ports {sfp_tx_disable[2]}]  

4.set_property PACKAGE_PIN D10 [get_ports {sfp_tx_disable[3]}]  

5.  

6.set_property IOSTANDARD LVCMOS33 [get_ports {sfp_tx_disable[0]}]  

7.set_property IOSTANDARD LVCMOS33 [get_ports {sfp_tx_disable[1]}]  

8.set_property IOSTANDARD LVCMOS33 [get_ports {sfp_tx_disable[2]}]  

9.set_property IOSTANDARD LVCMOS33 [get_ports {sfp_tx_disable[3]}]  

接着,编译工程,生成bit文件即可。千兆和万兆的example design使用方法相同。

8.5.4.5 GTX IBERT测试

(一)1.25G测试

用户可将千兆光模块插入任意1个SFP屏蔽笼内,也可以同时使用2、3、4个光模块插入相应的屏蔽笼内。本教程测试时只使用了1个光模块,插入丝印“SFPA”所对应的屏蔽笼,如下图所示。

图8‑74 开发板测试连接图

图8‑75 可编程时钟模式设置

使用单根光纤,将光模块的TX和RX短接。然后,给开发板上电,在Vivado中打开hardware manager,将刚才生成的bit文件下载到开发板中。下载完成后,出现如下图所示的界面。

点击OK。然后出现如下图所示的界面。点击Reset按钮,使IBERT进行复位,可以看到此时的Errors变为0,代表接收端没有检测到错误。由于测试使只连接了1路GTX,因此这里只显示出了当前所使用的GTX链路。其他没有建立收发环路的GTX并没有显示。

当然,用户也可以手动将其他没有连接的GTX加到当前的显示栏中,点击如下图所示按钮。

然后,将同1个GTX对应的TX和RX建立link,如下图所示。

添加完成后如下图所示。点击OK即可。

随后显示框中出现了这3对没有连接的GTX,状态显示为“No Link”,如下图所示。

如下图所示,经过长时间测试,可以发现Errors一直为0,这代表,测试过程中没有出现任何误码,这说明板级层面的GTX硬件工作稳定。

当前测试使用的数据为31bit的伪随机序列。

在测试进行时用户也可以修改测试数据类型,例如PRBS 23-bit,PRBS 7-bit等等,接收与发送所使用的数据类型必须完全一致,修改完成后,务必点击Reset按钮,复位Errors为0。如下图所示。

误码率可以从数学统计的角度判断GTX的硬件稳定性,vivado还提供了一种更直观的方式来观察GTX的信号完整性,那就是眼图。首先,点击如下图所示按钮。

出现如下界面,所有设置保持默认即可,然后点击OK。

此时vivado开始进行眼图扫描和生成,用户需要稍等片刻,等到Progress进度为100%时,眼图扫描过程便结束。

Vivado生成的眼图如下图所示。

从信号完整性的角度来看,眼图中间的蓝色区域越大,GTX所对应的PCB高速电路的信号完整性越好。

(二)10.3125G测试

10.3125G的测试方法与上述的千兆测试方法完全相同。首先,给开发板断电,将光模块插入丝印“SFP-A和SFP-B”应的屏蔽笼。通过光纤将TX和RX短接。然后上电,下载example design生成的bit文件。如下图所示。

图8‑76 开发板测试连接图

图8‑77 可编程时钟模式设置

然后上电,下载example design生成的bit文件。如下图所示。

进行长时间测试后,GTX在万兆速率下的误码同样为0。如下图所示。

同理,扫描10.3125Gbps的眼图,如下图所示。10.3125Gbps速率下的眼图蓝色区域明显小于1.25Gbps速率时的眼图,而且形状发生了改变,变得有点像椭圆。这与信号的频率有关,信号的频率越高,在传输过程中的损耗越大,上下沿越来越平缓,方波会变得越来越像正弦波,眼图也会“睁得”越来越小。若使用更高的速率,眼图中的蓝色区域可能会变得更小。

推荐阅读

Xilinx原语的用法

例说七层OSI参考模型

TCP/IP模型

TCP和UDP

以太网遵循的IEEE 802.3 标准

媒体访问控制(MAC,Media Access Control)

媒体独立接口(MII,Meida Independent Interface)

GMII、SGMII和SerDes的区别和联系

PHY(Physical Layer,PHY)通俗理解

FPGA实现网口通信的几种方式

千兆网UDP通信

FPGA千兆网TCP通信分析

基于FPGA的网口通信实例设计

基于UDP/IP协议的电口通信(一)

基于UDP/IP协议的电口通信(二)

基于UDP/IP协议的电口通信(三)

基于原语的千兆以太网RGMII接口设计
PHY_MDIO 接口设计
一大波HLS设计资料来了

2020版深入浅出玩转FPGA视频教程

点击上方字体即可跳转阅读哟

  • 7
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
XC7K325T是Xilinx公司生产的一种高性能FPGA芯片,具有多个GTX通道和高速串行接口,可用于实现高速数据传输、视频处理和网络通信等应用。在设计和调试过程中,需要对GTX通道进行信号完整性测试,这就需要使用IBERT工具对信号进行眼图检测和位错分析。 IBERT是Xilinx公司提供的一种验证工具,通过在芯片内部添加测试逻辑电路,可以实现对GTX通道的各种测试和分析。下面介绍如何使用IBERT工具对XC7K325T进行GTX信号眼图测试的步骤和工程实现。 步骤1:创建工程 使用Vivado软件创建新工程,在创建过程中选择XC7K325T芯片型号,并设置好工程文件存放路径和开发板型号等信息。 步骤2:添加IP核 在工程中添加IBERT IP核,该核可以通过Xilinx IP Catalog库中的“IBERT”模块进行选择和添加。添加后需要根据实际需求进行IP核的配置和参数设置,包括选择测试模式、调节发送接收电平和频率、设置捕获窗口大小等。 步骤3:连接GTX通道 将GTX通道的输入和输出引脚连接到IBERT IP核上,这可以通过Vivado的图形界面或者对FPGA芯片进行约束文件的编辑完成。需要注意的是,GTX通道的输入和输出信号必须满足标准的差分信号和电平要求,否则会影响信号测试结果。 步骤4:编译并验证 进行FPGA的编译和综合、布局布线等操作,生成对应的bitstream文件。之后可以通过JTAG接口将bitstream文件下载到XC7K325T芯片中,并对IBERT测试工具进行启动和测试,通过观察测试结果可以获得眼图和位错分析数据,判断GTX通道的信号完整性和传输性能。 总结来说,利用IBERT进行GTX信号眼图测试的步骤和方法较为复杂,需要熟练掌握Vivado工具、GTX通道和信号测试技术等知识。对于初学者来说,可以参考Xilinx官方提供的教程和样例工程,加深对IBERT工具的理解和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenFPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值