基于参考向量和位掩码的SOC的测试方法转让专利

申请号 : CN201110248480.X

文献号 : CN102353894B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 俞洋乔立岩彭宇陶丽楠向刚

申请人 : 哈尔滨工业大学

摘要 :

基于参考向量和位掩码的SOC的测试方法,涉及SOC的测试方法,解决了现有测试方法在对IP核进行检测时,存在压缩率较低的问题,它包括步骤一:把电路对应的测试数据进行压缩;步骤二:将压缩后的数据传输并存储在ATE上;步骤三:通过芯片上的解压结构对压缩数据解压缩,还原成测试数据;步骤四:用测试数据对IP核进行测试。本发明方法的压缩效率高,高于同类的20%以上,没有增加额外的硬件冗余。用于基于可复用IP核设计的SOC的测试。

权利要求 :

1.基于参考向量和位掩码的SOC的测试方法,它包括如下步骤:步骤一:把电路对应的测试数据进行压缩;

步骤二:将压缩后的数据传输并存储在ATE上;

步骤三:通过芯片上的解压结构对压缩数据解压缩,还原成测试数据;

步骤四:用测试数据对IP核进行测试;

其特征在于步骤一的压缩过程如下:

步骤一一:将电路对应的测试数据按照多扫描链的形式排列,获得多个测试片段;将电路对应的测试数据按照多扫描链的形式排列成测试片段的方法为:设电路对应的测试数据为测试集TD,由n个向量组成,分别为t1,t2,t3,...,tn,IP核内扫描链数量为m,则每个测试向量被平均分割成m组,每组包含d位数据,若每一个测试向量的位数为Ntotal,d=Ntotal/m,若某组数据长度不足d,用不确定位“X”补齐,将所有测试向量的第j组数据组合在一起形成一个扫描链,j=1,2,...,m,所有扫描链的第k位组合到一起构成第k个测试片段;

步骤一二:对所有的测试片段进行团划分,然后根据硬件中分配字典的容量选择团划分后分组中频率高的测试片段作为字典条目;对测试片段进行团划分的方法为:步骤a:针对测试片段建立无向图G=(V,E),其中V为顶点集,E为边集;将无向图中没有边的测试片段利用位掩码进行编码,使该测试片段与有边的顶点相连;

步骤b:在无向图中搜索当前度数最大的点,若最大点唯一,执行步骤d;若最大点不唯一,执行步骤c;

步骤c:选择无关位X最少的顶点作为当前度数最大的点;

步骤d:用所有与当前度数最大顶点相连的顶点建立子图H;

步骤e:搜索子图H,获得该子图H中具有最多公共邻居的顶点对,若不唯一,选择无关位X最少的顶点对作为最多公共邻居的顶点对,然后执行步骤f;若唯一,执行步骤f;

步骤f:合并顶点对;

步骤g:更新子图H,更新无向图G,若无向图G中的E为空,则完成团划分;否则返回步骤a;

步骤一三:根据字典条目中测试片段的出现频率,以由高到低的顺序,利用可变前缀索引编码表进行编码,形成字典中每一个条目的索引;

步骤一四:将步骤一一得到的多个测试片段分别与字典中的每一个条目逐一进行比较,对于存在相容条目的测试片段,采用步骤一五进行压缩;对于不存在相容条目的测试片段,采用步骤一六进行压缩;直到所有测试片段都压缩完成为止;

步骤一五:若所述测试片段使用位掩码,则测试数据的压缩结果为“前缀00+位掩码+索引”;若所述测试片段未使用位掩码,则测试数据的压缩结果为“前缀01+索引”,所述索引是与测试片段相容的条目对应的索引;

步骤一六:利用VPDRL码对测试数据进行压缩,压缩结果为“前缀1+VPDRL码”,完成测试数据的压缩。

2.根据权利要求1所述基于参考向量和位掩码的SOC的测试方法,其特征在于步骤一六中利用VPDRL码压缩的方法为:步骤1、将测试片段排列成逐位移入的数据流;

步骤2、采用动态规划方法对测试数据中的无关位赋值,用游程类型序列T={ti}、游程最小长度序列L={li}和余量序列M={mi}来描述一个测试集;

