首页> 中国专利> 一种大规模集成电路测试数据与测试功耗协同优化的方法

一种大规模集成电路测试数据与测试功耗协同优化的方法

摘要

一种大规模集成电路测试数据与测试功耗协同优化的方法。它涉及大规模集成电路的技术领域,是针对目前SOC测试技术中还没有能有效地同时降低测试数据量和测试功耗的方法而提出的。它的方法步骤为:分析电路内扫描单元相容性,将其分为三类;将各类中的扫描单元分别连接,构建带有“复制”机制的扫描链;根据新的扫描链结构调整测试向量集;采用基于重复性数据压缩的方法对测试集进行压缩,得到压缩后的测试集TE。进行测试时,压缩后的数据经解压缩电路被完全恢复,进行测试。本发明是一种集成电路的可测性设计方法;能降低电路在测试期间产生的功耗,因而保证其可靠性和可测性;能有效降低测试数据量,降低测试时间,减少ATE通道数量。

著录项

  • 公开/公告号CN101158706A

    专利类型发明专利

  • 公开/公告日2008-04-09

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学;

    申请/专利号CN200710144612.8

  • 申请日2007-11-16

  • 分类号G01R31/28(20060101);G01R31/3185(20060101);

  • 代理机构23109 哈尔滨市松花江专利商标事务所;

  • 代理人朱永林

  • 地址 150001 黑龙江省哈尔滨市南岗区西大直街92号

  • 入库时间 2023-12-17 19:58:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-01-16

    未缴年费专利权终止 IPC(主分类):G01R31/28 授权公告日:20091104 终止日期:20111116 申请日:20071116

    专利权的终止

  • 2009-11-04

    授权

    授权

  • 2008-06-04

    实质审查的生效

    实质审查的生效

  • 2008-04-09

    公开

    公开

说明书

技术领域

本发明涉及的是大规模集成电路的技术领域。

背景技术

随着集成电路技术的飞速发展,集成电路的集成度越来越高,功能也越来越复杂,尤其是随着片上系统SOC的出现,集成电路测试面临越来越多的挑战。

这些困难一方面体现在随着集成电路复杂度的提高,集成电路测试所  需的数据量越来越大。例如龙芯2号芯片中,完成一个完整的测试大概需要2G位的测试数据,如果芯片中集成多个数字芯核,那么测试数据将更为庞大。由测试数据量剧增所带来的存储空间问题、多测试通道需求等无疑会增加集成电路的测试成本。另一方面,集成电路在测试中产生的功耗可能达到正常运行时功耗的2倍,产生这种现象一方面是由于在低功耗设计的芯片中一般只有少量的电路模块工作,而测试时则要电路中尽可能多的结点发生跳变。由于被测电路可能在测试过程中因功耗过大而被损坏,因此减少测试应用过程中的功耗已成为测试开发的另一个重要目标,测试功耗已成为影响CMOS电路的可测性设计及相应测试方法的重要问题。

针对集成电路日益增长的测试数据,人们提出了很多减少测试数据量的方法,主要可以分为三大类。第一类方法是将测试压缩与测试生成(Automatic Test Pattern Generation,ATPG)结合,在测试生成的过程中,通过故障仿真和特征约减,合并或修改测试向量,以减少测试集中实际测试向量的数量;但这种方法将导致测试生成时间过长并且存在对于非模型故障的故障覆盖率不高的问题。第二类方法是BIST技术,其基本思想是利用电路自身的测试生成器在电路内部直接生成测试向量,完成测试,常用的有基于线性反馈移位寄存器(LFSR)和基于细胞机(CA)的方法;但由于BIST生成的测试向量多是伪随机向量,因此故障覆盖率不高、测试序列较长,尽管通过加权随机向量测试、混合模式BIST等方法可以进一步提高测试效率,但随着电路规模的扩大,难测故障越来越多,需要付出的硬件开销也显著增加,因此BIST方法目前仅在存储器的测试中得到了广泛的应用,对于DSP等实现逻辑功能的其它电路的测试仍然不成熟。第三类方法是测试压缩(Test Compression)技术,这种方法将预先计算好的测试向量集压缩,并存储在自动测试设备(ATE)中。测试时ATE中的压缩数据通过电路内部的的解压电路被还原成原始测试向量,并加载到相应的被测电路上。这是一种无损压缩技术,能保证故障覆盖率不降低。这类方法中比较有代表性的有基于编码的测试数据压缩算法,如Golomb编码、FDR编码、VIHC编码等;广播式压缩算法;以及基于字典的压缩算法等,但这些方法都仅针对测试数据进行压缩,没有考虑到测试功耗日益提高的因素。

