那么我们今天来看一下pcie插卡上面的reference clock的信号,电压,频率,差分信号等等,如何来测试这个信号?如果该信号不完全符合标准的电压等要求,对于下游downstream pcie device有什么影响等。
PCIe 链路本身是高速差分串行,每条 Lane 自己嵌入时钟(8b/10b 或 128b/130b 编码后由 CDR 恢复),传输数据时并不依赖外部 refclk。
但 refclk 主要给两类东西用:
给 SerDes PLL 提供基准频率(大多数实现是这样):
100 MHz 差分时钟进 PHY,
PHY 内部分频/倍频 → 2.5/5/8/16/32 GT/s 等 Line Rate。
给控制逻辑 / LTSSM / 计时器等数字部分提供主时钟(或用于生成这些时钟)。
早期 PCIe 1.0/2.0 基本都是系统级共享时钟 (Common Refclk, SRIS=0):
RC(Root Complex)和所有 Endpoints 共享一套 100 MHz refclk;
插槽上的 CLK+/- 就是 root 端 clock buffer 扇出的一路。
后来 PCIe 3.0+ 之后多了 SRIS/SRNS(独立时钟) 模式:
每个端点可以用自己的 100 MHz 或其他频率本振(通过 SSC 等保持频偏在规范内);
对 refclk 的布线拓扑要求就不一样了。
你问的是“插卡上的 reference clock 信号、电压、差分信号,以及如何连接到对端”,主要就是指 Common Refclk 模式下 slot 上那对 100 MHz 差分时钟 CLK+ / CLK-。
名义频率:100 MHz
允许偏差:±300 ppm(具体看 PCIe Base Spec 和 CEM Spec,带 SSC 时会有额外的调制范围要求)。
很多系统会加 SSC(Spread Spectrum Clocking):
一般是 −0.5% 左右下展宽调制,
减少 EMI,但会让接收端的 CDR / PLL 设计稍微复杂一点。
常见几种:
HCSL(High-Speed Current Steering Logic)
这是最典型的 PCIe refclk 格式。
端接通常是每根线对地 50 Ω(或等效)+ 电流源驱动。
差分摆幅大约 0.7–1.0 Vpp-diff 量级(不同 clock buffer 会有略微差异)。
LVDS / LVPECL / CML 等
某些板级会把 HCSL 转换为 LVDS/LVPECL 等再送往芯片。
CEM 规范更多针对 HCSL;板内可以做电平转换,但要保证接收端 sees 一个满足规范的差分时钟。
在插槽层面,你可以简单理解为:
PCIe slot 上的 CLK+ / CLK- 是一对 100 MHz 差分 clock,逻辑上类似 HCSL/LVDS 差分时钟,摆幅在几百 mV 到 1 Vpp-diff 之间。
对 refclk 这种 低数据率(100 MHz)但对抖动敏感的信号,主要关心:
差分摆幅 Vpp-diff(太小会导致接收器接收门限不够,太大则可能导致过冲 / EMI 问题);
共模范围(RC/EP PHY 输入的 common-mode 范围,一般几百 mV 到 1.x V 左右);
上升/下降时间(slew rate,需要足够快以保证有效时钟边沿,但不能过快以免产生过多 EMI 和反射);
周期抖动 / 周期–周期抖动 / 积分抖动(RMS、peak-to-peak 等)
抖动直接决定 PLL 能否锁定,以及 SerDes CDR 的容差 margin;
对称性 / 占空比(一般 50% ± 5–10%)。
这里容易被概念混淆。简单区分:
数据链路方向 (upstream/downstream):
Downstream Port:在 RC、Switch 侧(比如 Root Port、Switch Downstream Port);
Upstream Port:在 Endpoint / Switch Upstream 侧。
Refclk 拓扑
通常是 RC → 多路 clock buffer → 各个下游 slot / Endpoint。
也就是说:
refclk 从“更高层级”的 clock 源经过 buffer 扇出到每个 slot / 芯片, 并不是沿着 PCIe data lane 方向“上/下游传递”的信号。
典型几种情况:
主板 Common Clock
CPU RC、PCH、PCIe Switch、插槽(x16/x8/x4 等)。
主板上有一个或多个 100 MHz clock generator;
经 buffer / fanout 芯片分成 N 路;
分别走差分线到各个:
独立时钟(SRIS/SRNS)
插卡自己有一个晶振/PLL 产生 100 MHz;
主板给自己的 RC/Root 另一个本振;
双方只要求频偏在规范允许范围内,链路仍能训练成功。
这种模式下,slot 上的 refclk 引脚可能空着,或定义为 SRIS。
Slot 级:
主板通过 slot 的 CLK+ / CLK- 把 refclk“送给”插卡,
插卡上 PHY/桥片再用这个 clock 做 PLL。
对于标准 CEM 插卡,如果是 Common Refclk 模式:
方向是:“主板 → 插卡”,而不是“上游数据端口 → 下游数据端口”。
所以你可以记住一句话:
refclk 是 系统时钟拓扑 的一部分,不是 PCIe 上下行方向里的一员; 它的“方向”更多是 从 clock 发生器 → 各元件/插卡 的扇出,而不是从 upstream 端口到 downstream 端口。
通常至少要看:
波形与摆幅
差分 Vpp、单端振幅、共模电平;
上升/下降时间。
抖动
周期抖动 (Tj)、周期–周期抖动 (C–C jitter)、RMS Jitter;
积分抖动在指定带宽内(比如 12 kHz–20 MHz)。
频率与 SSC
实际频率(含 ppb / ppm 偏差);
是否存在 Spread Spectrum,折线/三角波形态、调制深度等。
信号完整性
眼图、过冲、下冲、反射;
拐角、阻抗不连续导致的 ringing;
差分对 skew(时序偏移)。
示波器(带差分探头)
带宽 1 GHz 以上基本够看 100 MHz refclk 的波形和抖动;
使用 高阻抗差分探头,避免过多 load。
频谱仪 + 相位噪声分析(更严谨的 jitter / phase noise 测试)。
时钟/抖动分析仪(专用 clock jitter analyzer)。
在实践里,大多数板级 bring-up:
用 高带宽示波器 + 差分探头 就足够判断“是不是明显不对劲”。
如果想看主板输出质量:
在 slot 就近的 test pad / 0 Ω 电阻位置测量;
或在 refclk buffer 的输出脚附近测。
想看插卡上“看到的 clock”:
插卡上如果有 refclk input net,可以在其 series 终端电阻 / 预留测试点处测。
注意:
不要直接撬开芯片脚焊盘测,一是危险,二是探头电容太大,可能改变信号形态。
从“轻微问题”到“致命问题”,大致是这一串:
可能表现为:
上电偶尔训练时间变长;
链路可以 up,但在高温/低温或电压边界条件下不稳定;
用协议分析仪看,error counter / replay 增多。
对下游 Endpoint 来说:
PLL 锁定 margin 变小;
CDR 层面的 jitter budget 被压缩,导致对数据抖动不够“宽容”。
接收端可能:
PLL 根本锁不上 refclk → LTSSM 停留在 Detect/ Polling 反复;
上电时序极不稳定,有时上,有时不上。
在 BIOS 或 OS 里可能看到:
根本枚举不到这条 PCIe 设备;
或者频繁 link training failed / surprise down。
即使能锁定,也会:
Link Training 失败率提高;
训练出错,降速 / 降宽;
high BER(高 bit error rate),触发大量重传,性能严重下滑。
你可以把 refclk 看成:
SerDes PLL/PHY 稳定性的“地基” 地基不稳 → 上面的 2.5G/5G/8G/16G/32G 数据链路,迟早会出问题。
在一些大系统上,你会看到这种现象:
单板测试没问题,多板安装在大型 backplane 后,某些槽位的设备:
偶尔不上电;
仅在某个插槽不稳定;
只要换到另一个槽位就好。
很多时候,问题根源就是某些槽位的 refclk 布线更长 / 负载更重 / 反射更严重,边缘槽位的 refclk 质量最差 → 某些 Endpoint PHY 对 refclk 质量更敏感,表现为“与型号相关的插槽问题”。
设计/调试阶段:把 refclk 当成 high-priority 信号
差分走线等长、阻抗控制、尽量少换层;
远离强干扰源(电源 FET、DC-DC 开关节点等)。
确认 Clock Tree 设计
Clock generator → buffer → fanout → slot / chip 的拓扑是否清晰;
Buffer 输出电平模式(HCSL / LVDS)与接收端输入匹配。
多板 / 不同长度 slot
对最差路径(最长那条 refclk 差分线)做 SI 仿真 & 实际测量;
看 worst case 抖动、摆幅、边沿。
如果你在做测试工具 / 协议分析仪 / 插卡类产品
允许更大的摆幅区间和共模范围;
对抖动的容差留更大 margin;
必要时考虑板上 re-clock / jitter cleaner 芯片。
你的卡往往会插在“各种非常糟糕的主板”上 →
自己板上的 refclk 接收要尽量“robust”:
https://pan.baidu.com/s/18_c11aeFhSBe2qa-jUFs_Q?pwd=mm9y 提取码: mm9y
如果你有其任何关于PCIe5&6.0, CXL, NVMe/NVMoF, NAND, DDR5/LPDDR5以及UFS测试方面的我问题想咨询,请访问:访问www.saniffer.cn / www.saniffer.com 访问我们的相关测试工具和产品;或者添加点击左下角“阅读原文”留言,或者saniffer公众号留言,致电021-50807071 / 13127856862,sales@saniffer.com。