☰
ATPG与Scan设计:芯片可测性核心原理与工业实践
2026/11/3 7:36:01 网站建设 项目流程

简介:本资源是Mentor Graphics官方发布的Tessent® Scan and ATPG用户手册(2017.3版),面向IC设计工程师、可测性设计(DFT)工程师及高校VLSI测试方向研究者,聚焦自动测试向量生成(ATPG)技术在集成电路故障检测与诊断中的工程落地。手册系统涵盖扫描链插入、测试模式生成、压缩算法应用、覆盖率分析及Tessent工具链实操流程,是掌握工业级DFT验证方法的核心参考文档。资源为单文件PDF,大小10.33MB,内容完整、排版规范,含详细目录、命令行参数说明、GUI操作截图及典型故障模型示例,便于按需查阅与实践复现。目前已有687人学习下载,适合中高级IC测试工程师快速上手Mentor Tessent工具,也适合作为高校DFT课程补充材料,支撑从理论到EDA工具使用的闭环学习。

1. ATPG 到底是什么:芯片出厂前的“体检报告生成器”

你有没有想过,一块指甲盖大小的芯片,里面可能集成上亿个晶体管——比一座超大型城市的人口还多。这么复杂的电路,哪怕只有一根连线焊反、一个开关卡住、一处绝缘层微裂,整块芯片就可能彻底失灵。可人眼根本看不见,万用表也测不到,显微镜下又找不到故障点。那工厂怎么敢把芯片打包发货?靠的不是运气,而是一套叫ATPG(Automatic Test Pattern Generation,自动测试模式生成)的“数字医生”系统。

打个比方:ATPG 就像给芯片做一次全身体检的智能预约系统。它不亲自拿听诊器检查,而是先读懂芯片的设计图纸(也就是网表),再自动生成一套套“考题”——比如“请把第127号寄存器设为0x5A,然后让时钟走3拍,最后读取第42号输出引脚的值”。这些“考题”就是测试向量(test patterns)。芯片被放进专用测试机(ATE),一道道“考题”打过去,机器实时比对答案。答错?说明对应位置有硬件缺陷;全对?恭喜,这块芯片通过了出厂门槛。

这份《atpg-gd.pdf》手册,正是这套“体检系统”的官方使用说明书——它来自 Mentor Graphics(现属西门子EDA),聚焦于其 Tessent® Scan & ATPG 工具链。它不讲怎么画电路图,也不教怎么写 Verilog,而是专注回答一个硬核问题:当芯片设计完成、准备流片之前,如何用软件“算出”最短、最狠、最准的一组输入指令,来揪出所有可能藏在硅片深处的物理缺陷?搞懂它,你就掌握了芯片从图纸走向真实世界的最后一道质量闸门。这不是玄学,是数字世界里最扎实的“后悔药”——在芯片量产前,把故障扼杀在摇篮里。


2. 为什么必须用 ATPG:手工“试错”在芯片世界里根本行不通

2.1 芯片复杂度爆炸,穷举测试等于天文数字

假设一个只有 32 个输入引脚的简单芯片(这在现代 SoC 中连一个 IP 核都算不上)。每个引脚只有高/低两种状态,那么所有可能的输入组合就是 $2^{32} = 4,294,967,296$ 种——超过 42 亿种。如果测试机每秒能跑 100 万个向量,全部测完也要将近 72 分钟。而现实中的高端处理器,输入+内部扫描链位宽轻松破万,$2^{10000}$ 是什么概念?它比宇宙中的原子总数还要多得多。手工设计或穷举测试,在物理上根本不可行。ATPG 的核心价值,就是用算法智慧,把这“无限大海”压缩成一张精准的“捕鱼网”。

提示:ATPG 不是暴力搜索,而是基于电路结构的故障模型驱动。它不关心“所有输入”,只关心“哪些输入能让某个特定故障暴露出来”。

2.2 故障不是“坏掉”,而是“行为异常”:从 Stuck-at 到桥接故障

初学者常误以为芯片故障就是“断路”或“短路”。其实更准确地说,是信号行为偏离了理想模型。ATPG 所依赖的,是一套标准化的“故障字典”:

  • Stuck-at Fault(固定型故障):最基础模型。比如某根线永远 stuck-at-0(卡在低电平),或 stuck-at-1(卡在高电平)。这是 ATPG 入门必练的“基本功”。
  • Bridge Fault(桥接故障):两根本该绝缘的金属线意外短接(如制造残留物导致),形成非预期通路。此时信号不再是 0 或 1,而可能是中间电平或竞争态。
  • Transition Fault(转换故障):电路无法在规定时间内完成电平翻转(如从 0→1 太慢),这直接关系到芯片能否在标称频率下稳定运行。
  • Path Delay Fault(路径延迟故障):某条关键信号路径延时超标,导致时序违例(timing violation),芯片一跑高频就崩溃。

