Menu Close

可测试性设计的概念

可测试性设计的概念

可测试性设计(Design for testing或Design for Testability,DFT)是一种集成电路设计技术。 它是一种将特殊结构在设计阶段植入电路的方法,以便生产完成后进行测试,确保检测过后的电子器件没有功能或制造上的缺陷。

集成电路测试有时并不容易,电路的许多内部节点信号在外部难以控制和观测。通过在设计中添加可测试性结构,如扫描链等,并利用自动测试设备执行测试程序,可以在生产完成后立即进行质量检测。有些特定的装置会在其最终产品的组件上加上测试功能,在消费者的使用环境下执行时一并测试。测试程序除了会指出缺陷信息外,还会一并将测试的纪录档保留下来,可供设计人员找出缺陷的来源。

更简单的说,测试程序会对所有的被测装置输入测试讯号,并期待它们给出预期的正确回应。如果被测装置的回应与预期回应一致,则可得知电路正常,否则 即为测试缺陷。

为了方便使用测试程序检测缺陷,电路设计阶段不可忽视可测试性设计。在可测试性设计的规则确认完善下,可以利用自动测试模式产生器进行更复杂的测试。

随着集成电路复杂程度的提高和特征尺寸日益缩小,测试已成为需要迫切解决的问题,特别是进入深亚微米以及超高集成度的发展阶段以来,VLSI的测试费用和难度大幅度提高。据报道,随着VLSI集成度的提高,测试费用可达到制造成本的50%以上,Prime研究集团报告称,2000年半导体行业在数字集成电路与系统级芯片测试仪器上的花费是49亿美元,测试费用则更高。按照ITRS (International Technology Roadmap for Semiconductors) 的研究,到2014年晶体管的测试成本要大于其制造成本。

随着技术的快速发展和市场竞争的加剧,产品市场寿命相对于开发周期变得越来越短,测试对产品的上市时间和开发周期将会有越来越大的影响。

测试已成为制约VLSI特别是SOC设计和应用的一个关键因素,随着VLSI电路规模的增大、复杂程度的提高,芯片的引脚相对门数减少,使得电路的可控性和可观测性系数降低,电路测试变得十分复杂和困难,测试生成的费用也呈指数增长,传统的测试方法已难以全面而有效地验证复杂集成电路设计与制造的正确性,从而导致了可测试性设计的方法的出现。

可测试性设计方法的核心思想是在设计一开始就要考虑测试问题,通过适当增加一些专门用于测试的电路,提高电路的可控制性和可观察性,从而降低电路的测试难度和复杂性,提高电路的测试效率,降低测试成本。

原理

可测性设计的基本原理是:转变测试思想,将输入信号的枚举与排列的测试方法 (即完全测试),转变为对电路内各个节点的测试,即直接对电路硬件组成单元进行测试,降低测试的复杂性。具体实现方法包括将复杂的逻辑电路分块;采用附加逻辑和电路使测试生成容易,并能覆盖全部的硬件节点;添加自检测模块,使测试具有智能化和自动化。当前可测试性设计已经成为一个现代数字系统设计中必不可少的成分,然而,由于它对设计本身增加了硬件开销,也会在不同程度上影响系统的性能,因此必须慎重考虑。另外,可测性设计的测试生成通常是针对门级器件的外节点,而不是直接针对晶体管级。虽然直接针对晶体管级生成测试具有更高的定位精度,但测试的难度与工作量也大大增加。

目的

为了解决测试的问题,人们设计了多种测试方案和测试结构,提出了可测性设计 ( DFT )。可测性设计需要在电路设计之初就考虑测试的问题,将可测试设计作为逻辑设计的一部分加以设计和优化。

可测性设计的目的是要实现电路的可测量性、可控制性和可观察性。良好的可观察性和可控制性能提高测试效率,在相对较少的测试向量下能够得到高的故障覆盖率。

 

方法

常用的可测性设计方法包括基于扫描链(scan chain)的测试方法和内建自测试电路(built-in self-test,BIST)

基于扫描链的测试方法是通过建立专门扫描链电路为每个寄存器提供可观察性和可控制性,它通过对寄存器的控制将复杂的时序逻辑设计划分为完全隔离的组合逻辑块,从而简化了测试过程。基于扫描链的测试方法又分为两种:一种是芯片内部寄存器的扫描链,用于测试芯片内部制造缺陷,另一种是芯片I/O端口的扫描链,又称为边界扫描设计(boundary scan design),用于测试系统电路板级的制造缺陷。

内建自测试电路方法是通过芯片内部专门设计的测试逻辑电路 (区别于扫描电路) 的运行来检查设计功能正常的电路的制造缺陷,它相当于把一个小型专用的测试仪器集成到芯片内部。BIST方法常用于片内存储器的测试,如数据缓存、FIFO、Cache等。在实际应用中,BIST和BSD经常与JTAG结合起来使用。JTAG接口提供了一种简单通用的通过有限I/O访问芯片内部信号的方法。

