首页 > 基础资料 博客日记

为什么你用光模块测试FPGA IBERT不通

2026-05-31 12:00:02基础资料围观1

这篇文章介绍了为什么你用光模块测试FPGA IBERT不通,分享给大家做个参考,收藏极客资料网收获更多编程知识

为什么你用光模块测试FPGA IBERT不通

首先需要科普一下光模块相关的术语。
在使用过程中,一定先搞清楚下面的术语

什么是 IBERT

IBERT(Integrated Bit Error Ratio Tester)是 Xilinx/AMD 提供的集成在 FPGA 内部的误码率测试工具。它利用 FPGA 的 GTH/GTY 等高速收发器,生成 PRBS 伪随机序列并发送,同时接收并校验数据,统计误码率(BER)。

IBERT 的作用:

  • 验证 FPGA 高速 SerDes 硬件链路是否正常(PCB 走线、连接器、线缆、光模块)
  • 调整 TX 预加重/去加重、RX 均衡器参数
  • 测量眼图(Eye Diagram)和误码率
  • 不需要编写任何 RTL 代码,直接在 Vivado 中生成 IP 即可使用

PRBS 伪随机序列码型

IBERT 使用的测试码型是 PRBS(Pseudo-Random Binary Sequence,伪随机二进制序列),由线性反馈移位寄存器(LFSR)生成。不同阶数的 PRBS 序列特性如下:

码型 序列长度 最长连续同位 (CID) 频谱特性 测试严格度
PRBS-7 2⁷−1 = 127 bit 7 bit 低频分量较多,转换密度高 ★☆☆ 最宽松
PRBS-9 2⁹−1 = 511 bit 9 bit 中等 ★★☆ 中等
PRBS-15 2¹⁵−1 = 32767 bit 15 bit 较宽 ★★★ 较严格
PRBS-23 2²³−1 ≈ 8M bit 23 bit ★★★★ 严格
PRBS-31 2³¹−1 ≈ 2G bit 31 bit 最接近真实随机数据 ★★★★★ 最严格

关键差异说明

  • 最长连续同位 (CID):PRBS-N 的最长连续 0 或 1 为 N bit。CID 越长,对接收端 CDR(时钟数据恢复)的压力越大,因为长时间无跳变会导致 CDR 失锁。
  • 序列越长:频谱越接近白噪声,对信道的测试越全面(覆盖更多频率分量)。
  • PRBS-7:序列短、转换密度高,对 CDR 友好,容易锁定,适合初步调试。
  • PRBS-31:序列极长,最长 31bit 连续同位对 CDR 挑战最大,是最严格的信道质量评估码型。

应该用哪个码型评价?

场景 推荐码型 原因
初步调试、确认链路基本连通 PRBS-7 CDR 容易锁定,快速判断链路是否通
常规产品验证、光模块测试 PRBS-23 行业常用标准,IEEE 802.3 以太网规范推荐
最终产品认证、严格 BER 评估 PRBS-31 最严苛条件,能暴露所有潜在问题
25G/100G 以太网光模块符合性测试 PRBS-31 SFF-8636 / IEEE 规范要求

实用建议: 先用 PRBS-7 确认链路基本连通和 CDR 锁定,再逐步升级到 PRBS-31 进行最终评估。如果 PRBS-7 就无法锁定,说明链路存在严重问题(硬件故障或控制信号未正确配置)。

AOC DAC MPO SFP+ QSFP+ QSFP28 QSFP-DD

术语 全称 速率 说明
AOC Active Optical Cable 有源光缆,两端集成光电转换芯片,线缆中间为光纤,适用于长距离(1m~100m)互联
DAC Direct Attach Cable 直连铜缆(无源),线缆为高速铜缆,适用于短距离(≤5m)互联,成本低、功耗低
MPO Multi-fiber Push On 多芯光纤连接器标准,常见于 QSFP 光模块尾端,支持 8芯/12芯/24芯
SFP+ Small Form-factor Pluggable Plus 1×10G = 10G 小型可插拔光模块,单通道
QSFP+ Quad Small Form-factor Pluggable Plus 4×10G = 40G 四通道小型可插拔光模块,每通道 10G
QSFP28 Quad Small Form-factor Pluggable 28 4×25G = 100G 四通道小型可插拔光模块,每通道 25G
QSFP-DD Quad SFP Double Density 8×25G/50G = 200G/400G 双密度八通道光模块,向下兼容 QSFP28

AOC 与 DAC 使用上有什么差异

从线材、PIN定义来说

对比项 DAC(直连铜缆) AOC(有源光缆)
传输介质 高速铜缆(Twinax) 光纤
有源/无源 无源(Passive DAC ≤5m)或有源(Active DAC ≤15m) 有源,两端各含光电转换芯片
传输距离 短距 ≤5m(无源),≤15m(有源) 中长距 1m~100m+
功耗 极低(无源 DAC 约 0W) 较高(两端芯片各 ~1W)
成本 中等
弯折半径 铜缆较粗,弯折半径大 光纤细软,弯折半径小
EMI 铜缆可能存在电磁干扰 光纤无 EMI 问题
PIN 定义差异 TX/RX 差分对直接承载高速电信号 TX/RX 差分对连接到线缆端内部的 laser driver / TIA 芯片
连接器兼容性 与 QSFP28 cage 兼容,即插即用 与 QSFP28 cage 兼容,即插即用

实际使用中,DAC 和 AOC 在 FPGA 端的高速 SerDes 差分对电气接口完全一致,区别仅在线缆本身。选型时主要依据传输距离和布线环境决定。

