关于ATPG

ATPG

问题定义

  • 对电路进行测试,首先要解决的就是测试生成的问题。测试生成就是针对于特定电路的给定故障, 生成相应测试向量的过程,该测试向量使得故障电路和正确电路的输出不同,该过程解决两个主要问题:

(1)故障激活, 即在故障点处使得该故障出现。

(2)传播故障, 即使电路的输出能够体现出该错误。

  • 测试生成技术要求在电路的设计阶段就进行可性设计,并对电路可能的缺陷和故障进行建模,具有耗时少, 测试质量高的特点, 该方法用于找到一组输入,当该输入加载到待测电路时,通过能够将正确的电路行为和故障电路行为区分开。
  • 若一个测试将被测电路中的一个故障激活,同时将该故障产生的错误输出到电路的某一输出线路,则称该测试覆盖了此故障。测试向量(或测试集)的故障覆盖率是指该测试向量(或测试集)能够检测出的故障数与该电路中可能出现的所有该类型故障总数的比值,它是衡量一个测试向量(或测试集)的优劣的重要指标。
  • ATPG框架

为应对ATPG计算复杂性,已经开发了复杂的ATPG框架。ATPG框架为testable故障生成测试向量或证明故障untestable。

  • 这些框架的主要引擎是random pattern generation、fault simulation和deterministic pattern generation图1.1显示了一个简单的ATPG框架。随机模式生成后,再进行故障模拟,直到达到停止准则,即无法检测到其他故障。然后,确定性模式生成将剩余故障分类为testable或untestable。实用的ATPG框架具有更复杂的体系结构,例如插入扫描链或生成一小组测试向量。
  • 随机测试向量生成非常有效。这里,为电路生成随机输入激励。通常,对于任何实际电路,大部分故障都很容易检测到。故障模拟,通过一个测试向量确定故障的可测性。在正确电路和故障电路的模型上模拟输入赋值,只要仿真显示正确电路和故障电路之间存在差异,故障就能通过给定的输入赋值进行检测。
  • 这两个引擎有助于将大部分故障归类为可测试故障。但是,使用模拟引擎无法证明故障的untestability,此外,在只有少数测试向量可用的情况下,模拟故障几乎是不可能的。在这些情况下,需要一个确定性引擎。
  • 确定性向量生成算法不能在多项式时间内运行。已经提出了一系列非常有效的算法。通常,这些算法利用问题的结构。图1.2说明了它是一个搜索问题。确定性测试向量生成算法会遍历搜索空间,直到找到测试向量。如果找不到测试模式,则故障不可测。
  • 术语

  • 不可测故障(untestable fault)——An untestable fault is defined as a fault ,whose effect can not be seen at a primary output during gate level simulation. Untestable faults include all redundant faults and faults with an uninitializable state in the presence of unknowns. 不可测故障意味着,搜索完整个树都找不到测试向量,那么意味着,即使电路存在这种故障,也可能呈现正确的电路行为;
  • 故障锥——故障锥是指从故障点开始通过电路拓扑结构的正向回溯可以到达其信号的电路部分
  • 图7.12给出了一个电路例子,它包括一个故障(在B的下面扇出上)对应的故障锥、用
    五值代数标记的电路及D边界。
  • D边界——D边界是指输入为D或D非,而输出为X的所有门的集合。D边界将电路划分为两个部分:一部分有故障响应(D和D非),另一部分则没有。
  • 正向蕴含——正向蕴含是指有效标记一个逻辑门的输入使得它的输出可以唯一确定;

  • 反向蕴含——反向蕴含是指根据给定的输出和可能会有的一些输入对门的所有输入的唯一确定;
  • ATPG决定回溯

 

经典算法

路径敏化法

路径敏化法:在逻辑门级的路径敏化法是目前首选的 ATPG 方法。这个方法由以下 3个步骤组成:

故障敏化,对于一个固定故障通过驱动将它的信号成为与故障相反的逻辑值来激活。这对于确保无故障电路和有故障电路之间的信号的不同是必不可少的一个步骤;故障敏化也称故障激活

故障传播,将故障响应通过一条或多条路径传播到电路PO端。对于某些故障,为了测试它必须同时在多条路径上传播故障效应。通常路径数可能随着电路中逻辑门数按指数增加。故障传播也称路径敏化

线确认,在这个步骤中,前面为敏化故障或传播其故障响应到输出点所作的内部线的赋值,通过设置电路的原始输入(PI)来得到确认;

