VLSI测试与可测性设计的产生与发展
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VLSI测试与可测性设计的产生与发展有句古老的格言说:“是人就会犯错误。
”为了让不“完美”的人制造出相对“完美”的产品来,就有了“测试”的概念,它被广泛地应用于人类的生产活动中。
电子测试技术,就是应电子产品设计和制造的需求而产生和发展起来的、有着四十多年历史的一个应用科学领域。
电子产品从质量和经济两个方面受益于测试技术的发展和应用。
质量和经济实际上是一个产品不可分割的两个属性。
最优化(optimized)的质量,意味着以最小的成本满足了用户的需求。
一个好的测试过程能够在次品到达用户手中之前把它们淘汰出来。
生产这些次品的费用往往会被转嫁到好产品的出售价格中,如果次品太多,那么少数好产品的价格就会过于昂贵。
如果一个电子产品的设计工程师不能深刻理解产品的制造和测试过程背后的物理原理,很难想象他能设计出高质量的产品来。
一个电子产品的设计是从确定用户需求开始的,用户需求来自于某项特殊应用需要完成的功能。
根据用户需求书写产品规范,它一般包括以下内容:功能定义(输入输出特征)、操作特征(功耗、频率、噪声等)、物理特征(例如封装)、环境特征(温度、湿度、可靠性等)以及其他特征(成本、价格等)。
有了详细的功能规范,就可以开始具体的设计了,它也分为几个阶段。
第一个阶段是体系结构设计,即为实现目标功能制定一个由若干可实现的功能块构成的系统级结构。
第二个阶段称为逻辑设计,进一步将各功能块分解成逻辑门。
最后是物理设计,用物理器件(例如晶体管)来实现逻辑门,产生一个芯片版图。
物理版图被转化成光掩模,送到硅片制造生产线上加工成芯片。
在加工过程中,材料的不纯和缺陷、设备的不完善以及人为的失误等等都是引起故障的原因,因此芯片制造出来后的生产测试是必不可少的。
测试的另一个重要功能是制造过程诊断(process diagnosis)。
对每个故障芯片,必须分析引起故障的原因是由于制造过程的问题、还是设计或者测试本身的问题、甚至可能一开始制定规范时就有问题。
对故障芯片的分析称为失效模式分析(failure mode analysis,简称FMA),可以有许多不同的测试手段,包括使用光电显微镜检查确定失效原因以改进工艺过程。
对用户需求和功能规范的测试通常称为“审查”,对设计过程的测试称
为“设计验证”,对制造过程的测试就是集成电路领域常说的“测试”,也是本文所采用的测试的含义。
传统的测试方法是使用自动测试设备(Automatic Test Equipment,简称ATE或测试仪)对被测芯片施加测
试向量,捕获芯片的输出结果与预期的正确结果进行比较,以判断芯片中是否存在某一类型的故障。
但是,测试并不是等芯片制造出来才考虑的问题,特别是对一个复杂的系统,在设计过程中就必须考虑是否能够开发出检测所有故障的测试集,测试开发的时间和难易程度,对每个芯片进行测试的成本等问题。
这些问题与设计本身的特点密切相关。
因此,设计和测试开发,是在图1中“书写功能规范”之后、“加工制造”之前的一个紧密结合的过程。
测试方法的选择在设计中直接体现为可测试性设计(Design For Testability,简称DFT),可测试性设计已经成为一个现代数字系统设计中必不可少的成分,由于它对设计本身增加了硬件开销,也会在不同程度上影响系统的性能,因此必须慎重考虑。
基本的VLSI测试技术和方法根据测试对象,可以把测试分为功能测试和结构测试两大类。
功能测试针对电路实现的功能进行测试,往往需要大量的测试数据,例如一个10输入的与门,它的完全的功能测试需要210个测试向量。
何况大多数现代电路的规模非常大。
因此在芯片测试时如果使用功能测试会使得测试成本难以承受。
此外,对一个复杂的功能,如果不用穷尽测试,其测试效果难以衡量。
但是功能测试在设计验证时非常必要。
由于设计验证不是本文关注的内容,所以本文将不讨论功能测试。
在假定设计正确的情况下,测试只考虑制造过程中引进的缺陷。
结构测试基于电路的结构(门的类型、连线、网表等)进行测试,通过芯片的输出管脚观察内部信号的状态。
它的最大好处是可以开发各种测试产生算法自动地对电路产生测试向量,并且能够有效地评估测试效果。
本节介绍结构测试涉及的基本概念和方法。
电路的可测试性(testability)包含两个方面:电路中信号的可控制性(controllability)和可观测性(observability)。
信号的可控制性指将该信号设置成0或者1的难度,信号的可观测性是指观察这个信号的状态的难度。
这两个概念对电路测试非常重要。
尽管电子束(electron beam)测试是可以扫描芯片获得内部信号的状态的,但这种测试非常昂贵,只有在特殊需要时才会使用。
因此,对内部信号的置值必须通过设置电路的原始输入(Primary Input,简称PI)完成,同样,观察内部信号的状态也必须通过将要观察的信号传播到原始输出(Primary Output,简称PO)。
可测试性分析技术对自动测试向量产生(Automatic Test Pattern Generation,简称ATPG)算法有重要的意义。
在测试产生过程中,当需要寻找一条从PI到当前信号线的通路、以便控制当前信号线取某个信号值(0或1)时,需要根据信号线的可控制
性进行优先选择;同样,当需要寻找一条从当前信号线到PO的通路、以便观测当前信号线的状态时,需要根据信号线的可观测性进行优先选择。
可测试性分析技术最好具有对电路的拓扑结构进行静态分析(不需要测试向量)和线性复杂度分析两种特性,否则直接使用自动测试产生和故障模拟技术就可以了。
其他类型的可测试性度量是基于信号取值的概率的,在一定程度上弥补了SCOAP的缺陷。
例如,使用随机向量获得某根信号线被设置成0(或1)的概率,得到0可控制性(或1可控制性)。
门级的可测试性度量技术已经发展得非常成熟。
此外,行为级和RTL可测试性分析技术可以用于电路的自动可测试性综合。
使用数据流图(Data Flow Graph,简称DFG)来分析电路的可测试性。
DFG中,每个节点表示一个寄存器,每条边表示连接两个寄存器的组合电路功能模块、或者到寄存器的原始输入以及寄存器连接的原始输出端口。
DFG在寄存器传输级的可测试性分析和测试产生技术中广泛使用。
前文已经提到了ATPG,它是产生测试一个电路所需要的输入激励的过程。
ATPG算法除了用于产生测试向量以外,还可以识别电路的冗余(或不必要的)逻辑,可以证明两种电路实现是否等价。
基于一种有效的故障模型产生测试序列是确定性测试产生(deterministic test pattern generation)的基础。
任何一种确定性的测试产生算法,对于在一种给定故障模型下电路的每个故障,都必须解决两个问题:ü 激励故障。
即在故障点产生一个与故障值相反的值。
ü 传播故障。
即将故障点的值传播到电路的原始输出。
故障激励的过程称为控制,对故障点取值的可控制性将影响故障激励的难度。
故障效应传播的过程称为敏化,故障点取值的可观测性将影响故障传播的难度。
如果一个测试激励了被测电路中的一个故障并且将其故障效应传播到了电路的原始输出,则称该测试覆盖了这个故障。
在ATPG过程中,每找到一个测试,都要搜索该测试所能覆盖的所有特定类型的故障,这个过程称为故障模拟。
一个测试序列(或测试集)的故障覆盖率一般指该测试序列(或测试集)所能检测的故障数与电路中所有该类型故障的总数的比值,它是度量一个测试序列(或测试集)的好坏的标准。
不可测的故障与电路的冗余逻辑密切相关。
测试按功能分有时延测试、IDDQ测、试存储器测试、模拟和混合信号电路测试。
延时测试电路中的传输延迟一直是限制数字系统时钟频率提高的关键因素。
对于高频工作的电路,任何细小的制造缺陷都可能引入不正确的延时,导致它无法在给定工作频率下正常工作,因此,以确保数字电路时间特性的正确性为目标的时延测试一直是测试领域的热点问题。
一个完全的时延测试要求能验证被测电路中任何通路的传输延迟不超过系统时钟周期。
IDDQ指静态电源电流,正常情况下CMOS电路的静态电流非常低,因而一个异常高的静态电流暗示着制造的缺陷。
例如,当电路中的桥接故障或漏电流故障被激活时,在电源和地之间提供了一条导通的通路,导致静态电流大幅度提升。
一个现代工作站可能会有1G以上字节的DRAM存储器,假定每一比特一个晶体管,就相当于8´109个晶体管,比整个系统中其余部分的晶体管数要高出2个数量级。
可见存储器测试在系统测试中有多么重要。
,电路规模对模拟测试不是问题。
模拟电路通常最多就50到100个器件,不像数字电路很容易就达到百万晶体管的规模。
模拟电路的模型化远远难于数字电路。
造成模拟电路模型化困难的原因体现在:没有广泛接受的故障模型;没有有限的信号范围;模型的精度在模拟电路故障模拟过程中非常关键;模拟电路有噪音,必须模型化和加以测试;由于ATE管脚的负载、阻抗和随机噪音,测量错误容易发生;模拟电路的信息流没有单一的方向等。
模拟电路的不可分解性。
与数字电路不同,模拟电路的子组件无法单独测试。
模拟电路中很难实现测试总线。
将一个模拟信号运送到输出管脚可能会改变这个信号以及电路的功能。
在测试时重新配置模拟电路通常是不可接受的。
第五,在测试方法上,由于缺少广泛接受的故障模型和结构模拟故障与模拟规范之间的映射关系,结构模拟ATPG使用的并不广泛。
反过来,在数字电路测试中很少使用的功能测试,因为不需要故障模型,在模拟测试中却经常使用。
另一方面,数字电路的逻辑功能(对应于固定型故障)和性能(对应于通路时延故障)可以分开进行测试,而模拟电路测试中功能和性能测试是无法分离的。
可测试性设计是芯片设计的重要环节,它通过在芯片原始设计中插入各种用于提高芯片可测试性的硬件逻辑,从而使芯片变得容易测试,大幅度节省芯片测试的成本。
目前比较成熟的可测试性设计技术主
要有扫描设计、边界扫描设计、内建自测试(Build In Self Test,简称BIST)等。
可测试性设计对原始设计的修改必须在不改变原始设计功能的前提下进行。
下面介绍几种常用的DFT技术。
近几年来我国集成电路产业如雨后春笋般蓬勃发展,各地纷纷建立集成电路设计中心,国家也出台了一系列有利于集成电路产业发展的政策。
相应的,与设计密切相关的测试技术日益受到重视。
国际上著名的测试仪厂商Agilent、Schlumberger、Teradyne等的主流测试仪已经或正在向国内引进。
提供测试支持的企业和公司在北京、上海等地也逐渐多了起来。
如今越来越多的中国人深刻感受到国外电子产业早就建立的根深蒂固的观念:在芯片设计、验证和投入市场等各个阶段,测试发挥着关键性的、必不可少的作用。
目前,中科院计算所芯片设计项目的发展也已经对测试提出了迫切的需求。
我所在的中科院计算所信息网络室VLSI测试课题组经过多年的研究积累,有了一支稳定的科研队伍,研究领域跨越从行为级到版图级的测试产生和可测试性设计方法,并涵盖时延测试、线间串扰(crosstalk)测试、低功耗设计和测试、测试压缩、测试调度、形式验证、模拟验证等多个分支。
在李晓维研究员的带领下,我们课题组已经承担和正在承担“龙芯”系列芯片、计算所北桥芯片、苏州SOC设计中心、海尔高清晰电视相关芯片等重要的芯片设计项目的设计验证、可测试性设计和芯片验证分析测试方案。
VLSI测试技术的发展必须适应不断发展的设计和制造技术,电子测试领域的专家学者每年要举办一些规模相当大的国际会议以及为数众多的研讨会,探讨随着集成电路工艺的发展,测试技术所面临的关键问题和新的挑战。
如今,VLSI工艺日趋复杂,人们已经能够将1亿晶体管放在一个芯片上,并且力图使片上的时钟频率超过1GHz。
这些趋势对芯片测试的成本和难度都产生了深远的影响。