但控制信号(LPMode、ResetL 等)的使用存在差异:

控制信号 Passive DAC(无源铜缆) Active DAC / AOC(有源)
LPMode 无效——无源 DAC 内部无电子器件,无需功耗管理,可保持 Low 必须正确控制:Low = 高功率模式(正常工作),High = 低功耗模式(激光器关闭)
ResetL 无效——无内部逻辑需要复位,可保持 High 必须执行正常复位时序,否则内部芯片不初始化
ModPrsL 模块插入时拉低(正常响应) 模块插入时拉低(正常响应)
ModSelL I2C 管理无效(无内部寄存器),状态无关 必须拉低才能访问内部寄存器
IntL 始终为 High(无告警源) 有效,温度/RX LOS 等告警时拉低

关键结论: Passive DAC 无内部电子器件,控制信号对其无实际作用,FPGA 侧无需特殊处理;而 AOC 和 Active DAC 内部含有激光器/TIA 等有源器件,必须正确驱动 LPMode 和 ResetL,否则模块不会正常工作

QSFP28 光模块使用

image

PIN 定义如下:

PIN 编号 信号名 方向/说明
1, 4, 7, 13, 16, 19, 20, 23, 26, 32, 35, 38 GND
29 VCCT 发送侧电源 (3.3V)
30 VCC1 核心电源 (3.3V)
10 VCCR 接收侧电源 (3.3V)
11 SCL I2C 时钟(管理接口)
12 SDA I2C 数据(管理接口)
36, 37 Tx1p, Tx1n 发送通道 1 差分对
3, 2 Tx2p, Tx2n 发送通道 2 差分对
33, 34 Tx3p, Tx3n 发送通道 3 差分对
6, 5 Tx4p, Tx4n 发送通道 4 差分对
17, 18 Rx1p, Rx1n 接收通道 1 差分对
22, 21 Rx2p, Rx2n 接收通道 2 差分对
14, 15 Rx3p, Rx3n 接收通道 3 差分对
25, 24 Rx4p, Rx4n 接收通道 4 差分对
8 ModSelL 模块选择(Active Low)
9 ResetL 模块复位(Active Low)
27 ModPrsL 模块在位检测(Active Low,模块插入时拉低)
28 IntL 中断输出(Active Low,模块告警时拉低)
31 LPMode 低功耗模式控制(High = 低功耗模式)

使用中如果需要工作在100G 速度下,LPMODE,MODPRSL,RESETL,MODSELL 等约束如下:

控制信号 100G 正常工作时的状态 说明
LPMode 拉低 (Low) Low = 高功率模式,模块 4 通道全部使能并正常工作;High 时模块进入低功耗模式(≤1.5W),仅 I2C 管理可用
ModPrsL 模块输出 Low 该信号为模块输出,插入时自动拉低;FPGA 侧应上拉并检测此信号判断模块是否在位
ResetL 拉高 (High) Low 时模块处于复位状态;上电后应先保持 Low ≥2ms,再释放为 High,等待模块初始化完成(tInit ≤2s)
ModSelL 拉低 (Low) Low = 选中该模块,I2C 通信有效;多模块共享 I2C 总线时,通过此信号选择目标模块
IntL 模块输出,正常时为 High 当模块内部出现告警(温度过高、RX LOS 等)时拉低,FPGA 可通过 I2C 读取具体告警寄存器

上电时序建议:

  1. 上电后 LPMode = High(低功耗),ResetL = Low(保持复位)
  2. 等待电源稳定后(≥100ms),释放 ResetL = High
  3. 等待模块初始化完成(检测 IntL 或等待 2s)
  4. 通过 I2C 读取模块信息、配置参数
  5. 将 LPMode 拉低,进入高功率模式,4 通道开始正常收发

硬件设计注意: 从原理图可见,ModSelL、ResetL、ModPrsL、IntL、LPMode 均通过 4.7KΩ 电阻上拉至 QSPF_3V3,满足 SFF-8636 规范要求。

因此 FPGA 设计时,对于 AOC 或 Active DAC,必须注意 ResetL 和 LPMode 的正确时序控制,错误使用将导致模块不工作。对于 Passive DAC 则无此约束。这也是经常有人测试DAC正常,AOC不工作的原因。


总结:为什么你用光模块测试 FPGA 不通?

如果你的 FPGA 高速链路用 DAC 能通,换成 AOC 就不通,问题几乎只有一个原因——控制信号没有正确驱动

核心检查项:

  1. LPMode 是否拉低?
    上拉电阻会将 LPMode 默认拉高(低功耗模式),此时激光器不工作,光功率为零。必须由 FPGA 主动拉低。

  2. ResetL 是否正确释放?
    上拉电阻会将 ResetL 默认拉高(非复位),但如果上电时序不对,模块可能未正确初始化。应先 Low ≥ 2ms,再 High,等待 2s 初始化。

  3. Passive DAC 为什么能通?
    因为 Passive DAC 内部就是一根铜线,没有任何电子器件,不需要上电、不需要复位、不需要功耗管理——插上就通。而 AOC 内部有激光器和 TIA 芯片,必须按规范上电初始化后才能正常工作。

一句话总结: DAC 能通不代表链路没问题,AOC 不通也不代表硬件有故障——检查你的 FPGA 是否正确控制了 LPMode 和 ResetL。


文章来源:https://www.cnblogs.com/xingce/p/20238835
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云