在第 2 和第 3 步,可能会发生冲突,这时 ATPG 算法需要进行回溯操作即放弃选择路径,转而选择其他路径或放弃原来的输入赋值选择其他的输入赋值;

案例演示:

注意:D=(1/0)表示 ;正确信号值为1,故障信号值为0;只有经过线确认后,PO端出现D或D非值,才说明故障传播success,从而得到一组测试向量;

冗余识别

  • 组合ATPG算法另一大优点是,它可以确定电路中不必要的或冗余的硬件。在测试中,可以删除冗余电路,电路仍然会按与原来一样的方式工作;

D算法

1966 年,Roth 提出的 D 算法是第一个完全算法。D 算法对于可测故障,总能在有限时间内找到相应的测试向量;而对于不可测故障,总能在有限时间内,通过对所有选择搜索后,最终会判定其为不可测。

D 算法考虑了故障信号向初级输出端传输的所有可能敏化路径,己完全解决了组合电路单固定故障的检测问题。在给出原始立方,故障原始 D 立方和传播 D 立方之后,D算法可以概括成以下三个主要步骤: 

  1. 故障激活,即使故障的影响能反映出来。激活s-a-0故障必须使该线输入值设为1;激活s-a-1故障必须使使该线输入值设为0。
  2. 正向驱赶,也称D驱赶,即将当前测试D立方与有逻辑门的传播D立方进行D交,目标是使D或\bar{D}信号向电路输出端推进。D交的结果为新的测试D立方。D驱赶要进行到输出端出现D或\bar{D}为止。

        D驱赴的蕴含,即当某些门上的输入或输出值确定时,寻找可被唯一决定的与之相关的电路其它线节点并确定值。蕴涵就是通过电路的向前和向后跟踪来确定节点值,有正向蕴涵(forward implication)和反向蕴涵(backward implication)两种,分别表示由输入到输出的蕴涵和由输出到输入的蕴涵。当节点上蕴涵值0或1与该节点以前已赋的值发生不一致时,需后退到上一个选择节点,恢复原来相关值且重新开始进行下一次选择。重复2)的操作直到故障传播到输出端为止。

        3.线值确认(line justification),也称一致性检查。即将当前的测试D立方与有关逻辑门的奇异立方进行D交,目标是求得电路中尚未确定的信号值。一致性检查要进行到求得电路原始输入端的一组无矛盾的值为止,这组输入值就是所求的一个测试向量。当选择的值0或1与该节点以前已赋的值发生不一致时,一致性检查的处理过程同样需要回退,撤消所作的蕴涵操作。

基于SAT的ATPG

关联&逻辑

  • 集成电路的测试离不开测试向量,自动生成测试向量的算法又是在针对电路故障而建立的故障模型上产生的,下面分别介绍电路的故障和故障模型。

故障

  • 故障:故障是电路或者系统中的物理缺陷,主要是由制造工艺缺陷或者制造错误引入的。
  • 根据故障对电路的影响,可以将故障分为如下三类

1)逻辑故障:对电路的逻辑功能产生了影响,导致逻辑功能发生了改变的故障。

2)参数故障:对电路参数的大小产生了影响,导致电路的电容,电阻,电流或者电压发生了改变的故障。

3)延时故障:对电路的延时产生了影响,导致电路的延时发生改变,该故障可能导致电路产生临界竞争或者电路的性能下降。

