4. ATPG 自动测试向量生成面试题

本章聚焦 ATPG(Automatic Test Pattern Generation) 核心考点:故障模型、压缩算法、覆盖率分析。面试中通常要求你在 1-2 分钟内既说清原理,又展现工程落地思维。下面先通过一张回答框架图把握整体思路,再通过 3 个高频问答卡片 + 1 个真实项目模板进行专项突破。

ATPG 面试回答框架图 故障模型 压缩算法 覆盖率分析 定义 + 常见类型 (如Stuck-at / Transition) 原理 & 应用场景 动机 + 主流算法 (如动态压缩 / X-fill) 压缩率与开销权衡 指标定义 + 计算 (故障覆盖率 / 测试效率) 如何提升 & 瓶颈 加分点:结合实际项目 + 对比不同方法 + 提及工具链(如TetraMAX / FastScan) 量化表现(覆盖率提升X%、测试向量压缩率Y%)

3 个面试问答卡片

面试问题:请介绍一下常见的故障模型及其在 ATPG 中的应用。

面试官考察点:基础知识扎实度、能否区分故障模型适用场景、是否了解工业界常用模型。

回答框架:

  1. 先给出定义:故障模型是对芯片物理缺陷的抽象。
  2. 列举 2-3 种主流模型:Stuck-at(固定型)、Transition(跳变型)、Bridging(桥接型)。
  3. 说明每种模型对应哪些缺陷(如 Stuck-at 对应短路/断路)。
  4. 结合实际应用:DFT 项目中常用 Stuck-at 做静态测试,Transition 做时序测试。

简短示例回答:“故障模型是物理缺陷的抽象。最常用的是 Stuck-at 模型,模拟信号固定为 0 或 1;Transition 模型用于捕捉时序延迟故障,如上升沿变慢。我在项目中主要使用这两种,结合 ATPG 工具生成对应向量,基础覆盖率可达 95% 以上。”

可能追问:“为什么 Stuck-at 模型不能覆盖所有真实缺陷?”、“你如何处理多故障模型共存?”

避坑提醒:不要只背定义;要对比各模型的局限性和适用场景;避免说“我会所有模型”,应聚焦 2-3 个深挖。

面试问题:ATPG 为什么要做向量压缩?常见的压缩算法有哪些?

面试官考察点:对测试成本的理解、算法原理掌握、压缩率与测试质量权衡。

回答框架:

  1. 先说明动机:减少测试时间和测试数据存储,降低 ATE 成本。
  2. 分类介绍:静态压缩(合并兼容向量)和动态压缩(在 ATPG 过程中优化)。
  3. 举例:X-fill 技术(用 X 态填充无关位)、多链扫描压缩。
  4. 补充权衡:过度压缩可能导致覆盖率下降或增加运行时间。

简短示例回答:“压缩能显著降本。常用静态合并:将兼容向量合并为一条;以及动态的 X-fill:将未指定位置随机填充为 0/1 以激活更多故障。项目中我使用 TetraMAX 的自动压缩,向量数量减少 40%,覆盖率仅降 0.3%,在可接受范围。”

可能追问:“解释一下什么叫‘兼容向量’?”、“压缩率和测试时间的关系是什么样的?”

避坑提醒:不要只提一种算法;要体现你理解压缩不是单纯的“减量”,而是质量、时间、成本的三角平衡。

面试问题:如何分析并提升 ATPG 的故障覆盖率?

面试官考察点:指标定义、分析工具使用、发现问题并优化能力。

回答框架:

  1. 解释故障覆盖率 = 检测到的故障数 / 总故障数。
  2. 分析过程:运行 ATPG 后查看报告,识别未被覆盖的故障类型及区域。
  3. 提升方法:增加测试向量、优化扫描链配置、修改测试模式(如功能 vs 扫描)。
  4. 提及工具:TetraMAX 的故障字典、覆盖率分类(DC/TC)。

简短示例回答:“覆盖率是 ATPG 核心指标。我会先检查报告,找出不可测故障(untestable)是因为约束限制还是设计本身。然后针对性地增加 at-speed 测试模式或调整 scan chain。实践中将覆盖率从 92% 提升至 97%,主要靠优化时序约束和添加过渡故障向量。”

可能追问:“什么叫 untestable fault?它和 redundant fault 的区别?”、“覆盖率 100% 不可能吗?为什么?”

避坑提醒:不要只背公式;要展示分析思路和实际调优步骤;避免说“我能做到 100%”,应说明实际限制。

项目案例:高速接口芯片 ATPG 向量优化

项目名称:28nm 高速 SerDes 接口 ATPG 向量压缩与覆盖率提升

业务背景:该芯片用于 5G 基站,需通过高覆盖率量产测试,但原始 ATPG 向量过大导致 ATE 测试时间过长,成本超预算。

规模指标:芯片规模 500 万门,扫描链 32 条,原始向量 120,000 条,目标覆盖率 ≥ 96%。

技术栈:TetraMAX + DC 综合、Mentor DFTAdvisor、自定义 Perl 脚本进行向量后处理。

核心难点:1) 向量过多(120k)导致 ATE 测试时间超限;2) 部分故障因时序约束过紧被错误标记为 untestable。

STAR 项目表达图 Situation 28nm SerDes 芯片 测试成本超预算 Task 向量压缩 40%+ 覆盖率≥96% Action 动态压缩 + X-fill 调整时序约束 Result 向量降至 68k 覆盖率达 97.2% 可迁移回答话术 “在 SerDes 项目中,我通过动态压缩 + 约束优化,将向量减少 43% 的同时 将覆盖率提升 1.2%。核心经验是:先分析 untestable 根源,再针对性调整。” 面试时可直接复述,突出量化成果

面试高频追问

  • “压缩后覆盖率下降,你怎么取舍?” → 回答要给出具体阈值(如 ≤0.5% 下降可接受)。
  • “你提到的动态压缩具体是哪种实现?” → 准备 TetraMAX 的 scan compression 或 X-fill 参数配置。
  • “如果客户要求覆盖率 99%,你怎么做?” → 可能需要增加 at-speed 向量或修改扫描链结构。

可迁移回答话术

“我曾在某芯片项目中碰到类似问题。首先利用 ATPG 工具报告找出 untestable fault 分布,发现约 8% 的故障是因为时序约束过紧被误标。通过放宽特定路径约束,并加入 transition fault 向量,最终将覆盖率从 92.5% 提升至 97.2%,同时利用动态压缩将测试向量减少 43%。这个思路同样适用于其他工艺节点。”

避坑提醒:项目案例中务必给出 量化指标(向量数、覆盖率、压缩率),面试官最忌空洞描述。不要只说“优化了”,要说“从X到Y”。另外,避免攻击原有设计,展示建设性改进。

——第 4/30 章·完——