基于FDR码改进分组的SoC测试数据压缩方法
扫描二维码
随时随地手机看文章
摘要:文章提出一种基于FDR码改进分组的SoC测试数据压缩方法。经过对原始测试集无关位的简单预处理,提高确定位0在游程中的出现频率。在FDR码的基础上,改进其分组方式,通过理论证明其压缩率略高于FDR编码,尤其是短游程的压缩率。用C语言编写程序模拟两种编码方法的软件实现程序,实验结果证明了改进分组的FDR编码方法的有效性和高压缩性。
根据2012年美国半导体行业协会编制的《国际半导体发展报告》(The International Technology Roadmap for Semiconductors,NTRS)预测,在2012年至2030年这段时间里,SoC的数据量(Data Volume)将接近10兆兆位元GB,而SoC的数据经过压缩后,其数据量将可能减少一万倍。海量的测试数据使目前集成电路的测试成本与制造成本基本持平,甚至有超过的趋势。如何降低集成电路的测试成本是集成电路业面临的主要问题之一。测试数据压缩是降低测试成本众多方法中的一种。测试压缩能够有效地减少测试数据量,降低对测试数据存储容量和测试设备数据传输通道数量的需求,同时,经过适当设计,还可以降低测试时间和测试功耗。集成电路中的测试数据向量可以分为测试激励和测试响应两大类,因此测试数据压缩也就相应地分为测试激励压缩和测试响应压缩,其中测试激励压缩是无损压缩,测试响应压缩是有损压缩。本文所进行的研究是在无损的测试激励压缩的基础上展开的。
测试激励压缩从测试激励向量中子向量角度出发,有三大类压缩方法:第一大类是基于LFSR的压缩方法,主要是指各种重播方法,根据重播种周期的不同,重播种可以分为单播种(整个测试项量使用一个种子生成)、每向量重播种(每一个测试向量使用一个种子生成)和每周期重播种(每一个测试向量使用多个种子来生成);第二大类是基于扫描切片重叠压缩方法,该方法巧妙利用扫描向量相互重叠关系,是一种低开销的压缩方案;第三大类是基于编码压缩方法,该方法将测试向量水平方向的单个子向量作为输入,利用适当的编码方法,对该输入向量进行编码压缩。目前有许多不同的编码压缩方法,它们使用不同的策略来压缩数据,如:FDR码、Golomb码、交替游程码等。
针对目前流行的各种编码对短游程的压缩率低这一现象,通过研究对比各种编码方法发现,在每种编码方法中,短游程(游程长度在0到10之间)压缩后的编码字几乎都比原游程要长或者持平,这就有可能出现负压缩情况。在FDR码的基础上,本文将其分组进行改进,有效地降低了这一情况的发生。
1 基于FDR码改进分组的编码介绍
通过对测试数据中“0”的游程长度进行分析,得出长度大于20的“0”游程出现频率很低,长度在0和20之间的“0”游程随着游程长度L的增加,出现频率迅速下降。由此可以看出,在测试数据中较短的0游程很多,长游程较少。笔者在FDR编码基础上提出了一种改进分组的游程编码方案。基于FDR码改进分组的编码(以下简称改进分组编码)和FDR编码都是将出现频率最高的O游程编码成尽可能短的码字,不同之处在于,FDR编码从长度为0的游程开始分组,而改进分组编码是从长度为2的游程开始分组,这将大大提高数据压缩率,尤其是短游程的压缩率。
表2提供了一个改进分组编码的实例。在这个例子中,以测试向量中0的个数作为游程长度进行编码。在该例中,对于其中一个测试向量片段00000000001,该片段0游程的长度为10,则其对应的编码为110010,编码后的测试向量相对于原测试向量节省了5位。
2 基于FDR码改进分组的编码方法分析
引理1在基于FDR码改进分组编码中第k组所代表的游程范围为2k-l<1k≤2k+1-1(k=1,2,…),则游程为1的数据对应的编码长度为
。根据该引理通过计算可得到基于FDR码改进分组编码的压缩倍数λ。其中压缩倍数
。假设测试数据中出现0的概率为P,则出现1的概率为(1-p)(其中0