第八讲集成电路可测性原理与设计浙大微电子韩雁2013.42020/2/8浙大微电子2/26IC测试概念•在芯片设计正确的前提下,在制造过程中引入的缺陷(故障)造成的电路失效,需要用测试的方法将其检测出来。•对IC设计,用仿真手段验证设计正确性•对IC制造,用测试手段报告生产“良率”•故障的存在–影响电路功能的正确性•故障的定位–若大量电路由于相同原因失效,要找出问题所在2020/2/8浙大微电子3/26电路测试与电路仿真的不同•电路仿真–时间充裕–软件可对电路内部任意节点进行仿真•电路测试–测试机时昂贵,每分钟都计算成本–不可能对电路内部进行探测,故障排查困难2020/2/8浙大微电子4/26样品测试与产品测试的不同1.样品测试–人工进行–测试时间充裕–测试方法自由2.产品测试–机器测试–测试时间折进产品成本(有时比制造成本还高)–测试代码编写2020/2/8浙大微电子5/261.样品的测试•大规模IC,其输入/输出管脚众多。•理论上,只有“穷尽”了输入信号的所有组合,并验证了输出信号相应无误后,才能断定此电路是合格产品。•二输入端“与非”门,只有测试了00,01,10,11四种输入状态下的输出分别是1,1,1,0,才能断定该“与非”门是合格产品。•这种方法类似于设计阶段所做的电路仿真。2020/2/8浙大微电子6/26实例:乘法/累加ASIC测试穷尽法要做多少次测试?28×27×215次2020/2/8浙大微电子7/26是否有一种切实可行的测试方法127255C0=i×ji=1j=1=265297920转化为二进制数因为寄存器为15位,所以C值最终应为0100000000000003224168000011111101000000100000000000002020/2/8浙大微电子8/26乘法/累加ASIC性能测试测试乘法/累加电路的最高工作频率•当时钟频率较低时,芯片输出C=C0,工作正常。•将时钟频率不断提高,每提高一次,进行一次测试,直至测试结果CC0,说明电路工作状态已发生紊乱,工作频率上限即可确定。2020/2/8浙大微电子9/26准穷尽法概念及不足上述测试可称之为“准穷尽法”测试,其不足为–累加器输入端Z的累加信号并不是严格按照穷尽法来提供测试码的。–测试只保留了低15位数据,因此并不排除更高位有错误数据无法被发现的可能。虽然这种可能性比较小。2020/2/8浙大微电子10/262.产品测试•产品测试与样品测试不同,目的在于如何让机器用统一固定的算法来解决大量电路的快速测试问题和为“故障定位”提供可能。•这就是DFT理论需要研究和解决的问题•产品测试要求具备的条件–电路要有可测性(可测性设计是ASIC设计师在电路设计初期就应考虑的问题),–提取出的测试矢量集要有较高的故障覆盖率–有故障模型和尽可能完备的“故障字典”2020/2/8浙大微电子11/26故障模型在各种故障模型中比较常用的两种模型:–“对电源短路模型”S-a-1(Stuckat1)–“对地短路模型”S-a-0(Stuckat0)可诊断由对电源短路或对地短路引起的电路失效实例:2020/2/8浙大微电子12/26故障字典•实例中有5个测试点:A,B,C,P,D•10种故障可能:A1,A0,B1,B0,C1,C0,P1,P0,D1,D0A1表示A点的S-a-1故障,A0表示A点的S-a-0故障•当电路无故障时,输入与输出之间应有正确真值表•当有各种S-a-X故障时,输出端D的测试值将有10种可能的错误结果•将上两项结果合并即可形成一张故障字典•根据故障字典以及测量到的D值,即有可能分析电路中S-a-1故障和S-a-0故障所处的位置。2020/2/8浙大微电子13/26故障字典表正确值2020/2/8浙大微电子14/26故障字典表•当输入端ABC取值(000)时,即可测得P0故障或者D1故障•当取(010)时,可测得A1故障或者是P0故障或者是D1故障•输入端的取值(000),(001),(011),(101)称为测试向量•有些故障是不可区分的,例如A0,B0,C1,P1,D0故障,无论用哪一组测试向量都无法将它们区分开来,这种故障称为“等价故障”,因为它们在电路中是逻辑等价的。正确值2020/2/8浙大微电子15/26测试向量集及其提取进一步分析还可发现,要诊断上述电路中所有的S-a-1故障和S-a-0故障,并不需要对全部的8个输入向量进行测试,而只需其中的6个就够了:•(000),可测P0,D1;•(001),可测D1;•(010),可测A1,P0,D1;•(100),可测B1,P0,D1;•(111),可测C0,D1;•(110),可测A0,B0,C1,P1,D0而(011)和(101)对测试故障没有特别贡献因此只要将T(000,001,010,100,110,111)提取为测试向量集就可以了2020/2/8浙大微电子16/26故障覆盖率故障覆盖率定义为:用测试向量集可以测出的故障与电路中所有可能存在的故障之比。在上述实例中,共有10个可能故障,因此•T(000,001,010,100,110,111)能够检测出这所有的10个故障,因此其故障覆盖率为100%。•T1(011,101)仅能测出D1这一个故障,故其故障覆盖率为10%。•T2(110)的故障覆盖率为50%,虽然它不能给等价故障A0,B0,C1,P1,D0精确定位。2020/2/8浙大微电子17/26电路的可测性分析电路测试的难易程度可由“测试因子”定量描述。共6个(3个组合电路、三个时序电路):•CC0(X)--表示组合电路中X结点S-a-0故障的可控制性。•CC1(X)--表示组合电路中X结点S-a-1故障的可控制性。•CO(X)--表示组合电路中X结点故障的可观察性。•SC0(X)--表示时序电路中X结点S-a-0故障的可控制性。•SC1(X)--表示时序电路中X结点S-a-1故障的可控制性。•SO(X)--表示时序电路中X结点故障的可观察性。2020/2/8浙大微电子18/26某结点某故障的可控制性•可控制性:–人为地将某结点设置为某故障的难易程度•对于原始输入端I和原始输出端O,一般有如下约定:–CC0(I)=CC1(I)=1(组合电路的可控制性)–SC0(I)=SC1(I)=0(时序电路的可控制性)–CO(O)=SO(O)=0(组合与时序电路的可观察性)值越小表示越易观察或控制2020/2/8浙大微电子19/26“与非”门测试因子的计算Y=CC1(Y)=min[CC0(X1),CC0(X2)]+1CC0(Y)=CC1(X1)+CC1(X2)+1CO(X1)=CC1(X2)+CO(Y)+1CO(X2)=CC1(X1)+CO(Y)+1SC1(Y)=min[SC0(X1),SC0(X2)]SC0(Y)=SC1(X1)+SC1(X2)SO(X1)=SC1(X2)+SO(Y)SO(X2)=SC1(X1)+SO(Y)2X1X2020/2/8浙大微电子20/26Y=CC1(Y)=CC0(X1)+CC0(X2)+1CC0(Y)=min[CC1(X1),CC1(X2)]+1CO(X1)=CC0(X2)+CO(Y)+1CO(X2)=CC0(X1)+CO(Y)+1SC0(Y)=min[SC1(X1),SC1(X2)]SC1(Y)=SC0(X1)+SC0(X2)SO(X1)=SC0(X2)+SO(Y)SO(X2)=SC0(X1)+SO(Y)2X1X“或非”门测试因子的计算2020/2/8浙大微电子21/26一个简单组合逻辑的测试因子2X1X2X1X对于原始输入I和原始输出OCC0(I)=CC1(I)=1CO(O)=0Y=CC1(Y)=CC0(X1)+CC0(X2)+1CC0(Y)=min[CC1(X1),CC1(X2)]+1CO(X1)=CC0(X2)+CO(Y)+1CO(X2)=CC0(X1)+CO(Y)+1Y=CC1(Y)=min[CC0(X1),CC0(X2)]+1CC0(Y)=CC1(X1)+CC1(X2)+1CO(X1)=CC1(X2)+CO(Y)+1CO(X2)=CC1(X1)+CO(Y)+12X1X2020/2/8浙大微电子22/26测试因子值因为是组合电路,故其与时序有关的测试因子值均为02020/2/8浙大微电子23/26增加I/O端口降低测试因子的方法•当某结点X的可观察因子CO(X)过大时,可通过增加一个输出端口的办法,将该点直接引出;•当某点X的可控制因子过大时,–当CC0(X)过大时,可插入一个“与门”使之下降:CC0(X’)=min[CC0(X),CC0(I)]+1=1+1=2–当CC1(X)过大时,可插入一个“或门”使之下降:CC1(X’)=min[CC1(X),CC1(I)]+1=1+1=2•在某些特殊情况下还可直接将该X点与增加的输入端I相连。2020/2/8浙大微电子24/26简单电路的可测性设计•直接从A,B模块增加输出管脚进行测试•增加了输出管脚数和芯片面积,封装成本增加•用多路选择器,只需增加一个管脚2020/2/8浙大微电子25/26多路选择器在可测性设计中的作用不但将多路选择器用在芯片电路的输出端,而且将它们用在芯片的内部,利用它们把内部的子电路分割开来并彼此绝缘,单独测试,是大规模、超大规模集成电路可测性设计更常用的方法。2020/2/8浙大微电子26/26复杂电路的可测性设计(DFT)•对于组合电路–有非常成熟的测试矢量生成算法来检测电路中的故障,无需增加DFT电路•对于时序电路来说–扫描链法,把内部的时序单元(DFF)改成特定的扫描单元,然后把所有的扫描单元串成扫描链,通过扫描链,将内部信息串行传到输出管脚。–内建自测试法(BIST),无需外部测试机台,内部产生测试向量,将无故障响应值也事先存放在芯片内部,自己比较并输出比较结果。2020/2/8浙大微电子27/26Thanks!