可测性设计背景(为什么)

现代的设计流程中,测试与设计在芯片设计早期就已经结合在一起,对应衍生了一个可测性设计流程。其中, 可控制性和可观察性是可测性设计电路的重要指标。

test1

图 1    芯片中常见的制造缺陷

 

可测性设计概论(是什么)可测性设计即通过在芯片设计过程中引入测试逻辑,并利用这部分测试逻辑完成测试向量的自动生成,从而达到快速筛选量产芯片的目的。在设计中,通过在芯片初始输入端给定特定的值来测试芯片初始输出端的输出值是否与期望值相符来确定内部电路是否可以正常工作。
具体工作内容包括:
· 在芯片设计前期参与DFT架构规划
· 在RTL级别设计测试电路
· 在验证阶段验证测试电路
· 在综合阶段实现测试逻辑的插入
· 在测试阶段提供无时序问题的仿真测试向量
· 在ATE阶段协助ATE工程师调试测试向量,尽快帮助芯片Bring up,并帮助Slilcon learing及fauilure analysis。

可测试设计使用范围(工作对象)

DFT可用与针对芯片上所有逻辑的测试。主要包括:
1. 片上存储器
2. 模拟模块 (如锁相环,LDO, IDV等)
3. 系统控制模块
4. 时钟控制模块
5. 电源管理模块
6. 寄存器

DFT基本参与了所有芯片的功能,需要提供芯片初始化时FUSE的管理;需要设计协调时钟,复位,电源等控制逻辑确保测试功能的实现,同时不影响芯片正常的工作模式。 对于片上存储器,由于其分布的复杂性,需要统筹设计MBIST的分布,以最小的代价实现测试覆盖率。 除此之外,芯片中功能模块的每一个寄存器都是扫描链测试的工作对象。任何一个寄存器,或者寄存器之间的组合逻辑发生故障,都可被DFT检测方法侦测到。

可测性方法(怎么做)

Ad Hoc DFT:
该方法在不对设计风格做出主要改变的情况下,使用好的设计来改善一个设计的可测性,常见方法有:
· 最小化冗余逻辑
· 最小化异步逻辑
· 从逻辑电路中隔离时钟
· 增加内部的控制点和观察点
在整个设计过程中使用这些实践方法可以提高设计的整体可测性。但是,使用基于Mentor Graphics的结构化DFT技术工具可以对设计的可测性产生更大的改善。
Structured:
结构性测试提供了一种更加系统化和自动化的方法来改善设计的可测性,其目标在于增强电路的可控制性和可观测性。常用方法如下:
· 扫描设计技术

%title插图%num

图 2    扫描设计技术

 

扫描单元的替换和连接

通过用一个可扫描的等效物替换设计中所有的存储器元件,然后把这些扫描单元连接为扫描链,利用多个时钟脉冲将特定的输入值一拍一拍打入到扫描链上所有的时序触发器,同时在扫描输出端通过多个时钟脉冲得到这些触发器的测试响应。将得到测测试响应值与工具给定的期望响应值对比可以帮助快速找到发生缺陷的位置,实现对量产芯片的筛选。这一方法通过控制和观察设计中所有存储元件的值,从而使得时序电路的测试向量生成和仿真变得和组合逻辑一样简单。
· 内建自测试方法

bus_2

图 3    内建自测试方法

 

逻辑BIST原理图

近年来,芯片工作频率越来越高,ATE测试机台速度渐渐无法满足芯片测试的要求,高速测试变得越来越困难。BIST测试主要通过在电路内部插入逻辑电路,使电路自己生产测试向量来对电路进行测试,虽然会导致芯片面积增加,但相较于不增加测试电路带来的测试时间和成本还是具有很大的优势,因此成为一种备受关注的测试方式。
· 边界扫描技术

%title插图%num

图 4    边界扫描技术

 

边界扫描原理图

上图给出了多个器件相连接的JTAG测试:系统的测试总线TCK和TMS共享给电路中所有需要测试的器件,这些信号由TAP控制器统一控制,第一个器件的输入端作为整个测试的整体输入端,前级器件的输出作为后级器件的输入,最后一个器件的输出端作为整个测试的整体输出端,通过这种方式将所有待测器件的引脚连接起来,测试者可以通过给定输入端特定的输入值并为各输出端设定对应的期望值,通过比较输出端实际测到的值是否与期望值相符来确定电路是否存在缺陷,达到测试芯片的目的。

5. 可测性设计故障模型
为了检测到芯片电路中的故障,1959年Eldred提出了故障模型的概念,即一个试着捕获物理缺陷对电路行为的逻辑功能的影响的结构模型。从那之后,钳滞型故障模型被用来生成高效的测试向量集,常用的故障模型分为以下几类:
· 单钳滞型故障模型

%title插图%num

图 5    单钳滞型故障模型

 

单钳滞型(single stuck-at)故障模型原理图