而在降低测试功耗的研究中,一类比较常用的方法是测试向量排序技术,这种技术利用时延测试向量对之间的海明距离为测试向量对排序,从而降低了电路测试中节点的0-1电平跳变次数,从而降低测试功耗;但这种单纯改变测试向量顺序的方法所得到的效果非常有限。第二类常见的降低测试功耗的方法是低功耗的ATPG技术,利用该技术生成的测试向量除了需要保证比较高故障覆盖率之外,另一个主要目的是减少测试功耗,但缺点是增加了测试向量数目。第三类降低测试功耗的方法是改变扫描链结构,例如将长扫描链划分成几段,或者调整扫描链上扫描单元顺序与插入逻辑门相结合的方法等,这种方法能减少扫描移入阶段的功耗,但从实验效果来看,这种方法对于降低测试功耗的效果仍然是比较有限的。近年来也有学者将MTF(minimum transition filling)模型与编码压缩算法相结合,提出了同时降低测试数据量与测试功耗的方法,如ARL编码和混合RL-Huffman编码等,但相比较而言,它在测试数据压缩方面获得了更好的效果,而对于测试功耗的降低非常有限。

综上所述,目前在对测试数据压缩和测试功耗降低的研究中,大多采用分别研究的思路,其中的一些方法在其所适合的应用场合是比较有效的。然而在实际应用中,如何能在减少测试数据量的同时有效降低测试功耗是迫在眉睫需要解决的问题,也是推动片上系统SOC测试技术快速发展的必然需要。

发明内容

本发明的目的是为了解决现有片上系统SOC测试技术中大都以压缩测试数据或降低测试功耗为单一研究方向,还没有能够有效地将测试数据量的减少与测试功耗的降低结合在一起的技术手段,存在阻碍片上系统SOC测试技术快速发展的问题,而提供了一种大规模集成电路测试数据与测试功耗协同优化的方法。

它的方法步骤为:

步骤一:将测试集TD={t1,t2,…tn}表示为一个二维矩阵,每一行代表一个测试向量,共n个测试向量,每一列代表一个扫描单元依次被赋的值,共S个扫描单元;计算测试集中列向量之间的相容性,即各个扫描单元之间的相容性;

步骤二:采用基于孤立点与2-完全点优先合并原则的团划分方法将扫描单元划分为K1、K2、K3三类团,每个团内的扫描单元是完全相容的,对于属于K1类的团,每个团仅包含一个扫描单元,对于属于K2类的团,每个团仅包含两个扫描单元,对于属于K3类的团,每个团内包含三个扫描单元,最终有A个扫描单元划入K1类团,有B个扫描单元划入K2类团,有C个扫描单元划入K3类团;

步骤三:将K1、K2、K3类团中的扫描单元分别连接,形成三类带有“复制”机制的扫描链;第一类扫描链与普通扫描链一样,仅将各个扫描单元串行连接;第二类扫描链实质上是一个扫描链组,由两条扫描链并联而成,每条扫描链分别由各个扫描单元串行连接而成,其中第一条扫描链的扫描输入端作为这类扫描链的扫描输入端(Scan_in),第一条扫描链的扫描输出端作为这类扫描链的扫描输出端1(Scan_out 1),第二条扫描链的扫描输出端作为这类扫描链的扫描输出端2(Scan_out 2);在这类扫描链结构中,两条扫描链上相同位置的扫描单元是属于一个团的,并且这个团属于K2类团,相同位置的两个相容扫描单元之间用一个三态门连接,并且所有三态门的使能端连接在一起,作为该类扫描链的复制操作(copy)的控制端;在实际测试时,扫描移入过程首先在第一条扫描链上进行,第一条扫描链获得测试数据;随后,控制copy端执行“复制”操作,即所有三态门使能,从而第二条扫描链获得了与第一条扫描链相同的测试数据;扫描移出过程则分别在两条扫描链上进行;第三类扫描链实质上也是一个扫描链组,由三条扫描链并联而成,每条扫描链都是由各个扫描单元串行连接而成的,其中一条扫描链的扫描输入端作为这类扫描链的扫描输入端(Scan_in),第一条扫描链的扫描输出端作为这类扫描链的扫描输出端1(Scan_out 1),第二条扫描链的扫描输出端作为这类扫描链的扫描输出端2(Scan_out 2),第三条扫描链的扫描输出端作为这类扫描链的扫描输出端3(Scan_out 3);在这类扫描链结构中,三条扫描链上相同位置的扫描单元是属于一个团的,并且这个团属于K3类团,相同位置的三个相容扫描单元之间用两个三态门连接,并且所有的三态门的使能端连接在一起,作为该类扫描链的复制操作(copy)的控制端;在实际测试时,扫描移入过程首先在一条扫描链上进行,该条扫描链获得测试数据;随后,控制copy端执行“复制”操作,即所有三态门使能,从而另外两条扫描链获得了与第一条扫描链相同的测试数据;扫描移出过程则分别在三条扫描链上进行;

