首页> 中国专利> 一种多扫描链的大规模集成电路测试数据压缩方法

一种多扫描链的大规模集成电路测试数据压缩方法

摘要

一种多扫描链的大规模集成电路测试数据压缩方法,其特征是通过约束的输入精简进行宽度压缩,再通过LFSR和折叠计数器编码进行两维压缩,本发明方法是一种非侵入式的测试数据压缩方法,无需改变被测试的电路结构,尤其是电路中扫描链的结构,将约束输入精简技术,线性反馈移位寄存器LFSR编码和折叠计数器技术有机的结合在一起,降低所需测试数据的存储容量,缩短测试应用时间。

著录项

  • 公开/公告号CN1862274A

    专利类型发明专利

  • 公开/公告日2006-11-15

    原文格式PDF

  • 申请/专利权人 合肥工业大学;

    申请/专利号CN200610085910.X

  • 申请日2006-05-27

  • 分类号G01R31/28(20060101);G01R31/317(20060101);G01R31/3183(20060101);

  • 代理机构34101 安徽省合肥新安专利代理有限责任公司;

  • 代理人何梅生

  • 地址 230009 安徽省合肥市屯溪路193号

  • 入库时间 2023-12-17 17:51:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-07-25

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

    专利权的终止

  • 2008-12-24

    授权

    授权

  • 2007-01-10

    实质审查的生效

    实质审查的生效

  • 2006-11-15

    公开

    公开

说明书

技术领域:

本发明涉及集成电路测试技术,特别是对具有多扫描链的超大规模集成电路的内建自测试(Built-In Self-Test)方法中测试数据压缩方法。

技术背景:

集成电路技术的发展使得可在一个芯片中集成数以亿计的器件,并且可以集成预先设计和经过验证的IP芯核,如存储器核,微处理器核,DSP核等。这种多元化的集成芯片已经成为能处理各种信息的集成系统,被称为片上系统或系统芯片SOC。SOC大大降低了系统成本,缩短了设计周期,加快了产品上市时间,但是SOC产品的测试面临越来越多的挑战,如:

1、芯片测试点少,可直接控制或观测的测试点有限,通常只能通过芯片有限的输入/输出引脚进行测试,而芯片内部节点很难通过宏观机械装置直接控制或观测。

2、自动测试设备ATE价格昂贵,芯片的设计和制造技术发展速度比ATE的设计和制造技术发展快,芯片的时钟频率已超过了目前最先进的ATE的频率,无法进行全速测试。

3、测试数据量大,SOC中集成的芯核越多,所需测试数据量就越大。预计到2014年存储测试向量所需存储器的容量是1999年的150倍,将会超过ATE的存储深度。

芯片的测试已成为制约集成电路发展的一个“瓶颈”。已有大量的文献对集成电路的测试方法展开研究,主要有外建自测试和内建自测试两种方法。

外建自测试方法又称为测试源划分技术,此方法将所需的测试向量经过压缩存储在ATE中,测试期间,通过的解压电路将其还原施加到被测电路上。

内建自测试方法,依靠芯片自身的资源完成对芯片的测试。此方法将测试模式生成器TPG、测试过程控制和测试响应评价功能模块嵌入在被测电路CUT上,摆脱了对ATE的依赖,减少了测试费用。

测试控制单元与测试响应评价一般具有成熟的方案解决,相对测试模式生成较为简单,因此,国内外对BIST的研究主要聚焦在测试模式生成方面的居多。针对BIST测试中数据量激增的问题,测试时,一般将经过压缩的测试数据存储在芯片ROM中,测试期间通过片上解压电路将其还原再施加到被测电路上,称为“存储与生成”。针对这种技术已有很多方法,如输入精简的方法,扭环计数器方案等。但这些方案与标准的扫描设计流不相容,需重构扫描链的结构,代价很大。

发明内容:

本发明是为避免上述现有技术所存在的不足之处,提供一种多扫描链的大规模集成电路测试数据压缩方法,是一种非侵入式的测试数据压缩方法,无需改变被测试的电路结构,尤其是电路中扫描链的结构,将约束输入精简技术,线性反馈移位寄存器LFSR编码和折叠计数器技术有机的结合在一起,以其降低所需测试数据的存储容量,缩短测试应用时间。

