第3章 物理层电气特性测试概述

3.1 为什么电气特性测试这么重要

做 PCIe 一致性测试这么多年,我最大的感触就是——电气特性测试才是真正见真章的地方。协议层的逻辑分析能帮你抓 Bug,但物理层的电气测试决定了你的产品能不能稳定出货。

你想想看,一串 32 GT/s 的信号从发送端跑到接收端,中间要走过 PCB 走线、连接器、过孔、线缆……每一个环节都是对信号完整性的考验。稍微有一点阻抗不连续,或者抖动超标,整条链路就可能误码。

我刚开始接触 PCIe 时,总觉得协议分析更有意思。直到有一次项目,板卡在实验室功能全通,一到客户那边高温环境下就频繁掉链子。折腾了两周,最后发现是发射端去加重参数没调好,眼图余量只剩 2%。嗯,从那以后我再也不敢轻视电气特性测试了。

说白了,电气特性测试就是验证你的物理层设计能不能在各种工艺、电压、温度条件下稳定工作。PCIe 规范里对发射端、接收端和通道都有明确的电气参数要求,你的产品必须全部满足,才能拿到合规认证。

核心观点: 电气特性测试是 PCIe 一致性认证的基石。协议测试可以容忍一些软件层面的 workaround,但电气参数不合格,硬件就得改版。

3.2 测试标准体系概览

PCIe 电气特性测试的标准主要来自三个地方:

  • PCIe Base Spec — 定义了物理层的电气参数要求,比如电压幅值、抖动容限、眼图模板。各代协议都在这里定调。
  • PCIe CEM Spec — 针对板卡和连接器的外形规范,规定了测试点位置(TP0/TP1/TP2)和参考通道模型。
  • PCIe CTS — 一致性测试标准,告诉你具体怎么测、用什么设备、判定准则是什么。

我个人的习惯是把这三本规范叠在一起看。Base Spec 告诉你"要满足什么",CEM Spec 告诉你"在哪儿测",CTS 告诉你"怎么测"。缺一本都容易掉坑里。

小经验: 很多团队只盯着 CTS 看,觉得按步骤测完就完事了。但我建议你一定要回头对照 Base Spec 里的参数定义,有些 CTS 的测试条件跟实际应用场景有偏差,需要自己判断。

另外要注意,每一代 PCIe 的电气规范都在收紧。Gen3 开始引入了去加重和均衡,Gen4 对抖动的容忍度更严,Gen5 的眼图模板几乎把设计余量压到了极限。你不能用 Gen3 的经验直接套 Gen5 的设计。

下面这张图是我整理的电气特性测试知识体系,涵盖了标准、参数、设备和流程四个维度。你可以把它当作本章的导航地图。

PCIe 物理层电气特性测试知识体系 PCIe 物理层电气特性测试 测试标准体系 Base Spec CEM Spec CTS 文档 关键测试参数 眼图与抖动 电压与时序 S 参数 测试设备平台 实时示波器 VNA BERT 测试执行流程 测试准备 参数采集 数据分析 图 3-1 PCIe 物理层电气特性测试知识体系

3.3 关键测试参数与各代差异

电气特性测试的参数很多,但归纳起来就三大类:发射端、接收端和通道。每一类里又有几个核心指标。

发射端参数

  • 差分输出电压 (Vdiff) — 信号幅值,直接影响接收端的信噪比。太小了接收端看不清,太大了增加功耗和 EMI。
  • 上升时间 / 下降时间 — 边沿陡峭程度。太快了反射严重,太慢了眼图闭合。
  • 眼图模板 — 这是发端测试的"一票否决"项。信号必须落在模板框线内。
  • 总抖动 (TJ) 与随机抖动 (RJ) — 抖动是高速信号的死敌,Gen5 的抖动预算比 Gen1 少了 80%。
  • 去加重 (De-emphasis) — Gen3 开始引入,用来补偿高频损耗。我见过不少团队在这里栽跟头——去加重系数设错了,眼图直接塌掉。

接收端参数

  • 抖动容限 — 接收端能容忍多大的输入抖动而不误码。
  • 接收灵敏度 — 接收端能正确识别的最小信号幅值。
  • 均衡能力 — Gen3/Gen4/Gen5 的接收端必须支持 CTLE + DFE,否则没法用。

