ATPG 流程、测试压缩与向量管理
更新时间:2026-10-01。扫描链解决了“怎么施加和观测”,ATPG 解决“施加什么”,测试压缩解决“向量太多太贵”。
本文要回答的问题
- ATPG 工具是怎么自动算出一笔能检出故障的图案的?
- 为什么现代芯片普遍要加测试压缩逻辑,压缩比怎么来的?
- 向量怎么从仿真世界落到 ATE,坏芯片怎么从 fail log 定位?
一、ATPG 的基本算法
对一个目标故障(如某节点 SA0):
- 激活:反向推出需要在该节点放什么值(SA0 要放 1)。
- 正当化(justify):沿逻辑锥反向回溯,决定各输入和扫描触发器取值。
- 传播(propagate):选择敏化路径把故障差异推到可观测点。
- 回溯中出现冲突就换分支(backtrack)。
- 故障仿真:用生成的图案顺带检测大量其他故障,分级标注检出/未检出,迭代直到覆盖率达标或剩余故障不可测。
工具(如 Tessent、TestKompress)按此循环遍历整个故障列表。
二、为什么要测试压缩
直接用少量长扫描链,移一笔要几千上万拍,向量集巨大,ATE 时间成本高。测试压缩在芯片内加:
- 解压器(decompressor):少量 ATE 输入通道 → 展开驱动内部大量短扫描链。
- 压缩器(compactor):大量短链 SO → 压缩成少量输出通道(常含异或网络)。
外部只需传“压缩后”的数据,片上展开/收拢,用数百倍的压缩比把测试时间和存储大幅降低。见 测试压缩 EDT。
三、压缩的代价:X 与未知位
组合逻辑可能产生 X(未初始化、总线竞争、多周期路径),X 进入压缩异或会污染多个输出位、掩盖真实结果。处理手段:
- 约束/屏蔽 X 源(X-bounding)。
- 加 unknown 屏蔽逻辑(如 per-chain masking)。
- ATPG 生成时做 X-aware 压缩。
压缩比越高,对 X 和布局布线的约束越敏感,需在覆盖率、压缩比、面积间折中。
四、向量落地与 fail 诊断
向量经 STIL/WGL 等格式按具体 ATE 的时序/通道映射后上机。坏芯片产生的 fail bit 日志回灌诊断工具,可反推最可能的物理位置,供良率和工艺分析。
五、向量管理实践
- 分测试模式(stuck-at、fast/transition、bridge、IDDQ)独立组织与签核。
- pattern 重排以降低峰值功耗、减少重载配置。
- 版本化向量集,与网表/PDK 版本严格对应(见 测试图案格式)。
六、常见坑
- 压缩比设太高,X 一出现大片结果被污染。
- 向量与网表版本不匹配,产线误判好芯片。
- 忽略 fail log 诊断闭环,良率问题无法回溯根因。
- 低功耗需求没纳入向量生成,移位阶段 IR-drop 假性失败。
小结
总结
ATPG 用"激活—正当化—传播—回溯—故障仿真"自动算出能检出故障的图案;为省 ATE 时间,EDT 在片上用解压器/压缩器把数百倍的扫描位展开收拢,压缩的最大敌人是组合逻辑产生的 X(需屏蔽/X-aware 处理);向量按 STIL/WGL 映射上机,fail log 再回流诊断反推故障位置,向量要按测试模式组织、版本与网表严格对应。