滋的已篮旧景型士R州妇继空 第一章可测性设计的概念及发展状况 第一章可测性设计的概念及发展状况 1.1可测性设计的度量 总的来说,一个电路是可测的,则意味着在预定的经费开支和一定的时间内 可以产生一个测试矢量集,且可以时间予以评估和计算己经实际施加这些测试矢 量,以便完成预定故障的检测和定位。 由此可见,一个电路的可测性问题应该包括两个方面: ·要容易由外部输入信号来控制电路中的各个节点的电平值,以便能够敏化故 障和控制敏化通路上的各控制信号。这种特性反应用测试矢量来改变一个节 点逻辑的难易程度,称为节点的可控性(CONTROLLABILITY): ·要容易建立故障的敏化通路,使内部故障能传播到外部输出端,以便能够从 外部输出端口观察内部故障是否存在。这种特性反映从外部输出端观察内部 故障的难易程度,称为可观性(OBSERVABILITY)。 一个电路中各个节点的可控性和可观性是不同的,为了科学的评估他们,必 须对他们进行数量化,这就是所谓可控性和可观性的量度。目前出现的分析可控 性和可观性的量度基准和方法各不相同。 电路节点的可测性应该同这个节点的可控性和可观性均有关系,即它应是可 控性和可观性的函数。在各个不同的可测性量度方法中,这个函数关系也是不同 的。常用的可测性量度有史蒂文森可测性分析、高尔德斯泰可测性分析以及基于 电路结构的可测性分析(SCOAP)等I。 1.2可测性设计的分类 可测性设计的方法主要可以分成两大类:一类是专项设计(Ad Hoc Design), 即按功能基本要求设计电路,采取一些比较简单易行的措施,使他们的可测性得 到提高;另一类是结构设计(Structured Design),它是根据可测性设计的一般原则 和基本模式来进行电路的功能设计。显然,前者不能根本解决测试问题的,尤其 对于时序电路,本来测试就十分困难,稍做改进后仍会相当困难。所以时序电路 的设计中,一般都使用结构设计,扫描结构便是一种最常见的结构设计
数 字 电 路 可 测 性 设 计 方 法 的 探 讨 第一章 可测性设计的概念及发展状况 1 第一章 可测性设计的概念及发展状况 1.1 可测性设计的度量 总的来说,一个电路是可测的,则意味着在预定的经费开支和一定的时间内 可以产生一个测试矢量集,且可以时间予以评估和计算已经实际施加这些测试矢 量,以便完成预定故障的检测和定位。 由此可见,一个电路的可测性问题应该包括两个方面[8]: • 要容易由外部输入信号来控制电路中的各个节点的电平值,以便能够敏化故 障和控制敏化通路上的各控制信号。这种特性反应用测试矢量来改变一个节 点逻辑的难易程度,称为节点的可控性(CONTROLLABILITY)。 • 要容易建立故障的敏化通路,使内部故障能传播到外部输出端,以便能够从 外部输出端口观察内部故障是否存在。这种特性反映从外部输出端观察内部 故障的难易程度,称为可观性(OBSERVABILITY)。 一个电路中各个节点的可控性和可观性是不同的,为了科学的评估他们,必 须对他们进行数量化,这就是所谓可控性和可观性的量度。目前出现的分析可控 性和可观性的量度基准和方法各不相同。 电路节点的可测性应该同这个节点的可控性和可观性均有关系,即它应是可 控性和可观性的函数。在各个不同的可测性量度方法中,这个函数关系也是不同 的。常用的可测性量度有史蒂文森可测性分析、高尔德斯泰可测性分析以及基于 电路结构的可测性分析(SCOAP)等[1]。 1.2 可测性设计的分类 可测性设计的方法主要可以分成两大类:一类是专项设计(Ad Hoc Design), 即按功能基本要求设计电路,采取一些比较简单易行的措施,使他们的可测性得 到提高;另一类是结构设计(Structured Design),它是根据可测性设计的一般原则 和基本模式来进行电路的功能设计。显然,前者不能根本解决测试问题的,尤其 对于时序电路,本来测试就十分困难,稍做改进后仍会相当困难。所以时序电路 的设计中,一般都使用结构设计,扫描结构便是一种最常见的结构设计
滋的已篮日景型士R州妇继名 第一章可测性设计的概念及发展状况 无论是专项设计还是结构设计,他们的基本设计思想是一致的。首先,把电 路分块,因为据统计,电路的测试矢量数与电路的输入端数的三次方成正比8。 另一个设计思想是要提高电路的可观性和可控性,因为他们和电路的可测性是直 接相关的。 1.3测试矢量与测试码自动生成(ATPG) 在对一个电路产品进行测试时,要用特定的一系列输入信号以一定的顺序加 在被测电路的输入端,观察其输出端的输出结果。如果输出结果和正常电路的输 出结果相同,认为被测电路是合格的:反之,则不合格。 测试码生成的方法有许多种,如穷举测试码(EXHAUSTIVE TEST PATTERN)、伪随机数测试码(PSEUDO-RANDOM PATTERN)、测试生成算法 (TEST GENRATION ALGORITHM)和故障模拟(FAULT SIMULATION)等I。其 中,根据逻辑电本身的结构用算法自动生成测试码,称为测试码自动生成 (AUTOMATIC TEST GENRATION ALGORITHM,简称ATPG).在SYNOPSYS 软件中,有专门的测试编译器(TEST COMPILER),可以针对电路的扫描结构 (SCAN),自动产生测试矢量,并且对测试矢量集进行、压缩及优化。 1.4故障覆盖率 所谓故障覆盖率是指一个测试集已测故障数占所有可测故障数的百分比。 己测故障数 故障覆盖率= ×100% 故障总数一不可测故障数 对于一个复杂电路,要找到其完备的测试集是很不容易的。一般说来,要确 定一个故障覆盖率指标,比如95%,达到这个指标就认为是完成了测试码的生 成。随着数字系统规模的迅速扩大,测试生成变的越来越困难。因此人们逐渐把 注意力转向电路设计方面。在设计过程中充分考虑可测性,使得电路的测试码容 易形成,或者在电路内部增加测试功能
数 字 电 路 可 测 性 设 计 方 法 的 探 讨 第一章 可测性设计的概念及发展状况 2 无论是专项设计还是结构设计,他们的基本设计思想是一致的。首先,把电 路分块,因为据统计,电路的测试矢量数与电路的输入端数的三次方成正比[8]。 另一个设计思想是要提高电路的可观性和可控性,因为他们和电路的可测性是直 接相关的。 1.3 测试矢量与测试码自动生成(ATPG) 在对一个电路产品进行测试时,要用特定的一系列输入信号以一定的顺序加 在被测电路的输入端,观察其输出端的输出结果。如果输出结果和正常电路的输 出结果相同,认为被测电路是合格的;反之,则不合格。 测试码生成的方 法有许多种,如穷举测试码 (EXHAUSTIVE TEST PATTERN)、伪随机数测试码(PSEUDO-RANDOM PATTERN)、测试生成算法 (TEST GENRATION ALGORITHM)和故障模拟(FAULT SIMULATION)等[1]。其 中,根据逻辑电本身的结构用算法自动生成测试码,称为测试码自动生成 (AUTOMATIC TEST GENRATION ALGORITHM,简称 ATPG)。在 SYNOPSYS 软件中,有专门的测试编译器(TEST COMPILER),可以针对电路的扫描结构 (SCAN),自动产生测试矢量,并且对测试矢量集进行、压缩及优化。 1.4 故障覆盖率 所谓故障覆盖率是指一个测试集已测故障数占所有可测故障数的百分比。 故障覆盖率 = × 100% 对于一个复杂电路,要找到其完备的测试集是很不容易的。一般说来,要确 定一个故障覆盖率指标,比如 95%,达到这个指标就认为是完成了测试码的生 成。随着数字系统规模的迅速扩大,测试生成变的越来越困难。因此人们逐渐把 注意力转向电路设计方面。在设计过程中充分考虑可测性,使得电路的测试码容 易形成,或者在电路内部增加测试功能。 已测故障数 故障总数 – 不可测故障数
滋的甲篮▣景型士收兴名举方 第二章D算法的原理及实现方法 第二章D算法的原理及实现方法 2.1故障模型 在讨论具体的算法之前,我们先来定义一下故障的类型。一个电路的物理故 障是各式各样的,为了便于研究,按照其特点和影响将其分类,称为故障模型 (FAULT MODEL). 电路故障分为参数故障和逻辑故障。参数故障指电路参数变化引起的故障, 不属于本篇的讨论范围。逻辑故障又可分为“永久故障”、“间歇故障”和“瞬态故 障”。我们讨论的是永久性故障中的固定型故障(STUCK FAULT。所谓固定型 故障,是指某个信号线的值固定为某一电平值(0或1)。值为1的故障称为“固定 型1故障(STUCK AT1 FAULT):值为0的故障称为“固定型0故障”(STUCK AT 0 FAULT)。图2.1是一个输出端有固定型0故障(STUCK AT0 FAULT)的与门 模型。 固定型0故障 实际输出 1/01 期望输出 图2.1输出端有固定型0故障 固定型故障模型在实际应用中用的最普遍,因为电路中的元件损坏、连线的 开路和相当一部分的短路故障都可以用固定型故障模型比较准确的描述出来。而 且它的描述比较简单,因此处理故障也比较方便。如果一个电路中只存在一个固 定型故障,称之为单固定型故障;如果有两个或两个以上,则称为多固定型故障。 一般,只要不是毁灭性的事故所导致的故障,都认为是单固定型故障。 2.2敏化路径法 对指定故障点的测试码的生成算法的基本思想是通过输入端测试矢量把故障 传播到输出端,使得正常电路的输出与故障输出结果不同。这种基于故障传播路 径生成测试码的方法,称为敏化路径法
数 字 电 路 可 测 性 设 计 方 法 的 探 讨 第二章 D算法的原理及实现方法 3 第二章 D 算法的原理及实现方法 2.1 故障模型 在讨论具体的算法之前,我们先来定义一下故障的类型。一个电路的物理故 障是各式各样的,为了便于研究,按照其特点和影响将其分类,称为故障模型 (FAULT MODEL)。 电路故障分为参数故障和逻辑故障。参数故障指电路参数变化引起的故障, 不属于本篇的讨论范围。逻辑故障又可分为“永久故障”、“间歇故障”和“瞬态故 障”。我们讨论的是永久性故障中的“固定型故障”(STUCK FAULT)。所谓固定型 故障,是指某个信号线的值固定为某一电平值(0 或 1)。值为 1 的故障称为“固定 型1故障”(STUCK AT 1 FAULT);值为0的故障称为“固定型0故障”(STUCK AT 0 FAULT)。图 2.1 是一个输出端有固定型 0 故障(STUCK AT 0 FAULT)的与门 模型。 固定型故障模型在实际应用中用的最普遍,因为电路中的元件损坏、连线的 开路和相当一部分的短路故障都可以用固定型故障模型比较准确的描述出来。而 且它的描述比较简单,因此处理故障也比较方便。如果一个电路中只存在一个固 定型故障,称之为单固定型故障;如果有两个或两个以上,则称为多固定型故障。 一般,只要不是毁灭性的事故所导致的故障,都认为是单固定型故障。 2.2 敏化路径法 对指定故障点的测试码的生成算法的基本思想是通过输入端测试矢量把故障 传播到输出端,使得正常电路的输出与故障输出结果不同。这种基于故障传播路 径生成测试码的方法,称为敏化路径法。 1/0 1 1 固定型 0 故障 期望输出 实际输出 图 2.1 输出端有固定型 0 故障
滋的已篮日景型士R州名继名 第二章D算法的原理及实现方法 为了把故障传播到外部输出,要有两个条件: ·输入测试矢量能够使得故障点在正常情况下与故障情况下的状态值不同: 有至少一个外部输出端的正常值与有故障是的值不同。为了能做到这一点, 要求从故障点出发能找到一条或几条路径到达输出端,使得该路径上每个节 点的正常值与有故障时的值不同,这条路径称为敏化路径。 下面通过一个例子,说明如何通过敏化路径法求得测试矢量。 固定型0故障 D 输 1 0/1 G3 入 激 1/0 0 G2>0 励 B 0 图2.2G2输出端有固定型0故障 图21中,非门G2的输出端有固定0故障。为了检测出这处故障,必须控 制激励信号使得G2的输出为1(与故障值相反)。所以,需在C端输入0。 为了保证故障的影响能传播到输出端Z口,必须控制电路其它输入的值,使 得最后的输出Z只决定于G2的输出值。分两步做: ·使得输入端D为1,则G3的输出之决定于G2的输出: 使得输入端A和B为0,则G4的输出也只决定于G2的输出。 于是,得到了针对G2输出端固定型0故障的测试矢量T={(0,0,0,1):(1)}, 其故障输出为0。 2.3D算法简介 单路敏化法方法简单,缺点是不能保证对任一非冗余故障都能找到测试矢量。 典型的情况是故障处于再会聚路径(RECONVERGENT PATH)。而D算法则可 以做到。 D算法是一种多路径敏化法,是在立方体理论的基础上实现路径敏化的。它
数 字 电 路 可 测 性 设 计 方 法 的 探 讨 第二章 D算法的原理及实现方法 4 为了把故障传播到外部输出,要有两个条件: • 输入测试矢量能够使得故障点在正常情况下与故障情况下的状态值不同; • 有至少一个外部输出端的正常值与有故障是的值不同。为了能做到这一点, 要求从故障点出发能找到一条或几条路径到达输出端,使得该路径上每个节 点的正常值与有故障时的值不同,这条路径称为敏化路径。 下面通过一个例子,说明如何通过敏化路径法求得测试矢量。 D Z A B C G2 G3 G1 G4 0/1 1/0 1/0 1 0 0 0 图 2.2 G2 输出端有固定型 0 故障 图 2.1 中,非门 G2 的输出端有固定 0 故障。为了检测出这处故障,必须控 制激励信号使得 G2 的输出为 1(与故障值相反)。所以,需在 C 端输入 0。 为了保证故障的影响能传播到输出端 Z 口,必须控制电路其它输入的值,使 得最后的输出 Z 只决定于 G2 的输出值。分两步做: • 使得输入端 D 为 1,则 G3 的输出之决定于 G2 的输出; • 使得输入端 A 和 B 为 0,则 G4 的输出也只决定于 G2 的输出。 于是,得到了针对 G2 输出端固定型 0 故障的测试矢量 T={(0,0,0,1);(1)}, 其故障输出为 0。 2.3 D 算法简介 单路敏化法方法简单,缺点是不能保证对任一非冗余故障都能找到测试矢量。 典型的情况是故障处于再会聚路径(RECONVERGENT PATH)。而 D 算法则可 以做到。 D 算法是一种多路径敏化法,是在立方体理论的基础上实现路径敏化的。它 固定型 0 故障 输 入 激 励
滋的巴篮日景型士兴经继空 第二章D算法的原理及实现方法 的基本思路与单路径敏化法相同。也是把故障传播到输出端去,同时确定输入矢 量和其它信号值,以确保个信号的一致性。其区别在于D算法采用立方体运算, 并考虑到多路径的情况。D算法的具体介绍,可参照附录的书目。 D算法规律性很强,而且对固定性错误的检测十分有效,所以它在计算机可 操作性和解决问题的通用性上都得到了广泛的应用。但是在具体应用中,由于其 进行敏化通路的选择时随意性太大,需要作大量的返回操作,导致计算工作量太 大,尤其是对大型的组合电路计算时间很长,以至于很难付诸实际应用。 D算法是针对组合电路而言的,对于时序电路,可以用类似于D算法的方法 实现。应用这种类似D算法来检测时序电路中的故障,通常需要以下两个步骤: ●一个或一个以上周期来激励这个故障: ●一个或一个以上周期来传播这个故障,直到能从外部探测到。 也就是说,为了探测一个固定性故障,我们需要一个序列的测试矢量和一个 以上的时钟周期才能做到。显然,这对大型复杂的时序电路来说,无论在测试矢 量集的大小和测试时间上都是难以忍受的。 注意: 在SYNOPSYS中,采用扫描结构(SCAN DESIGN),等于把大型的时 序电路分割为小型的组合电路来测试,避免了时序电路测试的测试序列 问题,也不需要返回操作。从而使测试码自动生成(ATPG)限制在一个 可以接受的计算量和时间之内。这也是扫描结构可以大大缩短测试时间 的一个重要原因
数 字 电 路 可 测 性 设 计 方 法 的 探 讨 第二章 D算法的原理及实现方法 5 的基本思路与单路径敏化法相同。也是把故障传播到输出端去,同时确定输入矢 量和其它信号值,以确保个信号的一致性。其区别在于 D 算法采用立方体运算, 并考虑到多路径的情况。D 算法的具体介绍,可参照附录的书目[5]。 D 算法规律性很强,而且对固定性错误的检测十分有效,所以它在计算机可 操作性和解决问题的通用性上都得到了广泛的应用。但是在具体应用中,由于其 进行敏化通路的选择时随意性太大,需要作大量的返回操作,导致计算工作量太 大,尤其是对大型的组合电路计算时间很长,以至于很难付诸实际应用。 D 算法是针对组合电路而言的,对于时序电路,可以用类似于 D 算法的方法 实现。应用这种类似 D 算法来检测时序电路中的故障,通常需要以下两个步骤: z 一个或一个以上周期来激励这个故障; z 一个或一个以上周期来传播这个故障,直到能从外部探测到。 也就是说,为了探测一个固定性故障,我们需要一个序列的测试矢量和一个 以上的时钟周期才能做到。显然,这对大型复杂的时序电路来说,无论在测试矢 量集的大小和测试时间上都是难以忍受的。 注意: 在 SYNOPSYS 中,采用扫描结构(SCAN DESIGN),等于把大型的时 序电路分割为小型的组合电路来测试,避免了时序电路测试的测试序列 问题,也不需要返回操作。从而使测试码自动生成(ATPG)限制在一个 可以接受的计算量和时间之内。这也是扫描结构可以大大缩短测试时间 的一个重要原因