本发明解决技术问题所采用的技术方案是:

本发明方法的特点是通过约束的输入精简进行宽度压缩,再通过LFSR和折叠计数器编码进行两维压缩,具体步骤为:

a、对被测电路进行伪随机测试,并运用故障模拟工具确定未测试到的故障;

b、采用自动测试模式生成工具ATPG,对所述未测试到的故障生成确定的测试集T;

c、将所述测试集T进行约束的输入精简,所述约束的输入精简是,首先将所述测试集T按照多扫描链的形式排列并进行多扫描链相容压缩获得相容压缩组,再将相容压缩后的测试向量按照单扫描链的形式进行重排,重排后的测试集记为TE;两个测试向量是相容的当且仅当它们的对应位相同或有一个为无关位;

d、在所述TE中,选取一个测试向量进行LFSR编码,生成LFSR的种子,所生产的LFSR种子即是需要最终存储的测试数据;将由所述LFSR种子展开的测试向量通过折叠计数器再一次展开,获得折叠计数器序列,将所述折叠计数器序列中包含的TE中的测试向量记录下来;

e、在TE中找出与步骤d中已经记录下来的测试向量相容的测试向量,并将找出的测试向量从TE中删除掉;

f、循环所述步骤d和e,直至TE为空。

本发明方法的特点也在于:

所述测试集T中所有的测试向量中包含有无关位“X”,且无关位需占测试向量位数的35%~95%。.

所述步骤c中相容压缩组是采用图论最小覆盖算法获得的最小相容组。

所述LFSR编码的方法是,对于重排后的测试集TE中任一测试向量,使LFSR能成功编码其折叠序列之一即可;所述LFSR的度数的选择为Smax-5到Smax+1,其中Smax为测试集TE中具有最大确定位的测试向量的确定位位数;对于要进行编码的测试向量的选择所遵循的原则是:该测试向量编码后的LFSR种子,经扩展生成的折叠计数器序列能够覆盖TE中最多的测试向量。

LFSR编码技术最早由B Konemann在文献LFSR-Coded test patterns for scan designs.Proceeding of European Test Conference,1991,pp.237-242中提出的。且从理论上证明了,当LFSR的度数为Smax+20时,编码成功的概率为1-10-6。此方法将长的测试向量用短的LFSR种子所替代,从而达到了宽度压缩的目的。

折叠计数器的压缩方法是将确定的测试向量嵌入到折叠技术器的序列当中,仅需存储少量的折叠计数器的种子(折叠种子)就可覆盖全部确定的测试向量。其中一个折叠种子通过折叠计数器展开可生成n+1个状态序列,其中n为折叠种子的位数。其状态序列可由折叠种子应用一定的翻转规则来实现。设折叠计数器的初始状态为S=(s1,s2,...,sn),S∈{0,1}n,其产生的n+1个状态序列记为F(0,S),F(1,S),F(2,S),...,F(n,S)。

则F(i,S)=(inv(1,i)s1,inv(2,i)s2,...,inv(n,i)sn)  (0≤i≤n)

其中inv(j,i)为翻转函数,其公式为:

>>inv>>(>j>,>i>)>>=>>>>>>>>>j>>>if>>>j><>i>>>>>i>>>else>>>>> >>>>>>(>1>≤>j>≤>n>,>0>≤>i>≤>n>)>>>s>

i称为折叠距离,j表示测试向量的第j位。

若inv(j,i)值为奇数,sj翻转,由0变成1或由1变成0。若是偶数,sj保持不变。特别说明的是当sj=‘-’即无关位(don’t care bit)时,sj=‘-’。由折叠种子展开生成折叠序列的例子见表1。

        表1  折叠计数器序列生成实例

    状态  翻转函数     位置值  j=1,2,3,4  距离值    i    F(0,S)     inv(j,i)    0 1 1 0     0 0 0 0     0     F(1,S)     inv(j,i)    1 0 0 1     1 1 1 1     1     F(2,S)     inv(j,i)    1 1 1 0     1 2 2 2     2     F(3,S)     inv(j,i)    1 1 0 1     1 2 3 3     3     F(4,S)     inv(j,i)    1 1 0 0     1 2 3 4     4 

