跳变故障与实速测试:Transition Delay Fault 与 At-Speed ATPG
更新时间:2026-09-24。DFT/测试进阶层一篇。静态故障模型的基础见 stuck-at 故障模型,扫描链与 ATPG 流程见 扫描链与 ATPG。本篇回答一个制造测试里非常现实的问题:一颗芯片在低速测试仪上条条向量通过,焊到板上按真实频率跑却出错——它坏在哪里,又该怎么测出来?
本文要回答的问题
- stuck-at 测试为什么发现不了「信号只是慢了一点」的缺陷?
- transition delay fault(跳变延迟故障)模型如何描述 slow-to-rise / slow-to-fall?
- at-speed 双拍里的 launch 和 capture 各自做什么?LOC 和 LOS 两种发射方式差在哪?
- 为什么 at-speed 测试必须用 PLL 真实时钟,扫描使能 SE 的时序为什么成为分水岭?
- transition 测试与 stuck-at、path delay 测试是什么关系,故障覆盖率和捕获功耗怎么定?
一、stuck-at 测的是「通不通」,测不了「快不快」
stuck-at 故障模型假设某根线被永久钉在逻辑 0 或逻辑 1,测试仪以低速把向量一位位移进扫描链,时钟可以慢到几十毫秒一拍。只要组合逻辑的稳态电平正确,测试就通过——时钟多慢无所谓,因为稳态值与延迟无关。
但深亚微米工艺下,相当一部分制造缺陷并不改变稳态逻辑,只增大延迟:通孔刻蚀不完整使电阻从几欧姆变成几千欧姆;金属微粒造成微开路,靠电容耦合还能把电平「拖」过去;栅氧轻微受损使门延迟超标;相邻线串扰把边沿推慢。这些节点在无限时间后总能到达正确电平,stuck-at 向量对它们毫无办法,只有在真实工作频率下,下一拍捕获时新电平还没到,故障才表现为逻辑错误。业界把这类缺陷统称延迟缺陷(delay defect),针对它们的测试就是跳变故障实速测试。
可以算一笔直观的账。一个正常通孔的电阻约 5~10Ω,挂在 20fF 的金属负载电容上,RC 时间常数不到 1ps,完全淹没在门延迟里;若刻蚀残留使电阻升到 5kΩ,时间常数就变成 100ns 量级。芯片在测试仪上以 1MHz 低速跑,1000ns 的周期给足了充电时间,电平照样正确;焊到板上按 1GHz(周期 1ns)运行,这个节点几乎永远充不到高电平。反过来,电阻只升到几百欧姆时,节点只慢了零点几纳秒,低速测试更不可能暴露,却足以让一条本就紧张的关键路径突破周期。延迟缺陷的检出与否,从来不是「节点对不对」,而是「节点在规定时间内对不对」——这决定了测试必须把时间作为一等公民。
二、transition delay fault:每个节点慢了超过一个周期
跳变延迟故障模型给每个节点附加两种可能的故障:slow-to-rise(0→1 上升跳变慢)和 slow-to-fall(1→0 下降跳变慢)。判定标准很干脆:故障节点的跳变传播时间比正常情况多出超过一个时钟周期。测试分三步:先让节点处在跳变前的初值(launch value),制造一个跳变;给恰好一个真实工作周期的传播时间;在捕获触发器采样(capture value)。好芯片此时采到新值,带故障的芯片节点还停在旧值,输出与预期不符即检出。
下图画出一条典型扫描两级触发器路径上的 slow-to-rise 故障:
读图抓住「一个周期」这条红线:跳变故障模型把所有延迟缺陷粗略折算成「门限大小 = 一个时钟周期」的集总延迟,挂在单个节点上。形式化地说,跳变经故障节点传播到捕获端的总时间为 T_prop,缺陷引入的额外延迟为 Δ,检出条件就是 T_prop + Δ > T_cycle(时钟周期),且捕获端采到的旧值还要与好电路的期望值不同。它的优点是故障点数量有限(每节点两种),可以直接套用成熟的 stuck-at ATPG 算法框架;缺点也源于此——只慢了小半个周期的小延迟缺陷(small delay defect)会漏检,哪怕它们落在关键路径上足以致命。这正是后面 path delay 测试要补的位。
值得一提的是,TDF 向量与 stuck-at 向量在结构上高度同构:两者都要先给目标节点置初值、再把效应沿一条敏化路径传到扫描观测端,区别只是 TDF 多了一个「发射沿」和时间窗口约束。因此工具可以复用同一套故障压缩与向量压缩引擎,但为了满足时序条件,TDF 的向量数通常膨胀到 stuck-at 向量集的 2~4 倍,测试时间和 ATE(自动测试设备)机时成本随之上升——这也是为什么量产测试里两套向量的取舍要算经济账,而不是只看覆盖率。
三、at-speed 双拍:LOC 与 LOS 两种发射方式
跳变从哪里来?扫描测试里有两种产生跳变的办法,核心差别在 launch 这一拍由谁发出。
launch-on-shift(LOS,移位发射,也称 launch-off-shift):扫描移位的最后一拍直接制造跳变。移位状态已让故障节点处于初值,最后一个移位沿把相邻值移过来形成 0→1 或 1→0,随后只隔一个真实工作周期就给捕获沿。具体到移位寄存器:扫描链上相邻两位被刻意安排成不同值(前一位 0、后一位 1,或反之),最后一个移位沿把后者移入目标触发器,Q 端随即产生跳变。跳变由移位操作天然产生,向量生成简单、覆盖率高,但要求扫描使能 SE 在 launch 沿之后、capture 沿之前的一个周期内从 1 切到 0。在高频设计里,SE 是一棵扇出极大的全局信号,一个周期内完成切换并满足建立时间往往无法收敛,很多设计因此给 SE 加专用高速使能通路(常称为 fast SE,用局部锁存器缩短关键路径),或者干脆放弃 LOS。
launch-on-capture(LOC,捕获发射,也称 broadside):先低速移位装入初态,SE 提前拉低,然后连发两个功能频率的捕获沿:第一个捕获沿 C1 让电路在正常功能模式下自己跑出跳变(launch),第二个捕获沿 C2 在一个真实周期后采样(capture)。SE 在整串高速脉冲期间保持为 0,没有高速切换压力,时序天然干净;代价是跳变必须能被功能逻辑激发,ATPG 要解两拍的时序组合,向量更复杂,不可测点更多,覆盖率通常比 LOS 低几个百分点。举个最简的例子:目标故障在一个与非门的输入,移位装入的初态让该输入为 0;LOC 要求 C1 之后驱动它的那段功能逻辑恰好把它推成 1——如果这段逻辑在上电扫描态下根本不产生这个跳变,该故障就只能判为 LOC 不可测。LOS 不存在这个问题,因为跳变是扫描链「硬移」出来的,与功能行为无关。工具还支持在 C2 之后追加 C3、C4 等多个捕获沿(multi-capture),让效应有更多时间传到可观测端,能把 LOC 覆盖率再抬一抬,但每加一个捕获沿,同时翻转的触发器和动态功耗就上一个台阶。
下图对比两种方式在时间轴上的拍序,重点看 SE 的切换位置:
工程上的默认选择已经很清晰:时序收敛优先就用 LOC,绝大多数数字芯片以 LOC 为主;频率不高或对覆盖率要求极严的产品(部分车规、低成本成熟工艺)会用 LOS,并在物理实现时为 SE 做特殊缓冲设计。也有工具支持混合模式:能高速切换的扫描链用 LOS,其余退回 LOC。
| 维度 | LOS(launch-on-shift) | LOC(launch-on-capture) |
|---|---|---|
| 跳变来源 | 最后一个移位沿 | 第一个功能捕获沿 C1 |
| SE 时序 | 一个周期内 1→0,需高速切换 | 高速期间恒为 0,提前拉低即可 |
| 向量生成 | 简单,接近移位向量 | 需解两拍功能传播,更复杂 |
| 故障覆盖率 | 较高 | 通常略低(低几个百分点) |
| 物理实现代价 | SE 需专用高速通路 | 无特殊要求 |
| 适用场景 | 低速/成熟工艺、覆盖率优先 | 高频 SoC 的主流选择 |
四、at-speed ATPG 与时序要求
生成跳变向量的工具叫 at-speed ATPG,它在普通 stuck-at ATPG 基础上增加了时间维:每个故障要同时找到「置初值、发射跳变、沿路径传播、终端捕获」四个条件,并且沿传播路径的总延迟必须落在一个周期窗口内。工具从时序信息(SDC 与标准单元延迟)中识别不可测结构:跨时钟域、多周期路径、伪路径、门控时钟未展开处,这些点需要单独约束或测试模式处理。多时钟域设计里,launch 和 capture 沿来自不同 PLL,跨域关系本身就不保证单周期到达,ATPG 要么屏蔽跨域捕获,要么按 CDC 跨时钟域设计的握手关系生成特殊序列。
时钟质量是另一根硬柱子。实速的两个沿必须来自片上 PLL(时钟原理见数字 PLL 基础)或测试仪的高速通道,边沿间隔精确到目标周期:1GHz 设计对应 1ns 窗口,频率偏 5% 就等于放宽了 5% 的延迟判据,可能放过故障芯片(测试逃逸),也可能误杀好芯片(过杀)。测试仪通常只提供低速移位时钟并触发 PLL 输出短脉冲串(burst),所以实速测试模式下时钟控制器、PLL 必须能在扫描模式下可编程输出。
一条向量在 ATE 上的完整时间线因此分成四段:低速移位(通常 10~50MHz)装入初态;等待 PLL 稳定并切换到高速时钟源;输出仅含两三个(或几个)周期的高速脉冲串完成 launch-capture;再切回低速把捕获结果移出、同时移入下一条向量。整条流程里真正实速的只有中间两三拍,但这两三拍的边沿位置、脉冲宽度和占空比都必须与功能模式签核口径一致:功能 STA 用的是上升沿采上升沿,测试也不能用下降沿;功能时序预算里留了不确定度(uncertainty),测试时钟的抖动也得在同一量级。任何「测试时钟比功能时钟宽松」的做法,都会让实速测试的检出率打折。
五、transition 与 stuck-at、path delay 的分工
三类测试不是替代关系,而是质量金字塔的不同层,量产向量集三者都跑:
| stuck-at | transition(at-speed) | path delay | |
|---|---|---|---|
| 缺陷模型 | 固定电平 | 单节点延迟 >1 周期 | 整条路径延迟超标 |
| 测试频率 | 低速任意 | 真实工作频率 | 真实工作频率 |
| 向量规模 | 最小 | 约为 stuck-at 的 2~4 倍 | 只覆盖选定关键路径 |
| 主要目标 | 连通性、桥接/开路 | 随机延迟缺陷 | 最慢路径签核、小延迟缺陷 |
| 覆盖率典型要求 | ≥99% | 比 stuck-at 略低,按质量档定 | 不按百分比,按路径清单 |
path delay 测试不遍历所有节点,而是由静态时序分析挑出关键路径(读时序报告的方法见STA 报告阅读),强制路径起点产生跳变、在终端按一个周期捕获,验证整条路径的端到端延迟。它对只慢几百皮秒的小延迟缺陷敏感得多——transition 模型对这种缺陷有「分布掩蔽」问题:故障点离捕获端近时剩余路径短,小延迟不会让总时间超周期,于是漏检。车规等高质量产品线会用时序感知 ATPG(timing-aware ATPG),让工具优先经过长路径传播跳变,缩小这个盲区。
六、覆盖率、捕获功耗与常见坑
transition 故障覆盖率的计算口径与 stuck-at 相同(可检测故障中被向量检出的比例),但不可测故障更多,工业界通常接受略低于 stuck-at 的目标值,并同时盯紧测试覆盖率(test coverage,把不可测点按比例摊入)和逃逸率的现场反馈。典型数字可以有个量级感:消费级芯片 stuck-at 常要求 99% 以上,LOC 的 transition 覆盖做到 90% 上下即可交付;车规产品会把 transition 目标推到 95% 以上并补 timing-aware 向量,代价是向量数可能再翻一倍。覆盖率报告要和故障类型分桶一起看:未检出点里有多少是 AU(ATPG 不可测)、多少是 AN(模拟/黑盒)、多少只是向量预算没跑到——把后一种误当成前一种放过,是覆盖率评审里最常见的疏漏。
实速捕获带来一个 stuck-at 没有的麻烦:capture 沿附近大量触发器同时翻转,瞬态电流和 IR-drop 远高于功能平均水平,局部电压塌陷会让好芯片也变慢、被误杀。应对手段包括功耗感知 ATPG(限制每次捕获的翻转触发器数量)、分区捕获、配合电源完整性与 IR-drop 分析在测试条件下复核。此外还要注意:扫描压缩(见扫描压缩与 EDT)下 LOC 的控制逻辑更复杂;时钟占空比、launch/capture 沿的同沿或异沿选择要与 STA 模式一致;室温与电压档(shmoo 扫描)会显著影响实速良率,分档测试的概念见硅后验证与 shmoo 特性刻画。
实践中的高频失误可以归纳为四条:只跑 stuck-at 交付,现场出延迟缺陷退货;LOS 设计到后端才发现 SE 时序不收敛,临时改 LOC 导致覆盖率返工;测试模式下 PLL 未接入或频率未校准,实速测试名存实亡;忽略捕获功耗,批量过杀却误判为良率问题逐条去查工艺。
这一篇在知识体系里的位置
本篇属于芯片设计中间层的 DFT/制造测试板块,回答「静态向量通过的芯片为什么实速会失败」。向前的基础是stuck-at 故障模型、扫描链与 ATPG和 JTAG 边界扫描;时序侧的依据来自建立保持时间与亚稳态、多周期与伪路径;向深一层,压缩扫描的高级架构见 DFT 高级:扫描压缩,存储器测试是另一条独立线索 MBIST/LBIST,可靠性与车规质量要求见 可靠性、AEC-Q100 与老化。
总结
跳变故障实速测试针对「信号太慢」的延迟缺陷:用 transition delay fault 模型把 slow-to-rise / slow-to-fall 抽象为单节点跳变滞后超过一个周期,以 PLL 真实时钟发 launch、capture 双沿检验;LOS 借最后一个移位沿发射、覆盖率高但要求扫描使能 SE 在一个周期内高速切换,LOC 用两个功能捕获沿发射、时序干净是高频芯片主流;它与 stuck-at(低速测连通)和 path delay(关键路径签核、抓小延迟缺陷)构成互补的三层测试,成败关键在真实时钟、跨域与伪路径约束、捕获功耗与 IR-drop 控制——漏掉实速测试,等于把「低速全过、上机出错」的芯片直接交给客户。