步骤四:根据扫描链结构的变化调整测试向量集;

步骤五:采用基于重复性数据压缩的方法对测试集中的重复性数据进行压缩,得到最终压缩后的测试集TE

步骤六:进行测试时,压缩后的测试数据经过一个解压缩电路被完全恢复出来,然后进入被测电路中的各条扫描链进行测试。

本发明是一种集成电路的可测性设计方法;应用本方法对集成电路内部的扫描测试结构进行设计后,能够大大降低集成电路在测试过程中产生的测试功耗,由此保证了电路的可靠性和可测性;应用本方法进行集成电路可测性设计后,能有效降低测试数据量,提高数据压缩效率,因此降低了对数据存储空间的需求,并有效的降低了测试时间。在实际使用中,自动测试设备(ATE)和硬件解压缩电路之间只需要一个通道来驱动电路内部的多条扫描链,从而减少了ATE通道数量,降低了测试成本。

本发明采用一种带有“复制”机制的扫描链结构,能够将电平跳变次数较多的扫描移入操作简化为“复制”操作,因此降低了扫描测试功耗;本发明中的数据压缩部分是一种无损压缩方法,压缩后的测试集经过硬件的解压缩电路能够将原始测试数据完全还原出来,信息量没有缺失,能保证测试覆盖率不变;其硬件解码电路易于实现,通信协议简单,硬件成本低。

附图说明

图1是第一类带有“复制”机制的扫描链结构示意图,图2是第二类带有“复制”机制的扫描链结构示意图,图3是第三类带有“复制”机制的扫描链结构示意图,图4是测试数据和扫描单元对应关系示意图,图5是根据图4扫描单元构建无向图G的示意图,图6是更新后的无向图G的示意图,图7是图4扫描单元团划分结果的示意图,图8是重构后的扫描链结构示意图,图9是调整后的测试向量集示意图,图10是子向量形式的测试向量集示意图,图11是删除重复数据后的测试向量集示意图,图12是压缩后的测试向量集和控制字示意图,图13是控制字代码及其表示的含义图,图14是解压缩电路的结构示意图。

具体实施方式

具体实施方式一:结合图1~图14说明本实施方式,本实施方式的方法步骤为:    

步骤一:将测试集TD={t1,t2,…tn}表示为一个二维矩阵,每一行代表一个测试向量,共n个测试向量,每一列代表一个扫描单元依次被赋的值,共S个扫描单元;计算测试集中列向量之间的相容性,即各个扫描单元之间的相容性;

步骤二:采用基于孤立点与2-完全点优先合并原则的团划分方法将扫描单元划分为K1、K2、K3三类团,每个团内的扫描单元是完全相容的,对于属于K1类的团,每个团仅包含一个扫描单元,对于属于K2类的团,每个团仅包含两个扫描单元,对于属于K3类的团,每个团内包含三个扫描单元,最终有A个扫描单元划入K1类团,有B个扫描单元划入K2类团,有C个扫描单元划入K3类团;