步骤3、将赋值问题归结为以下数学模型:给定三个长度均为n的非负整数序列T={ti}、L={li}和M={mi},其中1≤i≤n,mn=0;对于长度为n的非负整数序列A={ai},其中0≤ai≤mi,令bi=mi-ai,b-1=0,wi=li+bi-1+ai,给定函数f(i)=f(ti,wi),总代价函数为:求非负整数序列A,使得总代价函数Y(A)最小;

步骤4、对赋值完后的测试向量进行划分,连续的0串由n个0组成,连续的1串由n个

1组成,经过这样的划分后,0游程和1游程是交替出现的;

步骤5、对于0游程和1游程的测试数据进行压缩。

说明书 :

基于参考向量和位掩码的SOC的测试方法

技术领域

[0001] 本发明涉及SOC的测试方法。

背景技术

[0002] 随着集成电路制造工艺的逐渐提高,一块芯片上所集成的IP核(Intellectual Property)越来越多。SOC的复杂度直线上升,与此同时也给SOC测试带来了许多新的挑战。其中测试时间长,测试数据量大,测试功耗大已成为SOC测试中需要注意的三大问题。
[0003] 由于SOC通常是由可以重用的IP核组成,对测试向量进行编码不需要知道IP核的结构信息,测试压缩技术在减少测试数据量和测试时间上能取得很好的效果。传统的数据压缩和解压缩的数据流形式,数据压缩部分是提前做好的,而解压缩电路是在硬件电路上实现,与测试同步进行。具体过程为首先对测试集Td进行压缩,生成相对较小的新测试集Te,再将压缩后的数据存储在ATE(Automatic Test Equipment自动测试设备)上,最后在测试时通过芯片上的解压结构解压还原成测试集Td。
[0004] 数据压缩的优越性在SOC测试领域日趋明显。许多数据压缩的编码方法被提出来。其中比较经典的有Huffman编码、游程(Run-Length)编码、Golomb码、基于字典的编码、基于位掩码的编码方法。针对多扫描链设计的IP核,在分析传统的字典编码和位掩码技术的基础上,提出了一种基于变长度索引和位掩码的字典的测试数据压缩方法(UIBD,Unfixed Index and Bitmask based Dictionary code)。
[0005] 现有测试方法在对IP核进行检测时,存在压缩率较低的问题。

发明内容

