背景
随着集成电路复杂程度的提高和特征尺寸日益缩小,测试已成为需要迫切解决的问题,特别是进入深亚微米以及超高集成度的发展阶段以来,VLSI的测试费用和难度大幅度提高。据报道,随着VLSI集成度的提高,测试费用可达到制造成本的50%以上,Prime研究集团报告称,2000年半导体行业在数字集成电路与系统级芯片测试仪器上的花费是49亿美元,测试费用则更高。按照ITRS(International Technology Roadmap for Semiconductors)的研究,到2014年晶体管的测试成本要大于其制造成本。
随着技术的快速发展和市场竞争的加剧,产品市场寿命相对于开发周期变得越来越短,测试对产品的上市时间和开发周期将会有越来越大的影响。
测试已成为制约VLSI特别是SOC设计和应用的一个关键因素,随着VLSI电路规模的增大、复杂程度的提高,芯片的引脚相对门数减少,使得电路的可控性和可观测性系数降低,电路测试变得十分复杂和困难,测试生成的费用也呈指数增长,传统的测试方法已难以全面而有效地验证复杂集成电路设计与制造的正确性,从而导致了可测试性设计的方法的出现。
可测试性设计方法的核心思想是在设计一开始就要考虑测试问题,通过适当增加一些专门用于测试的电路,提高电路的可控制性和可观察性,从而降低电路的测试难度和复杂性,提高电路的测试效率,降低测试成本。2
原理可测性设计的基本原理是:转变测试思想,将输入信号的枚举与排列的测试方法(即完全测试),转变为对电路内各个节点的测试,即直接对电路硬件组成单元进行测试,降低测试的复杂性。具体实现方法包括将复杂的逻辑电路分块;采用附加逻辑和电路使测试生成容易,并能覆盖全部的硬件节点;添加自检测模块,使测试具有智能化和自动化。当前可测试性设计已经成为一个现代数字系统设计中必不可少的成分,然而,由于它对设计本身增加了硬件开销,也会在不同程度上影响系统的性能,因此必须慎重考虑。另外,可测性设计的测试生成通常是针对门级器件的外节点,而不是直接针对晶体管级。虽然直接针对晶体管级生成测试具有更高的定位精度,但测试的难度与工作量也大大增加。3
目的为了解决测试的问题,人们设计了多种测试方案和测试结构,提出了可测性设计(DFT)。可测性设计需要在电路设计之初就考虑测试的问题,将可测试设计作为逻辑设计的一部分加以设计和优化。3
可测性设计的目的是要实现电路的可测量性、可控制性和可观察性。良好的可观察性和可控制性能提高测试效率,在相对较少的测试向量下能够得到高的故障覆盖率。2
方法常用的可测性设计方法包括基于扫描链(scan chain)的测试方法和内建白测试电路(built-in self-test,BIST)。
基于扫描链的测试方法是通过建立专门扫描链电路为每个寄存器提供可观察性和可控制性,它通过对寄存器的控制将复杂的时序逻辑设计划分为完全隔离的组合逻辑块,从而简化了测试过程。基于扫描链的测试方法又分为两种:一种是芯片内部寄存器的扫描链,用于测试芯片内部制造缺陷,另一种是芯片I/O端口的扫描链,又称为边界扫描设计(boundary scandesign),用于测试系统电路板级的制造缺陷。
内建自测试电路方法是通过芯片内部专门设计的测试逻辑电路(区别于扫描电路)的运行来检查设计功能正常的电路的制造缺陷,它相当于把一个小型专用的测试仪器集成到芯片内部。BIST方法常用于片内存储器的测试,如数据缓存、FIFO、Cache等。在实际应用中,BIST和BSD经常与JTAG结合起来使用。JTAG接口提供了一种简单通用的通过有限I/O访问芯片内部信号的方法。