基于逐次逼近法的编码压缩方法

文档序号:7522280阅读:624来源:国知局
专利名称:基于逐次逼近法的编码压缩方法
技术领域
本发明涉及一种集成电路测试技术,特别是对系统芯片(System-on-a-Chip,SoC)的外建自测试(Built-Out Self-Test, B0ST)方法中测试数据压缩方法。
背景技术
随着集成电路技术的发展,单个芯片上集成的IP核越来越多,而每个IP核厂商为了达到较高的故障覆盖率和测试硬故障而引入高质量的测试向量,从而给出的测试数据量会很大,因此SoC测试的测试数据量也越来越大。电路集成度的提高导致测试电路所需的测试数据量过大,这是导致测试成本增加的一个重要因素。而SoC的测试时间主要取决于其测试数据量、数据传输的速度和最大扫描链长度,所以当测试数据量过大时,芯片测试的时间会过长。由于测试数据量的急剧增多,大量的测试数据需要存储在自动测试设备ATE中, 并传送到被测电路,这导致传统ATE设备的存储容量不够用,故需要扩大存储器的容量。但是大容量的ATE设备更加昂贵,从而使得测试成本增大,而且即使将ATE的存储容量扩容至足够大,当测试模式数增加和扫描链长度增长时,测试时间也会延长。扩容ATE设备非常昂贵,对测试数据量进行压缩是解决测试数据量过大问题的有效方法。测试压缩方法首先要有大幅降低测试数据容量的能力,具有高压缩率和很好的适用性;其次压缩后的数据要能够通过解压电路完整的还原,并且解压电路的开销要在可以接受的范围之内,避免以另一种方式增加测试成本。除此之外,压缩方法应该具有良好的扩展性,以满足不同的需求。测试数据压缩的基本原理是,使用无损数据压缩的方法对测试数据进行压缩,将压缩后的测试数据存到离线的ATE上,这样降低了被测芯片的负担,再通过被测芯片上的解压器进行解压,得到被测试电路的原始测试数据,因而减少存储需求和测试时间。良好的压缩方法,能降低对ATE性能的要求。目前,测试数据压缩技术主要分为两大类一类是基于线性解压结构的方案,它是通过线性方程的扩展来实现解码过程。然而,无论是LFSR、X0R网络,还是Illinois扫描结构,都存在一定的线性相关性,可能造成向量的不编码性,虽然可以在ATPG中加入相应约束来保证向量的可编码性,但结果往往会增加测试向量的个数,不利于测试数据压缩和测试时间的减少,同时解压结构依赖确定测试集的特征,因此测试移植性不强。另一类是采用编码的方案,它是把原始测试集进行不同的划分,用较短的码字表示这些划分。常见的编码方案有FDR编码,EFDR编码,交替连续编码,9C编码,混合性编码。编码压缩技术的优点是在不降故障覆盖率的情况下,降低了对ATE性能的要求,能有效地保护知识产权,其被测芯片上的解压模块可以重用,因此,该种技术得到广泛应用。在编码压缩技术中,根据对测试集划分策略的不同,测试集可以分为等长划分或以某一特点变长划分,划分对应的码字也可以是变长或者是定长。因此,可以将编码方法划分为四类定长-定长的编码方法,如字典编码;定长-变长的编码方法,如Huffman编码;变长-定长的编码方法,如游程编码;变长-变长的编码方法,如FDR码、EFDR码等。定长-定长的编码方法和压缩协议简单,但压缩效果不是很好;定长-变长编码方法的压缩效果较前者好些,但一般硬件开销比较大。Huffman编码随着Huffman树的增大,其解压结构也越来越复杂,硬件开销大;变长-变长的编码方法可以取得很好的压缩效果,但该类方法控制协议也比较复杂。定长-变长编码和变长-定长编码在压缩效果和硬件开销方面处于前定长-定长的编码方法和变长-变长的编码方法之间。

