Tessent ATPG实战:Sequential Pattern生成全流程解析与深度调试指南
对于从事复杂芯片设计的DFT工程师而言,如何有效捕捉那些隐藏在时序逻辑深处的缺陷,一直是一项兼具挑战与艺术性的工作。当扫描链无法触及电路中的每一个角落时,Sequential Pattern便成为了我们手中不可或缺的“探照灯”。它不再局限于简单的组合逻辑测试,而是深入到时钟驱动的状态迁移中,去激活和观测那些非扫描单元(Non-Scan Cell)的故障。这篇文章将从一个实践者的视角,为你彻底拆解在Tessent工具中生成Sequential Pattern的完整流程,并分享一系列在真实项目中验证有效的调试技巧与深度原理分析。无论你是正在处理包含嵌入式存储器、复杂时钟域交互的SoC设计,还是希望提升对ATPG工具底层逻辑的理解,这里的内容都将为你提供清晰的操作路径和扎实的理论支撑。
1. Sequential Pattern核心概念与生成逻辑重塑
在深入命令行操作之前,我们必须重新建立对Sequential Pattern的认知框架。它与Basic Scan Pattern的本质区别,在于其测试过程模拟了电路在功能模式下的时序行为。Basic Pattern在一个单一的捕获周期(Capture Cycle)内完成激励加载、响应捕获和移出比较,其前提是所有观测点都位于扫描链或原始输出(PO)上。然而,当故障效应需要经过一个或多个非扫描单元(即无法直接通过扫描链加载或卸载的时序单元)传播时,Basic Pattern便无能为力了。
Sequential Pattern的核心使命,正是通过插入一个或多个时序周期(Sequential Cycle),在捕获周期之前,预先将非扫描单元驱动到一个确定的、非X(未知)的状态。你可以将其理解为一个“预热”或“状态准备”阶段。在这个阶段,工具会像功能仿真一样,在扫描链加载完成后,施加多个时钟脉冲(数量由时序深度决定),并允许Primary Inputs(PIs)的变化按功能逻辑传播,从而逐步消除非扫描单元中的X态,为后续捕获可观测的故障效应创造条件。
注意:这里提到的“时序深度”(Sequential Depth)是指从故障点到最近的可观测点(扫描单元或PO)之间需要穿越的非扫描单元的数量。工具会自动分析电路结构,识别这些深度单元。
为了更直观地理解其工作流程,我们将其与Basic Scan Pattern进行对比:
| 操作阶段 | Basic Scan Pattern | Sequential Pattern |
|---|---|---|
| 初始化 (Load) | 将激励值移入(Shift In)所有扫描链。 | 同左。 |
| 时序阶段 | 无。 | 循环执行 N 次 (N=时序深度-1): 1. 在PI上施加力值(Force PI)。 2. 施加一个时序时钟脉冲(Pulse Sequential Clock)。 |
| 捕获阶段 (Capture) | 1. 在PI上施加力值。 2. 测量PO值。 3. 施加捕获时钟脉冲,将逻辑值捕获到扫描链中。 |
1. 在PI上施加力值(此次值用于最终捕获)。 2. 测量PO值。 3. 施加捕获时钟脉冲。 |

2万+

被折叠的 条评论
为什么被折叠?



