ASICTESTChapter7ASICTest测试的任务:检测由加工制造工序衍生的故障。测试的目的有两个:①迅速挑出不合格的芯片②统计出芯片合格率并对失效芯片进行分析。测试与验证的差别?验证的任务是排除设计中的错误。验证时采用的是电路的功能模型,验证过程在EDA环境下完成。ASICTestASIC生产工艺完成之后,母片切割之前的测试——Wafertest;对已经封装好的ASIC电路的测试——finaltest。ASIC产品测试分两个阶段进行:两个阶段的测试通常采用相同的测试向量。测试所需的测试程序一般由用户和IC制造厂家共同开发。Wafertest利用探针对每个die进行测试。测试信号由专用的产品测试仪产生。产品测试仪同时检测ASIC的测试响应,失效的芯片被自动打上墨点。芯片的内部模块(特别是嵌入式存储器)变得难以访问;芯片内各子集之间的测试存在相互干扰;¾测试的复杂性随着特征尺寸减小,芯片上晶体管的密度不断增加,测试的难度迅速增加。MajorProblemwithASICTest测试矢量生成的时间随着芯片输入管脚数和片上触发器的数目呈指数增长。¾测试成本因为加工出来的每个芯片都需测试,必须考虑测试成本,尽可能降低测试费用。如果一个数字ASIC的测试时间为6秒,需支付的测试费用是27美分。假设产品的良率为65%,一个好芯片的售价中,测试部分的费用为27/0.65=41.5美分。例:某测试设备的购买价格为427.2万美元年运行成本=折旧费+维护费+操作费=143.9万美元测试成本=1439000/(365×24×3600)=4.5美分/秒如何使测试高效率、低成本?如果不合格的芯片没有被测试出来,可能给用户和IC厂家造成极大的损失。¾故障覆盖率MajorProblemwithASICTestASIC测试分析一般过程:CUT:CircuitUnderTest,被测电路TestGeneration:测试生成PT:TestPattern,测试图形ATE:AutomaticTestEquipment,自动测试装置BIST:Built-InSelfTest,内建自测试常用术语:FaultModelsFaultSimulationAutomaticTest-PatternGenerationDesignforTest本章主要研究内容:§7.1FaultModels工艺缺陷——缺少接触窗口、寄生晶体管、氧化层崩溃;材料缺陷——裂纹、晶体不完整、表面杂质;寿命缺陷——电介质崩溃、电迁移;封装缺陷——触点退化、密封泄露等。造成VLSI芯片失效的原因:物理故障与逻辑故障物理故障的种类很多。根据他们对电路的影响可以把大量的物理故障浓缩为三种逻辑故障。故障建模:固定故障模型延迟故障模型基于电流的故障模型…………ASICTEST是用数学模型来描述芯片物理缺陷对电路行为的影响。建模的目的是为了检测故障,并不要求对物理缺陷进行完整、准确的描述。常用故障模型:1.Stuck-atFaultModelASICTest“固定故障”模型将工艺中的缺陷带来的物理故障转化为输入或输出信号线上的逻辑值被固定在“0”或“1”电平上。在SF模型中,用两种逻辑故障来表示各种物理故障:固定1故障(S-A-1)固定0故障(S-A-0)一个“S-A-1”故障模型的例子由于工艺制作过程中出现偏差,使输出端Z处的过孔不小心与电源VDD粘上,致使输出被固定到与电源相连的高电平上。固定故障模型分类:ASICTestSinglestuck-atfault(SSA)在待测试的电路中,只存在一个逻辑故障。Multiplestuck-atfault(MSA)SSA故障模型是最早被提出、也是研究和应用最广泛的一种经典故障模型。实践表明:它在用于检测电路中存在的“错误”时十分有效。固定故障的测试ASICTest在电路输入端加上一组测试输入(测试向量),同时观察其输出是否正确。对应于每个测试向量,正常电路的输出向量称为无故障输出向量。一个测试向量和对应的无故障输出向量组成一个测试。记为Ti={xi;fi}(i=1~2n)固定故障的测试图中电路的测试集包括(G=AB+BC)T1={x1;f1}={0,0,0;0}T2={x2;f2}={0,0,1;0}T3={x3;f3}={0,1,0;0}T4={x4;f4}={0,1,1;1}T5={x5;f5}={1,0,0;1}T6={x6;f6}={1,0,1;1}T7={x7;f7}={1,1,0;0}T8={x8;f8}={1,1,1;1}将电路的实际输出向量与无故障输出向量进行异或,结果为1时,表明有故障。本例中,能够检测出故障的测试为:最小故障测试集:检测电路中所有单固定故障所需的最少测试向量构成的测试集。T1,T2,T3,T7。2.DelayFault延迟故障属于残次故障(degradationfault),可由工艺偏差引起。故障并未损坏电路的逻辑功能,而是使晶体管开关时间延长了。可能使电路的关键路径达不到设计要求。使固定故障测试向量在较高速度下应用时可以检测到某些延时缺陷。但总的来说,延时故障的检测比较困难。3.IDDQFaultASICTESTIDD表示电源电流,Q表示静态。IDDQ故障模型反映了:ASIC电路在生产过程中的缺陷使电源和地之间出现了不正常的连接,从而导致了芯片静态电流的变化。通过测量芯片的静态电源电流变化来查找失效的芯片。IDDQ故障测试举例ASICTest由于工艺制作的差错,使节点X和W桥接在一起。这一故障可以由IDDQ测试发现,但无法用固定故障模型来等效。当输入ABC=110时,产生了图中虚线所示的由电源VDD到地的直流通道。IDDQ测试的特点:测试模型简单;不必将逻辑值传递到输出管脚上进行观察,而只需观察电源管脚处的静态电流值即可。可以检测到更多的故障。IDDQ测试的条件很苛刻。①要求电路必须是一个完全静态的CMOS结构;②必须使电路中所有的晶体管处于稳定状态,才能测到真正的静态电流值,测试速度较慢。(与固定故障模型相比)IDDQ测试的另一个问题是:很难准确地确定静态电流多大为正常,多大为不正常。也即确定芯片有故障的静态电流的阈值比较困难,因而限制了它的应用。ASICTest在实际应用中,将IDDQ测试与固定故障模型的扫描测试相结合可以提高故障覆盖率。4.FaultCollapsingASICTest在电路不同地方出现的固定故障可能会产生相同的故障结果,这类故障我们称之为等效故障。故障叠并就是将多个等效故障合并为一个代表故障的过程。通过故障叠并可以减少待测试的故障数量,加快故障测试集的生成。2输入与非门的故障叠并有6种可能的固定故障:A0,A1;B0,B1;Z0,Z1。。,;,;,1011101010======ZZBBAAZZAZZBZZA0,B0,Z1为等效故障,可选择Z1作为其代表故障。的故障压缩BCBA+22个故障→8个故障(a)引脚故障模型(22个)(b)门故障叠并压缩(14)(c)节点与逻辑单元之间的故障叠并压缩Anexample:求下图所示电路的最小故障测试集①列出所有固定故障;②故障压缩,找出代表故障③作故障检测表;④压缩,确定最小测试集。•电路有8个节点•每个节点有两种可能的固定故障•共有16个可能的固定故障能够检出电路中所有单固定故障的、由最少测试向量构成的测试集Anexample:①列出所有固定故障记无故障电路的输出为:f=ab+abc若1线上有S-A-0故障时,电路输出为:f10=b若1线上有S-A-1故障时,电路输出为:f11=bc其它各条线上出现单固定故障时的电路输出记为:f20,f21,f30,f31,…f80,f81Anexample:故障输出{f30,f50,f71}对所有测试向量的响应都相同,即它们是等价故障,可以合并,用f1表示。同样,故障输出{f40,f61}是等价故障,合并后用f2表示;{f60,f70,f81}合并为f3表示。故障压缩余下的其他故障分别用f4~f11表示。得到代表故障表。Anexample:②作代表故障表将代表故障表中每行的正常输出f0与故障输出fi进行异或运算,可得故障检测表。Anexample:③作故障检测表故障检测表中每一列对应于一种故障。异或结果为1代表可以检测出该故障,对应的Ti是该故障的一个测试向量。Anexample:④确定最小故障测试集对前面求出的故障检测表进行化简。化简的规则:9行消去规则:在A、B两行中,若A行中的1完全被B行所包围,则A行可消去。9列消去规则:在A、B两列中,若A列中的1完全被B列所包围,则B列可消去。故障检测表化简9行消去规则:T1∈T2,T7∈T8,T3=T4,消去T1,T7,T4;9列消去规则:f01∈f04,f01∈f07,f01∈f011;f02∈f05,f02∈f06,f02∈f011;f08∈f03;f010∈f09,f010∈f06,f010∈f04,f010∈f03;可消去f04,f07,f011,f05,f06,f03,f09。Anexample:最小故障覆盖表得到最小故障测试集:S’={T3,T5,T6,T8}。§7.2FaultSimulation故障模拟就是在对数字系统仿真时,人为地插入电路故障,模拟数字系统在出现某一故障时的逻辑行为。根据故障情况下,电路对测试输入的响应是否与正常情况下的响应一致,可以判定测试输入向量是否有效。故障模拟通常在设计验证之后进行,用于测试向量的开发。1.什么是故障模拟?用于测试生成的故障模拟工作时,对每个输入矢量,把故障依次加到电路,观察模拟器的输出是否与正确电路输出相同,以确定测试向量是否有效。用于测试生成的故障模拟对每个输入矢量,模拟器产生一个可检测故障列表,同时将已检出的故障从故障列表中删除。之后,读入一条新的测试向量继续进行故障模拟。95‾100%故障模拟器的功能:故障覆盖率的大小是衡量测试程序好坏的性能指标之一。¾在其他程序的帮助下(测试生成器、矢量压缩器),按测试的故障覆盖率要求,生成需要的测试向量集。¾对于一组给定的测试向量集,确定它对给定故障模型或给定故障列表的覆盖率;要求检测的故障数被检测到的故障数故障覆盖率=故障模拟举例:4bit行波进位加法器•该电路包含36个逻辑门、9个输入、5个输出。•故障模拟器为该电路生成186个单固定故障,通过故障叠并后,可得到114个代表故障。•确定测试向量故障模拟举例:4bit行波进位加法器故障模拟举例:压缩和非压缩的故障集的故障覆盖率存在差异,但非常接近。使用压缩的故障集可大大降低故障模拟所需要的时间。矢量7和8不能检测任何新的故障,可以从测试向量集中删除。以减少测试所需要的时间。反序模拟反序模拟不能用于时序电路。反序模拟是进一步压缩组合电路测试矢量集的一种技术。矢量2和1不能检测任何新的故障,也可以从测试向量集中删除。FaultSimulation故障覆盖率与成品率的对应关系表中的数据是通过大量实际试验得到的,采用的故障模型为SSA故障模型。需要说明的一点是,产品的成品率与故障覆盖率是两个概念。有些人为加上的故障可能未能检测出来,但这并不意味着这个故障就会在芯片上出现。由表可以看出:采用SSA模型得到的故障覆盖率与产品成品率之间有相当好的对应关系。也就是说,采用SSA模型进行故障覆盖率分析具有合理性。2.故障模拟算法串行故障模拟法并行故障模拟法并发故障模拟法串行故障模拟是一种最简单的故障模拟算法。•首先,对无故障电路进行模拟,将每个测试向量对应的输出保存在一个文件中。•然后依次对有故障的电路进行模拟。将有故障电路的输出与文件中保存的无故障输出进行比较。若比较结果显示检测到目标故障,故障电路的模拟就停止,同时记录检测出该故障的测试矢量序号。特点:•实现简单;•可模拟任何可以引入电路描述的故障;•模拟速度慢。并行故障模拟基本思想:充分利用计算机中逻辑操作的位并行特点,一次对多个故障进行模拟。•一次可模拟的故障数与电路中逻辑状态的数目有关。•如对一个带有4个逻辑状态的系统,每个节点需用两位二进制数来表示。设计