一种压缩编码方法与流程

文档序号:12728756阅读:483来源:国知局
一种压缩编码方法与流程

本发明属于集成电路芯片测试技术领域,涉及一种压缩编码方法,用于对集成电路芯片测试数据进行压缩。



背景技术:

测试成本的迅速增长是目前集成电路设计制造中的一个主要问题。一方面,随着特征尺寸的减小,集成电路中所包含的IP核与集成的逻辑门数量增多,使得所需测试数据规模增大;而另一方面,自动测试仪(ATE)的工作频率、I/O通道数目、传输带宽、存储能力却增长有限。两者之间的矛盾是导致测试时间增加,测试成本上升的主要原因。

对测试数据进行压缩是一种能有效解决该矛盾的方法。目前测试数据压缩方法主要分为三类:基于线性解压结构的压缩方法、基于广播扫描的压缩方法和基于编码的压缩方法。

其中编码压缩方法主要针对给定测试集,将测试集中的测试数据分割成多个符号(字符串),再将每个符号用一个新码字替代,形成压缩后的数据,存储在ATE中。编码压缩方法主要分为两类,其中一类是基于游程的编码方法,它的基本原理是对原始测试数据中连续的0或1的长度(称作游程)进行编码;另一类是基于数据块的编码方法,它是将原始数据划分为定长或变长的数据块,根据不同数据块的出现频率进行编码,对高频率的数据块赋予较短的码字。

目前基于游程的编码压缩方法,大都是根据整个测试集的游程分布情况提出的,没有考虑到在测试集的不同测试向量之间,游程分布存在着巨大差异。

最初的基于游程的编码方法是FDR编码,是为了解决原始的定长游程编码在短游程时的劣势而提出的。FDR编码是在每个码字前增加了一位指示位,用于区别该码字是对0游程的编码还是对1游程的编码,相比于针对0游程的FDR编码扩大了范围。

EFDR编码是一种重要的基于游程的编码压缩方法。EFDR编码被称之为FDR编码的扩展码,在FDR编码的基础上增加了一位标识位,0表示对0游程编码,1表示对1游程编码。由于可同时对两种游程编码,因此经过对无关位X的适当填充,EFDR编码的游程总数会远远小于仅基于0游程的FDR编码,其压缩率也比FDR编码有较大提高。

然而,EFDR的优势体现在长游程较多的码流中,一旦游程长度的分布不同,压缩的效果会大大下降。比如EFDR编码施加在变化频繁的码流上,由于短游程特别多,编码后的码字甚至可能比原始的数据还要多,无法起到编码的效果。

针对这一缺陷,AEFDR(Adaptive EFDR)编码得以提出。AEFDR编码在EFDR的基础上增加了参数N,表示码字前缀和后缀的长度差。这样,根据输入码流的游程分布,通过选择合适的N值就可以在不同的输入码流压缩中取得较为理想的效果。AEFDR(Adaptive EFDR)编码较原EFDR编码的平均压缩率有了一定提高。

随着集成电路制造工艺的日益改进,仍需进一步提高对芯片测试数据的压缩率和压缩速度。本发明正是在AEFDR(Adaptive EFDR)编码的基础上进一步提升了对芯片测试数据的压缩率和压缩速度。



技术实现要素:

本发明的目的正是针对EFDR编码在游程分布不同时难以取得很好的压缩效果的缺点,采用了固定前后缀长度差N值的方法,选取一定数量的游程并统计出现频率,压缩效果迅速大幅提升。

本发明提供了一种压缩编码方法,编码采用由标识位加前缀再加后缀组成,其中

标识位是在每个码字前增加一位指示位0和1,用于区别该码字是对0游程的编码还是对1游程的编码;

前缀与EFDR编码中前缀相同;

后缀长度与前缀长度相差一个N值;

基于游程编制码表;

统计过去S个游程中出现频率最高的游程数量Y,并按出现频率由高到低的顺序依次与上述码表中第1至Y-1的游程互换,S和Y为自然数。

作为优选,N值为0或1。