步骤三:将K1、K2、K3类团中的扫描单元分别连接,形成三类带有“复制”机制的扫描链;第一类扫描链与普通扫描链一样,仅将各个扫描单元串行连接(如图1);第二类扫描链实质上是一个扫描链组,由两条扫描链并联而成,每条扫描链分别由各个扫描单元串行连接而成,其中第一条扫描链的扫描输入端作为这类扫描链的扫描输入端(Scan_in),第一条扫描链的扫描输出端作为这类扫描链的扫描输出端1(Scan_out 1),第二条扫描链的扫描输出端作为这类扫描链的扫描输出端2(Scan_out 2);在这类扫描链结构中,两条扫描链上相同位置的扫描单元是属于一个团的,并且这个团属于K2类团,相同位置的两个相容扫描单元之间用一个三态门连接,并且所有三态门的使能端连接在一起,作为该类扫描链的复制操作(copy)的控制端(如图2);在实际测试时,扫描移入过程首先在第一条扫描链上进行,第一条扫描链获得测试数据;随后,控制copy端执行“复制”操作,即所有三态门使能,从而第二条扫描链获得了与第一条扫描链相同的测试数据。扫描移出过程则分别在两条扫描链上进行;第三类扫描链实质上也是一个扫描链组,由三条扫描链并联而成,每条扫描链都是由各个扫描单元串行连接而成的,其中一条扫描链的扫描输入端作为这类扫描链的扫描输入端(Scan_in),第一条扫描链的扫描输出端作为这类扫描链的扫描输出端1(Scan_out 1),第二条扫描链的扫描输出端作为这类扫描链的扫描输出端2(Scan_out 2),第三条扫描链的扫描输出端作为这类扫描链的扫描输出端3(Scan_out 3);在这类扫描链结构中,三条扫描链上相同位置的扫描单元是属于一个团的,并且这个团属于K3类团,相同位置的三个相容扫描单元之间用两个三态门连接,并且所有的三态门的使能端连接在一起,作为该类扫描链的复制操作(copy)的控制端(如图3);在实际测试时,扫描移入过程首先在一条扫描链上进行,该条扫描链获得测试数据;随后,控制copy端执行“复制”操作,即所有三态门使能,从而另外两条扫描链获得了与第一条扫描链相同的测试数据。扫描移出过程则分别在三条扫描链上进行。

步骤四:根据扫描链结构的变化调整测试向量集;

步骤五:采用基于重复性数据压缩的方法对测试集中的重复性数据进行压缩,得到最终压缩后的测试集TE

步骤六:进行测试时,压缩后的测试数据经过一个解压缩电路被完全恢复出来,然后进入被测电路中的各条扫描链进行测试。

所述步骤一中的列向量之间的相容性是指对于两个列向量si和sj,如果si和sj中同一位置的两个数据相同,或者至少有一个是无关位“X”,则称这两个列向量是相容的,即这两个列向量对应的扫描单元是相容的。

具体的扫描单元相容性可参见图4,图4中的扫描单元C1和C6就是相容的。由于相容扫描单元所需要的数据或者是相同的,或者至少有一个是无关位“X”,因此相容扫描单元可以用同一组测试数据赋值。

步骤二中所述的采用基于孤立点与2-完全点优先合并原则的团划分方法为:

设:无向图G=(C,E)来表示各个扫描单元及其相关性,图的顶点集C表示S个扫描单元,若某两个扫描单元之间存在相容关系,则相应的两个顶点之间存在一条边;若G的一个子图H=(S,EH)中任意两个顶点之间都存在一条边,则称子图H为G的一个完全子图,子图H的顶点集S为G的一个团;在这里有三个定义:

定义一:若某个顶点与某条边的两个端点均有边相连,则称该点为该边的公共邻居;

定义二:若某一点只有一条边与它相连,则称该点为孤立点;

定义三:若某点有n个邻结点,且这n个点构成完全子图,则称该点为n-完全点;

其基于孤立点与2-完全点优先合并原则的团划分方法是以多次循环为主,每次优先合并孤立点及其邻结点或者2-完全点及其公共邻居,直到图内所有顶点都被划分进入相应的团:这里的将几个顶点合并是指在原图G中删除这几个顶点及所有与其相连接的边,形成新图,这几个顶点形成一个团,团划分算法具体步骤如下:

步骤1、建立无向图G=(C,E);

步骤2、合并无向图G中孤立点及其邻结点,合并后的团归为K2类团,更新G;

步骤3、合并G中的2-完全点,合并后的团归为K3类团,更新G;

步骤4、任意选择一条边,选择其公共邻居与该条边的两个顶点合并,并将合并后得到的团归为K3类团,更新G;

步骤5、如果图G中存在边,转到步骤1;否则,团划分算法结束,将每个剩余的顶点作为一个团归入K1类团;

执行团划分算法后,最终有A个顶点划入K1类团,有B个顶点划入K2类团,有C个顶点划入K3类团,即有A个扫描单元划入K1类团,有B个扫描单元划入K2类团,有C个扫描单元划入K3类团。