通道参数

  • 插入损耗 — 信号幅值随频率的衰减。PCIe Gen5 要求在 Nyquist 频率(16 GHz)下损耗不超过 -18 dB。
  • 回波损耗 — 阻抗不连续导致的反射。我测过一块板子,回损在 8 GHz 处掉了 -8 dB,后来发现是过孔的 stubs 没处理好。
  • 阻抗 — 差分 85 Ω ±15%,单端 55 Ω ±15%。

下面这个表格列出了各代 PCIe 在几个关键参数上的差异,一目了然:

参数 Gen1 (2.5 GT/s) Gen2 (5 GT/s) Gen3 (8 GT/s) Gen4 (16 GT/s) Gen5 (32 GT/s)
眼图模板宽度 0.175 UI 0.175 UI 0.125 UI 0.125 UI 0.125 UI
眼图模板高度 100 mV 100 mV 75 mV 75 mV 60 mV
总抖动 (TJ) 上限 0.6 UI 0.6 UI 0.5 UI 0.5 UI 0.45 UI
最小差分输出电压 800 mVppd 800 mVppd 800 mVppd 800 mVppd 800 mVppd
去加重要求 无 可选 强制 强制 强制
一个实用的观察: 从 Gen3 开始,眼图模板高度从 100 mV 降到 75 mV。这并不意味着接收端要求变松了,而是因为高频损耗导致信号幅值本身就会下降,模板必须跟着调整。你测试时一定要选对对应的模板文件,千万别用混。

3.4 测试设备与平台选择

做 PCIe 电气测试,设备是硬投入。我列一下常用的设备类型,以及我个人的选型建议。

  • 实时示波器 (Real-time Oscilloscope) — 发射端测试的主力。带宽至少要覆盖被测信号的 3 倍谐波。测 Gen5(32 GT/s)建议用 80 GHz 以上的带宽,采样率不低于 200 GSa/s。我个人习惯用 Keysight UXR 系列或者 Tektronix DPO70000 系列。
  • 矢量网络分析仪 (VNA) — 用来测通道的 S 参数。频率范围至少要到 40 GHz(Gen5 的 2 次谐波)。校准很关键,我曾经因为校准件没做温度补偿,测出来的插入损耗偏差了 0.5 dB。
  • 误码率测试仪 (BERT) — 接收端抖动容限测试必备。要能生成符合 PCIe 规范的 stressed eye 信号。
  • TDR (时域反射计) — 测阻抗连续性和走线长度。现在很多示波器也带 TDR 模块。
注意! 示波器的探头和线缆会引入额外的损耗和反射。测试前一定要做去嵌 (de-embedding) 或者使用规范的测试夹具。我曾经见到有人用普通 SMA 线缆测 Gen4 信号,结果眼图全是毛刺——其实是线缆的损耗把信号毁了。

3.5 测试流程的几个关键环节

不管测哪一代,电气特性测试的流程都遵循差不多的步骤。我把它们拆成四个阶段:

  1. 测试准备 — 确认 DUT 工作模式(是否进入 Polling/Compliance 状态),连接好测试设备,完成校准。这一步最容易被忽视的是测试码型选择。PCIe 规范规定了特定的 Compliance Pattern 和 PRBS 码型,用错了结果全废。
  2. 参数采集 — 用示波器抓取波形,或者用 VNA 扫描频率响应。采集时要保证足够的样本量。我一般抓 100 万 UI 以上的数据来做抖动分析。
  3. 数据后处理 — 用测试软件(比如 DPOJET、TDSET 或者是德科技的 3D 模型)做眼图分析、抖动分解、S 参数后处理。这里有个坑:不同的软件对抖动的分解算法略有不同,结果可能差 5%-10%。我建议你一直用同一个版本的软件做回归对比。
  4. 合规性判定 — 把测量结果跟规范里的限值做比较。注意,有些参数有温度和老化的余量要求,不能刚好顶着限值过。
我的一个经验: 在数据后处理阶段,多留一个心眼——看看眼图的"蝴蝶图"和浴盆曲线。有时候眼图模板通过了,但浴盆曲线的误码率拐点已经逼近 10e-12 的极限,这种设计就是"擦边球",量产后很容易出问题。

嗯,电气特性测试的内容远不止这些。后面的章节我会把发射端、接收端和通道的测试方法一个一个拆开讲。你现在先把整体框架搭起来,知道哪些参数是关键、哪些设备要备好、流程怎么走,后面就不容易跑偏了。

最后一条忠告: 别跳过测试计划直接上设备。我见过太多团队,设备买回来就迫不及待开始测,结果测了半天发现测试条件没设对。花 30 分钟把测试计划写清楚,能省你三天返工的时间。