CN104485968A - 一种基于变长-变长的动态字典编码压缩方法 - Google Patents
一种基于变长-变长的动态字典编码压缩方法 Download PDFInfo
- Publication number
- CN104485968A CN104485968A CN201410640849.5A CN201410640849A CN104485968A CN 104485968 A CN104485968 A CN 104485968A CN 201410640849 A CN201410640849 A CN 201410640849A CN 104485968 A CN104485968 A CN 104485968A
- Authority
- CN
- China
- Prior art keywords
- dictionary
- test
- code
- elongated
- compression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于变长-变长的动态字典编码压缩方法,利用最简分数展开后的二进制形式实现对测试数据的压缩,编码时只需存储分子、分母和相容长度,解码时无需存储字典,通过计算得出原始测试数据。本发明相比现有技术具有以下优点:压缩前无需对测试集进行预处理,解压时无需存储字典,压缩和解压过程简单,压缩效果较好。
Description
技术领域
本发明涉及编码技术,尤其涉及的是一种基于变长-变长的动态字典编码压缩方法。
背景技术
根据摩尔定律,集成在一块半导体芯片上的晶体管数量约每18至24个月翻一番。SoC的集成度越来越高,使得芯片体积越来越小,制造成本不断降低,系统的性能大大提高。但是,另一方面却给芯片的测试带来很多的问题。主要有以下几个方面:
1)芯片中晶体管的数目成指数倍增长,IC的集成度越来越高,使得测试复杂度越来越高;2)电路中的连线和晶体管数目巨大,且制作工艺十分复杂,使得电路中可能产生的故障数目大且种类繁多,再加上电路外部端口数有限,因而使得测试生成越来越困难;3)电路中最长的扫描链的长度和大量的测试数据将会导致测试应用时间长;4)测试功耗增加会引起很多问题,比如IC的可靠性降低,产品的成本增加,性能验证更加困难,移动设备的便携性降低,严重时甚至可能烧毁芯片;5)测试数据量非常巨大,自动测试设备(Automatic Test Equipment,ATE)测试仪的时钟频、引脚、存储容量都有限,使得ATE测试费用昂贵;6)当IP核嵌入到电路中后,受芯片封装引脚数的限制,电路中芯核的输入输出端口通常不能直接和电路引脚相连,使得测试访问越来越困难。
测试数据压缩技术能有效地减少测试数据量,一方面可以降低测试功耗,另一方面可以减少测试引脚数目,缩短测试应用时间,节约ATE测试成本。它将预先计算的测试数据,经过压缩后存储在ATE中,然后移入芯片,利用片上解压器进行解压,还原成原始测试数据。目前,测试数据压缩技术主要分为两大类:内建自测试(Built-In Self-Test,BIST)和外建自测试(Built-OutSelf-Test,BOST)。
内建自测试,在电路内部建立测试生成、施加、分析和测试控制结构,使得电路能够测试自身。内建自测试电路一般包括:测试生成电路(激励)、数据压缩电路、比较分析电路、理想结构存储电路(ROM)和测试控制电路。内建自测试克服了传统测试方法的缺点,如:测试生成过程长、测试施加时间长、测试成本高、测试复杂度高,广泛用于集成电路可测试性设计中。虽然BIST硬件开销低,但是伪随机测试序列的生成需要耗费大量的测试时间;另外实现BIST需要CUT自身支持BIST技术,但目前很多CUT并不支持BIST,对这些芯片采用BIST会导致测试成本高而且测试复杂。
外建自测试,将测试向量移到离线的ATE上,通过数据压缩来减少存储体积和测试时间,再利用芯片上的解压器对压缩后的数据进行还原。主要分为测试集紧缩(Test Set Compaction,TSC)和测试数据压缩(Test Data Compression,TDC)两类。
测试集紧缩,利用测试立方中含有大量无关位的特点对测试立方进行紧缩。优点在于不需增加额外的硬件开销,缺点在于其非模型故障的覆盖率受到影响。
测试数据压缩,将无损压缩的测试数据存入ATE,再利用芯片上的解压结构还原成原始数据。常见的编码方案有统计码、Huffman编码、9C编码、Golomb码、FDR码、交替连续长度码、Variable_Tail码、变游程码、PTIDR码、混合定变长码等。
编码压缩技术采用的是无损压缩,不影响故障覆盖率;解压结构独立于被测电路,可以有效地保护IP核的知识产权;特别适用于不支持BIST的CUT,应用性更广泛。
编码压缩技术将测试集划分成具有特定规律的序列,采用某种方式编码产生新的代码字进行替代。根据原始序列和用来替代的代码字的长度规律,编码方法可以分为四类:第一类是定长-定长的编码方法,常见的有字典编码;第二类是定长-变长的编码方法,常见的有Huffman编码、9C编码;第三类是变长-定长的编码方法,常见的有游程编码;第四类是变长-变长的编码方法,常见的有Golomb码、FDR码、EFDR码、交替连续编码等。其中,压缩方法最简单的是第一类,但是压缩效率最低;压缩效率较高的是第四类,但硬件开销比较大。第二类和第三类在压缩方法、压缩效率和硬件开销等方面处于第一类和第四类之间。
基于字典的编码方法就是用测试数据中的数据块建立字典,以某种方式记录其索引,编码时使用索引来代替对应的数据块,解码时使用索引在字典中查找对应数据块。然而,该编码方法中字典的生成依赖于测试数据,预处理过程复杂;且解码时需要耗费额外的存储空间来存放字典。
发明内容
本发明的目的在于克服现有技术的不足,提供了一种基于变长-变长的动态字典编码压缩方法,将测试集的存储转换为最简分数的存储。
本发明是通过以下技术方案实现的:一种基于变长-变长的动态字典编码压缩方法,包括如下步骤:
A、将测试集T中的测试向量级联,一个向量的尾部接另一个向量的首部,并标记为S,
B、建立分数字典
(B1)取a=1,b=2,;
(B2)若a,b互质,计算的值,去除小数点,以二进制形式存储其前k位,对应的索引值为a,b;
(B3)循环执行步骤(B2),直到a=m,b=n,其中,k,m,n为整数;
C、根据贪心算法进行编码
(C1)将测试数据S从第一位开始与分数字典逐项按位比较,若前p位相容,计算局部压缩率LCR,其中
Code_len()表示编码长度;
(C2)与字典的所有项比较完后,取局部压缩率LCR值最大的一项,记录其对应索引值a0,b0,相容长度p0,将a0,b0,p0按偶数位标记编码;
(C3)将测试数据S除去前p0位,若不为空,重复步骤(C1)和(C2),否则,编码结束。
本发明相比现有技术具有以下优点:本发明的一种基于变长-变长的动态字典编码压缩方法,利用最简分数展开后的二进制形式实现对测试数据的压缩,编码时只需存储分子、分母和相容长度,解码时无需存储字典,通过简单计算即可得出原始测试数据。采用本发明的方法压缩前无需对测试集进行预处理,解压时无需存储字典,压缩和解压过程简单,压缩效果较好。
附图说明
图1是本发明的一种基于变长-变长的动态字典编码压缩方法的流程图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
一种基于变长-变长的动态字典编码压缩方法,包括如下步骤:
A、将测试集T中的测试向量级联,一个向量的尾部接另一个
向量的首部,并标记为S,
B、建立分数字典
(B1)取a=1,b=2,;
(B2)若a,b互质,计算的值,去除小数点,以二进制形式存储其前k位,对应的索引值为a,b;
(B3)循环执行步骤(B2),直到a=m,b=n,其中,k,m,n为整数;
C、根据贪心算法进行编码
(C1)将测试数据S从第一位开始与分数字典逐项按位比较,若前p位相容,计算局部压缩率LCR,其中
Code_len()表示编码长度;
(C2)与字典的所有项比较完后,取局部压缩率LCR值最大的一项,记录其对应索引值a0,b0,相容长度p0,将a0,b0,p0按偶数位标记编码;
(C3)将测试数据S除去前p0位,若不为空,重复步骤(C1)和(C2),否则,编码结束。
实施例:
A、将测试集T中的测试向量级联,一个向量的尾部接另一个向量的首部,并标记为S,
将测试集T={00X00001,01110100,0101X101,000101X1,10101001…}的测试向量级联,一个向量的尾部接另一个向量的首部,级联后的数据流S为:00X00001011101000101X101000101X110101001…
B、建立分数字典,,
取a=1,b=2,;若a,b互质,计算的值,以16进制保存结果:
a=1,b=2, 120.8
a=1,b=3, 1 3 0.555555555
a=1,b=4, 140.4
a=1,b=5, 1 5 0.333333333
a=1,b=6, 1 6 0.2AAAAAAAA
a=1,b=7, 1 7 0.249249249
a=1,b=8, 180.2
a=1,b=9, 1 9 0.1C71C71C7
a=1,b=10, 1 100.199999999
a=1,b=11, 1 110.1745D1745D
……
去除小数点,按表1转换成二进制形式,
表1 数据转换对应表
以二进制形式存储其前k位,转换后结果如下:
1 2 00001000
1 3 0000010101010101010101010101010101010101
1 4 00000100
1 5 0000001100110011001100110011001100110011
1 6 0000001010101010101010101010101010101010
1 7 0000001001001001001001001001001001001001
1 8 00000010
1 9 0000000111000111000111000111000111000111
1 10 0000000110011001100110011001100110011001
1 11 0000000101110100010111010001011101000101
……
C、根据贪心算法进行编码
(C1)、将测试数据S从第一位开始与分数字典逐项按位比较,若前p位相容,计算局部压缩率LCR,其中:
Code_len()表示编码长度;
(C2)、与字典的所有项比较完后,取局部压缩率LCR值最大的一项,记录其对应索引值a0,b0,相容长度p0,将a0,b0,p0按偶数位标记编码,偶数位标记编码表,参见表2;
表2 偶数位标记编码表
偶数位标记编码使用了变长到变长的编码方式,第一列是游程长度,第二列是组数,第三列和第四列是代码字的奇数位和偶数位,最后一列是对应代码字。偶数位标记编码的特点是偶数位表示代码字是否结束,奇数位表示游程的长度信息。代码字的偶数位如果为0,表示代码字继续;偶数位如果为1,则表示本代码字结束。而长度信息仅含在奇数位。这样解压可以根据偶数位判断代码字是否结束,根据奇数位判断代码字的长度。
如长度为7的编码为000011,其中偶数位为001,奇数位为001。解码时,只用监控偶数位的数据,如果为0,表示代码字继续;如果为1,则表示本代码字结束。在奇数位(001)前增加一位数据1,即得到1001,其对应的十进制值为9,比其代表的长度7多2,因此自减计数时,让计算器的结束值为2即可。
与字典第1项比较:相容长度p=4,
与字典第2项比较:p=5,
……
与字典第10项比较:p=32,
……
经比较,得LCR最大值为0.4375,则a0=1,b0=11,p0=32,则数据流前32位按照偶数位标记编码
由00X00001011101000101X101000101X1得对应编码为:11100011 0000001001,
由32位压缩成18位,减少了14位。
数据流S:00X00001011101000101X101000101X1 10101001…前32位的存储就转化为对分子1、分母11和相容长度32的存储。
(C3)将测试数据S除去前p0位,即数据流S:
00X00001011101000101X101000101X1 10101001…除去前32位,得:10101001…,不为空,重复执行上述编码步骤(C1)和(C2),直到S为孔,编码结束。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种基于变长-变长的动态字典编码压缩方法,其特征在于,包括如下步骤:
A、将测试集T中的测试向量级联,一个向量的尾部接另一个向量的首部,并标记为S,
B、建立分数字典
(B1)取a=1,b=2,;
(B2)若a,b互质,计算的值,去除小数点,以二进制形式存储其前k位,对应的索引值为a,b;
(B3)循环执行步骤(B2),直到a=m,b=n,其中,k,m,n为整数;
C、根据贪心算法进行编码
(C1)将测试数据S从第一位开始与分数字典逐项按位比较,若前p位相容,计算局部压缩率LCR,其中
Code_len()表示编码长度;
(C2)与字典的所有项比较完后,取局部压缩率LCR值最大的一项,记录其对应索引值a0,b0,相容长度p0,将a0,b0,p0按偶数位标记编码;
(C3)将测试数据S除去前p0位,若不为空,重复步骤(C1)和(C2),否则,编码结束。
2.根据权利要求1所述的一种基于变长-变长的动态字典编码压缩方法,其特征在于:建立分数字典中,k,m,n为整数,其值根据实际情况调整,通常取200项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410640849.5A CN104485968A (zh) | 2014-11-13 | 2014-11-13 | 一种基于变长-变长的动态字典编码压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410640849.5A CN104485968A (zh) | 2014-11-13 | 2014-11-13 | 一种基于变长-变长的动态字典编码压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104485968A true CN104485968A (zh) | 2015-04-01 |
Family
ID=52760484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410640849.5A Pending CN104485968A (zh) | 2014-11-13 | 2014-11-13 | 一种基于变长-变长的动态字典编码压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104485968A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807926A (zh) * | 2010-01-21 | 2010-08-18 | 上海电力学院 | 低功耗soc测试数据压缩编码方法 |
US20140317345A1 (en) * | 2013-04-18 | 2014-10-23 | Xerox Corporation | Method and apparatus for an efficient hardware implementation of dictionary based lossless compression |
-
2014
- 2014-11-13 CN CN201410640849.5A patent/CN104485968A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807926A (zh) * | 2010-01-21 | 2010-08-18 | 上海电力学院 | 低功耗soc测试数据压缩编码方法 |
US20140317345A1 (en) * | 2013-04-18 | 2014-10-23 | Xerox Corporation | Method and apparatus for an efficient hardware implementation of dictionary based lossless compression |
Non-Patent Citations (1)
Title |
---|
吴海峰: "无理数字典码的测试数据压缩方案", 《计算机工程与应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101807926B (zh) | 低功耗soc测试数据压缩编码方法 | |
CN103236847B (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
CN100516911C (zh) | 一种块标记的系统芯片测试数据压缩方法 | |
CN100454318C (zh) | 适用于多扫描链设计芯核的soc测试数据的压缩方法 | |
CN101968528B (zh) | 集成电路测试中的测试数据压缩方法 | |
US20140152475A1 (en) | Data compression devices, operating methods thereof, and data processing apparatuses including the same | |
CN102522120B (zh) | 一种字典编码压缩方法 | |
CN102353894A (zh) | 基于参考向量和位掩码的soc的测试方法 | |
US20220231698A1 (en) | Near-storage acceleration of dictionary decoding | |
CN104753541A (zh) | 无理数存储测试向量的测试数据压缩方法 | |
CN110021369A (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
CN101604974A (zh) | 一种具有相同游程长度的测试数据压缩编码、解码方法及专用解码单元 | |
CN102904579B (zh) | 基于逐次逼近法的编码压缩方法 | |
CN104485968A (zh) | 一种基于变长-变长的动态字典编码压缩方法 | |
CN102932000A (zh) | 快速查找无理数的测试数据压缩方法 | |
CN103746704A (zh) | 基于双游程交替编码的芯片测试数据传输方法 | |
CN107026651A (zh) | 二分区间的数据压缩方法及集成电路的测试数据存储方法 | |
Balakrishnan et al. | Matrix-based test vector decompression using an embedded processor | |
Mehta et al. | Hamming distance based 2-D reordering with power efficient don't care bit filling: optimizing the test data compression method | |
CN115882867A (zh) | 一种基于大数据的数据压缩存储方法 | |
CN114466082B (zh) | 数据压缩、数据解压方法、系统及人工智能ai芯片 | |
CN105137322A (zh) | 一种基于最大近似相容的分组测试向量的编码压缩方法 | |
CN109192245A (zh) | 基因变异数据的GDS-Huffman压缩方法 | |
Wijaya | Comparative analysis of performance run length (Rle) data compression design by vhdl and design by microcontroller | |
Balakrishnan et al. | Deterministic test vector decompression in software using linear operations [SOC testing] |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150401 |
|
RJ01 | Rejection of invention patent application after publication |