O 引 言
通常意义的的集成电路测试,只是施加测试以判断被测电路是否存在故障,并不对故障进行定位、确定故障类型、明确故障发生的根本原因。随着集成电路技术的飞速发展,对集成电路测试提出了更高的要求,必须进一步分析测试的结果,确定故障的性质,即所谓的故障诊断(Fault Diagnosis),以便对集成电路设计或工艺环节进行改进。
集成电路故障诊断分为故障检测(测试)和故障定位,目的是找出引起集成电路失效(Failure)或者性能问题的物理缺陷(Defect),从而为提高集成电路芯片的成品率或改善性能提供参考。既然诊断是一个对存在于给定电路的制造复制板中的故障进行定位的过程,可以在测试结果的基础上,分析故障产生的原因和位置,更加有利于提高测试的效率。
1 常见的故障诊断方法
目前的集成电路故障诊断技术都是基于电压的集成电路测试(故障检测)方法,即在电路的测试端输入测试向量,然后用电路的输出结果与设计的期望值做比较以判断电路是否有故障。例如,直接测量的方法,基于数学模型的方法,故障字典法,故障树分析法等。
直接测量的方法是人工或者工具直接观察测量被诊断对象有关的输出量,如果超出正常变化范围,则认为对象已经或将要发生故障。这种方法虽然简单,但容易出现故障的误判和漏判。
基于数学模型的方法是在故障模型的基础上,通过电路状态并参考适当模型进行诊断,或者根据过程参数的变化特性参考适当模型进行诊断。这种方法需要模型的支持,对缺乏诊断经验(规则)的故障能起到预见作用。该方法的缺点是模型的建立比较困难,如果模型精确复杂,则诊断系统计算量庞大。
故障字典法首先提取电路在各种故障状态下的电路特征,以构建一个字典。该字典中包含有故障状态和电路特征的一一对应关系。在诊断时,根据电路表现出的特征,就可查出此时对应的故障,如同查阅字典一样。由于故障字典的建立需要精确数据以及字典的容量有限,该方法有一定的局限性。
故障树分析法则像查找树一样,把许多电路的故障诊断归纳为几个大的顶级故障事件,然后针对每个顶级故障事件搜索故障位置。这种诊断方法类似于人类的思维方式,易于被接受和理解。
以上的基于电压的测试方法比较成熟,但是随着集成电路技术的发展,其不足之处也越来越明显。针对基于电压的故障诊断方法的不足,出现了基于电流的诊断方法。基于电流信息的集成电路诊断可分为静态电流(IDDQ)诊断和动态电流(IDDT)诊断。IDDQ诊断方法检测CMOS电路静态时的漏电流以进行诊断。ID—DQ诊断方法测试成本低,可以以较小的IDDQ测试集获得较大的故障覆盖率,能够检测逻辑冗余故障,简化桥接故障测试,不需要考虑逻辑扇出点。 IDDT诊断方法是通过检查电路在其内部状态发生翻转时的动态电流来发现其故障的方法。IDDT作为基于电压的诊断和基于电流的IDDQ诊断的补充,成为集成电路诊断的另一方法。IDDT测试的速度非常快,而且可以对电路中的开路故障、弱晶体管故障进行检测,而这正是IDDQ诊断方法的不足。
2 基于扫描的集成电路故障诊断方法
扫描测试或者称“扫描链插入”是集成电路最常见的可测试性设计技术,可使测试数据从系统一端经由移位寄存器等组成的数据通路(扫描链)串行移入或移出,并在数据输出端对数据进行分析,以此提高电路内部节点的可控性和可观察性,达到测试芯片内部的目的。
基于扫描的故障检测(测试)只需完成确定是否存在故障的任务,但基于扫描的故障诊断需要定位故障,因此存在一个问题:一旦确定一个扫描错误,那么一系列节点都要成为测试的对象,这样就要花大量的时间通过电路图和物理版图,比较一系列节点,以隔离那些有可能有故障和缺陷的位置。所以,这种分析方法必须能对可能出现的故障类型以及其物理缺陷做出有经验的判断和猜测。另外,扫描测试是基于stuck at类型故障的,所以很难确定故障是开路型还是桥接型故障。
3 一种改进的扫描诊断技术
针对传统的基于扫描的故障诊断存在的问题,Mentor开发出了YieldAssist诊断工具。该工具把故障嫌疑(suspect)分为stuck—at,open/dom桥,B一0R—A,B—AND—A,3一WAY桥,根据现有信息不能确定的,EQ#等类型。除了采用基于定位的方法去验证故障嫌疑,确定故障嫌疑的类型,该工具还通过计算仿真值和测试机上观察值的比分值,来表明故障嫌疑与在测试机上观察的结果的相似度(相似度的分值是在1~100分之间,分值越高二者越接近)。因为即使是在同一个逻辑位置,不同的故障模型也有不同的仿真值。
YieldAssist的故障诊断流程如下:
(1)仿真单个门有故障的管脚,看看故障向量是否把在测试机观测到的错误行为传播到所有观测点,如果YieldAssist找到了关联,故障向量就可以在这个点被解释;
(2)找到能包含所有错误向量的最小故障集;