故障模型

  • 定义:由于集成电路故障的多样性,因而在测试的过程中很难对真实的故障产生测试,所以需要对故障进行建模。故障模型是一种抽象模型,用逻辑故障来表示物理故障对模型造成的影响,这样就可以将原本是物理问题的故障分析变成了逻辑问题,并且由于很多物理故障都可以用同样的逻辑故障进行建模,可以极大地降低研究问题的复杂性。从故障模型中,电路的设计者或使用者可以预先计算出特定模型的输出结果,这对产生测试向量,研究故障对电路的影响,诊断故障的位置等有重要的意义。
  • 故障模型分类:优秀的故障模型需要满足以下两条标准:1)故障模型可以准确地反映物理缺陷;2)故障模型应尽可能简单,从而降低在故障模拟和测试生成过程中的计算复杂性。
  • 常见的故障模型有如下几种
  1. 固定型故障模型(stuck-at Fault Model):指的是一个信号或者门的输出,粘滞在某个固定值上(0或者1),与电路的输入和结构无关,是集成电路测试中使用最早和最广泛的模型,根据故障的数目,又可以分为单固定型故障模型(Single stuck-at Fault ,SSF)和多固定型故障模型(Multiple stuck-at Fault, MSF)
  2. 桥接型故障模型(Bridging Fault Model):指的是本来不该相连的两个信号线相连导致短路,根据该处的电路逻辑可能导致引入新的逻辑功能函数。
  3. 断开型故障模型(open Fault Model):指的是信号线断开,致使原本存在于输入和输出之间的驱动关系解除。
  4. 延时型故障模型(Dealy Fault Model):指的是假定信号最终会变成正确的值,但是会比正常要快或者慢,即时间上不正确。该模型一般用于时序电路的故障分析。
  • 不同故障模型的应用场景
  1. 故障模型应用于电路门级描述。不同的故障模型可用于模拟不同类型的物理故障。通常Stuck-At Fault Model (SAFM)。它模拟静态功能故障,例如电线对电源或接地短路。除了静态故障外,还考虑了动态故障,这些故障不会改变电路的组合功能,但会改变时序行为。延迟故障delay faults模拟了过渡的延迟到达,即信号变化的到达时间晚于电路规定的时钟频率。
  2. 在延迟测试生成delay test generation领域,Path Delay Fault Model路径延迟故障模型(PDFM)和Transition Delay Fault Model过渡延迟故障模型(TDFM)的应用非常广泛。PDFM可以捕获大延迟和小延迟缺陷,但每个电路必须考虑的故障数量通常非常大。相比之下,根据TDFM的故障数量与电路中的元件数量成正比。然而,如果仅应用TDFM,某些动态故障可能仍无法被检测到。在实践中,将所有这些故障模型结合起来,以实现物理缺陷的高覆盖率。
  3. 在实践中,考虑时序电路会使得问题更加困难,因此处理时,ATPG被简化为一个组合问题。“扫描链”是通过连接大型移位寄存器中的所有状态元素创建的。在测试模式下,可以将值转移到这些寄存器中。

stuck-at Fault

  • Stuck-at 故障是数年来最常见的一种逻辑故障, Stuck-at 故障将故障信号的逻辑值转化为恒定值,SA1 表示电路中某一信号线值恒为逻辑1,SA0 表示电路中某一信号线值恒为逻辑0,图 2.10 中有 9 条信号线,由于有 SA0,SA1 两种故障,所以总共可能有18 个Stuck-at故障。

  • 表 2.1 表示分别对 A、B、C 输入不同测试向量(共8组测试向量)以检测相关故障,当输出响应与无故障输出响应不同时用灰色表示,表明对应测试向量有效。由表可以看出信号 d 的 SA1信号 e 的 SA0 和信号 f 的 SA1 只能由一个特定向量进行检测。所以测试向量必须包括{0 1 1}和{1 0 0},仅用这两组测试向量便可以检测出 10个故障,其余故障可由{0 0 1}和{1 1 0}进行检测,因此仅需 4 组测试向量便可以检测出示例电路的所有 Stuck-at 故障。由表 2.1 还可以知道“与”门输入的 SA0 等效于输出的 SA0,“或”门输入的 SA1 等效于输出的 SA1,对于反相器来说,输入的 SA0(SA1)等效于输出的 SA1(SA0),这种等效称为 Fault Collapsing故障压缩(精简)。

ATPG工具使用步骤

日前,市场上的ATPG工具已经可以支持千万门级组合逻辑和全扫描电路的测试矢量生
成。最有名的就是Synopsys的TetraMAX和Mentor的Fastscan。
就拿Synopsys的TetraMAX来说,它支持全扫描设计和局部扫描设计,支持多种扫描
风格,支持IEEE1149.1标准。设计步骤如下:
(1)输入含扫描结构的门级网表到ATPG工具。
(2)输入库文件。必须与门级网表相对应并且能被ATPG工具识别
(3)建立ATPG模型。输入库文件后,ATPG工具将根据库文件和网表文件建立模型
(4)根据STIL文件做DRC检测。STIL文件是标准测试接口文件,包含扫描结构的一系列信息和信号的约束。

(5)生成向量。这里需要选择建立哪种故障模型。
(6)压缩向量。这一步骤可以节约将来芯片测试时候的工作站资源和测试时间
(7)转换ATPG模式的向量为ATE所需要格式的测试向量
(8)输出测试向量和故障列表
其中故障列表为将来测试诊断用,可以发现芯片的制造缺陷,生成向量以后需要进行实
际的电路仿真,确定故障覆盖率满足要求。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值