Tessent ATPG 手册中反复强调的Fault Modeling(故障建模),本质就是告诉工具:“请按这几种‘病症特征’去设计考题”。没有这个模型,ATPG 就像医生没学过解剖,只能瞎猜。

2.3 Scan Design:给芯片装上“内置探针”,让 ATPG 有路可走

ATPG 再聪明,也得有“手脚”能伸进芯片内部。原始的芯片只有几个 I/O 引脚,内部逻辑像黑匣子,ATPG 生成的测试向量根本无法触及。Scan Design(扫描设计)就是解决这个问题的钥匙。

通俗地说,Scan 就是在芯片设计阶段,把成千上万个普通触发器(Flip-Flop)悄悄替换成一种特殊“双模”单元:正常工作时,它就是普通寄存器;测试时,它能被串成一条条长长的“数据高速公路”(Scan Chain)。如下图所示(逻辑示意):

// 普通触发器(无测试能力) always @(posedge clk) q <= d; // Scan 触发器(Tessent 支持的典型结构) always @(posedge clk or posedge scan_enable) begin if (scan_enable) q <= si; // 从上游 scan_in 接收数据 else q <= d; // 正常功能模式 end assign so = q; // 输出到下游 scan_out

注意:scan_enable是一个全局测试使能信号,由测试机控制。当它拉高,整个芯片的扫描链就“活”了——你可以像操作移位寄存器一样,把一串测试数据(如101010...)从scan_in口“推”进去,填满所有扫描单元;再启动一个时钟,让电路执行一次“快照”;最后把结果从scan_out“拉”出来。ATPG 生成的,正是这一进一出一拍之间的完整数据序列。

Tessent Scan 工具做的,就是自动化完成这个“替换+布线+验证”过程,并确保扫描链符合电气规则(如长度均衡、时钟域隔离)。没有 Scan Design,ATPG 就是纸上谈兵。

2.4 ATPG 的三类生成策略:随机、确定、外挂,各司其职

Tessent ATPG 并非只用一种方法“蛮干”,而是分层作战:

  • Random Pattern Test Generation(随机模式)
    快速生成大量随机向量(如01011001...),对“易暴露”的故障(如大部分 stuck-at)有奇效。优点是速度极快、无需电路结构分析;缺点是覆盖率天花板低(通常 80–90%),对复杂时序故障束手无策。适合早期回归测试。

  • Deterministic Pattern Test Generation(确定性模式)
    这才是 ATPG 的“主战力”。它基于电路网表和故障模型,用布尔满足(SAT)、D-Algorithm 等算法,精确推导出能激活(Activate)、传播(Propagate)、检测(Detect)某个特定故障的最小向量集。手册中Chapter 2: The ATPG Process详细描述了这一流程:从故障注入 → 前向赋值 → 后向回溯 → 冲突消解。它能达成 95%+ 的结构覆盖率,是量产前的黄金标准。

  • External Pattern Test Generation(外部模式)
    当你已有现成的功能测试向量(如 CPU 跑 Linux 的 boot code),想复用它们做硬件诊断时,可用此模式。Tessent 能分析这些向量对哪些故障有效,补全缺失部分。它不是生成新向量,而是“评估+增强”已有资产。

提示:实际项目中,三者常组合使用:先用 Random 快速筛一遍,再用 Deterministic 攻坚难点,最后用 External 验证系统级场景。手册Section 2.3的流程图清晰展示了这一协同逻辑。


3. Scan 和 ATPG 到底是什么关系:别再把“体检仪”和“体检方案”混为一谈

3.1 一个比喻厘清主次:Scan 是“血管支架”,ATPG 是“造影剂注射方案”

很多人看到“Tessent Scan and ATPG”并列,就以为它们是同一款工具的两个模块。错了。它们是上下游、基础设施与上层应用的关系:

  • Scan Design(扫描设计)是硬件改造工程。它在芯片 RTL 或门级网表中,插入扫描链结构、多路选择器、测试控制逻辑。这就像给人体心血管系统植入微型支架和阀门,为后续诊断创造物理通道。它产出的是可测试的硬件网表(带 scan enable、scan_in/out 端口)。

  • ATPG(自动测试向量生成)是软件算法引擎。它以 Scan 改造后的网表为输入,结合故障模型,计算出最优测试向量序列。它不改动硬件,只输出.stil、.wsl等测试向量文件。它就像医生根据支架位置,规划出最精准的造影剂(测试向量)注射路径和剂量,确保每一处血管(电路节点)都被充分显影。