[0006] 本发明是要解决现有测试方法在对IP核进行检测时,存在压缩率较低的问题,提供基于参考向量和位掩码的SOC的测试方法。
[0007] 本发明基于参考向量和位掩码的SOC的测试方法的具体步骤为:
[0008] 步骤一:把电路对应的测试数据进行压缩;
[0009] 步骤二:将压缩后的数据传输并存储在ATE上;
[0010] 步骤三:通过芯片上的解压结构对压缩数据解压缩,还原成测试数据;
[0011] 步骤四:用测试数据对IP核进行测试。
[0012] 其中步骤一的压缩过程如下:
[0013] 步骤一一:将电路对应的测试数据按照多扫描链的形式排列,获得多个测试片段;
[0014] 步骤一二:对所有的测试片段进行团划分,然后根据硬件中分配字典的容量选择团划分后分组中频率高的测试片段作为字典条目;
[0015] 步骤一三:根据字典条目中测试片段的出现频率,以由高到低的顺序,利用可变前缀索引编码表进行编码,形成字典中每一个条目的索引;
[0016] 步骤一四:将步骤一一得到的多个测试片段分别与字典中的每一个条目逐一进行比较,对于存在相容条目的测试片段,采用步骤一五进行压缩;对于不存在相容条目的测试片段,采用步骤一六进行压缩;直到所有测试片段都压缩完成为止;
[0017] 步骤一五:若所述测试片段使用位掩码,则测试数据的压缩结果为“前缀00+位掩码+索引”;若所述测试片段未使用位掩码,则测试数据的压缩结果为“前缀01+索引”,所述索引是与测试片段相容的条目对应的索引;
[0018] 步骤一六:利用VPDRL码对测试数据进行压缩,压缩结果为“前缀1+VPDRL码”,完成测试数据的压缩。
[0019] 步骤一一中将电路对应的测试数据按照多扫描链的形式排列成测试片段的方法为:设电路对应的测试数据为测试集TD,由n个向量组成,分别为t1,t2,t3,...,tn,IP核内扫描链数量为m,则每个测试向量被平均分割成m组,每组包含d位数据,若每一个测试向量的位数为Ntotal,d=Ntotal/m,若某组数据长度不足d,用不确定位“X”补齐,将所有测试向量的第j组数据组合在一起形成一个扫描链,j=1,2,...,m,所有扫描链的第k位组合到一起构成第k个测试片段。
[0020] 步骤一二中对测试片段进行团划分的方法为:
[0021] 步骤a:针对测试片段建立无向图G=(V,E),其中V为顶点集,E为边集;将无向图中没有边的测试片段利用位掩码进行编码,使该测试片段与有边的顶点相连;
[0022] 步骤b:在无向图中搜索当前度数最大的点,若最大点唯一,执行步骤d;若最大点不唯一,执行步骤c;
[0023] 步骤c:选择无关位X最少的顶点作为当前度数最大的点;
[0024] 步骤d:用所有与当前度数最大顶点相连的顶点建立子图H;
[0025] 步骤e:搜索子图H,获得该子图H中具有最多公共邻居的顶点对,若不唯一,选择无关位X最少的顶点对作为最多公共邻居的顶点对,然后执行步骤f;若唯一,执行步骤f;
[0026] 步骤f:合并顶点对;
[0027] 步骤g:更新子图H,更新无向图G,若无向图G中的E为空,则完成团划分;否则返回步骤a。
[0028] 步骤一六中利用VPDRL码压缩的方法为:
[0029] 步骤1、将测试片段排列成逐位移入的数据流;
[0030] 步骤2、采用动态规划方法对测试数据中的无关位赋值,用游程类型序列T={ti}、游程最小长度序列L={li}和余量序列M={mi}来描述一个测试集;
[0031] 步骤3、将赋值问题归结为以下数学模型:给定三个长度均为n的非负整数序列T={ti}、L={li}和M={mi},其中1≤i≤n,mn=0;对于长度为n的非负整数序列A={ai},其中0≤ai≤mi,令bi=mi-ai,b-1=0,wi=li+bi-1+ai,给定函数f(i)=f(ti,wi),总代价函数为: 求非负整数序列A,使得总代价函数Y(A)最小;
[0032] 步骤4、对赋值完后的测试向量进行划分,连续的0串由n个0组成,连续的1串由n个1组成,经过这样的划分后,0游程和1游程是交替出现的;
[0033] 步骤5、对于0游程和1游程的测试数据进行压缩。
[0034] 本发明将测试数据按照多扫描的形式排列成测试片段,其次采用团划分算法(CPA,Clique Partition Algorithm)将相同的测试片段划分到同一个分组当中,并用一个符号表示,这个符号称为“索引”,相应的测试片段称为“条目”,条目存储在字典中。最后解压缩,根据索引的内容到字典中查找相应的条目,从而得到原始的测试片段。
[0035] 考虑到硬件开销,字典的容量不可能很大,因此,字典中不可能包括所有的测试片段。另外,由于测试片段出现的频率不一样,借鉴统计编码的思想,本发明提出了一种变长度的索引(UBI,Unfixed Based Index)方案,以期利用较短的索引表示测试片段。测试集中存在大量的相同或相容的测试片段,此外还有大量的无关位,采用团划分算法对测试片段进行分组后,相同或相容的测试片段出现的频率就相对集中,因此变长度索引字典的压缩效率大大高于固定长索引字典。
[0036] 为了得到更多相容的测试片段,本发明引入位掩码技术。位掩码,是指通过编码指出需要修改位的位置,并记录掩盖后的编码形式。在压缩后的编码中必须包括位掩码类型、位掩码位置和位掩码的值。
[0037] 本发明方法的压缩效率高,高于同类的20%以上,没有增加额外的硬件冗余。

附图说明

[0038] 图1为具体实施方式一所述基于参考向量和位掩码的SOC的测试方法的流程图;图2为具体实施方式二中当测试集TD中n=2,m=3,d=6时,按照多扫描链的形式排列成测试片段的过程图;图3为具体实施方式二中当测试集TD中n=2,m=3,d=6时,按照多扫描链的形式排列得到的测试片段S1~S12;图4为可变前缀索引编码表;图5为变长度索引和固定长度索引的长度的比较编码表;图6为具体实施方式六中数据压缩结果;图7为具体实施方式六中团划分的过程图。

