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

发布时间:2026/6/1 1:20:13

为什么你用光模块测试 FPGA IBERT 不通? 为什么你用 光 模块测试 FPGA IBERT 不通首先需要科普一下光模块相关的术语。在使用过程中一定先搞清楚下面的术语什么是 IBERTIBERTIntegrated 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 使用的测试码型是PRBSPseudo-Random Binary Sequence伪随机二进制序列由线性反馈移位寄存器LFSR生成。不同阶数的 PRBS 序列特性如下码型序列长度最长连续同位 (CID)频谱特性测试严格度PRBS-72⁷−1 127 bit7 bit低频分量较多转换密度高★☆☆ 最宽松PRBS-92⁹−1 511 bit9 bit中等★★☆ 中等PRBS-152¹⁵−1 32767 bit15 bit较宽★★★ 较严格PRBS-232²³−1 ≈ 8M bit23 bit宽★★★★ 严格PRBS-312³¹−1 ≈ 2G bit31 bit最接近真实随机数据★★★★★ 最严格关键差异说明最长连续同位 (CID)PRBS-N 的最长连续 0 或 1 为 N bit。CID 越长对接收端 CDR时钟数据恢复的压力越大因为长时间无跳变会导致 CDR 失锁。序列越长频谱越接近白噪声对信道的测试越全面覆盖更多频率分量。PRBS-7序列短、转换密度高对 CDR 友好容易锁定适合初步调试。PRBS-31序列极长最长 31bit 连续同位对 CDR 挑战最大是最严格的信道质量评估码型。应该用哪个码型评价场景推荐码型原因初步调试、确认链路基本连通PRBS-7CDR 容易锁定快速判断链路是否通常规产品验证、光模块测试PRBS-23行业常用标准IEEE 802.3 以太网规范推荐最终产品认证、严格 BER 评估PRBS-31最严苛条件能暴露所有潜在问题25G/100G 以太网光模块符合性测试PRBS-31SFF-8636 / IEEE 规范要求实用建议先用 PRBS-7 确认链路基本连通和 CDR 锁定再逐步升级到 PRBS-31 进行最终评估。如果 PRBS-7 就无法锁定说明链路存在严重问题硬件故障或控制信号未正确配置。AOC DAC MPO SFP QSFP QSFP28 QSFP-DD术语全称速率说明AOCActive Optical Cable—有源光缆两端集成光电转换芯片线缆中间为光纤适用于长距离1m~100m互联DACDirect Attach Cable—直连铜缆无源线缆为高速铜缆适用于短距离≤5m互联成本低、功耗低MPOMulti-fiber Push On—多芯光纤连接器标准常见于 QSFP 光模块尾端支持 8 芯 / 12 芯 / 24 芯SFPSmall Form-factor Pluggable Plus1×10G 10G小型可插拔光模块单通道QSFPQuad Small Form-factor Pluggable Plus4×10G 40G四通道小型可插拔光模块每通道 10GQSFP28Quad Small Form-factor Pluggable 284×25G 100G四通道小型可插拔光模块每通道 25GQSFP-DDQuad SFP Double Density8×25G/50G 200G/400G双密度八通道光模块向下兼容 QSFP28AOC 与 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模块插入时拉低正常响应模块插入时拉低正常响应ModSelLI2C 管理无效无内部寄存器状态无关必须拉低才能访问内部寄存器IntL始终为 High无告警源有效温度 / RX LOS 等告警时拉低关键结论Passive DAC 无内部电子器件控制信号对其无实际作用FPGA 侧无需特殊处理而 AOC 和 Active DAC 内部含有激光器 / TIA 等有源器件必须正确驱动 LPMode 和 ResetL否则模块不会正常工作。QSFP28 光模块使用PIN 定义如下PIN 编号信号名方向 / 说明1, 4, 7, 13, 16, 19, 20, 23, 26, 32, 35, 38GND地29VCCT发送侧电源 (3.3V)30VCC1核心电源 (3.3V)10VCCR接收侧电源 (3.3V)11SCLI2C 时钟管理接口12SDAI2C 数据管理接口36, 37Tx1p, Tx1n发送通道 1 差分对3, 2Tx2p, Tx2n发送通道 2 差分对33, 34Tx3p, Tx3n发送通道 3 差分对6, 5Tx4p, Tx4n发送通道 4 差分对17, 18Rx1p, Rx1n接收通道 1 差分对22, 21Rx2p, Rx2n接收通道 2 差分对14, 15Rx3p, Rx3n接收通道 3 差分对25, 24Rx4p, Rx4n接收通道 4 差分对8ModSelL模块选择Active Low9ResetL模块复位Active Low27ModPrsL模块在位检测Active Low模块插入时拉低28IntL中断输出Active Low模块告警时拉低31LPMode低功耗模式控制High 低功耗模式使用中如果需要工作在 100G 速度下LPMODEMODPRSLRESETLMODSELL 等约束如下控制信号100G 正常工作时的状态说明LPMode拉低 (Low)Low 高功率模式模块 4 通道全部使能并正常工作High 时模块进入低功耗模式≤1.5W仅 I2C 管理可用ModPrsL模块输出 Low该信号为模块输出插入时自动拉低FPGA 侧应上拉并检测此信号判断模块是否在位ResetL拉高 (High)Low 时模块处于复位状态上电后应先保持 Low ≥2ms再释放为 High等待模块初始化完成tInit ≤2sModSelL拉低 (Low)Low 选中该模块I2C 通信有效多模块共享 I2C 总线时通过此信号选择目标模块IntL模块输出正常时为 High当模块内部出现告警温度过高、RX LOS 等时拉低FPGA 可通过 I2C 读取具体告警寄存器上电时序建议上电后 LPMode High低功耗ResetL Low保持复位等待电源稳定后≥100ms释放 ResetL High等待模块初始化完成检测 IntL 或等待 2s通过 I2C 读取模块信息、配置参数将 LPMode 拉低进入高功率模式4 通道开始正常收发硬件设计注意从原理图可见ModSelL、ResetL、ModPrsL、IntL、LPMode 均通过 4.7KΩ 电阻上拉至 QSPF_3V3满足 SFF-8636 规范要求。因此 FPGA 设计时对于 AOC 或 Active DAC必须注意 ResetL 和 LPMode 的正确时序 控制 错误使用将导致模块不工作。对于 Passive DAC 则无此约束。这也是经常有人测试 DAC 正常AOC 不工作的原因。附上在 Hello-FPGA-Z19EG 开发板上的测试用了 1 条铜缆1 条光缆光缆的质量要 显著好于铜缆这是光缆的眼图这是铜缆的眼图总结为什么你用光模块测试 FPGA 不通如果你的 FPGA 高速链路用 DAC 能通换成 AOC 就不通问题几乎只有一个原因——控制信号没有正确驱动。核心检查项LPMode 是否拉低上拉电阻会将 LPMode 默认拉高低功耗模式此时激光器不工作光功率为零。必须由 FPGA 主动拉低。ResetL 是否正确释放上拉电阻会将 ResetL 默认拉高非复位但如果上电时序不对模块可能未正确初始化。应先 Low ≥ 2ms再 High等待 2s 初始化。Passive DAC 为什么能通因为 Passive DAC 内部就是一根铜线没有任何电子器件不需要上电、不需要复位、不需要功耗管理——插上就通。而 AOC 内部有激光器和 TIA 芯片必须按规范上电初始化后才能正常工作。一句话总结DAC 能通不代表链路没问题AOC 不通也不代表硬件有故障——检查你的 FPGA 是否正确控制了 LPMode 和 ResetL。

相关新闻