4、触发类型概述

触发,说白了就是让示波器在正确的时刻开始画画。没有触发,你看到的波形就是一堆乱飘的线条,根本没法分析。我在刚接触示波器那会儿,就犯过这种错——信号明明在,屏幕却一片空白,后来才发现是触发没设对。

CXL 这类高速串行协议,信号里藏着各种复杂行为。单靠一种触发方式,很难抓住所有关键事件。你需要根据不同的测试场景,选择合适的触发类型。我个人习惯把触发分成几大类,这样在实际调试时,脑子里的思路会清晰很多。

触发的核心作用:在高速串行信号中,触发帮助我们定位特定的电平和时序条件。它是连接物理层和协议层的关键桥梁。

4.1 触发类型的三要素

要理解触发类型,先要搞懂三件事:

  • 触发源:用哪个通道的信号来判断触发条件?通常是你要观测的那个通道,但有时也会用其他通道做参考。
  • 触发条件:信号满足什么特征才算“命中”?比如电压越过某个阈值,或者出现特定的码型。
  • 触发耦合与抑制:触发电路如何处理信号?要不要滤掉噪声?要不要设置释抑时间(Holdoff)?

把这三件事搞清楚了,剩下的就是选类型的事。我遇到过不少工程师,上来就挑高级触发,结果源和条件都没配对,折腾了半天什么都没抓到。

4.2 主要触发类型一览

在 CXL 调试中,我常用的触发类型有下面这几种。它们不是替代关系,而是互补关系。你想想看,调试一个链路训练问题,可能需要先用边沿触发看眼图,再用序列触发抓状态跳转。

触发类型 核心特点 适用场景 我常用的技巧
边沿触发 简单、快速,基于电压阈值 看眼图、测时钟、确认信号有没有 先用它快速锁定信号,再切高级触发
脉宽触发 基于脉冲宽度判断 捕获毛刺、欠幅脉冲、异常窄/宽脉冲 遇到偶发毛刺,设窄脉宽触发很管用
码型触发 多通道逻辑组合触发 CXL 链路训练状态、命令序列定位 适合在 CXL 逻辑分析模式下用
序列触发 按时间顺序匹配多个事件 捕获链路训练过程、电源上电时序 我建议设为 2-3 个状态,太长容易超时
协议触发 按 CXL 协议包格式触发 捕获特定 FLIT、CRC 错误、重试请求 需要示波器支持协议解码选件
区域触发 信号进入/离开指定电压区域 捕获电源扰动、信号过冲、下冲 配合余量测试使用,找最差工况
CXL 示波器触发类型分类 触发类型总览 边沿触发 脉宽触发 区域触发 码型触发 序列触发 协议触发 选择触发类型的核心原则 1. 从简单的触发类型开始,快速验证信号质量 2. 按测试目标选择:眼图→边沿,协议→协议触发 3. 高级触发解决特定问题,不要一开始就复杂化

4.3 各类型实战详解

边沿触发

最基础也最可靠。示波器检测到信号电压跨过你设定的阈值,就触发一次。CXL 的眼图测试、摆幅检查,我都习惯先用边沿触发打个底。阈值怎么设?一般取信号幅度的 50%。

我踩过的坑:有一次测试 CXL 信号,把阈值设得太接近地电平,结果误触发了无数次,屏幕上全是噪声。后来把阈值调到信号中间,一下就稳了。

小技巧:设置边沿触发的触发耦合为“高频抑制”(HF Reject),可以滤掉 50 kHz 以下的低频干扰,在测时钟类信号时特别管用。

脉宽触发

信号从穿越阈值开始,到回到阈值结束,这段时间就是脉冲宽度。你可以设一个时间窗口,让示波器只捕获宽度在这个窗口内的脉冲。

在 CXL 调试里,我主要用它抓两类问题:

  • 毛刺:设置窄脉宽,比如 < 200 ps,就能把正常信号滤掉,只留异常窄的尖峰。
  • 欠幅脉冲:脉宽正常但幅度不够的脉冲,可以结合区域触发来抓,后面会讲。

嗯,这里要注意:脉宽触发的设置是基于电压阈值的。如果阈值设错了,脉宽测量就不准。我个人习惯先看一眼波形的大概宽度,再设置触发窗口留 20% 的余量。

码型触发

搞过数字电路的应该不陌生。码型触发就是多个通道的逻辑组合。比如你要抓“通道1高、通道2低、通道3高”这个组合出现的那一刻。

在 CXL 调试里,它的用处很大。举个例子,你想看链路训练到某个状态时发生了什么,可以把该状态对应的 LP/TS 信号组合成码型。我之前帮客户定位一个 Link Training 死锁的问题,就是用码型触发配合长时间采集,抓到了异常状态跳转。

警告:码型触发的通道数受限于示波器硬件。一般示波器支持 4 通道码型。如果 CXL 链路的控制信号超过 4 个,需要分组触发,或者用逻辑分析仪配合。

序列触发

序列触发比码型触发更灵活。它允许你定义事件的先后顺序。比如:先等信号 A 出现,再等信号 B 在 10 µs 内出现,然后才触发。

CXL 的上电时序测试,序列触发几乎是必备技能。你可以用序列触发捕获从 Reset 去断言到链路进入 L0 状态的完整过程。我建议序列长度控制在 3-4 个状态,太长的话触发概率会很低,调试起来很痛苦。

协议触发

这是最接近 CXL 业务层的触发方式。示波器需要安装 CXL 协议解码选件,能识别 FLIT、数据包、CRC 错误等。你可以直接说“我要触发一个 Memory Read 请求”,示波器会在协议层帮你找到这个包。

协议触发的优势是它懂 CXL 的语法。但缺点也很明显:第一,贵;第二,触发速度可能比硬件触发慢,因为需要实时解码。我在用协议触发抓重试包的时候,偶尔会漏掉一些事件,所以一般会和硬件触发配合使用。

我的经验:优先用硬件触发(边沿、码型、序列)定位时间范围,然后用协议触发在这个范围内做精确分析。不要一上来就开协议触发,那样示波器的处理负担会很大。

区域触发

区域触发和脉宽触发有点像,但关注的是电压区域,而不是时间。你可以设定一个电压窗口(比如 1.0 V 到 1.2 V),当信号进入或离开这个窗口时触发。

在 CXL 信号质量测试里,区域触发很适合捕捉电源噪声对信号的影响。我曾经用区域触发抓到一个过冲问题——信号偶尔会超过接收器的容忍范围,导致误码。设了一个电压上限窗口,很快就找到了那个异常的时间点。

4.4 如何选择触发类型

说完了每个类型的细节,最后聊一下选择思路。我个人习惯走这个流程:

  1. 明确测试目标:你是想看眼图质量?还是抓协议异常?还是看时序关系?目标决定了触发类型的大方向。
  2. 从简单开始:先试边沿触发,确认信号存在且稳定。这一步能排除很多低级错误。
  3. 复杂度递增:边沿触发搞不定,再试脉宽→码型→序列。每一级提高一点复杂度。
  4. 协议触发留到最后:协议触发消耗资源大,适合在问题定位的最后阶段做精确分析。
  5. 记录你的设置:每次触发类型的调整,建议截图或记录参数。我调了很多次,发现回头找的时候,没记录就只能重来。

一个小习惯:我在示波器上会把常用的触发设置存成“参考波形”或“设置文件”。这样下次遇到类似问题,直接调出来就能用,省了不少时间。