光
最近用 FPGA 给一款 10G 光模块做 MAC 侧环回测试,折腾了一周,记录几个容易翻车的地方,给后来人省点时间。
1. 时钟域是第一杀手
10G MAC 跑 156.25MHz,PCS 侧是 322.265625MHz(64b/66b),两个时钟域之间一定要用异步 FIFO 隔离。别图省事直接跨时钟域打两拍,误码率一高查到哭。
2. 环回位置要选对
- PHY 侧环回:只能验证 SerDes 和板级走线,MAC 逻辑测不到;
- MAC 侧环回:能把 MAC 发送通路、PCS 编码全跑一遍,推荐从这里开始;
- 线路侧环回:最后再做,验证整条链路。
3. PRBS 码型别只用 PRBS31
PRBS31 能跑通不代表没问题。建议 PRBS7 / PRBS15 / PRBS31 轮着跑一遍,有些 CDR 在特定码型下才会出现锁定抖动,产线批量测试时这个很要命。
4. 误码仪读数要看 BER 趋势,不要只看瞬时值
刚上电前 30 秒的 BER 普遍偏高,等 CDR 和均衡器收敛后再记录,不然会把一批好板子误判成不良。
5. 光模块的 DDM 数据记得一起读
温度、电压、TX/RX 光功率四个值,测试时顺手记录。有一次误码超标,最后查出来是模块工作温度 75℃ 触发了降额,和 FPGA 逻辑半点关系没有。
大家做高速接口测试还有什么独门经验?欢迎补充。
1. 时钟域是第一杀手
10G MAC 跑 156.25MHz,PCS 侧是 322.265625MHz(64b/66b),两个时钟域之间一定要用异步 FIFO 隔离。别图省事直接跨时钟域打两拍,误码率一高查到哭。
2. 环回位置要选对
- PHY 侧环回:只能验证 SerDes 和板级走线,MAC 逻辑测不到;
- MAC 侧环回:能把 MAC 发送通路、PCS 编码全跑一遍,推荐从这里开始;
- 线路侧环回:最后再做,验证整条链路。
3. PRBS 码型别只用 PRBS31
PRBS31 能跑通不代表没问题。建议 PRBS7 / PRBS15 / PRBS31 轮着跑一遍,有些 CDR 在特定码型下才会出现锁定抖动,产线批量测试时这个很要命。
4. 误码仪读数要看 BER 趋势,不要只看瞬时值
刚上电前 30 秒的 BER 普遍偏高,等 CDR 和均衡器收敛后再记录,不然会把一批好板子误判成不良。
5. 光模块的 DDM 数据记得一起读
温度、电压、TX/RX 光功率四个值,测试时顺手记录。有一次误码超标,最后查出来是模块工作温度 75℃ 触发了降额,和 FPGA 逻辑半点关系没有。
大家做高速接口测试还有什么独门经验?欢迎补充。

