吕 涛
电子测试技术,是应电子产品设计和制造的需求而产生和发展起来的、有着四十多年历史的一项应用科学技术,电子产品从质量和经济两个方面受益于测试技术的发展和应用。这两方面的属性是不可分割的。
良好的测试过程,可以在次品到达用户手中之前就把它们淘汰出来。这对于提高产品质量,建立生产销售的良性循环,都是至关重要的。而次品的成本又需要在合格产品的售价中得到补偿,所以,我们寻求的是质量和经济的制衡,是最优化的质量——以最小的成本来满足用户的需求。
根据测试的目的不同,可以把集成电路测试分为四种类型:
▲ 验证测试(verification testing,也称作design debug,或者characterization testing)
当一款新的芯片第一次被设计并生产出来,首先接受验证测试。在这一阶段,将会进行功能测试,以及全面的AC、DC参数的测试(Shmoo图是反映电气参数的有效工具)。通过验证测试,我们可以诊断和修改设计错误,为最终规范(产品手册)测量出芯片的各种电气参数,并开发出测试流程。
▲ 生产测试(manufacturing testing)
当芯片的设计方案通过了验证测试,进入量产阶段之后,将利用前一阶段调试好的流程进行生产测试。在这一阶段,测试的目的就是明确做出被测芯片“是”或“否”通过测试的判决。由于每一颗芯片都要进行生产测试,所以测试成本是这一阶段的首要问题。从这一角度出发,生产测试通常所采用的测试向量集不会包含过多的功能向量,但是必须有足够高的模型化故障(后面介绍)的覆盖率。
▲ 老化测试(burn-in testing)
通过生产测试的每一颗芯片并不完全相同,最典型的例子就是同一型号产品的使用寿命却不尽相同。老化测试就是要保证产品的可靠性(reliability),通过调高供电电压、延长测试时间、提高温度等方式,将不合格的产品(如会很快失效的产品)淘汰出来。
▲ 接受测试(acceptance testing,或者incoming inspection)
当芯片送到用户手中,用户将进行再一次的测试。如系统集成商在组装系统之前,会对买回的各个部件进行此项测试。
根据测试向量的不同,又可以把测试分为功能测试和结构测试两大类。
功能测试,主要应用于验证测试中,而生产测试则不会依赖功能测试的向量集,否则会使得测试成本难以承受。
结构测试基于电路的结构(门的类型、连线、网表等)进行测试。它的最大好处是可以开发各种测试产生算法来自动对电路产生测试向量,并且能够有效地评估测试效果。结构测试一般需要基于一定的故障模型,这是因为,电路中可能存在的物理缺陷是多种多样的,并且由于某些物理缺陷对于电路功能的影响过于复杂,不能充分为人所理解,分析的难度很大。而故障化模型中的一个逻辑故障可以描述多种物理缺陷的行为,从而回避了对物理缺陷分析的复杂度。
固定型故障(stuck fault,简称SF)是在集成电路测试中使用最早的和最普遍的故障模型,它假设电路中某个信号永久地固定为逻辑0或者逻辑1,可以用来表征多种不同的物理缺陷。此外,常用的故障模型还包括,刻画信号短路现象的桥接故障(bridging fault),刻画电路延迟失效行为的时延故障(delay fault)等等。
在抽象出有Ч收夏P偷幕∩希涂梢钥⒏髦肿远馐圆╝utomatic test pattern generation,简称ATPG)算法。测试产生是产生一个电路测试所需要的输入激励的过程。ATPG算法除了用于产生测试向量之外,还可以识别电路的冗余逻辑,可以证明两种电路实现是否等价。任何一种确定性的测试产生算法,对于一种给定的故障模型下电路的每个故障,都必须解决两个问题:
▲激励故障。即在故障点产生一个与故障值相反的值。
▲传播故障。即将故障点的值传播到电路的原始输出。
故障激励的过程称为控制,对故障点取值的可控制性将影响故障激励的难度。故障效应传播的过程称为敏化,故障点取值的可观测性将影响故障传播的难度。这里提到的可控制性和可观测性,就是衡量电路可测试性的两个方面。这两个概念对于电路测试非常重要。
电路中信号的可控制性指将该信号设置成0或者1的难度。信号的可观测性是指观察这个信号的难度。通常,对内部信号的置值必须通过设置电路的原始输入(primary input,简称PI)完成,同样,观察内部信号的状态也必须将待观察的信号传播到原始输出(primary output,简称PO)。从测试产生过程中,当需要寻找一条从PI到当前信号线的通路,以便控制当前信号线取某个逻辑值时,需要根据信号线的可控制性进行优先选择;同样,当需要寻找一条从当前信号线到PO的通路,以便观察当前信号线的状态时,需要根据信号线的可观测性进行优先选择。
结构测试具有测试数据精练、测试效果易于通过故障覆盖率来评估等优点,在集成电路测试,尤其是生产测试中得到极大应用。
最后,需要强调的是,测试并不是等芯片制造出来之后才考虑的问题,特别是对一个复杂系统,在设计过程中就必须考虑是否能够开发出检测所有故障的测试集、测试开发的时间和难易程度、对每颗芯片进行测试的成本等问题,这些问题与设计本身的特点密切相关。测试方法的选择在设计中直接体现为可测试性设计(design for testability,简称DFT)。
可测试性设计已经成为一个现代设计系统设计中必不可少的成分,它通过在芯片原始设计中插入各种用于提高芯片可测试性的硬件开销,从而使芯片变得容易测试,大幅度降低芯片测试的成本。目前比较成熟的可测试性设计技术主要有内部扫描设计、内建自测试、测试点插入、边界扫描设计等等。由于它在设计中增加了硬件开销,也会在不同程度上影响系统的性能,因此必须慎重考虑,量体裁衣地选择可测试性设计方案。
|