功能性测试常常使用单钳滞型故障模型,由于其在定位很多常见缺陷类型中表现出的高效性,它也是故障仿真中最常见的故障模型。当电路中某个门或终端处于高(固定到1)或低(固定到0)电平时,该模型会为它进行建模。该故障模型的故障点包括初始例化单元的引脚。上图以二输入与门的A输入端口为例,当A端口短接到地时,其值为0,为了测试到A端口处的故障,我们需要给A端口设一个相反的值1,为了使A的输入传到Y端口,B端口的输入端值应设为1,那么如果A端口无故障,Y端口值应为1,如果A端口处有故障,Y端口处值应为0。因此当A=1,B=1,Y=0可以作为一组测试向量检测A处是否有固定到0的故障。这组向量也可以检测B处固定到0的故障。同理,我们可以推断出检测A处固定到1的故障的测试向量为:A=0, B=1.Y=1。为了降低测试的复杂性,实际测试中,最常使用的是单钳滞型故障模型,即假设一个电路同一时刻只有一处有故障。
· 传输故障模型

%title插图%num

图 6    传输故障模型

 

传输(transition delay)故障模型原理图

传输故障分为两种情况:缓慢上升节点(Slow-to-rise node)和缓慢下降节点(Slow-to-fall node)。缓慢上升是指信号从低电平变为高电平所需的时间超过了给定的时间造成了电路功能的实效。缓慢下降同理。转移故障模型通常应用于高速测试中,主要测试电路的总延时。它主要检测部分导通晶体管和互连线上的缺陷它的使用包括两个周期,发射周期和捕获周期。上图以一个简单的与门为例,描述了转移故障模型的原理,为了检测端口A是否存在转移故障模型,可先把端口B设为高电平,然后在两个周期交接处把端口A处电平由0变为1,随后在下一个周期处观测二输入与门输出端Y的电平值,如果此时Y=1.说明A处无缺陷,反之,如果此时Y=0,说明A处存在缺陷。该图以简单的例子说明了传输故障的作用原理。
· 路径延时故障模型

%title插图%num

图 7     路径延时故障模型

 

路径延时(path delay)故障模型原理

路径延时故障模型针对电路路径上的缺陷进行建模。不像其他的故障类型,路径延时缺陷没有本地化的故障点,相反,他们与测试通过特定路径(通常为关键路径)的所有门的组合延迟有关。路径拓扑和边缘类型可识别路径延迟故障,路径拓扑描述用户指定的路径从开始(发射点),通过组合路径到结束(捕获点),发射点要么是主输入,要么是状态元素。捕获点要么是主输出,要么是状态元素。用于发射或捕获点的状态元素要么是扫描元素,要么是符合时钟顺序处理条件的非扫描元素。路径定义文件定义要生成模式的路径。
该模型分为两类:缓慢上升路径和缓慢下降路径。以下图为例,首先定义一条路径,随后将某个输入端的数字由0变为1,其他输入为它让路,保证它的变化能够传到这条路径的输出端。输入端从0到1的变化称为launch,输出端由1到0的变化称为capture。
· IDDQ故障模型

%title插图%num

图 8    IDDQ故障模型原理

 

IDDQ测试用来测量通过电路器件的电流。IDDQ测试测量的是静态电源电流而不是引脚电压,通过功能性测试不容易检测到器件的缺陷如CMOS晶体管的固定开路缺陷或相邻桥接缺陷。IDDQ测试设备会施加一组测试向量到设计中,让电流稳定下来,然后测量过大的电流。产生过大电流的器件可能存在内部制造缺陷。IDDQ测试可以覆盖到很多桥接缺陷和开路缺陷,但电路测试置入速度较慢,电流阈值往往由经验所得。此外该故障模型还会在电路中引入模拟参数即通过/失败电流阈值,这一参数会使得区分好坏器件变得困难。静态电路故障模型测量电路稳定状态下,电源电流的值。这种故障模型比较花时间,但通常也可以达到80-90%的测试覆盖率。主要检测CMOS晶体管卡在一些固定开路情况下的缺陷,此外还有桥接缺陷和部分导通晶体管缺陷。

此外还有桥接(Bridge)故障模型,CMOS Stuck-open等多种故障模型。

6. 使用工具
针对可测性的需求,Synopsys公司和Mentor公司各自开发了对应的工具来完成相关的可测性工作,利用工具可使得可测性设计工作更加高效和自动化。
· Synopsys:
通过TetraMAX工具实现扫描链的插入,压缩以及各种对应的功能。
· Mentor:
开发了一整套Tessent工具用于实现扫描和ATPG(自动测试向量生成)。
其中各个需要实现的功能都称为是Tessent的一个feature。
包括测试向量的插入,扫描链压缩,测试向量生成,仿真都是基于Tessent工具实现。
仿真debug利用Verdi和Mentor公司的 VI工具进行debug。

Posted in IC

1 Comment

发表回复

相关链接