寻找正确而充分的测试码,是计算机辅助设计的一个重要组成部分,通常称为测试码自动生成(automatical test pattern generation, ATPG)。在生成测试码之后,要用模拟的方法检验测试码的正确性,要分析故障覆盖率。用于检验故障测试码的逻辑模拟称为故障模拟(Fault simulation)。

图7.2 测试生成的一般步骤

  在寻找测试之前要分析等价故障,确定要寻找测试的各个故障。首先按伪随机测试向量确定初始测试码,用故障模拟验证测试码并找出未覆盖的故障,判断故障覆盖率。对未覆盖的故障用测试生成算法寻找测试,然后再判断故障覆盖率。重复这个过程,直到故障覆盖率满足要求。

  所谓故障覆盖率是指一个测试集已测故障数占所有可测故障数的百分比。

  故障覆盖率 =   

  
对于一个复杂的电路,要找到其完备的测试集是很不容易的。一般来说,要确定一个故障覆盖率指标,比如95%,达到这个指标就认为完成了测试码的生成。

  测试码生成是根据电路结构和功能实现的。随着集成电路的规模越来越大,测试码的生成变得越来越困难, 甚至不可能找到测试码。近年来人们逐渐把注意力集中到电路设计方面。使用某种电路结构可以使测试码容易得到,或者直接在电路内部增加测试机制,自动测试,自动判断是否有故障存在。这种在设计过程中考虑可测性的设计方法称为可测性设计(Design for Test)。

  
本章主要介绍故障诊断的概念和测试码生成方法,最后简要介绍可测性设计的一些常用技术。