表1给出了一个折叠计数器的完整序列的实例。每个序列都由初始状态0110,折叠距离值i和翻转函数值生成。折叠距离i决定生成是哪一个状态序列,翻转函数值的奇偶性决定那个状态位是否翻转,这里翻转数是奇数的话,对应生成的状态位必须翻转。所举的例子测试向量中不含无关位,当测试向量中含有无关位时,翻转与此类似,只是无关位保持不变。折叠计数器的详细工作原理在“S.Hellebrand,Hua-Guo Liang,Hans-Joachim Wunderlich:AMixed Mode BIST Scheme Based on Reseeding of Folding Counters;Proceedings IEEEInternational Test Conference,Atlantic City,NJ,October 2000,pp.778-784。”中有记载。

在文献Hua-Guo Liang,Sybille Hellebrand,Hans-Joachim Wunderlich:Two-DimensionalTest Data Compression for Scan-Based Deterministic BIST;Proceedings IEEE International TestConference,Baltimore,MD,October 30-November 2,2001,pp.894-902中介绍了LFSR和折叠计数器组合编码的方法,但此方案测试时间长。

与已有技术相比,本发明有益效果体现在:

本发明通过约束的输入精简来实现宽度压缩,再通过LFSR和折叠计数器编码的方案实现两维压缩,不仅大量减少了测试时间,还降低了所需测试数据的存储容量。

附图说明:

图1本发明伪随机测试的结构;

图2多约束输入精简的执行过程;

图3约束输入精简后的测试向量解压框图;

图4为LFSR编码;

图5为本发明的最终解压结构图;

具体实施方式:

实施本发明按如下步骤进行:

a、对被测电路进行伪随机测试,并运用故障模拟工具确定未测试到的故障;

b、采用自动测试模式生成工具ATPG,对所述未测试到的故障生成确定的测试集T;

c、将所述测试集T进行约束的输入精简,所述约束的输入精简是,首先将所述测试集T按照多扫描链的形式排列并进行多扫描链相容压缩获得相容压缩组,再将相容压缩后的测试向量按照单扫描链的形式进行重排,重排后的测试集记为TE;两个测试向量是相容的当且仅当它们的对应位相同或有一个为无关位;

d、在所述TE中,选取一个测试向量进行LFSR编码,生成LFSR的种子,所生产的LFSR种子即是需要最终存储的测试数据;将由所述LFSR种子展开的测试向量通过折叠计数器再一次展开,获得折叠计数器序列,将所述折叠计数器序列中包含的TE中的测试向量记录下来;

e、在TE中找出与步骤d中已经记录下来的测试向量相容的测试向量,并将找出的测试向量从TE中删除掉;

f、循环所述步骤d和e,直至TE为空。

伪随机测试:

参见图1,采用伪随机发生器。通过给定伪随机发生器设定初始状态,让其连续运行一些时钟周期,生成一定数量的测试向量。在内建自测试中最常用的是采用线性反馈移位寄存器LFSR和细胞自动机cellular automata做为伪随机发生器。然后施加这些测试向量到被测电路上,通过故障模拟软件得到这些测试模式测到哪些故障,哪些故障未检测到。在含有多扫描链的被测电路中,伪随机测试向量的生成常采用LFSR。但为了打破LFSR生成序列之间的相关性,需在LFSR和被测电路之间加入一些由异或门组成的异或网络,即相移器。

确定测试集的生成:

伪随机测试完成后,针对伪随机向量未测试到的故障,采用ATPG工具生成确定的测试集T,测试集T中所含的测试向量能够测试到伪随机测试未测试到的故障。。对ATPG工具的选择,要使其生成的测试向量含有无关位。接下来的步骤就是对生成的确定测试集T进行压缩。

约束输入精简

约束的输入精简是对多扫描链结构电路的测试输入执行精简,达到宽度压缩的目的。多扫描链的测试向量,是将原测试集按照多扫描链的形式进行排列分组,约束的输入精简首先将分组进行相容压缩,即相容输入扫描链,然后再按照单扫描链的形式进行重排。重排后的测试向量同原测试向量相比,宽度大大减少,同时Smax也有所降低,也进一步降低了后续步骤中LFSR编码所需的LFSR的度数。约束输入精简的执行过程如图2所示。

图2(a)为确定测试集包含3个测试向量,分成4组,为4条扫描链的测试数据。