关键区别:Scan 是“一次性基建投入”,发生在设计阶段;ATPG 是“按需调用服务”,每次流片前都要重新运行,因为网表变了、工艺角变了、故障模型重点也变了。

3.2 常见误区 / 易混概念:5 个新手必踩的坑

易混点为什么混怎么区分
ATPG vs. Functional Test(功能测试)两者都向芯片送输入、看输出,表面相似。功能测试验证“芯片能不能正确干活”(如加法器算 2+3=5);ATPG 验证“芯片硬件有没有物理缺陷”(如某根线是否 stuck-at-0)。前者用真实应用场景向量,后者用故障驱动的抽象向量。手册Chapter 2.2明确将二者列为不同 test type。
Scan Chain vs. JTAG Chain(JTAG链)都是串行链,都有 TDI/TDO。JTAG 是 IEEE 1149 标准的通用调试接口,用于配置 FPGA、读 IDCODE;Scan Chain 是 DFT 专用链,深度嵌入逻辑内部,位宽可达数万,专为高速批量测试优化。Tessent 手册Section 3.4指出:JTAG 可作为 Scan 的控制接口,但链本身是独立构建的。
DFT(Design for Testability) vs. ATPGDFT 是总称,ATPG 常被当作 DFT 的代名词。DFT 是一套设计哲学与技术集合,包括 Scan、BIST(内建自测试)、Boundary Scan、Test Compression 等;ATPG 是其中最核心的向量生成技术。就像“医疗体系”包含医院、医生、药品、设备,ATPG 只是“影像科的 CT 扫描仪”。手册Chapter 1开篇即定义 DFT 为 umbrella term。
Test Coverage(测试覆盖率) vs. Code Coverage(代码覆盖率)都叫 coverage,数值都追求 100%。Code Coverage(如 95% line coverage)衡量仿真时 Verilog 代码被执行的比例;Test Coverage(如 98% stuck-at coverage)衡量物理芯片中,有多少比例的潜在故障点能被向量检测到。前者保“设计正确”,后者保“制造无瑕”。手册Chapter 2.7的Fault Reporting章节专门分析 coverage 计算逻辑。
Stuck-at Fault vs. IDDQ Test(静态电流测试)都用于检测制造缺陷,常一起使用。Stuck-at 是逻辑行为测试:看输出是否符合预期;IDDQ 是物理参数测试:在芯片静止(clock stopped)时,测量电源电流。正常芯片 IDDQ 极小(nA 级),若存在桥接或漏电缺陷,电流会飙升至 μA 级。手册Chapter 2.2将 IDDQ 列为独立 test type,与 ATPG 生成的向量测试并列,而非子集。

4. DFT(Design for Testability)不是锦上添花,而是芯片设计的“宪法条款”

4.1 DFT 是什么:把“可测性”刻进芯片基因的设计准则

DFT(Design for Testability,可测性设计)这个词听起来像一个可选项,仿佛“等设计完了再考虑测试”。大错特错。DFT 是芯片设计流程中,与功能、功耗、面积同等重要的第一性原则。它不是后期补丁,而是从架构定义、IP 选型、RTL 编码的第一天起,就必须融入血液的纪律。

手册Chapter 1.1开宗明义:“DFT is a design methodology that facilitates the testing of integrated circuits.” —— 关键词是facilitates(促进),不是“辅助”。它意味着:

  • 架构师选 CPU core 时,必须确认它支持 scan insertion;
  • RTL 工程师写代码时,要避免latch、asynchronous reset等 ATPG 难以处理的结构;
  • 综合工程师设置约束时,要预留 scan clock 的时序余量;
  • 物理设计工程师布局时,要保证 scan chain 走线长度均衡,避免 skew。

提示:DFT 规则不是凭空而来。Tessent 手册Chapter 3.7的ATPG Design Rules Checking就是一份详尽的“宪法条文”:它会自动检查你的网表是否违反了 100+ 条规则,比如“是否存在未连接的扫描单元”、“是否有异步复位打断扫描链”、“时钟门控是否影响 scan capture”。违反即报错,不修复无法生成向量。

4.2 DTF?还是 DFT?一个拼写错误引发的行业共识

你可能在摘要里看到 “IC DTF” —— 这是一个广泛存在的笔误。正确缩写是 DFT(Design for Testability)。DTF 在 EDA 领域并无标准定义,查遍 IEEE、ACM 文献及主流厂商文档(Synopsys、Cadence、Mentor),均无此术语。它很可能是 “DFT” 在快速输入或语音识别时的误写,或是某些非专业渠道的以讹传讹。

