FPGA 40 DAC线缆和光模块带光纤实现40G UDP差异
现象:
用 DAC 直连线,下载 bitstream 后,MAC/PCS 子层可以立即和对端网卡完成 auto-negotiation / link training。
换成光模块(SR4/ LR4/ CWDM4 等)+ 光纤,必须手动或软件触发 IP Reset 才能起来。
主要原因在于 链路初始化时序和模块上电稳定时间:
光模块需要初始化时间
DAC 是无源直连铜缆,加载 bitstream 后 SerDes 通道立即 ready。
光模块 (QSFP+/QSFP28) 内部有 CDR、激光器、功放,需要上电、锁定、LOS → Link OK,需要几十 ms ~ 几百 ms 才稳定。
在此期间,FPGA 里的 40G Subsystem 可能已经完成了 PCS/PMA reset sequence 并进入 检测不到信号的状态。
Xilinx IP 初始化顺序
40G Subsystem 在 bitstream 下载完成后,会自动跑一次 GT reset → PCS reset → MAC reset 流程。
如果在这段 reset 窗口内,光模块还没准备好(发不出稳定光),IP 会认为 link_down,之后不会再主动 retry。
而 DAC 不存在这种延迟,所以能一次成功。
复位 IP 等于重新启动 link training
手动 reset IP 后,它重新跑 SerDes + PCS 初始化,这时光模块已经 ready,链路就能正常建立。
也可以做个自动监测功能。比如每隔2秒查询一下对齐状态,不行就复位一下subsystem ip