做一个光模块的高速通道,仿真和实测对不上,几乎是每个硬件团队都要经历的阶段。这篇讲我们怎么把 S 参数仿真收敛到实测眼图,误差从 3 dB 压到 0.5 dB 以内。

一、先搞清楚仿真对不上的三类原因
按我们踩过的坑排序:
1) 模型不完整:只给了封装 S 参数,没给 bond wire、金手指、PCB 过孔的联合模型
2) 端口定义不一致:仿真用差分端口,实测用单端 SMA,参考面根本不是一个地方
3) 激励与实际不符:仿真输入理想阶跃,实测输入有上升时间与抖动

第三类最隐蔽。很多人用理想阶跃跑出漂亮眼图,实际驱动器的上升时间是 18 ps,眼图立刻塌一半。

二、参考面校准:这是最关键的一步
所有对比的前提是"同一个参考面"。
做法:
仿真侧把端口定义在连接器插合面(mated plane),而不是 PCB 边缘
实测侧做去嵌入(de-embedding),把夹具的 S 参数剥掉
去嵌入用 AFR(Automatic Fixture Removal)或 2x-thru 都可以,关键是夹具 S 参数要单独测,不能用经验模型代替。

三、通道建模的顺序
我们固定用这个次序,能保证每次结果可比:
1. 芯片输出缓冲器(IBIS-AMI 或行为级模型)
2. 封装(球到引脚)S 参数
3. PCB 走线(含过孔,按实际叠层提取)
4. 连接器(mated pair 的 4 端口模型)
5. 线缆 / 光模块金手指
每一段单独验证插损曲线,段与段拼接处看回波是否突变。突变点就是阻抗不连续的位置。

四、判定标准:不要只看眼图
我们同时看四个量:
插损 @ Nyquist:25G NRZ 约 12.5 GHz,56G PAM4 约 28 GHz
回波损耗:全频段优于 -10 dB,关键频点优于 -15 dB
串扰(NEXT/FEXT):优于 -30 dB
群延迟波动:±5 ps 以内
只看眼图很容易忽略串扰,而串扰在密集端口(比如 32 口交换机前面板)里是主要杀手。

五、把仿真对齐实测的三个技巧
1) 用实测的 TDR 曲线反推阻抗剖面,修正走线模型
TDR 上每 10 ps 出现一个阻抗台阶,就对应一个过孔或一个焊盘,逐个修正。
2) 用实测的上升时间去替换理想激励
这一步通常能把眼高预测误差从 30% 降到 10% 以内。
3) 把抖动分离成 RJ 与 DJ 分别注入
RJ 用高斯分布拟合,DJ 用实测直方图。混在一起注入会低估最坏情况。

六、一个反直觉的结论
我们发现,把 PCB 走线从 8 cm 缩到 5 cm,眼图改善远小于把连接器换成低反射型号带来的改善。
在短距高速通道里,阻抗连续性的重要性高于长度。
所以前期选型阶段,宁可多花点钱在连接器和过孔工艺上,不要在后端靠均衡算法去补。

七、工具链建议
电磁仿真:HFSS / CST 都可以,关键是叠层参数用实测 Dk/Df,不要用标称值
通道仿真:ADS Channel Sim 或 PyBERT(开源,够用)
眼图统计:不要用单次瞬态仿真,要跑百万比特的统计眼图

我们目前的做法是 HFSS 提 S 参数 → PyBERT 跑统计眼图 → 与实测对比,
单条通道从建模到对齐约两天,比反复打板便宜得多。

—— 北亿纤通(F-tone Networks)光模块与高速互联技术团队
技术资料:https://www.f-tone.com