
























首先需要科普一下光模块相关的术语。
在使用过程中,一定先搞清楚下面的术语
IBERT(Integrated Bit Error Ratio Tester)是 Xilinx/AMD 提供的集成在 FPGA 内部的误码率测试工具。它利用 FPGA 的 GTH/GTY 等高速收发器,生成 PRBS 伪随机序列并发送,同时接收并校验数据,统计误码率(BER)。
IBERT 的作用:
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 | 最接近真实随机数据 | ★★★★★ 最严格 |
| 场景 | 推荐码型 | 原因 |
|---|---|---|
| 初步调试、确认链路基本连通 | 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 | 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 |
从线材、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,否则模块不会正常工作。

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 读取具体告警寄存器 |
上电时序建议:
- 上电后 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不工作的原因。
如果你的 FPGA 高速链路用 DAC 能通,换成 AOC 就不通,问题几乎只有一个原因——控制信号没有正确驱动。
核心检查项:
LPMode 是否拉低?
上拉电阻会将 LPMode 默认拉高(低功耗模式),此时激光器不工作,光功率为零。必须由 FPGA 主动拉低。
ResetL 是否正确释放?
上拉电阻会将 ResetL 默认拉高(非复位),但如果上电时序不对,模块可能未正确初始化。应先 Low ≥ 2ms,再 High,等待 2s 初始化。
Passive DAC 为什么能通?
因为 Passive DAC 内部就是一根铜线,没有任何电子器件,不需要上电、不需要复位、不需要功耗管理——插上就通。而 AOC 内部有激光器和 TIA 芯片,必须按规范上电初始化后才能正常工作。
一句话总结: DAC 能通不代表链路没问题,AOC 不通也不代表硬件有故障——检查你的 FPGA 是否正确控制了 LPMode 和 ResetL。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。