ATPG 和 BIST 有什么区别?
更新时间:2026-09-21。问题驱动短答页。ATPG 扫描链见 ATPG 与扫描,存储器自测见 MBIST/BISR,BIST 概览见 BIST/MBIST/LBIST。
一句话回答
ATPG(自动测试向量生成)是 EDA 工具针对故障模型离线算出一组确定性向量,量产时由外部测试机(ATE)经扫描链把向量移入、捕获、移出比对,故障定位精确、覆盖率高,但依赖昂贵的 ATE 机时且向量庞大;BIST 是在芯片里搭自测试电路——用 LFSR 自己产生伪随机激励、用 MISR 等压缩响应并在片内比对(逻辑叫 LBIST、存储器叫 MBIST),不依赖外部大测试机、可在现场反复上电自检,代价是额外面积/功耗、诊断粒度较粗。工业芯片通常两者并用:BIST 做快速自检和存储测试,ATPG 扫描做高覆盖、可定位的逻辑制造测试。
对比
| 维度 | ATPG | BIST(LBIST/MBIST) |
|---|---|---|
| 激励来源 | 工具离线生成、ATE 施加 | 片内 LFSR/控制器自生成 |
| 是否依赖 ATE | 强依赖,机时贵 | 基本不依赖,可现场跑 |
| 观测 | 扫描链移位比对 | MISR 特征值片内自比对 |
| 覆盖率/诊断 | 高、可精确到故障点 | 较高、诊断粗(pass/fail/特征值) |
| 面积开销 | 主要是扫描链 | 额外生成/比较/控制逻辑 |
| 现场使用 | 一般不能 | 可上电自检、周期自检 |
| 擅长 | 随机/组合逻辑故障定位 | 存储器规则阵列、快速自检 |
共同基础:故障模型与扫描
- 两者都基于故障模型:stuck-at-0/1(固定电平)、transition/路径延迟(慢翻转)、桥接等。
- 都大量依赖把内部触发器串成扫描链(scan),获得对内部节点的可控性和可观测性,见 DFT 与扫描链。
- MBIST 对 RAM 跑 March 算法(读/写特定图案找坏单元),常配合 BISR 用冗余行列修复,见 RAM 推断。
为什么两种都要
- ATE 机时按秒计费,向量越长越贵;BIST 把大量测试搬到片内、降低对 ATE 带宽和时间的要求。
- 存储器规则、密度高,MBIST 比 ATPG 更对路、还能做冗余修复。
- 车规/高可靠要求现场上电和运行中自检(LBIST/MBIST),这是 ATE 测试给不了的。
- 随机逻辑的精确缺陷定位仍需确定性 ATPG 向量。
常见坑
- 以为 BIST 覆盖率等同 ATPG:伪随机激励对“抗随机故障”(random-pattern resistant)逻辑覆盖不足,要加 test point 或确定性向量。
- 只上 ATPG 不做 MBIST,存储器坏块无法快速筛出和修复。
- 忽略测试模式下的功耗/时钟约束,扫描移位时翻转过大烧坏或误判。
- 特征值(MISR signature)对不上时难以定位,需要额外诊断手段。
总结
ATPG 用工具生成确定性向量、经扫描链由外部 ATE 施加并观测,覆盖率高、定位准但机时贵、不能现场用;BIST 在片内用 LFSR 生成图案、MISR 压缩响应自比对,LBIST 测逻辑、MBIST 配 March 算法测存储并可冗余修复,成本低、可上电自检但有面积开销、诊断较粗;两者基于同一套故障模型和扫描链,量产芯片通常 BIST 做快速/存储/现场自检、ATPG 做高覆盖可定位的逻辑测试,互补使用。