测试压缩

更新时间:2023-06-04 11:03:25 阅读: 评论:0

数字电路测试压缩方法
四击头韩银和胡瑜董婕王伟李华伟李晓维
摘要本文介绍面向数字电路的测试压缩方法。测试向量分为测试激励向量和测试响应向量,因此测试压缩也分为测试激励压缩和测试响应压缩。本文对这两个方面分别进行了介绍,最后还介绍了多种主流测试压缩工具。
关键词数字电路、测试激励压缩、测试响应压缩
1  引言
随着集成电路制造工艺水平的提升和芯片面积的增加,大规模集成电路测试需要越来越多的测试数据。如在中科院计算所设计的龙芯2号芯片中,完成一个完整的测试大概需要2G位的测试数据[1]。如果芯片中集成多个数字芯核,那么测试数据将更为庞大。数量巨大的测试向量会带来很多问题。首先,测试设备需要比较大的存储容量来存储这些向量;其次,为了将测试数据从测试设备传输到芯片需要非常多的测试通道;同时为了提供实速测试,测试设备的频率也需要提得非常高。所有这些问题,固然都可以通过更换高档的测试设备来解决,然而使用越高档的测试设备意味着芯片的测试成本也越高。因此,简单升级测试设备并不是一个很好的解决方案,需要寻求新的测试方法。
测试压缩能够有效地减少测试数据量,也能够降低对测试数据存储容量和测试设备数据传输通道的需求,还可以减少测试时间和测试功耗。图1显示了测试压缩体系结构原理。测试压缩结构主要包含测试激励压缩(片上表现为解压缩电路)和测试响应压缩。从流程上来看,首先使用离线的软件工具对原始测试向量进行压缩,并将压缩后的测试向量存储到测试设备中。在测试准备阶段,将压缩后的数据装载到测试激励解压缩电路,解压缩电路再将向量数据解码后通过扫描链施加到待测电路(芯核)上。在测试阶段,待测电路处于功能状态,捕捉测试响应,最后再通过扫描链将响应数据传送给响应压缩电路压缩,压缩后结果和测试节点上存储的期望结果相比较,以确定芯片是否包含故障。可以看出无论是存放在测试节点中的测试激励,还是测试响应都是经过压缩的,所以其体积非常小。
图1. SOC测试压缩结构原理图
测试压缩包含两个方面,相应的测试压缩有两个主要的研究领域:(1)测试激励端的压缩;(2)测黄芪酒
试响应压缩。压缩在英文中可以使用两个词-compression和compaction,在英文中,两个词的区别在于compression是“无损压缩”,compaction 是“有损压缩”。一般而言,激励端的测试压缩采用无损压缩,而响应端的测试压缩则采用有损压缩。此外,在测试向量生成过程中,有一类压缩称为“dynamic compaction”,它对测试向量的个数进行压缩,并不涉及到有损无损的意思,在本文称为“动态压缩”。
在测试激励端,向量中有很多不关心位。所谓不关心位(don’t care bits)是指在向量中,这些位长城万里
的取值不会影响到对目标故障集的覆盖。不关心位的产生和ATPG 1算法有关。在ATPG 算法中,由于采用通路敏化,只有那些和敏化通路相关的原始输入才需要赋确定值,其它的原始输入赋何值并不影响覆盖率。测试向量中不关心位的比率是相当高的。
至于响应端,则可以使用有损压缩,因此压缩率更高。在BIST 2中,多路输入特征寄存器(MISR 3)就是一个非常高效的响应数据压缩电路,它兼顾了时间压缩和空间压缩两个方面。然而,正是由于它采用了时间压缩,压缩完的故障特征信息量太少,很难对故障进行精确定位。传统的响应压缩电路另一个问题是不能处理响应中的未知位(unknown bits ),即指向量中那些在模拟阶段尚无法确定值的位。激励端的不关心位和响应中的未知位也称X 位。响应中的未知位是电路内部不确定态的外在表现,电路中潜在的未知源包含:非扫描的寄存器、RAM 4和CAM 5、组合环、无驱动的输入、总线竞争、布线上一些不完全满足电气检查规则的地方等。响应中的X 位虽和激励中的X 位具有同样的名称,
但二者产生的机理却完全不同。输入向量中的X 位是ATPG 在产生向量时留下的,这些不关心位的赋值不影响故障覆盖率。而响应中X 位则是仿真中尚无法确定的值。激励中的X 位是我们可以利用的,而响应中的X 位则是需要想办法处理的。如果使用MISR 压缩,响应中由于总线竞争等因素引起的未知位会产生积累效果,影响了对压缩后特征好坏的判断。空间压缩虽然压缩能力不及时间压缩,但是由于其能够提供足够的信息量用于诊断,同时不存在未知位的积累效应,因此适合应用于比较复杂的数字电路测试中。这种压缩电路已受到了学术研究和工业实践的广泛重视。
撒娇宝宝
从图1可以看出,测试压缩的体系结构和BIST 的结构是很相似的。实际上,很多测试压缩技术就来源于BIST 研究。很多在测试压缩领域做出重要贡献的学者,都曾长期从事过BIST 的研究。观察BIST
的STUMPS 6结构,基于LFSR 7的伪随机发生器用于产生测试向量[2]就可以看作是一个测试向量解压缩
电路,存储在片内的种子就是压缩后的数据。在STUMPS 中,MISR 是一个时间压缩电路,最后的特征就是压缩后的结果。当然,测试压缩研究学者们在BIST 研究的基础上,根据新的测试环境的需要,展开了新的研究。所有这些研究使得测试压缩逐渐脱离了BIST 的范畴,发展成为一个独立的研究方向。
牛津小学英语
2  测试激励压缩方法
测试激励数据总体积可以计算为:
vectors scan scan P N L VO ××=
其中,表示扫描链长度,表示扫描链的数目,表示测试数据中包含的向量数目。测试激励数据可以看作是三维结构,上述这三个参数就是这三个维度的取值。图2形象地描述了这三个维度压缩。Z 维压缩是向量个数压缩,也就是我们前面特别强调的动态压缩。动态压缩一般结合在ATPG 算法中。这方面有很多研究,MINTEST scan L scan N vector P [3]就是一个高效的压缩算法。本文中的激励压缩是指从水平方向和垂直方向这两个维度着手压缩的方法。水平压缩主要是减少每一个子向量的位数,这等价于减少扫描链的长度。垂直压缩主要是减少子向量的个数,这等价于减少扫描链的数量。                                                        1
Automatic Test Pattern Generation ,测试向量自动生成 2 Built-In Self Test ,内建自测试 3 Multiple-Input Signature Register
4 Random Access Memory ,随机存储器
5 Content Addressable Memory ,可按内容编址存储器
6 Self-Testing Using MISR and Parallel SRSG ,采用MISR 和并行SRSG(Shift Register Sequence G
enerator 位移寄存器顺序发生器)的自测试
7 Linear Feedback Shift Register ,线性反馈移位寄存器
子向量 1
子向量 2
子向量 3
子向量
4 原始测试向量
压缩后测试向量
压缩后测试向量
垂直压缩
子向量 1
子向量 2
子向量 3
子向量
4 原始测试向量
子向量 1
子向量 2
子向量 3
子向量
4 原始测试向量
图2. 测试激励的三维压缩
压缩研究人员已经在水平压缩和垂直压缩方面提出了很多方法。图3列出了这些方法的一个分类。
测试激励压缩一字之师是什么意思
水平压缩 垂直压缩
编码压缩 LFSR 重播种切片重叠压缩
广播式压缩火车和动车的区别
逻辑变换压缩
每向量重构
每周期重构
线性逻辑变换 非线性逻辑变换
定长-定长
定长-变长
变长-定长
变长-变长
单种子
每向量重播种
友情的诗句古诗词每周期重播种
单配置(Illinois Scan)
图3. 测试激励压缩的分类
水平压缩方法主要包括编码压缩、基于LFSR 的压缩和基于扫描切片重叠的压缩等。编码压缩将测试向量集水平方向的单个子向量作为输入,利用适当的编码,对该输入序列进行压缩,这种方法在图象处理和视频压缩方面已经得到了广泛的使用。基于LFSR 的方法主要是指各种重播种方法。根据重播种周期的不同, 重播种可以分为单播种(整个测试向量集使用一个种子生成)、 每向量重播种(每一个测试向量使用一个种子生成)、每周期重播种(每一个测试向量使用多个种子来生成)。
垂直压缩方法主要包括广播式压缩和逻辑变换压缩。广播式压缩根据配置(原始扫描输入和扫描链输入之间的连接关系)重构周期的不同,可分为单配置、 每向量重构和每周期重构等三种方法。逻辑变换压缩主要包括了一些输入减少方法,它们可以分为线性变换和非线性变换两大类。由纯异或门构成的解压缩网络属于线性变换,其它一些组合逻辑门构成的压缩电路属于非线性变换。
2.1  编码压缩技术
编码压缩在视频图象压缩中广泛使用,因此很容易想到将它应用到测试数据压缩中。测试压缩中的编码方法针对向量中的 “0或1的游程”进行压缩,“游程”是指连续0或1组成的串,“游程长度”是连续0或连续1的数目。
编码压缩方法根据原始数据和压缩后数据体积的变化关系分为四大类,表1列出了四个不同的分类和相对应的编码方法。
编码方法编码
定长到定长Dictionary bad code[29]
定长到变长Statistical Code (such as Huffman code ) [9],[10]
变长到定长Conventional run-length codes [8]
变长到变长Golomb codes[7], geometrical code[11], LZ77  code[12], Frequency-directed run-length codes [7]
表1.编码压缩技术分类
定长到定长编码是使用定长的小数据量块来编码定长的原始数据块。字典编码和LFSR重播种就
属于这种类型。在LFSR重播种中,每一组向量被编码成定长的种子。定长到变长的编码使用一个变长的数据块来编码定长的原始数据块,哈夫曼编码属于这种类型。变长到定长的编码使用定长的数据来编码变长的原始数据,经典的游程编码属于这种类型。变长到变长编码使用变长的数据块来编码变长的原始数据,Golomb编码和FDR8编码就属于这种类型。
在这四大类编码中,变长到变长的编码可以取得较好的压缩效果。Golomb编码是一种变长到变长的编码,可以利用Golomb编码[6]对测试数据压缩,Golomb编码的解码电路面积开销也比较小。FDR 编码[7]充分利用了测试数据中0、1分布的特点,通过改造Golomb编码,在类似解码器面积开销的情况下,提高了压缩率。其它的编码形式,诸如游程编码[8]、哈夫曼编码[9][10]、几何编码[11]、LZH编码[12]等等均可用于压缩测试数据。
2.2  广播式压缩方法
广播式压缩方法利用同一组向量来对不同子电路进行测试,在硬件实现上一般都采用共享扫描输入结构。文献[19]提出了将同一组向量广播到电路不同部分的测试方法。图4给出一个例子,整个电路包含了两个待测子电路CUT(1)和CUT(2)。ATPG首先产生具有一定故障覆盖率的随机向量(该比率可以人工设定,在设定的时候需要考虑覆盖率和向量个数的折衷关系,一般来说70%-85%比较合适)。对于两个子待测电路,这部分随机向量可以是一致的,因此它们可以共享这些向量。对于剩余的故障,使用确定性ATPG算法产生测试向量。由于在确定性测试向量中存在着大量不关心位,
对于在CUT(1)中能覆盖故障子集的确定性向量,通过不关心位的适当赋值,也可以覆盖CUT(2)
a
F
8 Frequency-Directed Run-length Code,频率制导游程编码
中故障子集。因此这部分向量依然可以在两个电路之间共享。如果两个电路完全共享同一组向量,我们就可以将它们的对应输入连接在一起。假设CUT(1)和CUT(2)具有相同的扫描链数目:。在没有共享结构的扫描设计中,需要个输入来移入向量。在共享的结构中,只需要个输入来移入向量。
b F N 2N N
输入 输入
4. 将测试向量广播给不同的待测电路
伊利诺伊(Illinois )扫描结构是另一类比较知名的共享扫描输入结构。美国伊利诺伊大学香槟分校(UIUC ,University of Illinois at Urbana-Champaign )研究人员[20]首先提出这种结构,并对之进行了深入的研究,习惯称其为伊利诺伊扫描结构。图5是伊利诺伊扫描结构的一个示例:
(b) 串行扫描模式
图5. 伊利诺伊扫描结构(两种不同模式)
伊利诺伊扫描结构包含了两种操作模式:串行扫描和广播扫描。图5(a)中介绍了串行扫描模式,图5(b)介绍了广播扫描模式。伊利诺伊扫描结构的精华部分在于广播扫描模式。在这种模式下,扫描链将被分割成多个扫描段(gment ),这些扫描段被连接到相同的扫描输入。尽管广播模式能够覆盖大部分故障,但由于广播模式下的ATPG 是受限的,产生的测试向量可能无法覆盖一些难测故障。为了弥补这部分故障覆盖率的损失,可以使用不受限的ATPG 重新产生向量以覆盖难测故障。测试难测故障的向量可以在串行扫描模式下移入扫描链。由于串行模式下扫描链的长度特别长,向量移入扫描链的时间也会很长,因此应该尽量减少在串行模式下移入的向量个数。
在伊利诺伊扫描结构中,可以将扫描链设计得很短,因而能大大减少测试时间。然而,这种结构依赖于扫描链和扫描输入的固定连接关系。一些在广播模式下无法测试的故障需要使用较长时间通过串行模式来测试。因此,很多学者致力于利用伊利诺伊扫描结构的优点,允许扫描链和原始扫描输入之间的连接关系重构,换而言之,在一种连接关系下不可测的故障,可以利用其它连接关系来测试。这类方法称为“可重构”的伊利诺伊结构,根据重构的时机不同,可重构压缩方法可以分为下面

本文发布于:2023-06-04 11:03:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/859252.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:压缩   测试   向量   扫描   编码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图