关键词:数据块相容数据块合并合并块压缩/解压
中图分类号:TP39文献标识码:A文章编号:1007-3973(2012)004-074-03
1引言
随着当今工艺技术的不断发展, 一个芯片上能够集成的 IP核越来越多, 功能越来越复杂, 从而使得测试芯片所需要的测试数据量也随着集成电路复杂度的提高而急剧增大。有资料表明, 到2014年, 片上系统(Systems-on-Chip,SoC)的测试数据量将是 1999年的 150倍大量的测试数据不仅增大了测试时间,而且给自动测试设备(Automatic Test Equipment,ATE)的存储容量、测试通道、速度等带来了严峻的挑战。
一种有效减少测试数据量的方法是采用测试数据压缩技术,测试数据压缩技术是采用位数较少的数据来代替原来的测试数据,将这些较少的测试数据存储在ATE的存储单元中,然后将它们传输给被测电路中的解码器,从而还原成原来的测试数据进行测试,其具体原理如图1所示。测试数据压缩方法不仅减少了ATE的存储要求,也减少了测试时间等。测试数据压缩方法主要可分成以下三类:(1)基于编码的压缩方法;(2)基于线性解压的方案;(3)基于广播扫描的方案。
基于编码的压缩方法是对预先计算好的测试数据进行编码压缩, 然后由芯片内置的解码电路将编码还原成原始测试向量并施加到待测电路上。按照分块与编码位数的不同,又可分为定长-定长编码方案,如字典编码、定长-变长编码方案,如Selective Huffman编码、9C码、变长-定长编码方案,如参考文献[5]、变长-变长编码方案,如RL-Huffman编码、Golomb编码、FDR、VIHC。
本文提出了一种基于数据块合并的测试数据压缩方法,将一连串的相容数据块用一个合并块及其重复次数表示,然后分别对合并块和重复次数进行编码。解压时,先解压合并块和重复次数的编码字,然后利用重复次数来控制合并块的重复利用。这种压缩方法在压缩测试数据时不需要考虑被测电路的内部信息,因此非常适用于SoC中的IP核测试。
2数据块合并
2.1数据块合并
数据块合并技术是一种分块编码,将一个测试集划分成若干个长度为B的数据块,然后按照数据流的方向,检查每个数据块与其后面一个数据块是否相容,若相容,则将它们合并到一个合并块中,并对相应的无关位进行填充,例如,相邻两数据块x0xx和1xxx相容,那么将他们合并成一个合并块10xx。该技术不断的将连续的相容块合并到一个合并块中,直到下一数据块与当前合并块不相容为止,并用NC来记录当前合并块中合并的相容数据块个数。通过数据块合并之后,将一连串的相容数据块用一个合并块及其重复次数表示,为了进一步提高测试数据压缩率,本文分别对合并块及其重复次数进行编码压缩。
对于数据流中NC的各种取值情况(假如有N种),本文采用选择huffman编码与字典编码相结合的编码方法对其进行压缩,与合并块编码相似,也是通过统计各种NC出现的次数来构建一棵Selective Huffman树。并且也只针对发生频率最高的前X个NC值构建一个选择huffman树,与合并块编码不同的是,对于剩下来的其余NC取值,本文采用字典编码方法进行编码。在编码时,用一位标记位来表示当前NC值是采用Huffman编码字表示还是采用字典编码字表示,当标记位为0时,表示用Huffman编码字表示,当标记位为1时,表示用字典编码字表示。值得注意的是,在字典编码时,为了提高压缩率,不再采用长度为的编码字来表示,而是采用X位的编码字来表示,这是因为部分NC的值参加Huffman编码,使得。另外,为了不影响压缩效果, X与NC之间必须满足不等式关系。
为了说明本方法的有效性,在测试集中截取一段数据进行举例说明,如图2所示。经过数据块合并之后,其合并块及其重复次数NC如表1所示。然后分别对合并块及其重复次数NC进行编码,其中表2显示了合并块与其编码字之间的对应关系本实例中N=3,所以通过上面不等式得到X>=1,重复次数NC与其编码字的对应关系。最终,共33位,压缩率高达67%。
3解压结构
本方案的解压结构如图4所示,主要由控制器、数据块解码器和CN解码器组成。数据块解码器由一个Huffman解压器和一个寄存器组成,其中Huffman解压器用来对读入的数据块编码字进行解压,而用一个长度为B的寄存器来存储当前的数据块,以便于通过控制信号final来控制数据块的重复。CN解码器由Huffman解压器、字典和计数器counter组成,这里的Huffman解压器和字典是用来对CN编码字进行解压的,而将解压后的结果CN存放在计数器counter中,每当复用一次当前数据块,counter中的值CN就减一,当CN为0时,信号final有效,通知数据块解码器复用结束。控制器主要用来控制从data_in输入进来的编码字是发送到数据块解码器中解压还是发送到CN解码器中解压。
4实验部分
为了证实本方案的有效性,本文采用与Golomb、FDR等中相同的实验电路。这些实验电路是ISCAS-89标准电路中的几个大电路,其测试集由Mintest ATPG测试生成工具生成的。
出于对实验结果公平性比较的考虑,本文选择了与Selective Huffman编码和block mergin等传统的基于数据块编码的压缩方法进行比较,如表4所示。由表可知,本文方法的最大数据压缩率能达到89.54%,对于ISCAS-89标准电路而言,其平均压缩率为69.63%,相比Selective Huffman编码和block merging技术而言,压缩率分别提高了7.06%和5.16%,所以与其他压缩技术相比,本文方法在数据压缩率方面占到很好的优势。
5总结
由于测试集中存在着大量的无关位,从而使得一些连续的数据块之间出现相容的情况,针对这一情况,本文提出了一种基于数据块合并的测试数据压缩方法,将一连串的相容数据块用一个合并块及其重复次数表示,然后分别对合并块和重复次数进行编码。解压时,先解压合并块和重复次数的编码字,然后利用重复次数来控制合并块的重复利用。这种压缩方法在压缩测试数据时不需要考虑被测电路的内部信息,因此非常适用于SoC中的IP核测试。实验结果表明,相对于
参考文献:
[1]A. Khoche,J. Rivoir.I/O bandwidth bottleneck for test: is it real[C]. Proceedings of Test Resource Partitioning Workshop,2002.
[2]Lei Li,Krishnendu Chakrabarty.Test Data Compression Using Dictionaries with Fixed-Length Indices[C].Proceedings of 21st VLSI Test Symposium,2003:219-224.
[3]A. Jas, J. Ghosh-Dastidar, M.-E. Ng, N.A. Touba.An Efficient Test Vector Compression Scheme Using Selective Huffman Coding[J].IEEE Trans.Computer-Aided Design,2003,(22):797-806.
[4]Tehranipour M, Nourani M, Chakrabarty K.Nine-coded compression technique for testing embedded cores in SoCs[J].IEEE Trans. Very Large Scale Integr.(VLSI) Syst.,2005,13(6):719-731.
[5]A. Jas ,N.A. Touba.Test vector decompression via cyclical scan chains and its application to testing core-based designs[C].Proceedings of Int. Test Conf.,1998:458-464.
[6]Nourani M, Tehranipour M.RL-Huffman encoding for test compression and power reduction in scan application[J].ACM Trans. Des. Autom. Electron. Syst.,2005,10(1):91-115.
[7]A.Chandra,K.Chakrabarty.System-on-a-chip test data compression and decompression architectures based on Golomb codes[J].IEEE Trans.Comput.-Aided Design Integr. Circuits Syst.,2001,20(3):355-368.
[8]Chandra A,Chakrabarty K.Test data compression and test resource partitioning for system-on-a-chip using frequency-directed run-length (FDR) codes[J].IEE