米尔电子
直播中

卿小小_9e6

7年用户 2210经验值
擅长:可编程逻辑
私信 关注
[技术]

【米尔-Xilinx XC7A100T FPGA开发板试用】+03.SFP光口测试(zmj)

【米尔-Xilinx XC7A100T FPGA开发板试用】+03.SFP光口测试(zmj)

随着数字通信技术的进一步发展,各类数据的传输方案对带宽的需求迅猛增长,传统的并行总线的数据传输方式已经远远不能满足如万兆以太网、PCI-Express、SRIO、SFP等技术方案的需求,此种情况促使高速串行数据开始被广泛地使用。

除了Spartan系列,Xilinx其他系列FPGA内部集成了能实现高速数据收的发串并/并串转换、预加重、接收均衡、CDR、8B/10B线路编解码、弹性buffer、通道绑定和时钟修正等模块,可极大地减小时钟扭曲、信号衰减和线路噪声对接收性能的影响,从而使传输速率进一步提高,可用于实现万兆以太网、PCI-Express、SRIO、SFP等常用接口。在内嵌高速串行接口技术的FPGA被大量应用的同时,高速串行的信号质量测试也变得越来越重要,通常用示波器观察信号波形、眼图、抖动来衡量信号的质量。串行信号的抖动,反映在时域上,信号的稳定时间会变小,眼图宽度会变窄;信号的噪声,反映在信号幅度上,眼图高度变小。通俗点讲眼图的眼睛张开得越大,越端正,表示高速串行数据传输的越稳定。

为了方便用户使用,vivado中提供了一个IBERT(Integrated Bit Error Ratio Tester)的测试工具用于对Xilinx FPGA芯片的高速串行收发器进行板级硬件测试。通过IBERT我们可以直接获取误码率,观察眼图,调节串行收发器的参数,从而有助于判断可能存在的问题,便于验证硬件的稳定性和信号完整性。

IBERT中的BERT是Bit Error Ratio Test的缩写,指比特出错概率测试,简而言之就是误码率测试。Vivado中IBERT工具的测试原理是通过收发器由外部回环进行自收自发而实现。就是将同一组收发器的TX和RX进行短接,TX发送端通过发送某种特定序列的数据流,在RX接收端接收后,通过比对发送和接收的数据,从而得出误码率和眼图信息,来验证开发板GTP部分工作的稳定性和可靠性。

1. FPGA程序设计

1.1 硬件信息

Xilinx 具有集成高速 MGT (Multi-Gigabit Transceiver)的 BANK,可以通过使用相应 IP在芯片端实现 SFP+的物理层。

核心板 FPGA GTP 收发器接口⽀持 4 lanes,最大速率 6.6G/s,可用来扩展 PCIe、SATA、SFP、QSFP 等高速接口,BANK时钟100MHz。

核心板配套的开发板设计了 2 路 SFP+ 接口,其最大速率高达6.5Gb/s,连接器位号为 J4,J5,插入 SFP 光模块可实现光纤通信。

具体 BANK 信息如下(使用Lane2和Lane3,未用Lane0和Lane1):

序号 BANK名称 信号名 功能
1 MGTP_B216_TX_P2 RDP2 Lane2-TX-P
2 MGTP_B216_TX_N2 RDN2 Lane2-TX-N
3 MGTP_B216_RX_P2 TDP2 Lane2-RX-P
4 MGTP_B216_RX_N2 TDN2 Lane2-RX-N
5 MGTP_B216_TX_P3 RDP3 Lane3-TX-P
6 MGTP_B216_TX_N3 RDN3 Lane3-TX-N
7 MGTP_B216_RX_P3 TDP3 Lane3-RX-P
8 MGTP_B216_RX_N3 TDN3 Lane3-RX-N
9 MGTP_B216_REF_CLK_P0 100MHz差分时钟(未用)
10 MGTP_B216_REF_CLK_N0 100MHz差分时钟
11 MGTP_B216_REF_CLK_P1 125MHz差分时钟(常用)
12 MGTP_B216_REF_CLK_N1 125MHz差分时钟

【图】SFP接口参考电路原理图

image-20241112101711782.png

1.2 互连方案

SFP-0和SFP-1通过光纤及光模块进行直连。

【图】光纤是万兆多模双芯LC-LC光纤线(3m)
2504661-20231230164312799-1518663302.png

【图】光模块是万兆多模光模块

2504661-20231230164313257-414633075.png

【图】光纤与光模块连接
image-20241112110431690.png

【图】SFP-0与SFP-1互连

image-20241112110458198.png

1.3 程序设计

在vivado的IP Catalog中找到IBERT 7 Series GTP这个IP核。

iBERT测试协议选择Custom1,GTP参考时钟频率选择125MHz,只需要测试与SFP连接的2对GTP,Quad Count选择1。传输速率设置为为3.125Gbps,PLL类型选择PLL0即可。
image-20241112143645674.png

由于与SFP连接的GTP都位于BANK 216,所以在QUAD_216中选择使能协议。从上面的硬件电路分析中可以看到,底板时钟芯片输出的差分时钟是与GTP_216_CLKP1连接,所以参考时钟要选择为MGTREFCLK1 216。
image-20241112143748033.png

IBERT内部逻辑的工作时钟选择GTP的输入时钟125MHz,这样就可以不使用额外的外部时钟,当然,用户也可以将该时钟设置为外部时钟,例如通过FPGA板卡的时钟晶振提供,大家可以自行尝试。
image-20241112143923896.png

image-20241112144014725.png

IBERT的example design通常无需修改就可以直接使用对GTP进行测试,因此在IBERT IP核配置完成后,右击打开example design工程。接着,编译工程,生成bit文件即可。
image-20241112144252913.png

image-20241112144306724.png

2. GTP-iBERT测试

在vivado中打开hardware manager,将刚才生成的bit文件下载到开发板中。下载完成后,点击auto-detec links。点击Reset按钮,使IBERT进行复位,可以看到此时的Errors变为0,代表接收端没有检测到错误,仔细观察有如下结论:

没有连接的GTP,状态显示为"No Link";
已经连接的GTP,状态显示设置速率,经过长时间测试,可以发现Errors一直为0,这代表,测试过程中没有出现任何误码,这说明板级层面的GTP硬件工作稳定;
在测试进行时用户也可以修改测试数据类型,例如PRBS 23-bit,PRBS 7-bit等等,接收与发送所使用的数据类型必须完全一致,修改完成后,务必点击Reset按钮,复位Errors为0

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

【图】Link状态及正常眼图

image-20241112144902627.png

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

同样的,还可以切换到浴缸曲线观察信号完整性(浴缸越大,等效于眼图越大,信号完整性越好):

【图】Link状态及正常浴缸曲线
image-20241112145226600.png
【视频】眼图测试

MYIR_XC7A100T-FPGA_SFP

回帖(1)

卿小小_9e6

2024-11-12 20:08:27

【视频】眼图测试


举报

更多回帖

发帖
×
20
完善资料,
赚取积分