2024年4月23日发(作者:贰莉)
维普资讯
2008年9月
第31卷第3期
湖南师范大学自然科学学报
Journal ofNatural Science ofHunan Normal University
V01.31 No.3
cp.,2008 S
基于改进FDR算法的SOC测试编码方法
廖
(1.武汉理工大学理学院,中国武汉
摘要
红 ,余燕
430070;2.中南大学物理科学与技术学院,中国长沙410083)
针对集成电路测试数据的特点,提出一种改进FDR压缩、解压算法,它采用对预先计算的测试集中的
…0’和“1”的长度进行交替编码的方式来压缩测试集,提高了编码效率.提出的测试数据压缩方案的解码器硬件结
构非常简单,并提出了一种基于有限状态机的FDR解压缩算法的实现方案,只需极少的电路资源即可实现.仿真实
验结果表明,改进FDR编码算法的数据压缩效果在大多数情况下,优于游程编码和FDR编码.
关键词ATE;测试集;游程编码
TM131.5 文献标识码A 文章编号1000-2537(2008)0343037-05 中图分类号
An Improved FDR Algorithm for Encoding Test—Data of SOC
LIAO Hong,YU Yan
(1.The CoUege of Science,Wuhan University of Technology,Wuhan 430070,China;
2.The School of Physics Science and Tecnolhoy,gCentral South Universiy,Changtsha 410083,China)
Abstract Design for test is all important problem in large scale integrated circuit desin.And comprgession of
test-data for IC checking is criitcal technique to improve ATE’S performance.An improved FDR algorithm based on
he chartacteristics of IC test—data is proposed.which encodes the length of“1’’and“0”alternately.And the cir-
cuit structure of decoder is very simple,which could be implemented wih tfinite state machine.In most of he ex—t
periments,the proposed FDR achieved better compression results than run-length codes and FDR codes.
Key words automatic test equipment;test set;run—length code
1方法介绍
SOC系统中包括很多可复用的IP核.随着设计技术的提高,集成电路的设计规模也在逐渐增大.测试整
合在一个系统中的电路比分别测试它们要难的多.为了减少设计和制造成本,测试这些芯片一定要快速有
效.然而随着测试数据量的增多,ATE(自动测试设备)的工具成本也越来越高….对于芯片测试来说,减少
测试数据量和测试时间的技术变得非常重要.当前主要的测试思路是把一些测试资源从ATE设备中分离出
来,主要有以下三种方法 J.
】)测试集的压缩.通过测试生成算法(ATPG)来压缩测试集,使进入ATE设备的测试集减少.它不需要
额外的硬件电路,但是它可能会减少故障覆盖率【3】.
2)内建自测试设计(Built—in self-Test).在集成电路内部增加产生激励和作测试分析的电路,使芯片不但
能完成逻辑功能,还能在外部给定测试方式命令时进行自我测试分析,并输出结果[4】.当然,使用这种测试
收稿13期:2008-03.12
基金项目:国家自然科学基金资助项目(50474051)
作者简介:廖红(1966.),女,湖南新化人,武汉理工大学副教授.
维普资讯
38 湖南师范大学自然科学学报 第3l卷
方法,会使芯片面积增大很多.
3)测试数据压缩.采用游程编码,FDR(Frequency—directed Run—
length)等算法来压缩测试数据 J.通过对IP核供应商提供的测试集
进行编码,得到小很多的测试集 ,把 放人ATE的内存中,同
时在芯片上设计一个解码单元, 解码后就可得到 ,如图1所示.
对于SOC测试,本文采用的是第三种办法.该方法比采用ATPG
进行测试集压缩的方式更有效,同时不会降低故障率,比BIST方式需
要的硬件面积更小,性价比更高.本文在FDR算法基础上提出了一种 图1数据压缩方案的基本结构
改进的压缩算法.通过对预先计算的测试集中的“0”和“1”的长度进行交替编码的方式来压缩测试集.实验
结果证明,此算法在当前采用的几种压缩算法中,大多数情况下压缩率是最高的,而且实现的硬件也比较简
单,其解码器只需要一个六状态的FSM(有限状态机),加上两个简单的计数器就可以了.
2游程压缩算法和FDR压缩算法
2.1游程算法
测试数据是由0和l两个数字组成,如果用0和l表示游程数据,用一个固定位长的码字来表示0和l
的游程长度,这种算法就可以称为游程编码算法.假如我们采用3位长度的码字来进行游程编码,如果游程
长度超过7位(2。一1),则再用三位进行编码,举例如下:
输人数据流:000000 111111 00000 111 0000000000 11 0000000000000(45 bits)
(0,6) (1,6) (O,5) (1,3) (0,10) (1,2) (0,13)
编码后:0 110 1 110 0 101 1 011 0 111011 l 010 0 111110(34 bits)
此算法的优点是原理简单,硬件实现容易,具有一定的压缩率.不足之处有两个.其一:对于一直变化的
游程,采用固定的编码位数,不太灵活.游程偏大或者偏小压缩率都不高.其二:由于测试码不像图像的像素,
它只有0,l两种变化,所以每一次都使用0,I作为游程开头来表示游程,会增大编码位数.
2.2 FDR算法
为了克服游程编码算法的编码长度限制,文献[8]
给出了一种FDR编码算法.FDR算法的解码结构如图
ATE I I
2所示.这种编码重新排列测试向量 并且相互异或
一
生成差分序列 其中 ={d,, ,…,d }={
巨 Icnhtaeirn aClo lfrcea n
t1,tl 0 t2,t2 0 t3,…,t 一10 t }.编码 i 获得测试
under test
集 .译码时使用一个循环扫描寄存器CSR,再进行
差分运算还原测试集 .在编码之前因为首先进行了
图2 FDR算法的解码硬件结构
异或运算,所以异或后得到的 数据流中0的个数相
对比较多,所以可以用数据流中的“0”的个数来代表整个数据流,而“l”被当作游程个数为9.其编码字主要
特征是:每个编码字有一个前缀码,这个前缀不仅具有区分码字的作用,而且还能够表示一定长度信息,其尾
部分配同一前缀相同长度的二进制码.对应的编码表见表1.这种编码根据连续序列的长度分配不同长度的
编码,没有固定编码长度的约束,因此,能够更有效地压缩测试数据.举例如下:
输人数据流:000000 11l1l1 00000 111 0000000000 11 0000O0o0o0oo0(45 bist)
异或:000000 1 1 1 ll 000000 1 1 00000000000 1 01X)000000tXll ̄
编码后码字:1 10000 0000000000 1 10000 0000 l 10101 00 l 101 l 1(40 bits)
此算法的优点是在传统游程编码的基础上,通过异或测试向量,然后采用如表l的编码规则,提高了编
码的灵活性,提高了编码效率.不足之处是当测试数据中含连续l较多的话,编码效率比较低,同时从图2可
以看出,此算法的译码结构除了一个有限状态机和两个计数器组成的译码部件以外,还需加一个循环扫描寄
存器CSR.
维普资讯
第3期 廖红等:基于改进FDR算法的SOC测试编码方法
3改进的FDR算法及其解码器的实现
3.1改进的FIDR算法
为了适应各种测试向量,进一步提高编码效率,我们在FDR编码基础上提出了一种改进的游程编码算
法.在此算法中,用交替的0和1游程长度来表示整个数据流.同时由于不存在游程O,所以可以改进FDR的
编码表.改进的FDR压缩算法,它的编码表见表2.
表1 FDR编码表 表2改进的FDR编码表
表2同表l相比去除了0游程.它有以下几个特点:
1)码字的前部分和后部分的的编码位数相同.例如:对于A 都是1比特,对于A ,都是2比特.
2)对于群组A ,前部分编码位数等于 .例如:对于群组A:,前部分编码位数等于2.
3)对于群组A ,它包括的游程£游程需满足下列关系2‘一2<L游程≤2” 一2.例如对于群组A3,它包括的
游程需满足2 一2< 游程≤2¨ 一2,也即{7,8,9,10,l1,l2,13,14}.
4)假设P代表码字前部,t代表码字后部,(p,t)代表整个码字,它和群组中游程r的关系是:r n(p)+
n(1)+1,其中 (p)代表码字前部转化为十进制的数据,n(t)代表后部转化为十进制的数据.例如:对于A,
群组中的游程lO,它可以表示:10= (1lO)+ (100)+1=6+4+1.
5)对于群组A ,码字前部分最后一位为0,其余都是1,这使硬件实现比较简单.例如对于群组A,,它的
前部分为l1O,最后一位为0,其余都为1.对于群组A ,它的前半部分为1110,道理也是一样的.
在编码时,同FDR编码不同,它对于“0”和“1”游程交替编码.同时根据测试数据流第1位是0还是1来
固定编码和译码时第一位是代表0游程还是1游程.编码举例如下,数据流第1位是O,因此编码后的1011
代表0的游程个数为6.
输人数据流:000000 1l111l 00000 111 0000000000 11 ooo00oooooooo(45 bits)
6 6 5 3 10 2 13
编码后0 1011 1011 1010 1000 110011 O1 l10110(31 bits)
的码字: a=0 a=l a=0 a=l a=0 a=l a=0
由此看出,它和FDR码相比,由于对1也进行编码,因此算法更灵活,效率更高.
维普资讯
湖南师范大学自然科学学报 第31卷
3.2解码器的实现
放在芯片内部的是解码器,因此我们只关心解码器的实现.解码器的结构方框图如图3.其原理简单表
述如下:
1)Counterl和counter2初始设置为0.ATE通过
En
_
ATE发出“l”给FSM,表明ATE准备好.FSM通
过En—FSM发出高电平“l”给ATE,然后ATE开始输
入数据.
2)第一位数据如果是“0”,则FSM让T触发器
初始为“0”,如果第一位数据是“1”,则初始为“1”.
3)通过Bit—in把数据输入Counterl计数器,根
据改进的FDR编码表,可知,当码字前部最后一位为
“0”时,表示前部发送完毕.Counterl每得到一个数
据,Counter2加1,直到码字前部接收完为止.假如码
字前部位长为k,则需花费k个时钟.
4)码字前部接收完以后,Counterl每时钟减一,T
触发器通过out开始输出“0”或者“1”(根据编码第
一
位来确定),直到Counterl减为“0”,需花费2 一2
个时钟.
5)Count
erl减为“0”后,Counter2开始减一,同时 图3 FDR编码算法的解码器结构图
bit
_
in输入码字后部到Counterl,直到Counter2减为“0”,就不再输入,表示码字后部输入完毕.因为码字后
部和前部位长相同,所以从ATE输入码字后部到芯片需花费k个时钟.
6)Counterl每时钟减一,Out输出数据,直到Counterl减为0后,再多输出一位数据.假设码字后部二进
制所代表的十进制为i,则需花费i+1个时钟.码字后部数据输出最后一位的同时给t高电平,使T触发器翻
转.如果继续输人测试数据,重复步骤(3).如果输人新的测试数据,重复步骤(1).
从以上六步原理出发,每步作为一个状态,实现解码器只需要六状态的有限状态机一个加上 bit的计
数器和log:K+1 bit计数器各一个.实现后综合的面积也非常小.
4测试分析及实验结果
4.1测试时间分析
我们现在假设只用一条测试链进行测试.由于芯片上插入了解码器,因此ATE和芯片里的扫描链可以
运行于两个不同的频率厂ATE和 如图1.从图1可以看出,测试数据从ATE进入芯片到完成芯片的测试时
间0经压缩=t^TE_ch.p 4- 解码器4-0扫描链测试.对于一个码字前部位长为 ,后部二进制转化十进制后为i的码字,在有
解码器插入的情况下,从解码器运行时序中可以推出时间开销为:
tart-chip=2 ,
解码器=(2‘一2+i+1)/fohIp=(2 一1+ )/二 ip.
假设每个数据在进行扫描链测试时需q个时钟(q≥1),则
‘扫描链测试=(2 一l 4- )×q/f,hip.
由于ATE设备的运行频率 和芯片的运行频率 一般都存在比例关系.假设
hi = TE(口=2 ,,l为正整数,口常取4,8,l6 ).
所以采用压缩结构需时问为
t经压缩=tnTE
-
ehlp+£解码器+£扫描链测试=
2 TE+(2 一l+ ) h +(2 一l+ )×q/foh|p=
2k/f^rE+(2 一l+i)/ +(2 一1+i)×q/q .rE.
不采用压缩结构需时间为
‘不经压缩 tArE.chip+‘扫描链测试 (2 一1十 )/fATE+(2‘一1+i)×g/ 1E,
维普资讯
第3期 廖红等:基于改进FDR算法的SOC测试编码方法 41
£经压缩/ 不经压缩=2k/[(2七一1+ )×(q+1)]+1/a.
由于口≥2,后≥1, ≥O,q≥1,可以得出大多数情况下£经压缩/ 经压缩<1,所以在大多数情况下经压缩后测
试时间是减少的.同时,对于FDR解码器来说,它的解码器设计和改进的FDR解码器设计相比,多了一个循
环扫描寄存器CSR电路来进行反异或运算,因此在译码码字相同的情况下,改进的FDR解码器由于不需要
进行反异或运算,时间比FDR算法要少.
4.2实验结果
=
用C语言编写了一个随机数据发生器来模拟芯片测试集,把此测试集输入编码器得到压缩率.压缩率
(To一 )/To.结果如表3.
对比了游程编码算法(采用3位编码),FDR算法和改进的FDR算法之间的压缩率.从表中可以看出,
如果数据中“0”或者“1”游程多数为3位的话,采用3位游程编码算法是最有效率的,如表3中的编号4.如
果输入数据“0”“1”游程比较平均,采用改进的FDR算法优势最明显.
表3 3种编码算法的压缩率比较
4 结语
所提出的一种改进SOC测试数据的编码方案,有效地压缩了测试数据存储量,以及证明了它是如何减
少测试应用时间.这一方案仅仅依据一个预先计算出的测试集,交替编码其中的“0”、“1”长度,并且在芯片
上嵌入解码器,独立于被测试电路.与同类型的编码方案相比较,这一方案不仅具有更高的压缩率,更少的测
试时间,而且更广泛地适应于不同的编码对象,尤其对测试数据流中含有变化较多的数据位,更能够体现出
其优越性.同时大大降低了ATE测试的花费.
参考文献:
[1]http://public.itrs.net/fihs/1999_S;IA_Roadmap/Home.htm
[2]ANSHUMAN CHANDRA,KRISHNENDU CHAKRABARTY.Test resource partitioning for SOCs[J].International Test Confer-
encc,2001,1:1-80.
[3]POMERANZ L,REDDY S M.Smck・at tuple-detection:A fault model based on stuck-at faults for improved defect coverage
[M].Calf:IEEE CS Press,1998.
[4]POMERANZ L,REDDY S M.Stuck-at tuple—detection:A fault model Based on stuck・at faults for improved defect coverage
[M].Calif:IEEE CS Press,1998.
[5]JAS A,TOUBA N A.Test vector decompression via cyclical scan chains and its application to testing core—based design[M].
Calif:IEEE CS Press,1998.
[6] CHANDRA A,CHAKRABARTY K.Frequency—directed run—length(FDR)codes with application to system・on-a-chip test data
compression[J].In proc.VLSI test Syrup,2001,(1):1—100.
[7] 尹志刚,李华伟,李晓维.一种遵循IEEE l149.1标准的可测试性设计结构[J].微电子学与计算机,2003,5:38-39.
[8] CHANDRA A,CHAKRABARTY K.Frequency-Directed Run-Length(FDR)Codes with Application to System-on-lf-Chip Te t
Data Compression[M].Calif:IEEE CS Press,2001.
[9]HEIDEL D,DHONG s,HOFSTEE P,et a1.High_speed seria1izing/de—serilaizing design—orf—test methods ofr evaluating a 1 GHz
microprocessor[J].Proc.VLSI TEST Symp,1998.
2024年4月23日发(作者:贰莉)
维普资讯
2008年9月
第31卷第3期
湖南师范大学自然科学学报
Journal ofNatural Science ofHunan Normal University
V01.31 No.3
cp.,2008 S
基于改进FDR算法的SOC测试编码方法
廖
(1.武汉理工大学理学院,中国武汉
摘要
红 ,余燕
430070;2.中南大学物理科学与技术学院,中国长沙410083)
针对集成电路测试数据的特点,提出一种改进FDR压缩、解压算法,它采用对预先计算的测试集中的
…0’和“1”的长度进行交替编码的方式来压缩测试集,提高了编码效率.提出的测试数据压缩方案的解码器硬件结
构非常简单,并提出了一种基于有限状态机的FDR解压缩算法的实现方案,只需极少的电路资源即可实现.仿真实
验结果表明,改进FDR编码算法的数据压缩效果在大多数情况下,优于游程编码和FDR编码.
关键词ATE;测试集;游程编码
TM131.5 文献标识码A 文章编号1000-2537(2008)0343037-05 中图分类号
An Improved FDR Algorithm for Encoding Test—Data of SOC
LIAO Hong,YU Yan
(1.The CoUege of Science,Wuhan University of Technology,Wuhan 430070,China;
2.The School of Physics Science and Tecnolhoy,gCentral South Universiy,Changtsha 410083,China)
Abstract Design for test is all important problem in large scale integrated circuit desin.And comprgession of
test-data for IC checking is criitcal technique to improve ATE’S performance.An improved FDR algorithm based on
he chartacteristics of IC test—data is proposed.which encodes the length of“1’’and“0”alternately.And the cir-
cuit structure of decoder is very simple,which could be implemented wih tfinite state machine.In most of he ex—t
periments,the proposed FDR achieved better compression results than run-length codes and FDR codes.
Key words automatic test equipment;test set;run—length code
1方法介绍
SOC系统中包括很多可复用的IP核.随着设计技术的提高,集成电路的设计规模也在逐渐增大.测试整
合在一个系统中的电路比分别测试它们要难的多.为了减少设计和制造成本,测试这些芯片一定要快速有
效.然而随着测试数据量的增多,ATE(自动测试设备)的工具成本也越来越高….对于芯片测试来说,减少
测试数据量和测试时间的技术变得非常重要.当前主要的测试思路是把一些测试资源从ATE设备中分离出
来,主要有以下三种方法 J.
】)测试集的压缩.通过测试生成算法(ATPG)来压缩测试集,使进入ATE设备的测试集减少.它不需要
额外的硬件电路,但是它可能会减少故障覆盖率【3】.
2)内建自测试设计(Built—in self-Test).在集成电路内部增加产生激励和作测试分析的电路,使芯片不但
能完成逻辑功能,还能在外部给定测试方式命令时进行自我测试分析,并输出结果[4】.当然,使用这种测试
收稿13期:2008-03.12
基金项目:国家自然科学基金资助项目(50474051)
作者简介:廖红(1966.),女,湖南新化人,武汉理工大学副教授.
维普资讯
38 湖南师范大学自然科学学报 第3l卷
方法,会使芯片面积增大很多.
3)测试数据压缩.采用游程编码,FDR(Frequency—directed Run—
length)等算法来压缩测试数据 J.通过对IP核供应商提供的测试集
进行编码,得到小很多的测试集 ,把 放人ATE的内存中,同
时在芯片上设计一个解码单元, 解码后就可得到 ,如图1所示.
对于SOC测试,本文采用的是第三种办法.该方法比采用ATPG
进行测试集压缩的方式更有效,同时不会降低故障率,比BIST方式需
要的硬件面积更小,性价比更高.本文在FDR算法基础上提出了一种 图1数据压缩方案的基本结构
改进的压缩算法.通过对预先计算的测试集中的“0”和“1”的长度进行交替编码的方式来压缩测试集.实验
结果证明,此算法在当前采用的几种压缩算法中,大多数情况下压缩率是最高的,而且实现的硬件也比较简
单,其解码器只需要一个六状态的FSM(有限状态机),加上两个简单的计数器就可以了.
2游程压缩算法和FDR压缩算法
2.1游程算法
测试数据是由0和l两个数字组成,如果用0和l表示游程数据,用一个固定位长的码字来表示0和l
的游程长度,这种算法就可以称为游程编码算法.假如我们采用3位长度的码字来进行游程编码,如果游程
长度超过7位(2。一1),则再用三位进行编码,举例如下:
输人数据流:000000 111111 00000 111 0000000000 11 0000000000000(45 bits)
(0,6) (1,6) (O,5) (1,3) (0,10) (1,2) (0,13)
编码后:0 110 1 110 0 101 1 011 0 111011 l 010 0 111110(34 bits)
此算法的优点是原理简单,硬件实现容易,具有一定的压缩率.不足之处有两个.其一:对于一直变化的
游程,采用固定的编码位数,不太灵活.游程偏大或者偏小压缩率都不高.其二:由于测试码不像图像的像素,
它只有0,l两种变化,所以每一次都使用0,I作为游程开头来表示游程,会增大编码位数.
2.2 FDR算法
为了克服游程编码算法的编码长度限制,文献[8]
给出了一种FDR编码算法.FDR算法的解码结构如图
ATE I I
2所示.这种编码重新排列测试向量 并且相互异或
一
生成差分序列 其中 ={d,, ,…,d }={
巨 Icnhtaeirn aClo lfrcea n
t1,tl 0 t2,t2 0 t3,…,t 一10 t }.编码 i 获得测试
under test
集 .译码时使用一个循环扫描寄存器CSR,再进行
差分运算还原测试集 .在编码之前因为首先进行了
图2 FDR算法的解码硬件结构
异或运算,所以异或后得到的 数据流中0的个数相
对比较多,所以可以用数据流中的“0”的个数来代表整个数据流,而“l”被当作游程个数为9.其编码字主要
特征是:每个编码字有一个前缀码,这个前缀不仅具有区分码字的作用,而且还能够表示一定长度信息,其尾
部分配同一前缀相同长度的二进制码.对应的编码表见表1.这种编码根据连续序列的长度分配不同长度的
编码,没有固定编码长度的约束,因此,能够更有效地压缩测试数据.举例如下:
输人数据流:000000 11l1l1 00000 111 0000000000 11 0000O0o0o0oo0(45 bist)
异或:000000 1 1 1 ll 000000 1 1 00000000000 1 01X)000000tXll ̄
编码后码字:1 10000 0000000000 1 10000 0000 l 10101 00 l 101 l 1(40 bits)
此算法的优点是在传统游程编码的基础上,通过异或测试向量,然后采用如表l的编码规则,提高了编
码的灵活性,提高了编码效率.不足之处是当测试数据中含连续l较多的话,编码效率比较低,同时从图2可
以看出,此算法的译码结构除了一个有限状态机和两个计数器组成的译码部件以外,还需加一个循环扫描寄
存器CSR.
维普资讯
第3期 廖红等:基于改进FDR算法的SOC测试编码方法
3改进的FDR算法及其解码器的实现
3.1改进的FIDR算法
为了适应各种测试向量,进一步提高编码效率,我们在FDR编码基础上提出了一种改进的游程编码算
法.在此算法中,用交替的0和1游程长度来表示整个数据流.同时由于不存在游程O,所以可以改进FDR的
编码表.改进的FDR压缩算法,它的编码表见表2.
表1 FDR编码表 表2改进的FDR编码表
表2同表l相比去除了0游程.它有以下几个特点:
1)码字的前部分和后部分的的编码位数相同.例如:对于A 都是1比特,对于A ,都是2比特.
2)对于群组A ,前部分编码位数等于 .例如:对于群组A:,前部分编码位数等于2.
3)对于群组A ,它包括的游程£游程需满足下列关系2‘一2<L游程≤2” 一2.例如对于群组A3,它包括的
游程需满足2 一2< 游程≤2¨ 一2,也即{7,8,9,10,l1,l2,13,14}.
4)假设P代表码字前部,t代表码字后部,(p,t)代表整个码字,它和群组中游程r的关系是:r n(p)+
n(1)+1,其中 (p)代表码字前部转化为十进制的数据,n(t)代表后部转化为十进制的数据.例如:对于A,
群组中的游程lO,它可以表示:10= (1lO)+ (100)+1=6+4+1.
5)对于群组A ,码字前部分最后一位为0,其余都是1,这使硬件实现比较简单.例如对于群组A,,它的
前部分为l1O,最后一位为0,其余都为1.对于群组A ,它的前半部分为1110,道理也是一样的.
在编码时,同FDR编码不同,它对于“0”和“1”游程交替编码.同时根据测试数据流第1位是0还是1来
固定编码和译码时第一位是代表0游程还是1游程.编码举例如下,数据流第1位是O,因此编码后的1011
代表0的游程个数为6.
输人数据流:000000 1l111l 00000 111 0000000000 11 ooo00oooooooo(45 bits)
6 6 5 3 10 2 13
编码后0 1011 1011 1010 1000 110011 O1 l10110(31 bits)
的码字: a=0 a=l a=0 a=l a=0 a=l a=0
由此看出,它和FDR码相比,由于对1也进行编码,因此算法更灵活,效率更高.
维普资讯
湖南师范大学自然科学学报 第31卷
3.2解码器的实现
放在芯片内部的是解码器,因此我们只关心解码器的实现.解码器的结构方框图如图3.其原理简单表
述如下:
1)Counterl和counter2初始设置为0.ATE通过
En
_
ATE发出“l”给FSM,表明ATE准备好.FSM通
过En—FSM发出高电平“l”给ATE,然后ATE开始输
入数据.
2)第一位数据如果是“0”,则FSM让T触发器
初始为“0”,如果第一位数据是“1”,则初始为“1”.
3)通过Bit—in把数据输入Counterl计数器,根
据改进的FDR编码表,可知,当码字前部最后一位为
“0”时,表示前部发送完毕.Counterl每得到一个数
据,Counter2加1,直到码字前部接收完为止.假如码
字前部位长为k,则需花费k个时钟.
4)码字前部接收完以后,Counterl每时钟减一,T
触发器通过out开始输出“0”或者“1”(根据编码第
一
位来确定),直到Counterl减为“0”,需花费2 一2
个时钟.
5)Count
erl减为“0”后,Counter2开始减一,同时 图3 FDR编码算法的解码器结构图
bit
_
in输入码字后部到Counterl,直到Counter2减为“0”,就不再输入,表示码字后部输入完毕.因为码字后
部和前部位长相同,所以从ATE输入码字后部到芯片需花费k个时钟.
6)Counterl每时钟减一,Out输出数据,直到Counterl减为0后,再多输出一位数据.假设码字后部二进
制所代表的十进制为i,则需花费i+1个时钟.码字后部数据输出最后一位的同时给t高电平,使T触发器翻
转.如果继续输人测试数据,重复步骤(3).如果输人新的测试数据,重复步骤(1).
从以上六步原理出发,每步作为一个状态,实现解码器只需要六状态的有限状态机一个加上 bit的计
数器和log:K+1 bit计数器各一个.实现后综合的面积也非常小.
4测试分析及实验结果
4.1测试时间分析
我们现在假设只用一条测试链进行测试.由于芯片上插入了解码器,因此ATE和芯片里的扫描链可以
运行于两个不同的频率厂ATE和 如图1.从图1可以看出,测试数据从ATE进入芯片到完成芯片的测试时
间0经压缩=t^TE_ch.p 4- 解码器4-0扫描链测试.对于一个码字前部位长为 ,后部二进制转化十进制后为i的码字,在有
解码器插入的情况下,从解码器运行时序中可以推出时间开销为:
tart-chip=2 ,
解码器=(2‘一2+i+1)/fohIp=(2 一1+ )/二 ip.
假设每个数据在进行扫描链测试时需q个时钟(q≥1),则
‘扫描链测试=(2 一l 4- )×q/f,hip.
由于ATE设备的运行频率 和芯片的运行频率 一般都存在比例关系.假设
hi = TE(口=2 ,,l为正整数,口常取4,8,l6 ).
所以采用压缩结构需时问为
t经压缩=tnTE
-
ehlp+£解码器+£扫描链测试=
2 TE+(2 一l+ ) h +(2 一l+ )×q/foh|p=
2k/f^rE+(2 一l+i)/ +(2 一1+i)×q/q .rE.
不采用压缩结构需时间为
‘不经压缩 tArE.chip+‘扫描链测试 (2 一1十 )/fATE+(2‘一1+i)×g/ 1E,
维普资讯
第3期 廖红等:基于改进FDR算法的SOC测试编码方法 41
£经压缩/ 不经压缩=2k/[(2七一1+ )×(q+1)]+1/a.
由于口≥2,后≥1, ≥O,q≥1,可以得出大多数情况下£经压缩/ 经压缩<1,所以在大多数情况下经压缩后测
试时间是减少的.同时,对于FDR解码器来说,它的解码器设计和改进的FDR解码器设计相比,多了一个循
环扫描寄存器CSR电路来进行反异或运算,因此在译码码字相同的情况下,改进的FDR解码器由于不需要
进行反异或运算,时间比FDR算法要少.
4.2实验结果
=
用C语言编写了一个随机数据发生器来模拟芯片测试集,把此测试集输入编码器得到压缩率.压缩率
(To一 )/To.结果如表3.
对比了游程编码算法(采用3位编码),FDR算法和改进的FDR算法之间的压缩率.从表中可以看出,
如果数据中“0”或者“1”游程多数为3位的话,采用3位游程编码算法是最有效率的,如表3中的编号4.如
果输入数据“0”“1”游程比较平均,采用改进的FDR算法优势最明显.
表3 3种编码算法的压缩率比较
4 结语
所提出的一种改进SOC测试数据的编码方案,有效地压缩了测试数据存储量,以及证明了它是如何减
少测试应用时间.这一方案仅仅依据一个预先计算出的测试集,交替编码其中的“0”、“1”长度,并且在芯片
上嵌入解码器,独立于被测试电路.与同类型的编码方案相比较,这一方案不仅具有更高的压缩率,更少的测
试时间,而且更广泛地适应于不同的编码对象,尤其对测试数据流中含有变化较多的数据位,更能够体现出
其优越性.同时大大降低了ATE测试的花费.
参考文献:
[1]http://public.itrs.net/fihs/1999_S;IA_Roadmap/Home.htm
[2]ANSHUMAN CHANDRA,KRISHNENDU CHAKRABARTY.Test resource partitioning for SOCs[J].International Test Confer-
encc,2001,1:1-80.
[3]POMERANZ L,REDDY S M.Smck・at tuple-detection:A fault model based on stuck-at faults for improved defect coverage
[M].Calf:IEEE CS Press,1998.
[4]POMERANZ L,REDDY S M.Stuck-at tuple—detection:A fault model Based on stuck・at faults for improved defect coverage
[M].Calif:IEEE CS Press,1998.
[5]JAS A,TOUBA N A.Test vector decompression via cyclical scan chains and its application to testing core—based design[M].
Calif:IEEE CS Press,1998.
[6] CHANDRA A,CHAKRABARTY K.Frequency—directed run—length(FDR)codes with application to system・on-a-chip test data
compression[J].In proc.VLSI test Syrup,2001,(1):1—100.
[7] 尹志刚,李华伟,李晓维.一种遵循IEEE l149.1标准的可测试性设计结构[J].微电子学与计算机,2003,5:38-39.
[8] CHANDRA A,CHAKRABARTY K.Frequency-Directed Run-Length(FDR)Codes with Application to System-on-lf-Chip Te t
Data Compression[M].Calif:IEEE CS Press,2001.
[9]HEIDEL D,DHONG s,HOFSTEE P,et a1.High_speed seria1izing/de—serilaizing design—orf—test methods ofr evaluating a 1 GHz
microprocessor[J].Proc.VLSI TEST Symp,1998.