使用矢量网络分析仪(VNA)进行 PCB 走线 S 参数提取与去嵌方法
PCB 走线的 S 参数提取是高速信号仿真(SerDes、DDR5、PCIe 5.0)的"地基"——仿真模型再漂亮,如果 VNA 测回来的 S 参数里混着连接器、校准件、过孔的寄生,去嵌不干净,眼图就会"假收敛"。下面这套流程在 4–16 层板、单端/差分 5–20 GHz 量程内通用,以 Keysight N5227B / R&S ZNB20 为参考。
一、校准:板级首选 TRL,别死磕 SOLT
VNA 出厂自带的标准校准(SOLT,Short-Open-Load-Thru)在板级测量里有个硬伤——PCB 上的 SMA/uro 连接器不是 50 Ω 理想端口,Launch 段(连接器→表层微带)的寄生会吃掉 SOLT 的精度,尤其是差分对(TDR 上看 Launch 段 Z 从 50 Ω 跳到 65 Ω 那段)。
板级推荐 TRL 校准(Through-Reflect-Line):
• Through:被测走线的"参考短版"(同层、同线宽、同 via 结构,长度比待测件短 20–30 mm)
• Reflect:开路或短路(PCB 上做 1/4λ 开路 stub,或末端直接露焊盘短接到 GND via)
• Line:另一条长度差 ΔL ≥ λ/4(@ 最高频率,20 GHz 时 ΔL ≈ 3.75 mm @ εr=3.8)的线,用来解模糊
⚠ TRL 的有效频率范围是 f_low = 0.8× (1/√εr · ΔL) 到 f_high = 1/(2√εr·Td_per_mm),设计时要把待测频带框在中间,两端用 Port Extension 补。
如果板子没预留 TRL 结构,退而求其次用 SOLT + Port Extension:校准件校到 SMA 端面,再用 Port Extension 输 Launch 段电长度(从 TDR 上看 SMA→走线拐点的时间 t × 光速/√εr),把相位误差吃掉。
二、单端/差分 S 参数提取步骤
1. DUT 准备:PCB 上做"测试 coupon"——同层、同走线结构(线宽/间距/via/反焊盘)的单根走线(单端)或差分对,长度 30–80 mm(太短 < 15 mm 时 S21 幅值接近 0 dB,误差大)
2. VNA 设置:Start 100 MHz,Stop 按需求(PCIe 4.0 到 8 GHz、PCIe 5.0 到 16 GHz、DDR5 到 8–12 GHz),IF Bandwidth 压到 100–300 Hz(降噪),点数 ≥ 801
3. 接 DUT:SMA 用扭矩扳手拧到 5–8 in-lb,别手拧(接触阻抗不稳,S11 会飘 ±2 dB)
4. 测 4 端口(差分对)或 2 端口(单端),存 .s4p / .s2p
# Keysight VNA 命令行(简化)
CALC:PAR:DEF "S4P_DUT", "S11,S12,S21,S22,S13,S14,S23,S24,S31,S32,S41,S42"
SENS:FREQ:STAR 100MHZ
SENS:FREQ:STOP 16GHZ
SENS:SWE:POIN 1601
CALC:DATA:SNP:PORTs 1,2,3,4, "DUT_diff_50mm.s4p"
三、去嵌:把"非走线部分"剥掉
测出来的 S 参数 = SMA Launch + via + 反焊盘 + 待测走线 + 另一端对称结构。要去嵌,核心是做一只"2x-thru"和"thru"coupon。
方法一:AFR(Automatic Fixture Removal,Keysight 叫法,R&S 叫 De-embedding)
最实用。coupon 上多做一条 2x-thru(两段 Launch + 待测走线 ×2 连一起长版)和 thru(仅 Launch + 短走线)。VNA 软件或离线工具(如 ADS 的 AFR、SKYWORKS SPIPro)自动从 2x-thru 里抽出单端 Launch 的 S 模型,再对 thru 做去嵌,得到"纯净走线"。
操作顺序:
1. 测 2x-thru → 存 2xthru.s4p
2. 测 thru(DUT)→ 存 dut.s4p
3. AFR 工具选 2x-thru 作夹具模型 → 对 dut.s4p 去嵌 → 输出 dut_deembed.s4p
方法二:手动计算(适用于对称夹具)
如果 Launch 两端对称,可以用公式 S_dut = S_thru / S_fixture(矩阵运算),但实际工程中几乎都用 AFR,手动算容易在差分模式下把混合模(Sdd/Sdc/Scd/Scs)搞错。
差分去嵌要点
差分对去嵌后必须切到混合模 S 参数看:
• Sdd21:差模插损(@8 GHz < -3 dB 算合格,PCIe 4.0 要求更严)
• Sdc21 / Scd21:差转共 / 共转差(@8 GHz < -25 dB,串扰小)
• Sdd11:差模回损(@8 GHz < -10 dB)
只看 S11/S21 单端不够,差分对的耦合信息全在混合模里。
四、去嵌后校验三件事
1. 因果性(Causality):s4p_check('dut_deembed.s4p', 'causality'),时域脉冲响应不能有"预响"(t<0 时有值),否则仿真会发散
2. 无源性(Passivity):所有频点 ||S||₂ ≤ 1,去嵌算法如果数值不稳定会破无源性,表现为 Sdd21 在某频点 > 0 dB
3. TDR 对证:去嵌后的 S 参数导入 ADS 做 TDR,看走线段 Z 是不是平的 50/100 Ω(±10%),两端 Launch 残留应该 < 2 mm 的电长度
# 用 scikit-rf 快速验 S 参数(Python)
import skrf as rf
ntwk = rf.Network('dut_deembed.s4p')
print(f'Max Sdd21: {ntwk.s21.s_db.max():.2f} dB') # 应 < 0
print(f'Passivity check: {ntwk.passivity():.4f}') # 应 ≤ 1
五、三个高频翻车点
• coupon 和实板走线不一致:via 反焊盘尺寸、参考层间距、线宽,coupon 必须 1:1 复刻实板,否则去嵌完的 S 参数拿到仿真里还是对不上
• 2x-thru 不够长:2x-thru 总长度 < 2×Launch + 待测段,AFR 抽夹具模型会欠定
• VNA 动态范围不够:20 GHz 时基波噪声 -90 dBm 以下才稳,端口功率设 0 dBm,ATT 关掉
VNA 提 S 参数的真谛:cal 用 TRL 别死守 SOLT、coupon 做 2x-thru + thru 两只、AFR 去嵌比手算稳、去嵌完验因果性/无源性/TDR 三段。这套走完,PCIe 5.0 的 32 Gbps 眼图仿真和实测能对到 ±0.05 UI 以内,不会在 Sign-off 阶段返工。