本发明是基于原EFDR编码提出的自适应算法,通过固定该自适应算法的码字前后缀差值参数N,根据输入比特流的特性,赋予出现频率最高的游程最短的码字,自行调整来实现压缩率的提升和自适应性的增强。

采用本发明进一步提升集成电路芯片测试数据压缩率,经测试压缩比至少可达10%以上。同时由于采用了选择Y参数的编码方法,进一步提升了测试数据的压缩率和压缩速度。

附图说明

图1是本发明的实施例中5-50随机游程的频率分布图;

图2是AEFDR原码表转换为本发明的新码表;

图3是本发明与AEFDR编码的1-30随机游程的压缩率比较图。

图表中:Run-length为游程;Coding为编码;Compression Ratio为压缩率。

具体实施方式

下面将结合实施例对本发明作进一步详细描述:

本发明的压缩编码方法同样是针对EFDR编码的缺点,即在游程分布不同时难以取得都很好的压缩效果,保留了EFDR编码同时对0和1游程编码的特点,同时也借鉴了AEFDR可以将其编码方式应用于游程分布未知或者随时间变化的码流的优势,进一步改善测试数据压缩率。

因此,本发明的编码具有原EFDR编码的基本特征,也是采用由标识位加前缀再加后缀组成。其中,标识位是在每个码字前增加一位指示位0和1,用于区别该码字是对0游程的编码还是对1游程的编码。前缀与EFDR编码中前缀相同,对于不同组别Ak(k=1,2,3),前缀编码由k减1(k-1)个1和一个0构成。

本发明中后缀长度与前缀长度相差一个固定的N值。编码表中,起始的游程长度为1位,对应的起始编码长度为(3+N)位,同一组别的游程编码长度不变,跨组别的相邻游程编码长度增量为2;每一个组别Ak中,包含的游程长度个数为2k+N个。

在上述条件下,基于游程编制码表。

统计过去S个游程中出现频率最高的游程数量Y,并按出现频率由高到低的顺序依次与上述码表中第1至Y-1的游程互换,S和Y为自然数。

这里利用了从1开始的极短游程出现频率一般不高的特点,赋予出现频率最高的游程最短的码字,很大提升了压缩率。由于希望出现频率最高的游程对应的码字尽量短,即希望原码表中游程为1的码字尽可能短,所以选取较小的N值。N一般取0或1时效果较好。Y值较大时压缩率一定会大幅提升,但是时间消耗也较大,所以需要在测试实验时做出平衡。

实施例

为了更好地理解本发明,现结合具体测试实验对本发明作详细阐述。

实验选取由游程从1随机到30的码流作为测试基准(benchmark),分别应用AEFDR编码和本发明Y参数的EFDR编码(选定N=0)。

具体选取Y值时,设定游程随机变化为5到50,在S=500的游程序列中统计每种游程的出现次数,可得游程分布,如附图1所示。

根据附图1,按游程出现次数(频率)进行排序后即可得到出现次数最多的游程为15,次多为47、36,以此类推。为简便说明原理,在本例中取Y=3,依次将15、47、36游程与原码表(N=0)中前3个游程互换,具体内容详见附图2。

图3示出了本发明与AEFDR编码的1-30随机游程的压缩率比较图。

从图3所示压缩比的比较可以看出,Y较小时,采用了本发明编码方法的压缩效果与AEFDR编码方法的压缩效果相近。但是从Y=5开始,本发明编码方法的压缩效果提升得很快,几乎呈线性关系。而当Y超过30时,曲线持平是因为被统计的S个游程中只有30种不同的游程,码表不再变化,压缩效果维持不变。

由上述测试可以看出,Y值小时,本发明的编码压缩效果与AEFDR编码几乎相同,随着Y值得增大,本发明的编码方法压缩效果迅速提升,最好的压缩比可达到10%。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

本发明不限于以上对实施例的描述,本领域技术人员根据本发明揭示的内容,在本发明基础上不必经过创造性劳动所进行的改进和修改,都应该在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1