发明内容
本发明要解决的技术问题是提供一种新的基于逐次逼近法的编码压缩方法,是一种新颖的定长-变长编码压缩方法,编码方法和压缩协议简单,同时可以取得很好的压缩效果。本发明采用以下技术方案解决上述技术问题的基于逐次逼近法的编码压缩方法的的具体步骤为a、采用自动测试模式生成工具ATPG,生成确定的完全测试集T。b、将所有测试向量级联,即将一个向量的尾部接另一个向量的首部,记为S。C、取测试集的前η位,按照4位一组转换成16进制,在第I位数后添加小数点,形成一个16进制浮点数f。d、求 W=f 对应的整数 X、r。I)首先计算/2,取 bot=|_/2」,t0P=bot+l,r=2 ;2)计算,若其值等于f,则记录x=top, r并转步骤e ;3) bot = Lbot* r^bot」,
top= [top* φ ρ I r=r+l ;4)取mid= L(bot+top)/2」,计算、·/,若其值等于 f,则记录
x=mid, r并转步骤e ;若其值大于f,则top=mid_l ;若其值小于f,则bot=mid+l。重复步骤 4),直到 bot>top,转步骤 5) ;5)若 top 小于 mid,贝丨J bot=top, top=mid,否贝丨J top=bot,
bot=mid,重复步骤d,直到找到整数x、r,使^ =f,转步骤e。e、编码。将X、r进行编码,将S除去前η位,重复步骤C、d,此过程直到S为空。更具体的,可以将x、r按现有广泛应用的偶数位标记编码(CEBM)。本发明的优点在于本发明提供了一种将浮点数转换为形如仏(其中X,r为整数)的无理数的方法,
能以较快的速度找到对应的被开方数和开方次数的最优解,从而保证使用该方法进行编码压缩时可以取得很好的压缩效果。并且本发明具有如下三个特点(1)开方次数从2开始计算,逐次递增,可以保证找到的被开方数和开方次数是最优解;(2)定位被开方数区间的下界和上界较为准确,同时采取二分查找的方法,降低了时间复杂度。(3)在二分查找中,对中间数的运算过程中,全部为整数,可以降低运算复杂度,减少运行时间,加快运算进程。


