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