针对图4中各扫描单元的相容关系,图5~7示出了团划分过程。首先,构建无向图G,参见图5。根据算法步骤,首先合并孤立点C2、C3,形成两个团C2,8、C3,7,这两个团都是是K2类的团。更新后的图G如图6所示。由于更新后的图G中仍然存在边,继续合并。团划分的最终结果如图7所示,其中C1,6、C2,8、C3,7、C4,10为合并后得到的团,属于K2类团;而C5、C9、C11、C12属于K1类团。

步骤三中所述的K1、K2、K3类团中的扫描单元的分别连接方法为:

用扫描链结构将K1、K2、K3类团中的扫描单元分别连接,形成三类扫描链;设被测电路共有m个扫描输入端(Scan_in),步骤二中有A个扫描单元划入K1类团,有B个扫描单元划入K2类团,有C个扫描单元划入K3类团,则每条扫描量的长度d相等,且满足:

[Ad]+[B2×d]+[C3×d]=m,

上式中[]表示数学中的“取整”运算(如图8)。

图8是图4中的扫描单元执行步骤二后,采用本发明提出的扫描链结构重新构建的扫描链,每条扫描链的长度d=4。

步骤四中所述的根据扫描链结构的变化调整测试向量集的方法为:第一类扫描链的测试向量集保持不变;第二类扫描链的测试向量集仅保留相容优化后的单条链数据;第三类扫描链的测试向量集仅保留相容优化后的单条链数据。

根据图8的扫描链结构,执行步骤四后,测试向量集可参见图9。

步骤五中所述的重复性数据压缩的方法为:

所述重复性数据是指在某些扫描链上,一个测试向量周期内该条扫描链上所有扫描单元的测试数据都是“0”或者都是“1”(如图9中就存在重复性数据);设被测电路共有m个扫描输入端(Scan_in),测试向量集由n个向量组成,执行步骤三后扫描链长度为d(如图10),则测试集中的每个向量可以看作由m个子向量组成,每个子向量长度为d;其方法的具体步骤如下:

步骤1:为数据集中的无关位”X”赋值,具体值等于该位数据的前一位数据值;

步骤2:根据子向量的数据特征(重复性数据或者普通数据),为每个子向量确定控制字(控制字的代码和含义见图13);

步骤3:将重复性数据从数据集中剔除(如图11);

步骤4:整理压缩后的数据,以向量为单位,将多链形式的数据按照进入被测电路扫描链的先后顺序整理为单一数据流的形式(如图12)。

在图3的例子中,原始测试集中有12*4=48位数据;而采用本方法后,图12中压缩后的数据集与控制字一共为16+14=30位数据。因此本方法采用的扫描链结构和测试数据压缩算法对于数据量的减少比较有效。

步骤六中所述的解压缩电路由一个有限状态机(FSM)、一个存储器(memory)、一个多路选择器(MUX)、一个log2m位计数器、一个log2d位计数器、一个m×2位FIFO和一个m位移位寄存器组成(如图14);存储器用于存放控制字,m×2位FIFO则作为临时寄存器存放处理当前测试向量所需的多路选择器的地址数据,而多路选择器则根据地址选择输出相应的数据。FIFO的容量设定为m×2位。有限状态机则完成对其他各个部件的逻辑控制功能。en是使能信号,当en输出1表示解码器已准备就绪,等待接收压缩数据;压缩数据从Data_in端进入解压缩电路;

其解压缩电路的工作过程为:测试开始后,FSM首先从memory读取控制字,并根据读取结果将相应的地址数据写入FIFO。若控制字首位为0,则直接向FIFO写入“00”;若控制字首位为1,则继续读取下一位控制字,若下一位为0,则向FIFO写入“10”,否则写入“11”。每次写FIFO时,log2m位都加1,直到FIFO被写入m次。此时,FIFO中存入第一个测试向量所需的m个地址数据;然后FSM启动FIFO的读指针RD,FIFO每输出一个地址,多路选择器相应地输出一位数据,并将此位数据输入m位移位寄存器。在这个过程中,shift信号置1、log2m位计数器保持计数状态。当计数器记到m,表示m位移位寄存器已经被写满,此时FIFO的读指针RD已经指向最后一个数据,Done2信号置1,m位移位寄存器将测试数据写入被测电路。

电路中的log2d位计数器用来表示一个测试向量的结束。每当移位寄存器中的m位数据写入被测电路后,该计数器都进行加1操作,同时Reset3信号启动将使FIFO的读指针归零以进行下一循环m位数据的操作。当log2d位计数器计满,表示一个测试向量结束,则FSM将再次从memory中读取控制字,FIFO中的地址数据将被更新,下一个测试向量的解压缩过程开始。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号