为什么这个细节重要?因为 DFT 已成为全球芯片行业的通用语言。当你在招聘启事里看到 “DFT Engineer”,或在技术会议上听到 “DFT signoff”,所有人都默认指向同一套成熟方法论。混淆术语,轻则造成沟通成本,重则在跨团队协作(如设计团队 vs. 测试厂)时引发严重误解。手册封面和全文均使用DFT,这是最权威的背书。

4.3 DFT 的三大支柱:Scan、BIST、Compression,缺一不可

DFT 不是单点技术,而是一个立体防御体系。Tessent 手册虽以 Scan & ATPG 为核心,但也明确将其置于 DFT 大框架下:

  • Scan(扫描链):解决“怎么把测试信号送进去、结果取出来”的接入问题。它是 DFT 的基石,90% 以上的量产芯片都采用 Scan。
  • BIST(Built-In Self-Test,内建自测试):解决“怎么在芯片上电后,不依赖昂贵 ATE 机就能快速验货”的现场诊断问题。例如 Memory BIST,能在 SOC 启动时自动跑完 RAM 测试。手册Appendix提及 Tessent 支持 Memory BIST 集成。
  • Test Compression(测试压缩):解决“扫描链太长,测试时间太贵”的成本问题。现代芯片扫描链动辄百万位,全速移入移出耗时数秒,测试成本飙升。Tessent 的TestKompress技术(手册中隐含于Chapter 2的 compression 相关参数)能将向量压缩 10–100 倍,大幅缩短测试时间。

一个血泪经验:某公司曾为省事跳过 BIST,仅依赖 ATE 测试。芯片出货到客户现场后,偶发内存失效,因无 BIST 无法现场复现,只能整机返厂,单次召回损失超千万。DFT 的价值,往往在出事之后才被真正看见。

4.4 DFT Signoff:芯片流片前的“终极审判”

在芯片设计流程中,DFT Signoff(DFT 签核)是一个具有法律效力的里程碑。它意味着:
✅ 所有 DFT 结构(Scan Chain、Test Points、BIST Controller)已成功插入;
✅ 所有 DFT 规则检查(DRC)已 100% 通过;
✅ ATPG 已生成满足覆盖率目标(如 99.5% stuck-at)的向量集;
✅ 向量已通过仿真验证(Pattern Simulation),确认能正确捕获故障;
✅ 向量已下载到 ATE 机,完成硬件联调(Hardware Bring-up)。

手册Chapter 2.8的Fault Reporting和Chapter 3.7的Rules Checking,正是支撑 Signoff 的两大技术支柱。没有这份 PDF 里的严谨流程,Signoff 就是空中楼阁。它不是工程师的自我感觉良好,而是用数据、日志、报告堆砌起来的铁证。


5. 什么时候该用 ATPG?什么时候该绕道走?一份来自产线的真实判断清单

5.1 必须用 ATPG 的 4 种刚性场景

场景为什么 ATPG 不可替代Tessent 手册中的关键依据
ASIC/SoC 量产流片前这是芯片制造合同的强制条款。Foundry(晶圆厂)要求提供 DFT 报告和测试向量,否则拒收晶圆。ATPG 是唯一能系统化证明“99.5%以上物理缺陷可检出”的工业级方案。Chapter 1.3: Top-Down Design Flow with DFT明确将 ATPG 作为 DFT flow 的最终输出环节;Revision History中多次强调 “technical enhancements for production signoff”。
芯片故障率(DPPM)超标时当封装厂反馈某批次芯片测试失败率突然升高(如从 100ppm 升至 5000ppm),必须用 ATPG 生成的向量做 Failure Analysis(失效分析)。通过向量定位到具体扫描单元,再结合 FIB(聚焦离子束)修图,才能找到制造工艺的 root cause(如光刻偏移、CMP 不均)。Chapter 2.7: Fault Reporting提供详细的 fault location mapping(故障定位映射),将向量失败位与 RTL 信号名、物理版图坐标关联。
IP 核集成验证当把第三方 CPU、GPU IP 集成到 SoC 时,IP 提供商只给 black-box model(黑盒模型)。ATPG 能在不打开 IP 内部的情况下,通过 scan chain 边界,验证其与周围逻辑的互连是否正确(如 AXI 总线握手信号)。Chapter 2.2: Wrapper Chains专门介绍如何为 IP 核创建 scan wrapper,实现“即插即测”。
老工艺节点(如 28nm 及以上)芯片在先进工艺(5nm/3nm)中,物理缺陷形态复杂(如随机 dopant fluctuation),ATPG 对 stuck-at 的覆盖率下降。但在成熟工艺中,制造缺陷仍以经典 stuck-at、bridge 为主,ATPG 的 deterministic 算法依然高效可靠,且成本远低于开发新测试方法。Chapter 2.2: Supported Fault Model Types表明,stuck-at 和 bridge fault 是 Tessent 的 primary support models,尤其针对成熟工艺优化。

