交流刚开始,对方问的其实是一个非常朴素的问题:
“芯片以后流片回来,做成 EVB 或者板卡,我们到底需要准备哪些 PCIe 6.0 测试工具?”
这个问题听起来很宽,但往下聊,很快就落到了几个工程师真正会碰到的现场问题:
卡插到服务器里,为什么只能 Link 到 Gen5?
明明已经到了 Gen6 x16,为什么性能还是跑不上去?
跑几个小时以后偶尔掉卡,到底怎么把那一次异常抓下来?
如果怀疑 PERST#、CLKREQ#、电源或者某个 Pin 的时序有问题,能不能故意把它“搞坏一点”,看看芯片怎么处理?
还有一个现在很现实的问题:
真正可以随手拿来测试的 PCIe Gen6 Server 还没有那么普及,板卡已经要出来了,前面的系统验证怎么办?
聊到最后,我们发现,其实不能简单地问:
“要买一台什么配置的 PCIe 6.0 协议分析仪?”
更准确的问题应该是:
一张 PCIe Gen6 设备,从 Bring-up、Debug、Compliance,到异常恢复和系统兼容性测试,到底需要建立怎样的一套验证环境?
这篇文章就按照这次真实交流的思路,把这个问题重新梳理一遍。
PCIe Gen6 到了 64GT/s,并且进入 PAM4、FLIT 和 FEC 时代以后,很多过去 Gen3、Gen4 时代不那么敏感的问题都会被放大。
因此板卡刚回来时,第一件事仍然不是协议抓包。
而是先确认:
基本的 Electrical Compliance 和 Signal Integrity 有没有问题。
如果一条链路自身已经存在严重的信号质量问题,大量 FLIT 连 FEC 都救不回来,那么这个阶段首先应该解决 PCB、Connector、Tx/Rx、通道损耗和均衡问题。
协议分析仪擅长回答的是另一类问题:
物理链路基本能工作了,但整个 PCIe 系统为什么还是“不对劲”?
这正是我们这次交流后半段真正开始深入的地方。
比如一张 Gen6 加速卡插进服务器以后:
Link 只能到 Gen5;
x16 莫名其妙变成 x8;
Gen6 和 Gen5 来回 Retrain;
Link 是 Gen6 x16,但跑业务时性能明显不对;
跑压力一段时间以后突然掉卡;
或者某一次启动特别慢,但重新开机以后又一切正常。
这些问题靠示波器通常回答不了。
这时候真正需要看的已经是:
LTSSM 怎么走的? 训练过程中发生了什么? FLIT 有没有异常? FEC 在纠正什么? TLP 发出去以后对端到底怎么回应? AER 之前发生了什么? 设备掉下来以前最后几十毫秒发生了哪些 Transaction?
这就是协议分析仪的工作。
在实际连接上,就是把 Interposer 放在 Root Complex 与 Endpoint 之间,把上下行 PCIe 流量旁路出来,由分析仪实时捕获。
这次交流里,对方第一反应也很典型:
“分析仪插到链路中间,会不会反而把原来那个问题弄没了?”
这个问题非常专业。
到了 Gen6 以后,分析仪真正的门槛早就不只是“能不能解 FLIT”,而是:
它插进去以后,能不能尽可能保持原来的链路状态。
SerialTek 在 Kodiak 系列 PCIe Gen6 协议测试平台上专门把这件事情做成了 SI-Fi™ Signal Integrity Fidelity 技术,并结合自动 EQ 来提高 Inline 捕获时的信号保真度。Kodiak 目前支持 PCIe 6.0 64GT/s、PAM4、FLIT、FEC 以及 CXL 3.x 分析。
这也是为什么我们在实际推荐 Gen6 分析仪时,第一个关注点往往不是软件界面有多少菜单,而是:
先问 Interposer。
因为 Interposer 如果把现场改变了,再漂亮的 Protocol Decode 都没有意义。
PCIe Gen6 x16 满速跑起来以后,数据量非常可观。
这次交流中,客户就问了一句:
“这么大的 Buffer,到底能抓多长时间?”
这也是 Gen6 分析和以前很不一样的地方。
如果只是无条件从头往后抓,再大的 Buffer 都会迅速被填满。所以工程上真正有价值的不是“一直抓”,而是利用:
Trigger + Filter + Deep Trace
把问题前后的那一段现场留下来。
SerialTek Kodiak 高配内部提供 256GB Trace Buffer 和 8TB 内部 SSD,并且 Trace 不是先搬到工程师的 Laptop,再让 PC 慢慢解,而是在设备内部直接处理。官方的 BusXpert 既可以通过浏览器访问,也可以通过 Standalone 客户端访问,并支持 Trigger、Filter、Trace Processing 以及 REST API 自动化。
这点在现场调试时其实很重要。
一个偶发 Bug 最大的敌人往往不是“抓不到协议”,而是:
终于复现了一次,结果工程师还在等几十 GB 数据搬到电脑、等软件解码。
这里也专门讨论到了 SerialTek 把抓取、存储和解析放在自身系统内部的架构,目的就是减少大 Trace 在 PC 端来回搬运和等待。
对真正每天做 Debug 的人来说,这种差异往往比规格表上的一个小功能更实在。
交流进行到这里,对方问了一个挺有代表性的问题:
“训练器和分析仪,是两套东西吗?”
实际上在 SerialTek PCIe 6.0 协议分析仪平台上,Analyzer、Tester 和 Compliance 是可以整合在同一套系统里的。
做 Analyzer 时,它站在真实 Host 和 Device 中间观察。
切换到 Tester 以后,它的角色就变了。
比如你开发的是一张 PCIe Endpoint 加速卡,它的 Tester 功能(业内也叫 exerciser 训练器)可以模拟 Root Complex。
这样工程师就不必完全依赖真实服务器启动以后的固定行为,而可以主动控制测试过程:
先让设备在低速状态起来;
再一步步改变 Link 状态;
主动发送 Memory Read/Write 等事务;
观察 Endpoint 返回什么;
构造特定 Packet;
验证设备对正常和异常协议行为的响应。
反过来,如果开发的是 RC,也可以让 Tester 扮演 Endpoint。
这在 Silicon Bring-up 阶段非常有用,因为真正的服务器环境往往会“替你做掉很多事情”。
CPU 一上电,PCIe 枚举、训练、配置很快就过去了。
而做芯片验证的人真正想知道的往往是:
“我在这个步骤停一下,Device 会怎么回应?”
真实 Host 未必愿意配合你。
Tester 愿意。
我们交流中用户也明确确认了 Analyzer 与 Tester 可以由同一平台承担,只是在不同测试场景下配不同的 Interposer 和 Fixture。
Debug 解决的是:
为什么我的设备现在不工作?
Compliance 解决的是:
它是不是按照 PCI-SIG 规范应该有的方式工作?
这是完全不同的两个问题。
2026 年 5 月,SerialTek 宣布 Kodiak 系列 PCIe 6.0 协议分析仪已经获得 PCI-SIG PCIe 6.0 Compliance Testing 认可和官方批准,可用于相关 Compliance Workshop 和 Authorized Test Lab 场景。
这里容易产生一个误解:
Compliance Test 并不能证明一个产品以后绝对不会有 Bug。
它的意义是:
针对 PCI-SIG 规定的一组标准行为,检查设备是否满足协议规范要求。
对于一颗新 PCIe 芯片来说,这相当于建立一个非常重要的“基线”。
因为后续进入几十种服务器、Switch 和系统环境以后,互操作问题只会越来越复杂。
如果连基础规范行为都没有先跑顺,后面的系统 Debug 会非常痛苦。
所以我们通常会建议把:
Analyzer + Tester + CTS
看成一个递进关系,而不是三套完全无关的工具。
交流到这里,客户又提出了一个更有意思的问题:
“有没有一些通用的错误处理测试?我们不想所有异常场景都从头自己写。”
这就进入了另外一个测试领域:
Fault Injection。
正常环境只能证明:
正常情况下,它能工作。
但是一张准备真正进服务器、数据中心甚至 AI 系统的板卡,还应该知道:
环境不正常的时候,它会怎么死?又能不能活回来?
这时候我们推荐的是英国 Quarch 的 PCIe Gen6 Breaker。
Quarch 的思路非常直接:
把一个可控的 Breaker 插在 Host 与 DUT 之间。
然后故意做一些工程师平时不方便重复制造的事情。
例如:
突然掉电;
Hot Plug / Hot Unplug;
让某个 Sideband 晚一点接通;
让某个 Pin 产生 Bounce;
把某个 Sideband 强制拉高或者拉低;
人为制造短暂 Glitch;
甚至故意干扰 PCIe Lane,观察 Device 的错误恢复机制。
Quarch 的 Gen6 AIC x16 Breaker 支持 x16 设备,可以独立控制 Power 和 Sideband,并支持 Pin Bounce、高速 Glitch 以及 Lane 0 干扰;官方规格给出的 Switch Timing Resolution 为 1µs、Pin Bounce 可到 100ns,Glitch Pulse 可到 50ns。
这跟协议分析仪的定位完全不同。
SerialTek 是在问:
“刚才发生了什么?”
而 Quarch 是在问:
“如果我故意这样搞一下,你会发生什么?”
这两个工具放在一起以后,很多可靠性测试才真正有意思。
比如:
Quarch 故意制造一次异常;
同时让 SerialTek 抓整个 PCIe Protocol Trace;
最后你看到的不再只是“系统掉卡了”,而是可以顺着时间轴去看:
Fault 发生 → Link 发生变化 → FLIT/FEC 异常 → LTSSM 变化 → Error Handling → Recovery
这样问题就从“现象”变成了“证据链”。
我们交流过程中也正是从“人为制造少量错误、验证芯片内部异常处理能力”一路聊到了 Quarch 方案。
我们实际现场还有一种问题,非常难扯清楚。
同一张卡:
插 A 服务器没问题;
插 B 服务器偶发掉卡;
实验室跑一天正常;
送到客户那里半天就出错。
双方最容易进入经典循环:
服务器厂商说:
“你的卡有问题。”
板卡厂商说:
“我们的卡在别的机器上都正常。”
怎么办?
这时候靠猜没有意义。
Quarch 的 PAM(Power Analysis Module) 可以放在真实系统供电路径中,持续测量 Power Rail 上的:
Voltage、Current、Power 以及部分 Sideband 状态。
主板仍然正常给 DUT 供电,PAM 主要负责观察和记录。Quarch 官方也把 PAM 定义为功耗和 Sideband 状态测量工具,并可以与 PPM 或者 Breaker 配合,把已经观察到的问题重新制造出来。
另外,Quarch 的 PPM (可编程电源模块 - Programmable Power Module)可以故意拉偏给 DUT 卡的供电,模拟未来这张 DUT 卡卖到市场上万一不同服务器的 PCIe 插槽供电不稳,它是否还可以稳定地工作。
这在定位“特定服务器才出问题”的案例里特别实用。
因为最后讨论的就不再是:
“我感觉你这个电不稳定。”
而是:
“这里是连续几个小时真实记录下来的 12V Rail、电流、功耗以及 Sideband 变化。”
我们交流过程中也特别谈到了这种长时间监控用途——不是单纯为了测平均功耗,而是给偶发问题留下数据证据。
这也是这次交流中我觉得特别现实的一个问题。
现在不少芯片团队的进度已经到了:
RTL、Emulation 完成;
Silicon 快回来;
EVB 开始设计;
BSP 团队开始准备;
但是实验室里可以随便折腾的 Gen6 Server 环境,却未必同时到位。
这时候如果所有测试都等服务器:
整个 Bring-up 计划就被 Host 平台卡住了。
我们现在比较常用的办法之一,是利用 saniffer 销售的 Serial Cables 公司 PCIe Gen6 Switch Card 先构建 Gen6 下游测试环境。
目前 Serial Cables 已经有基于 Broadcom Atlas 3 的 Gen6 Switch Host Card。例如 B0 80-lane 版本可以向 Switch 下游提供 64 lanes Gen6 连接,并提供 4 个 Gen6 x8 MCIO 以及一个 x16 接口。
这张卡有一个很实用的地方:
上游 Host 本身不一定非要已经是 Gen6。
Serial Cables 官方就明确给出了这种用法:可以利用现有 Gen5 系统作为 Host,而在 Switch 下游建立 Gen6 设备连接,从而不用等 Gen6 Motherboard 和 CPU 完全普及后才开始设备端的 Gen6 验证。
这对于正在开发 GPU、DPU、NIC、AI Accelerator、SSD Controller 或者其他 PCIe Endpoint 芯片的团队很有价值。
这一点在交流里聊得比较深入。
很多工程师做 EVB 时习惯把环境想成:
CPU → Device
但真正进 AI Server 以后,经常会变成:
CPU → PCIe Switch → GPU/NIC/SSD/Accelerator
这时候一个设备:
直连 CPU 没问题,
不代表挂在 Switch 下面也一定没问题。
Link Training、Enumeration、Reset、Hot Plug、Peer-to-Peer、Topology 甚至某些 Firmware 行为都有可能发生变化。
所以 Serial Cables 这张 Switch Card 的意义并不仅仅是:
“暂时没有 Gen6 Server,所以拿它凑个环境。”
更重要的是:
Switch 本身就是未来产品必须测试的一种真实拓扑。
原始交流中客户也特别认同了这一点:有些最终产品场景会直连 CPU,另外一些场景本来就是 CPU 下面先接 Switch,再挂设备。
做真实项目以后还有一个很“接地气”的问题:
板子不一定长得像标准 PCIe AIC。
有的是大尺寸 EVB;
有的是 OAM 形态;
有的是 MCIO;
有的是 EDSFF;
有的客户甚至还处于不同机械接口反复变化的阶段。
所以我们现在做 Gen6 方案,越来越少只卖“一台仪器”。
真正落地的时候还要把:
Interposer、
MCIO Cable、
AIC Adapter、
EDSFF Adapter、
Extension Cable、
Switch Card、
Fixture
一起考虑。
Serial Cables 现在的 Gen6 产品线本身就覆盖 MCIO、EDSFF、CEM、Adapter、Host Card、Retimer/Redriver 以及 JBOF 等连接方案。例如其 MCIO x8 可以直接拆分连接两个 EDSFF x4 设备。
这些东西单独看都不像什么“高大上仪器”。
但真到实验室搭环境时,经常就是少了一根正确的 Cable 或者一块 Adapter,几十万元甚至几百万元的测试设备都只能先放着。
所以我们现在越来越强调:
工具是一部分,测试拓扑也是方案的一部分。
聊了将近两个小时以后,我们最后把整套方案压缩成了四块。我们交流过程中也有类似的总结:协议分析/训练与兼容性、Gen6 故障注入与功耗/Sideband 监测,以及在 Gen6 Server 不方便获得时用 Switch 搭建系统环境。
第一块:看见问题。
SerialTek Kodiak 系列 PCIe 6.0 Protocol Analyzer 负责把 LTSSM、FLIT、TLP、FEC、AER、NVMe/CXL 等协议行为看清楚。
第二块:主动控制协议环境。
SerialTek Tester / Exerciser + CTS 模拟 RC 或 EP,构造 Transaction,并进行 PCIe 协议 Compliance 验证。
第三块:故意制造异常。
Quarch Gen6 Breaker + PAM/PPM 做 Hot Swap、Power Fault、Pin Bounce、Glitch、Sideband 异常、电源拉偏以及长时间功耗和 Sideband 监控。
第四块:把真实系统拓扑提前搭起来。
Serial Cables Gen6 Switch + MCIO/CEM/EDSFF Adapter & Cable 在 Gen6 Host 资源不足时提前建立 Gen6 Endpoint 测试环境,同时验证设备挂在 PCIe Switch 下面的兼容性。
很多年前做 PCIe 测试,我们经常把成功标准放在:
Link Up 了没有?
现在显然不够了。
到了 PCIe Gen6,一张真正准备进入服务器的设备至少还要继续回答:
Link 是不是稳定?
为什么偶尔 Retrain?
为什么会降 Lane?
为什么满负载性能不对?
FEC 到底在帮你纠正多少东西?
突然掉电以后会怎样?
Sideband 时序异常会怎样?
供电波动会不会让设备失控?
挂在 Switch 下面是不是还一样稳定?
协议行为是不是符合 PCI-SIG CTS?
客户现场偶发一次的问题,实验室能不能复现?
所以我们这次交流到最后,其实没有得到一个“买哪一台设备就全部解决”的答案。
反而得到一个更实际的结论:
PCIe Gen6 验证已经越来越像一个完整的实验室体系,而不是一台仪器。
SerialTek 让我们看到协议里发生了什么;
Quarch 让我们有能力把那些最难复现的异常主动制造出来;
Serial Cables 则让各种 Gen6 设备、Switch、Cable 和不同 Form Factor 真正连成一个可以工作的测试环境。
这三块组合在一起,才比较接近现在 Saniffer 给 PCIe Gen6 芯片、加速卡、GPU、DPU、NIC 以及 SSD 团队提供方案时真正想解决的问题:
不是单纯把一张卡“点亮”。
而是从第一次 Link Up,一直把它调到能够稳定地进入真实服务器。
免费下载Saniffer公司白皮书
希望获得更多关于PCIe5.0&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。
欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。