|
(1) 穷举测试码 (Exhaustive Test Pattern)。根据电路的输入端个数,将所有可能的输入向量组合作为测试集。对组合电路来说,穷举测试码是完备的测试集。
对于规模不大的电路,穷举测试码可以根据真值表直接得到,再经过适当化简,可以形成相当不错的测试集。如果电路规模较大,测试码的数目随输入端增加而指数增加,往往是不可接受的。
伪穷举测试码( pseudo-exhaustive test pattern)是在穷举测试码的基础上发展起来的。它在不影响所检测故障数的原则下减少了测试码的数目。
(2) 伪随机数测试码(pseudo-random pattern)。 对于n输入端电路产生一些n位二进制数作为测试输入向量。这些二进制数近似于随机数,称为伪随机数测试码。
伪随机数测试码产生容易,测试向量数目也比较少。如果能达到一定的检测率,就不失为一个好的测试集。所产生的伪随机数是否是某个故障的测试码,通过故障模拟来确定。所能检测出的故障数与总的故障数之比即称为检测率。
(3) 测试码自动生成(Autometic Test Pattern Generation,简称ATPG)。根据逻辑电路本身的结构用算法自动生成测试码。迄今为止,出现了许多测试生成算法,而且目前仍然是人们研究的主要课题。
伪随机测试码是很有效的测试码,一般来说,用伪随机测试码的办法找到绝大多数故障的测试码,其余的故障的测试码用自动生成测试码(ATPG)的办法生成。EDA研究者的任务是为设计者提供高效率的ATPG软件工具。本课程介绍ATPG的基本算法,对EDA研究者是入门知识,是进一步学习和研究的基础;对设计者来说,也可以更深刻地理解测试生成的概念和方法,对他们选择合适的软件工具很有意义。
组合逻辑电路是数字系统的基础,其测试码生成算法相对比较简单,同时又是时序逻辑电路的基础。下面先讨论组合电路的测试生成算法。
用算法生成组合电路测试码的方法有两大类。一类是基于故障传播路径的方法如敏化路径法,一类是基于逻辑表达式的方法,如布尔差分法。本节通过单路径敏化法介绍敏化路径法的原理并重点介绍最常用的一种敏化路径法??D算法。布尔差分法在下一节介绍。
D算法是应用相当广泛的ATPG算法,也有另外一些算法是在D算法的基础上进一步改进的。单路径敏化法与D算法原理相似,但更容易理解,因而作为D算法的前导知识。布尔差分法是基于逻辑表达式的另一种类型的方法的代表。在布尔差分法的基础上也可以寻求计算机较容易实现的方法。
|