5.2 可以谨慎绕开 ATPG 的 3 种弹性场景

场景为什么可以绕开替代方案与风险提示
FPGA 原型验证(非量产)FPGA 本身支持 JTAG Boundary Scan 和在线调试(ILA),且可随时 reconfigure。ATPG 生成的向量无法直接在 FPGA 上运行(缺少 scan infrastructure)。用 Vivado 的Debug Core或 Quartus 的Signal Tap实时抓波形;用Formal Verification(形式验证)证明 RTL 逻辑等价性。风险:无法覆盖 FPGA 配置比特流(bitstream)的物理缺陷,如 BRAM 初始化错误。
纯模拟/RF 芯片ATPG 基于数字逻辑门级网表,而模拟电路(如 PLL、ADC)的行为由连续电压/电流决定,无法用 0/1 向量描述。用 ATE 机的精密源表(SMU)进行 DC 参数测试(如 offset voltage, gain error);用矢量网络分析仪(VNA)测 S 参数。风险:数字控制逻辑部分(如 ADC 的 digital controller)仍需 ATPG,常被忽略。
超低成本 MCU(< $0.1)ATPG 流程增加设计周期(+2–3周)、面积开销(+5–10%)、测试时间(+1–2秒/颗),对极致成本敏感的产品,可能得不偿失。采用简化 DFT:只做关键寄存器 scan,放弃 full-scan;或用低成本 ATE + functional vectors。风险:良率失控时,缺乏精准故障定位能力,只能靠统计学排查,效率极低。

5.3 一份来自产线的 ATPG 启动 checklist(附关键参数说明)

当你拿到一份新芯片网表,准备启动 Tessent ATPG 时,请务必逐项核对。这份清单直接源于手册Chapter 2和Chapter 3的实操要求:

检查项参数/命令示例为什么重要手册定位
网表格式read_netlist -format verilog my_chip.v
read_netlist -format ddc my_chip.ddc
Tessent 支持多种网表格式,但.ddc(Design Compiler 的二进制格式)保留最全的时序和层次信息,推荐优先使用。Verilog 需确保无 unsupported construct(如generateblock 未展开)。Chapter 3.3: Model Flattening强调网表完整性对 ATPG 成功率的影响。
时钟定义create_clock -name clk_main -period 10 [get_ports clk]
set_clock_groups -asynchronous -group {clk_main} -group {scan_clk}
必须明确定义所有功能时钟和 scan 专用时钟,并声明其异步关系。否则 ATPG 无法正确建模 scan capture 时序。Chapter 3.5: Scan Clocks详述 clock domain crossing 对 scan chain 的影响。
扫描链约束set_scan_configuration -max_length 2000 -min_length 500控制单条 scan chain 最大/最小长度。过长导致测试时间久、时序难收敛;过短增加 ATE channel 占用。2000 是成熟工艺常用经验值。Chapter 2.1: Scan Design Overview的Chain Tracing章节给出长度优化建议。
故障模型选择add_fault_model -name stuck_at
add_fault_model -name transition -at_speed
默认只加 stuck-at。若需 at-speed 测试(验证时序),必须显式添加transition模型,并指定at_speed选项,否则生成的向量不包含 launch-capture 时序。Chapter 2.2: Deterministic Pattern Test Generation和Chapter 2.4: At-Speed Test。
覆盖率目标set_target_coverage -type stuck_at -value 99.5设定目标覆盖率。注意:99.5% ≠ 100%。手册Chapter 2.7解释,剩余 0.5% 常为Untestable (UT)故障(如被冗余逻辑屏蔽),强行提升会指数级增加向量数,得不偿失。

从那以后我每次启动 ATPG,都强制走一遍这个 checklist,哪怕老板催着要 vector。因为漏掉set_clock_groups,会导致 30% 的向量在 ATE 上 fail;忘了add_fault_model -at_speed,芯片一上高频就死机却查不出原因——这些坑,手册里都用加粗字体写着,只是需要你亲手敲下命令,才能真正把它变成肌肉记忆。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询