ATPG 测试模式与测试流程全解析在芯片测试领域Test Procedure 是连接 ATPG 工具与 ATE自动测试设备之间的桥梁。它精确地定义了测试过程中的每一个动作——什么时候加载激励、什么时候捕获响应、时钟如何翻转。理解 Test Procedure 的构成与原理是高效开展 ATPG 工作的基础。本文将围绕 ATPG Pattern 类型、Test Procedure 文件结构、核心 Procedure 详解以及 NCP 与 CCD 四个主题系统梳理 Test Procedure 的核心知识。一、ATPG Pattern 类型ATPG 工具可以生成多种测试模式Test Modes和对应类型的 Pattern以适配不同的电路结构和缺陷模型。默认情况下工具生成 Basic Scan Pattern此外还支持以下类型Pattern 类型说明Basic Scan Patterns默认类型基本的扫描链加载/卸载 功能捕获Clock PO Patterns处理时钟信号经过组合逻辑到达 PO 的情况Clock Sequential Patterns处理时序逻辑导致的约束限制Multiple Load Patterns多次加载扫描链的测试模式RAM Sequential Patterns针对 RAM 的时序测试模式Sequential Transparent Patterns透明锁存器结构下的时序测试1.1 Basic Scan PatternsBasic Scan Pattern 是最基本、最常用的测试 Pattern 类型主要包含三类动作事件将测试激励值Test Value压入 Scan Chain 和 Primary Inputforce_pi通过 Scan Chain 或 Primary Output 观察电路响应measure_po产生 Capture 时钟脉冲完整的执行步骤如下将激励值 load 到 Scan Chain 中Shift 操作对非时钟 Primary Input 端口 force 值Measure 非 Scan Clock 连接的 Primary Output 端口产生 Capture 时钟脉冲将 Capture 到的响应值通过 Scan Chain unload 出来Shift 操作Shift加载过程详解Force SEScan Enable拉高为 1Force SIScan Chain 输入端口数据产生 Shift 时钟脉冲重复步骤 2 和 3直到所有 Scan Cell 都加载了目标值1.2 Clock PO Patterns在某些电路中时钟信号可能穿过组合逻辑直接到达 Primary Output。针对这种情况需要使用 Clock PO Pattern将 value 值 load 到 Scan Chain 中将所有 Primary Input force 值包括 Clock PortMeasure 所有与 Scan Clock 相连的 Primary Output Clock PO Patterns 默认是关断的需要通过以下命令手动开启SETUP set_pattern_type -clock_po on1.3 Clock Sequential PatternsClock Sequential Pattern 用于处理时序电路带来的约束限制。其核心是在 Capture 前插入额外的时钟序列周期使电路达到特定的内部状态。执行步骤将 value 值 load 到 Scan Chain 中Apply Clock Sequential Cycle重复 N 次即 Sequential DepthForce 所有 Primary InputClock 除外产生 Capture Clock 脉冲Apply Capture CycleForce PIMeasure PO产生 Capture Clock 脉冲Unload Scan Chain 上的 value 值二、Test Procedure 文件概述2.1 什么是 Test Procedure 文件Test Procedure 文件指定了 Scan 电路的执行动作和运行状态。它是 ATPG 工具生成 Pattern 时必须遵循的操作手册定义了测试过程中的每一个时钟周期应该做什么。Test Procedure 文件通常通过 Do File 的方式来加载和执行Do File 中可以包含多种 Procedure 定义和配置命令。2.2 Test Procedure 的主要组成部分一个完整的 Test Procedure 文件通常包含以下核心 ProcedureProcedure功能Dofile定义全局信号约束、IO 状态、初始化设置Load_unload定义 Scan Chain 的 Shift 加载和卸载过程Capture定义 Capture 阶段的事件序列NCPName Capture Procedure带名字的捕获过程CCDClock Control Definition时钟控制定义三、核心 Test Procedures 详解3.1 DofileDofile 是 Test Procedure 文件的入口和全局配置部分。它负责以下关键任务全局信号约束对特定 IO 端口设置固定的逻辑值IO 状态定义指定 Input/Output/Bidirectional 端口在测试过程中的行为初始化设置将芯片置于已知的初始状态在 Dofile 中通常需要将 Reset 信号、RAM Write 控制信号以及其他控制信号置于 OFF 状态。⚠️ 如果 Reset 信号定义为 Clock需要在 Dofile 中通过 Pin Constraint 方式关断同时在 Load_unload 和 Name Capture Procedure 中再次将其 Force 到关断状态。3.2 Load_unloadLoad_unload Procedure 定义了 Scan Chain 的 Shift扫描过程包括数据如何加载到 Scan Chain 以及如何从 Scan Chain 卸出。关键要素Shift 操作的时序定义周期数、时钟频率Scan Enable 信号的控制Scan Input/Output 端口的驱动Load_unload 的执行由 Apply Cycle 决定何时结束。一个典型的流程是Shift Procedure 在指定时刻开始经过一定周期后完成然后转入下一步操作。3.3 CaptureDefault Capture 是一个可选的 Procedure不带名字它描述了一系列 Capture 事件的执行序列force_pi — Force Primary Input 值measure_po — Measure Primary Output 值pulse_capture_clock — 产生 Capture 时钟脉冲bidi_force / bidi_force_pi / bidi_force_off / bidi_measure_po — 双向端口控制⚠️ 注意事项1. 不要在 Default Capture Procedure 中描述复杂的 Clock 行为2. 不要在 Default Capture Procedure 中指定任意 Pin 或 ATPG Constraint3. 使用 pulse_capture_clock 语句标明哪个周期产生 Capture 时钟脉冲四、NCP 与 CCD4.1 Name Capture Procedure (NCP)NCP 是一种带名字的 Capture Procedure相比 Default Capture 更加灵活可以精确控制测试过程中的信号行为。NCP 支持的语句force_pi / measure_poobserve_method — 指定观测方法pulseNamed Clock— 命名时钟脉冲condition — 条件约束Internal 与 External ModeNCP 使用 mode 关键字定义两种工作模式Internal Mode描述芯片内部电路的行为External Mode描述芯片外部 IO 上的行为 Internal 与 External Mode 描述的事件是重复的区别仅在于芯片内部还是芯片外部。信号事件在两个 Mode 中发生在同一时刻Cycle 数必须一致。⚠️ NCP 使用限制1. 不要在 NCP 中使用 pulse_capture_clock 语句应使用 pulse2. 如果需要使用 condition 对内部 Scan Cell 指定特定值需在 cycle 语句开始之前定义3. 如果需要指定观测方法使用 observe_method 语句否则 ATPG 工具会自动选择 master/slave/shadow observation4.2 Clock Control Definition (CCD)CCD时钟控制定义用于指定 Capture 阶段芯片内部的 Clock 行为。它需要指定 Source Clock 以及 Scan Cell 的 ConditionATPG 工具根据指定的 Condition 自动选择产生 Capture Clock 的时机从而测到更多的 Fault。CCD 主要有两种控制方式Per-cycle Clock Control基于单个时钟周期定义 Internal Clock使用 Scan Cell 的值来决定每个周期的时钟行为。常采用 Pipeline 结构每个 Cycle 可以独立控制时钟的使能与关断Sequence Clock Control基于一个 Sequence 的 Capture Cycle 定义 Internal Clock使用 Scan Cell Value 来决定产生连续 Capture Clock 的脉冲数。常用于 Counter Clock 产生的电路通过 Load 到 OCCOn-Chip Clock ControllerScan Chain 的 Value 决定脉冲数使用 ATPG_SEQUENCE 语句描述本文要点回顾1. Pattern 类型Basic Scan 是默认类型Clock PO 处理时钟穿组合逻辑的情况Clock Sequential 处理时序逻辑约束2. Test Procedure 文件是 Scan 测试执行的操作手册定义每个周期的动作3. Dofile全局配置入口管理信号约束和 IO 状态4. Load_unload定义 Shift 操作的时序5. Capture定义捕获阶段的事件序列6. NCP更灵活的命名捕获过程区分 Internal/External Mode7. CCD精细控制 Capture 阶段内部时钟行为支持 Per-cycle 和 Sequence 两种方式Test Procedure 是 ATPG 流程中不可或缺的核心环节。只有深入理解各类 Pattern 的工作原理以及 Procedure 的编写规则才能在实际工程中高效完成测试 Pattern 的生成与调试确保芯片测试的质量和覆盖率。