图I是本发明基于逐次逼近法的编码压缩方法的流程图。
具体实施例方式本发明方法提出一种基于逐次逼近法的定长-变长编码压缩方法,将整个测试集的存储转换成对一组或若干组被开方数和开方次数的存储,请参阅图I所示,该基于逐次逼近法的编码压缩方法的的具体步骤为a、采用自动测试模式生成工具ATPG,生成确定的完全测试集T。b、将所有测试向量级联,即将一个向量的尾部接另一个向量的首部,记为S。C、取测试集的前η位,按照4位一组转换成16进制,在第I位数后添加小数点,形成一个16进制浮点数f。d、二分无理数区间,逐次逼近f,:j对应的整数x、r。I)首先计算/2,取bot= L/2」,top=bot+l, r=2 ;2)计算,若其值等于f,则记录x=top, r并转步骤e ;3) bot = Lbot* r4boi」,top=「top* φορ I,r=r+l ;4)取mid=丨_(bot+top)/2」,计算 ,
若其值等于f,则记录x=mid, r并转步骤e ;若其值大于f,则top=mid_l ;若其值小于f,则bot=mid+l。重复步骤 4),直到 bot>top,转步骤 5);5)若 top 小于 mid,则 bot=top, top=mid,
否则top=bot, bot=mid,重复步骤d,直到找到整数x、r,使&=f,转步骤e。该步骤中,对
中间数mid的运算过程中,mid全部为整数,可以降低运算复杂度,减少运行时间,加快运算进程。e、编码。将x、r按现有广泛应用的偶数位标记编码(CEBM),当然也可以按照其他的现有方式编码,即为对应编码;将S除去前η位,重复步骤c、d,此过程直到S为空。其中,偶数位标记编码方式如表I所示。表I偶数位标记编码编码表
—长度组数奇数位偶数位代码字
0OI01
1Ai_ I~ι--η-
2__PO_I 01_ ()() 01_
3_ AQl_I 01_ ()() 11_
4_ 210_I01__10 01_
_5___11_I01__IOJJ__6__000_I()()1__00 00 01
_7__()()1__001__()() PO 11
............A3..............................
12_ 110__001__10 10 01
13___m__001__10 ο 11CEBM使用了变长到变长的编码方式,第一列是游程长度,第二列是组数,第三列和第四列是代码字的奇数位和偶数位,最后一列是对应代码字。偶数位标记编码的特点是偶数位表示代码字是否结束,奇数位表示游程的长度信息。代码字的偶数位如果为0,表示代码字继续;偶数位如果为1,则表示本代码字结束。而长度信息仅含在奇数位。这样解压可以根据偶数位判断代码字是否结束,根据奇数位判断代码字的长度。如长度为7的编码为000011,其中偶数位为001,奇数位为001。解码时,只用监控偶数位的数据,如果为0,表示代码字继续;如果为1,则表示本代码字结束。在奇数位(001)前增加一位数据1,即得到1001,其对应的十进制值为9,比其代表的长度7多2,因此自减计数时,让计算器的结束值为2即可。偶数位标记编码因易于解码,硬件开销小,得到广泛应用。为了方便描述,举一例进行说明。不失一般性,设原始测试集T= {00011010,11101000,10011111,10011001,01011010,11010011,11101001, …},将其级联后划分成长度为48的等长序列,则数据流为000110101110100010011111100110010101101011010011 11101001…,其前48位可转换成16进制浮点数f=l.AE89F995AD3。I)首先计算 f2= 2. D413CCCFE7551FCA6F09E9, bot=L/2」=2,
top=bot+l=3, r=2 ;2)计算.BB67AE8584C,其值不等于 f,
转步 骤 3 ) ; 3 ) bot = L bot* VW J = L 2 * V2 J = L2 .D413 CCCFE76 J =2,
ορ=[ ορ*^1 = Γ3*ν3 1= [5.32370B908E4l=6, r = r + I = 3 ; 4 )取
mid= L(bot+top)/2 J,计# 4mid 4其值等于f,则记录x=mid, r并转步骤e ;若其值大于
f,则 top=mid-l ;若其值小于 f,则 bot=mid+l。重复步骤 4),直到 bot=5, top=4, bot>top,转步骤 5);5)若 top 小于 mid,则 bot=top,top=mid,否则 top=bot, bot=mid ;则 bot=4,top=5,
重复步骤3)、4)、5),此时有r=4,x=8,使洳=1.AE89F995AD3,所以对数据流000110101
110100010011111100110010101101011010011 11101001 …前 48 位的存储就可以转化为对
被开方数8和开方次数4的存储。请参见下表2,为采用本发明压缩方法的实验结果。使用的是Mintest测试集中的6个时序电路,第一列为电路名称,第二列为原测试集数据位数,第三列为压缩后的数据位数,第四列为压缩效果。表2实验数据
电路名称原测试集
__数据位数压缩率
S5378__23754__9868__58. 46%S9234__39273__16157__58. 86%
S13207 — 165200 —2499884.87%
S15850 — 76986 —2255570.70%
S3841716473881611— 50.46%
S38584__199104__56981__71.38%
平均 I丨I 65.79%以上所述仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。
权利要求
1.一种基于逐次逼近法的编码压缩方法,其特征在于包括下述步骤 a、采用自动测试模式生成工具ATPG,生成确定的完全测试集; b、将所有测试向量级联,即将一个向量的尾部接另一个向量的首部,记为S; C、取测试集的前η位,按照4位一组转换成16进制,在第I位数后添加小数点,形成一个16进制浮点数f ; d、求!^=f对应的整数 X、r, I)首先计算 /2,取 bot=L/2」,top=bot+l, r=2 ;2)计算,若其值等于f,则记录x=top, r并转步骤e ;3) bot = Lbot* \fbot」,top= [topr^iop I,r=r+l ;4)取mid= L(bot+top)/2」,计算 Wmid,若其值等于 f,则记录x=mid, r并转步骤e ;若其值大于f,贝丨J top=mid_l ;若其值小于f,贝丨J bot=mid+l,重复步骤 4),直到 bot>top,转步骤 5) ;5)若 top 小于 mid,贝丨J bot=top, top=mid,否贝丨J top=bot,bot=mid,重复步骤d,直到找到整数1、1',使^^=£1,转步骤e ; e、编码,将x、r进行编码,将S除去前η位,重复步骤C、d,此过程直到S为空。
2.如权利要求I所述的基于逐次逼近法的编码压缩方法,其特征在于x、r按偶数位标记编码。
全文摘要
本发明提供了一种基于逐次逼近法的编码压缩方法,包括下述步骤采用自动测试模式生成工具,生成确定的完全测试集;将所有测试向量级联,即将一个向量的尾部接另一个向量的首部;取测试集的前n位,按照4位一组转换成16进制,在第1位数后添加小数点,形成一个16进制浮点数;用逐次逼近法将浮点数转换成(x、r为整数)的形式,存储被开方数x和开方次数r的编码即可,的值可以通过计算得出。本发明的优点在于开方次数从2开始计算,逐次递增,保证找到的被开方数和开方次数是最优解;定位被开方数区间的下界和上界较为准确,同时采取二分查找的方法,降低了时间复杂度。
文档编号H03M7/30GK102904579SQ20121041511
公开日2013年1月30日 申请日期2012年10月25日 优先权日2012年10月25日
发明者吴海峰, 苏本跃, 程一飞, 詹文法, 刘桂江 申请人:吴海峰
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1