图2(b)是按照4条扫描链串行输入排列的测试集。

图2(c)为组相容压缩后的测试集,压缩后测试集的组数记为n’=2。

图2(d)是将组相容压缩后的测试集还原成原测试集的排列形式,其中可以看到原测试集列的合并是限制在组之间合并的,列是按照原组列出现的次序重新排列出结果。

在此例中关键是对图2(b)中新排列的组进行相容合并,这里可以看到组1和3是相容的,并且2与4也是相容的,最终合并成两组,如图2(c)所示。求解最小相容组可用采用图论中对图的划分与最小覆盖的方法来解决,其算法如下:

1、首先建立图论模型,生成相容图,其中每个测试向量作为一个顶点加入图中,当两个测试向量存在相容关系时,则在它们中间用一条无向边相连,这样就得到了一张无权的无向图G。

2、将无向图G复制到一临时数据结构G1中。

3、在G1中找到度数最大的顶点V。

4、建立一个子图,子图由所有与顶点V相连的其它顶点构成。将此子图复制到G1,并将顶点V加入到集合C中。

5、若G1非空,返回到步骤4。若G1为空,则集合C中新增加的顶点构成一个最大相容类。

6、将G-C复制到G1,返回步骤4,直到所有的顶点都在集合C中。

由图2(d)可以看出原12位宽度的测试向量,被压缩成6位,好比原测试电路输入得到精简。解压结构如图3所示,图中n’为最小合并组计数器控制压缩数据串行移入和每列测试数据的施加,最左边的测试数据是TE中第1个测试向量,缓存器输出的扇出线实现相容组的数据解压。这里应用压缩向量需要6个时钟周期。采用单扫描链模式却需12个时钟周期。因此,测试应用时间明显缩短。

LFSR编码

LFSR编码和折叠技术器相结合的技术,可进一步降低所需LFSR的度数。LFSR度数的选择一般在Smax-5到Smax+1之间就可成功编码所有测试向量。本方案的编码方案为从TE中选取一个测试向量,将其对应的所有折叠种子生成出来,只要任意一个折叠种子用LFSR编码成功,那么保留LFSR种子。并且将它用LFSR展开成那个折叠种子向量。这个种子向量生成的折叠计数器状态序列所包含TE的其它测试向量,也一并记录下来。最终保留的LFSR种子,是能够覆盖最多TE中的测试向量,具体执行过程如图4和表2所示。TE中第一个测试向量(1×0110)可被LFSR编码为种子(11),保留这个种子,(11)经LFSR扩展生成的折叠种子向量为(110110),将其通过折叠计数器展开生成的折叠序列如表2所示。

表2  折叠种子向量展开的折叠序列

    折叠序列  计数器内容    F(0,S)  1 1 0 1 1 0    F(1,S)  0 0 1 0 0 1    F(2,S)  0 1 0 1 1 0    F(3,S)  0 1 1 0 0 1    F(4,S)  0 1 1 1 1 0    F(5,S)  0 1 1 1 0 1    F(6,S)  0 1 1 1 0 0

删除折叠序列在TE中覆盖的向量

从TE中删除保留的种子已经覆盖的测试向量,若TE为空,则本方案结束,否则从LFSR编码起重复执行。从表2可看出TE中的测试向量分别与F(0,s)、F(3,s)和F(5,s)相容,将这些向量要从TE中删除,这时TE为空,程序结束。

最终,本实施例中所要存储的种子向量为(11),仅需2位,减少了所需测试数据存储容量。

最终解压结构如图5所示。其中多路选择器完成伪随机测试模式与确定的测试模式选择,LFSR加相移器完成随机模式生成,对故障模拟后生成的硬故障集采用多扫描链相容压缩、LFSR编码与折叠压缩。缓存器存储多扫描链相容压缩后的一列数据,即图2(c)中一例数据,其缓存器输出连接扇出线解压,经过多路选择器施加到多扫描链中。折叠计数器从异或输出端移出n’位时,图中n’列计数器通知被测试电路接收一组数据,然后清零、重复计数,直到一个完整测试模式被应用,接着继续控制下一个测试模式应用。图中LFSR肩负双重任务,一是完成伪随机模式生成,二是对折叠计数器的种子编码。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号