具体实施方式

[0039] 本发明技术方案不局限于以下所列举具体实施方式,还包括各具体实施方式间的任意组合。
[0040] 具体实施方式一:结合图1说明本实施方式,本实施方式基于参考向量和位掩码的SOC的测试方法的具体步骤为:
[0041] 步骤一:把电路对应的测试数据进行压缩;
[0042] 步骤二:将压缩后的数据传输并存储在ATE上;
[0043] 步骤三:通过芯片上的解压结构对压缩数据解压缩,还原成测试数据;
[0044] 步骤四:用测试数据对IP核进行测试。
[0045] 其中步骤一的压缩过程如下:
[0046] 步骤一一:将电路对应的测试数据按照多扫描链的形式排列,获得多个测试片段;
[0047] 步骤一二:对所有的测试片段进行团划分,然后根据硬件中分配字典的容量选择团划分后分组中频率高的测试片段作为字典条目;
[0048] 步骤一三:根据字典条目中测试片段的出现频率,以由高到低的顺序,利用可变前缀索引编码表进行编码,形成字典中每一个条目的索引;
[0049] 步骤一四:将步骤一一得到的多个测试片段分别与字典中的每一个条目逐一进行比较,对于存在相容条目的测试片段,采用步骤一五进行压缩;对于不存在相容条目的测试片段,采用步骤一六进行压缩;直到所有测试片段都压缩完成为止;
[0050] 步骤一五:若所述测试片段使用位掩码,则测试数据的压缩结果为“前缀00+位掩码+索引”;若所述测试片段未使用位掩码,则测试数据的压缩结果为“前缀01+索引”,所述索引是与测试片段相容的条目对应的索引;
[0051] 步骤一六:利用VPDRL码对测试数据进行压缩,压缩结果为“前缀1+VPDRL码”,完成测试数据的压缩。
[0052] 具体实施方式二:本实施方式的特点是,具体实施方式一的步骤一一中将电路对应的测试数据按照多扫描链的形式排列成测试片段的方法为:设电路对应的测试数据为测试集TD,由n个向量组成,分别为t1,t2,t3,...,tn,IP核内扫描链数量为m,则每个测试向量被平均分割成m组,每组包含d位数据,若每一个测试向量的位数为Ntotal,d=Ntotal/m,若某组数据长度不足d,用不确定位“X”补齐,将所有测试向量的第j组数据组合在一起形成一个扫描链,j=1,2,...,m,所有扫描链的第k位组合到一起构成第k个测试片段。
[0053] 当测试集TD中n=2,m=3,d=6时,按照多扫描链的形式排列成测试片段的过程如图2所示。图3为得到的测试片段S1~S12。
[0054] 具体实施方式三:本实施方式的特点是,具体实施方式一的步骤一二中对测试片段进行团划分的方法为:
[0055] 步骤a:针对测试片段建立无向图G=(V,E),其中V为顶点集,E为边集;将无向图中没有边的测试片段利用位掩码进行编码,使该测试片段与有边的顶点相连;
[0056] 步骤b:在无向图中搜索当前度数最大的点,若最大点唯一,执行步骤d;若最大点不唯一,执行步骤c;
[0057] 步骤c:选择无关位X最少的顶点作为当前度数最大的点;
[0058] 步骤d:用所有与当前度数最大顶点相连的顶点建立子图H;
[0059] 步骤e:搜索子图H,获得该子图H中具有最多公共邻居的顶点对,若不唯一,选择无关位X最少的顶点对作为最多公共邻居的顶点对,然后执行步骤f;若唯一,执行步骤f;
[0060] 步骤f:合并顶点对;
[0061] 步骤g:更新子图H,更新无向图G,若无向图G中的E为空,则完成团划分;否则返回步骤a。
[0062] 本实施方式步骤a中测试片段利用位掩码编码前需要将测试片段和其他已经划分好团的片段进行对比,如果有连续2位不同,即用位掩码编码;如果超出2位不同,不做处理。
[0063] 具体实施方式四:本实施方式的特点是,具体实施方式一的步骤一三中利用可变前缀索引编码表进行编码,形成字典中每一个条目的索引是采用变长度索引。
[0064] 本实施方式可变前缀索引编码表如图4所示。
[0065] 变长度索引的基本思想是:利用长度较短的索引表示出现频率较高的测试片段,而用长度相对较长的索引表示出现频率较低的片段。变长度索引和固定长度索引(字典容量D=128)的长度的比较编码表如图5所示,由图5可知,变长度索引的长度越来越长,而固定长度索引的长度保持不变。如果各个测试片段出现的频率大致一致时,利用变长度索引字典的压缩效果必然要比定长度索引字典的效果差。然而测试集中存在大量的相同或相容的测试片段,此外还有大量的无关位,采用团划分算法对测试片段进行分组后,相同或相容的测试片段出现的频率就相对集中,因此变长度索引字典的压缩效率大大高于固定长索引字典。
[0066] 具体实施方式五:本实施方式的特点是,具体实施方式一的步骤一六中利用VPDRL码压缩的方法为:
[0067] 步骤1、将测试片段排列成逐位移入的数据流;
[0068] 步骤2、采用动态规划方法对测试数据中的无关位赋值,用游程类型序列T={ti}、游程最小长度序列L={li}和余量序列M={mi}来描述一个测试集;
[0069] 步骤3、将赋值问题归结为以下数学模型:给定三个长度均为n的非负整数序列T={ti}、L={li}和M={mi},其中1≤i≤n,mn=0;对于长度为n的非负整数序列A={ai},其中0≤ai≤mi,令bi=mi-ai,b-1=0,wi=li+bi-1+ai,给定函数f(i)=f(ti,wi),总代价函数为: 求非负整数序列A,使得总代价函数Y(A)最小;
[0070] 步骤4、对赋值完后的测试向量进行划分,连续的0串由n个0组成,连续的1串由n个1组成,经过这样的划分后,0游程和1游程是交替出现的;
[0071] 步骤5、对于0游程和1游程的测试数据进行压缩。
[0072] 具体实施方式六:本实施方式基于参考向量和位掩码的SOC的测试方法的具体步骤为:
[0073] 步骤一:把电路对应的测试数据进行压缩;
[0074] 步骤二:将压缩后的数据传输并存储在ATE上;
[0075] 步骤三:通过芯片上的解压结构对压缩数据解压缩,还原成测试数据;
[0076] 步骤四:用测试数据对IP核进行测试。
[0077] 其中步骤一的压缩过程如下:
[0078] 步骤一一:将测试集中包含的测试向量T1和T2按照多扫描链的形式排列,获得多个测试片段;其中m=16,n=2,d=5,每一个测试向量是80位;
[0079] T1:00XX11100000XXXXX1XXX100XX0000X0X10X110X0011X1X111X110XXXX[0080] XX011100XX11X0XX0XXX11
[0081] T2:X101XX1XXX1XXXX1XXX100XX0XX111XXX101110XXXXX1X1X00XX0X[0082] 100X001XX100XX11X00XX01XXX
[0083] 排列成测试片段S1~S10如图6所示;
[0084] 步骤一二:对所有的测试片段进行团划分,然后根据硬件中分配字典的容量选择团划分后频率高的测试片段作为字典条目;团划分的过程如图7所示;
[0085] 步骤一三:根据字典条目中测试片段的出现频率,以由高到低的顺序,利用可变前缀索引编码表进行编码,形成字典中每一个条目的索引;
[0086] 步骤一四:将步骤一一得到的测试片段分别与字典中的每一个条目逐一进行比较,如图6所示,对于不存在相容条目的测试片段,其压缩数据有1位前缀,用1表示,以及经过可变前缀的双游程编码压缩后的数据组成;对于存在相容条目的测试片段,其前缀为01,然后记录下索引值即可;而对于采用位掩码后才相容的测试片段,其前缀为00,然后记录下位掩码的位置信息和类型,最后记录下索引;其中片段S10,因为采用位掩码后与字典中的第二个条目相容,所以其压缩编码为00 011 10 101。
[0087] 本实施方式中原始的测试数据有160位,经过压缩后减少为83位,压缩效率为48.13%,原始的字典方法中的压缩效率为24.38%,因此本实施方式的压缩效率提高了
24%。