You are on page 1of 37

第七章 内建自我测试(Built-in Self Test)

7.1 前言

在数字科技演进下,超大规模集成电路 ( Very Large Scale Integration )已


经有戏剧性的影响,这些影响不仅使 VLSI 减少制作面积与制造成本,同时也增
加电路的复杂度。就这成效上而言 VLSI 的技术的确带来性能上的重大改善。在
这些 VLSI 实现的系统中,令人乐见的改善成就了效率与成本上很大的利益。然
而,这样的好处却也对 VLSI 的未来造成一些问题,其中的一个问题就是电路测
试,因为随着集成电路容量的成长,逐渐使测试变得更为困难。

高数量原件和有限的输出入是 VLSI 电路的特征,但传统的测试方式在这领域中


却时常变的没效率且不能令人满意。针对时序性线路的自动测试试样产生器
( Automatic test pattern generation )甚至不能用在许多大规模集成电路(LSI)
上,因此如同前章所叙,针对具测试能力的测试技术,像是串行扫描(serial scan)
的设计是必须实现的。但对 VLSI 的电路来说,此测试技术仍然涉及巨量的测试
试样与模拟花费,以及大量的测试输出入数据与巨量测试时间,因此为了延续
VLSI 工业成长,包含测试试样产生器与外部提供测试试样途径的测试方法学是
必要的。

对于任何途径来说,以下的目标要求是必须的: 有高且容易证明的失效涵盖率,
产生最少测试试样,最小的性能衰减,能在实际工作速度下测试,短的测试时间
和合理的硬件费用。针对以上的要求,内建自我测试系统( Bult-In Self-In ) 提
供了可行的解决方式。首先,内建自我测试系统利用减少不同芯片间的联系,来
克服因为有限的输出入所造成瓶颈,并进而减少相当多的测试试样与模拟过程,
除此以外经由测试时程安排,能使同一时间测试许多不同的单位来使测试时间相
对的缩短,且整个硬件面积的额外花费也能借由仔细的设计与透过测试硬件的分
享而变小。

7.1.1 VLSI 测试问题(VLSI


测试问题(VLSI Testing Problem)

高晶体数量,有限的输出入,与时序行为让 VLSI 电路深具特色,但也反应了在


测试电路的困难。高晶体数量增加测试产生器的复杂度与错误的模拟。有限的输
出入大大减少对内部电路控制能力与关察力。时序行为与时序测试试样产生器功
能有关。所以时序测试试样产生器的自动化在测试领域仍是个主要待解决的课
题。
高晶体数量是 VLSI 最与众不同的特色。典型得一个 VLSI 芯片包含数以千百计的
晶体。随着深次微米的科技演进,晶体数量可被推向超过一百万个的限制。这样
高数量的晶体对测试试样产生器与错误模拟有直接性的冲击。即使是非常简单组
合线路,也可以发现执行测试试样产生器与错误仿真所需的计算机时间大约和逻
辑闸的总数量的三次方成比率 [ Will82 ] 。同时,高原件数量也在测试试样的
储存和在测试时间上有很大的影响,一个合理的假设是说测试向量的数量和向量
宽度与电路的大小成线性比。因此测试时间与测试试样的储存与电路大小的平方
成比率。

10 GateCount
SSI
MSI 100
LSI 1,000
VLSI 1990 100,000
VLSI 2000 10,000,000

Pin Count
SSI 10
MSI 20
LSI 40
VLSI 1990 200
VLSI 2000 10,000

1 Gate/Pin Ratio
SSI
MSI 5
LSI 25
VLSI 1990 500
VLSI 2000 10,000

图 7.1 在 IC 科技发展 闸/接脚 比率

虽然有限的输出入(I/O)可能没有如高原件数量那般重要,但仍然造成测试上的
问题,因此在控制与观察上,有限的 I/O 结果造成较低的测试能力。一个芯片的
测试能力大约可由逻辑闸对接角的比率等作估计,此比率大约介在界面接角和逻
辑闸数量之间,因此由于测试能力的变差,使得 VLSI 产品测试变的困难重重。
图 7.1 显示了在 IC 的科技发展上,晶体数量,接角数量,与逻辑闸对接角的比
率。愈高的比率就得到愈低的测试能力。

内建自我测试包含了测试试样产生器及响应评估的硬件,因此大大减少不同芯片
间的联系,故有限 I/O 的限制被缓和下来。一个好的内建自我测试也能把电路分
割成几个标准大小,来减少测试试样与失效仿真器的复杂度。事实上,很多的内
建自我测试的方法就是要避除测试试样产生器,或是错误的模拟,或是避除两者。
由于内建自我测试不像单一芯片一次祇能测试一个,故能轻易的利用时程安排来
同时对多个区块同时进行测试,因此会缩短测试所需的时间。
7.1.2 内建自我测试的结构(Built
内建自我测试的结构(Built-
(Built-in Self-
Self-Test Architecture)

除了在待测电路(CUT)外,基本的内建自我测试结构是由三个硬件模块组成。此
结构如图 7.2 所示。在此途中,测试试样产生器对待测电路(CUT)产生测试试样。
而反应分析器同时压缩且分析测试的反应来决定这待测电路的正确与否。内建自
我测试控制器是控制整个内建自我测试操作的中心单元。在内建自我测试的系统
体系下,像是模块,芯片,电路板,和系统层,对每一个电路体系的层次都有内
建自我测试的控制器。每个内建自我测试控制器负责本身的自我测试、控制较低
层的内建自我测试控制器的运作,并且将测试的结果报告到上一层。测试产生器
的设计受测试策略方案部署所决定,而测试策略的选择受失效涵盖率、测试硬件
额外花费与测试时间所决定。一般可见的策略包含如下:

Test Generator

BIST Circuit Under Test


Controller (CUT)

Response Analyzer

图表 7.2 内建自我测试 结构

Stored Pattern):储存试样的方式以(Stored
储存测试试样(Stored Pattern Pattern)储存试样
达到一定的测试目的。这通常可以在系统测试时发现得到,例如计算
机开关启动的内建自我测试与用微程序对微处理器进行功能测试。

Exhaustive Testing):无遗漏测试对待测电路提供所有可能输入
无遗漏的测试(Exhaustive Testing
的组合。确保非时序行为的错误均能被侦测到。其方法时常用到复杂
且独立成度高的小模块如 PLA 上 [McClusky 1981][Wang 1986]

Pseudorandom Testing):随机测试就是产生带有一定随机特质的
虚拟随机测试(Pseudorandom Testing
特定长度测试试样。测试试样的连续性有一定的顺序,且失效涵盖率
由 测 试 试 样 与 试 样 长 度 所 决 定 。 [Savir 1984] [Williams 1985]
[Wanger 1987]

Weighted Pseudorandom Testimg):加权随机测试提供带有


加权虚拟随机测试(Weighted Testimg
0s 与 1s 分布的随机试样,使其能处理被虚拟随机测试无法测出的抗
拒随机试样失效,而且也能效的缩短测试长度。[Schnurmann 1975 ],
[Chin 1984]and[Wunderlich 1987]。

Pseudorexhaustive Testing):所谓的虚拟无遗漏的测
虚拟无遗漏的测试方法(Pseudorexhaustive Testing
试是将待测电路分成数个小部份来分别进行测试。在这些部分的电路
里所有的错都能被侦测到。然而,这样的测试方式须要下很大的功夫
才能把电路做适当的分割及送测试试样与获得测试反应。[McCluskey
1981],[Chandra 1983],与[Udell 1986]。

对于测试试样产生器,主要考虑包含了失效涵盖率,测试长度,已以及硬件额外
的花费。针对以上试样产生器的硬件设计包括有针对决定好测试试样的只读存储
器(ROM),与针对无遗漏以及随机试样测试的线性回授位移缓存器(LFSR)。在 3.2
节,我们将对线性回授位移缓存器(LFSR)作更详尽的讨论,因为此缓存器是内建
自我测试环境下非常重要的模块。在 3.3 节中,我们将讨论整个线性回授平移的
使用与其它测试试样产生器的模块。

在大部份的情况下,结果分析器会把很长的测试反应序列压缩到一个字,像这样
的字我们称作特征(Signature)或是征兆(Syndrome)。然后利用这个特征/征兆字
与事先所储存的无误电路中得到的标准特征/征兆字相比较就可以决定被测电路
的好坏。根据这些压缩的方法,可分类如下:

特征分析:特征分析法利用线性回授位移缓存器(LFSR)将得到的结果压到单一的
特征字。这会是最受欢迎的方式,是因为其方式简单且有效.[Peterson
1972]与[Colomb 1982]。

1 的计数(Ones Count):1 的计数方式数是算出在测试结果中 1 的总数去决定电


路的正确与否。这是一个非常简易的压缩方式,只须要一个简易的加
法器便能达到效果。此种方式的测试试样顺序列是可变换。[Barzilai
1981][Hayes 1976]

变化次数计算(Transition Count):变化次数计数方式数是算出在测试结果中变
化总数去决定电路的正确与否。这样的方法的复杂程度与 1 的计方式
是 相 同 。 然 而 , 此 种 方 式 使 的 测 试 的 序 列 不 能 改 变 。 [Barzilzi
1981][Hayes 1976]

特征计算(Syndrome Count):特征计算法是利用计算反应序列下 1 的机率来决定


正确与否。除了对于测试试样序列不须固定外,其方法与 1 的计算方
式相似。[Hayes 1976][Reddy 1977],[Savir 1985]

分析器方法的选择包含化名机率(aliasing probablit)与硬件额外花费两
部分。化名机率就是将错误的反映结果压缩成无误的特征字之机率。在 7.4 节,
我们将仔细的描述反映分析的技术。除了在 7.2 节中的线性回授位移缓存器,7.3
节的测试试样产生器,与 7.4 节的结果分析,我们将会在 7.5 节中描述内建自我
测试系统结构。最后我们也会在 7.6 节中提供正在产业上工作的一些内建自我测
试的例子。
7.2 线性回授位移缓存器(LFSR)
线性回授位移缓存器(LFSR)的基础
(LFSR)的基础(LFSR
的基础(LFSR Fundamentals)

线性回授位移缓存器(LFSR)是最重要且相当普遍的内建自我测试(BIST)硬件模
块。首先,理论上是健全的,因为线性回授位移缓存器在 GF(2)( Galois Field
of modulo 2 polynomials)是线性的,并且在 GF(2)上的所有理论都可以运用到
线性回授位移缓存器上。其次,它是非常简单且规则的结构,这结构减少硬件大
小与节省设计努力。第三,它也能够产生带有很好的随机特色的测试试样。第四,
它也能用在压缩测试的结果,其中也有相当低的化名机率。第五,在搜索式的
DFT 环境中,由于其本身具有位移数据的特性,因此当我们由搜索式的 DFT 设计
中增进时,所需的硬件额外花费最少。除了线性回授位移缓存器,我们也将讨论
另一种称为细胞自动机(celleura automata-CA)的结构。细胞自动机比起线性回
授位移缓存器有更好的随机特质。在测试试样与反应压缩设计上也有更多的变
化。

7.2.1 线性回授位移缓存器(LFSR)
线性回授位移缓存器(LFSR)的结构
(LFSR)的结构(LFSR
的结构(LFSR Structure)

在图 7.3 中是两个线性回授位移缓存器(LFSR)的例子。此两个例子均使用了 D
型的正反器与线性逻辑组件(XOR 闸)去实现线性回授位移缓存器(LFSR),这两个
结构基本的不同点如下:外部型式的线性回授位移缓存器(LFSR)把 XOR 逻辑闸放
到位移路径之外,它也被 Abramovici,Breuer 与 Friedman[Abramovici et al.
1990]等人称做线性回授位移缓存器(LFSR)型式。内部型式的线性回授位移缓存
器(LFSR),也称为第二型式的线性回授位移缓存器(LFSR),是将 XOR 逻辑闸放在
正反器之间。在两结构之间的一对一相对关系所导出的看法是相当一致的。在图
7.3 中 XOR 逻辑闸的位置由在所谓特征多项式 GF(2)里的多项式来决定。其特征
方成式如下:

g(x)= gnxn + gn−1xn−1+K+g0x0 (7-1)

在特征多项式与两型式的电路结构间的相对性显示如图形 7.4。基本线性回授位
移缓存器(LFSR) 的架构是 D 型的正反器,XOR 逻辑闸,与接点。这些接点以 g i
参数标上。当 g i 是 1 时,回路通过讯号到 XOR 逻辑闸,否则接点就关闭对于
x 4 + x 3 + 1 的特征多项式,线性回授位移缓存器(LFSR)型式显示在 7.3 图。

(a) External Type (b) Internal Type

D3 D2 D1 D0 D3 D2 D1 D0
图 7.3 线性回授位移缓存器(LFSR)型式
+ + ... +

g1 g2 gn-1

Dn-1 Dn-2 ... D1 D0


(a) 外外型型型 LFSR
...

gn-1 gn-2 g1

Dn-1 + Dn-2 + ... D1 + D0


(b) 內外型內型 LFSR
图 7.4 多项式为 g( x ) = gn x n + gn −1x n −1 +K+ g0 x 0 线性回授位移暂
存器(LFSR)

线性回授位移缓存器(LFSR)重要的特色之一就是它的再循环关系,这样的循环确
定线性回授位移缓存器(LFSR)的状态会在一定的顺序下重复,而这样的关系由下
列式子表达。
n
∑ gi x i ( a − i x − i +L+ a−1x −1 )
G( x ) = i =1 (7-2)
g( x )

这 G(x)是代表产生的试样, a − i 是正反器 Di 的初始状态,如果初始状态是


1
(000…01),(7-2)变成 G ( x) = ,在图 7.5 中有一个循环关系的例子。这线
g ( x)
性回授位移缓存器(LFSR)的初始状态是(1000),而在 15 个循环后重复初始值。
4
如果仔细检查这序列,会发现循还周期是 15 或 2 − 1 ,之后这样的序列在下一

个循还周期重复出现。这循还周期包含所有可能的组合,但除了(0000)之外,从
这,我们将试着看着特征多项式与更仔细得瞧瞧它所产生的试样。

D3 D2 D1 D0
a− n = 1 1 0 0 0
0 0 0 1
0 0 1 1
0 1 1 1
+ 1 1 1 1
1 1 1 0
1 1 0 1
D3 D2 D1 D0 1 0 1 0
0 1 0 1
1 0 1 1
0 1 1 0
g(x ) = x 4 + x3 + 1 1 1 0 0
1 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
图 7.5 线性回授位移缓存器(LFSR)的例子
这有些与特征多项式有关的定义和理论。由 n-阶线性回授位移缓存器(LFSR)产
n
生的序列,其周期为 2 − 1 ,称做最大长度的序列
最大长度的序列(M-序列)。除了零以外,M-
最大长度的序列

序列包含所有可能的组合,有关 M-序列的特征多项式称作基础多项式。而一个
基础多项式必须满足下列三个标准,第一,不能相约的。多项式如果仅能被 1
与本身相除,就是无法约除。第二,它有包含奇数个一。第三,如果 n 大于三,
k
那 g(x)必须除以 x + 1 ,k= 2 n −1 。

基础多项式所产生的试样满足下列随机特质。首先,在 M-序列中 1 的数目与 0


的数目相差一个。第二,一个 M-序列产生等数量的 1 与 0 次数。在每一个 M 序
列中,有一半长度次数全为 1 或是全为 0 的长度为 1,有四分之一的长度次数的
长度为 2,八分之一为三,以此类推。

除了这些静态的随机的特质,也有一些动态的随机特质。任何输出自本身相关性
非常趋近于零,自身相关性指的是在相同的位下伴随一定的时间位移之试样所得
到的相关性。这儿,是 0 与 1 作相关性计算。此外,输出的交互相关愈近零愈好,
当一个 M-序列有静态与动态的两特色,称做类似随机序列虚拟 虚拟(pseudo
虚拟 pseudo)用来指
pseudo
前面讨论的再循环关系。

7.2.2. 如多项式乘法器的线性回授位移缓存器(LFSR)(LFSR
如多项式乘法器的线性回授位移缓存器(LFSR)(LFSR as a polynomial
multiplier)

一个线性回授位移缓存器(LFSR)可以被当做多项式乘法器。图 7.6 显示在 GF(2)


中利用线性回授位移缓存器(LFSR)电路完成的多项式乘法。一开始,D 型式的正
反器初始值设为 0,输入的位 f k 乘上特征多项式 g(x),而结果 f k g ( x ) 放入缓
存器中。当时钟进来时,线性回授位移缓存器(LFSR)移动一个位置去乘以现在的
结果 x 在这一瞬间,完成计算的系数移动到输出。像这样的位移与加法的操作不
断重复直到完成所有的输入。图 7.7 为以线性回授位移缓存器(LFSR)为例的多项
式乘法。如我们所见,这样的过程就如用手运算的长乘法。
input
gn gn-1 gn-2 g1 g0 f(x)

+ + + ... +
output
h(x) n − n1 0
g(x) = gnx + gn−1x +L+g0x
Input = f (x) Output= h(x)
h(x) = g(x) f (x)

图 7.6 如同乘法器之线性回授位移缓存器(LFSR)结构
1101
4 3 3
g( x ) = x + x + 1 x + x +1
+ D3 + D2 D1 D0

Output stream D3 D2 D1 D0 Input stream


1 0 0 0 0 1 1 0 1
1 0 1 0 0 1 1 0 1
1 0 1 1 0 1 1 0 1
1 0 1 1 0 1 1 0 1
1 0 1 1 0 1 0 1
x 7 x 5 x4 x2 1

(x4 + x3 +1) (x3 + x +1)= x7 + x5 + x4 + x2 +1


图 7.7 乘法器之线性回授位移缓存器(LFSR)的例子

7.2.3 如同除法器之线性回授位移缓存器(LFSR)(LFSR
如同除法器之线性回授位移缓存器(LFSR)(LFSR as a polynomial
Divider)

output
gn gn-1 gn-2 g1 g0

Dn-1 + Dn-2 + ... D1 + D0 +


input
n n1 0
g(x) = gnx + gn−1x − +L+g0x
Input = M(x) Remainder = R(x)
Output = Q(x) M(x) = P(x) g(x) + R(x)

图 7.8 如除法之线性回授位移缓存器(LFSR)结构
Output Q(x) Input
g( x ) = x4 + x3 + 1
10011 110110110
D3 + D2 D1 D0 +
M(x)
Q(x) D3 D2 D1 D0 M(x)
0 0 0 0 1 1 0 1 1 0 1 1 0
after 4 shifts 1 1 1 0 1 1 0 1 1 0
1 0 0 0 1 0 0 1 1 0
1 0 0 0 1 0 0 1 1 0
1 0 0 1 1 0 0 1 1 0
Q(x) 1 0 0 1 1 1 0 1 0 0
1 1 0 1 R(x)
(x + x
8 7
) ( )
+ x5 + x4 + x2 + x ÷ x4 + x3 +1 = x4 + x3 +1/ x3 +

图 7.9 除法器之线性回授位移缓存器(LFSR)的例子

线性回授位移缓存器(LFSR)也可以当做多项式除法器。在 GF(2)中,图 7.8 显示


线性回授位移缓存器(LFSR)用做多项式除法器的方块图。输入多项式 M(x)除以
特征多项式 g(x)。起初,D 型式的正反器的初始值设为零。在位移 n 次后,代表
商值的位 q i 出现在输出。代表商值的位 q i 乘以 g(x)并且与缓存器之值相减,
注意一点,就是在 GF(2)中,减法运算是如同加法运算。当时钟来时,线性回授
位移缓存器(LFSR)移动一个位置而产生商值并且降低一个阶数,像是这样的位移
与减法计算不断运作直到所有的输出完成为止。图 7.9 就是一个利用线性回授位
移缓存器(LFSR)做为除法运算器的例子。如我们所见,这样的过程就如同用手运
算的长除法一般。

7.2.3 细胞自动机(Cellura
细胞自动机(Cellura Automata)
细胞自动机是利用一度空间的细胞数组所完成的,在此数组中每一个细胞均包含
记忆单元及连接网络状态的逻辑电路,因此细胞内容的下一个状态将由细胞本身
所储存的内容及左右邻近细胞的内容决定。除此之外,所有的网络连接状态逻辑
电路的功能可以一样,也可以不一样。基于此项原则,图 7.10 显示两种最常见
的电路架构,其中细胞逻辑功能的名称定义是由 Wolfram 在 1983 年所提出
[Wolf83],在此定义中名称是由下一个状态的逻辑功能 Fca 所决定。如图 7.11
所显示的名称机器,在此图中 Ci 表示目前细胞的状态,Ci+1 及 Ci-1 则分别表示
邻近的细胞,因此细胞 Ci 的下一个状态可由(Ci-1 Ci Ci+1)决定,由以上的关
系可以知道,利用 A7 到 A0 的标记及卡诺图可以表示出进入下一个状态所需的关
系。其细胞名称的定义如下
7
∑ Ai ⋅ 2 i (7-3)
i =0

而图 7.11. 显示利用此方式完成的范例。
0 0

Fca Fca Fca Fca Fca Fca

D D D D D D
Q Q Q Q Q Q

(a) CA with null boundary conditions

Fca Fca Fca Fca Fca Fca

D D D D D D
Q Q Q Q Q Q

(b) CA with null cyclic boundary conditions

图 7.10 细胞自动机的架构
State A0 A A2 A3 A4 A5 A6 A7
Next State KMap FCA
Ci+1 0 0 0 0 1 1 1 1 A0 A2 A4 A6
Ci 0 0 1 1 0 0 1 1
A1 A3 A5 A7
Ci-1 0 1 0 1 0 1 0 1
7
Name = ∑ Ai 2i (defined by Wolfram)
i= 0
Example: FCA = Ci −1 ⊕ Ci Name = 128+16+4+2
0 1 1 0 = 150
1 0 0 0
图 7.11 细胞自动机的细胞范例

7.3 内建自我测试系统(BIST)
内建自我测试系统(BIST)测试试样产生器
(BIST)测试试样产生器(BIST
测试试样产生器(BIST Test Pattern

Generation)

测试策略的展开部署会决定测试试样产生器的设计架构。在此章节里,我们将会
讨论测试的方法和测试的硬件架构。对于每种方法我们均会比较其失效涵盖率,
测试硬件所造成的额外硬件花费,测试的时间以及将设计成果转换到内建自我测
试系统设计所需的努力。

7.3.1 储存测试试样(
储存测试试样( Stored Patterns )

储存测试试样的方法是利用储存先前产生的测试试样来达到与先前一样的测试
目标,这种方法常常可以在系统层次上的测试看到,就像是计算机在开启时的内
建自我测试及利用微程序对微处理器进行测试,对此种方法的成功应用可以在
[Kuban 1984]找到。其测试的程序如下说明,我们先将之前用自动测试试样产生
器(ATPG)产生的试样储存到芯片或电路板上,当内建自我测试一启动,我们就把
它们输入待测电路(CUT)并且利用事前储存的响应结果比较待测电路的响应是否
正确。因为储存数据的大小有一定的限制,所以这个动人的方法只能在有限的情
形使用,因此此种方式一般应用在规则性电路的测试和处理较难侦测错误的测
试。规则性电路如 PLA 只需很少的测试试样就可以达到非常高的失效涵盖率,就
像 C-Testable。对于储存试样的方法,只读存储器(ROM)被使用来储存测试试样
和测试响应,计数器则被用来排列内存内的记忆顺序,以便进行测试。

7.3.2 无遗漏的测试 ( Exhaustive Testing )

无遗漏的测试是将所有可能的输入组合送入待测电路,此方法可以保证侦测
到所有的失效只要这些失效不具有顺序性的行为因素在内,因为测试的顺序中可
能不包含测试这些顺序失效所需的测试顺序,详细的顺序测试试样的方法请参考
序向产生器这一章。此测试方法的测试长度是以指数正比于输入个数( 2n ),由于
所有输入组合都被使用到,所以它也被视为完全功能测试。[McClusky 1981][Wang
1986]。

无遗漏的测试其硬件架构非常简单,就像图 7.12 所示,在此,线性回授位移


缓存器(LFSR)必须和待测电路的输入有相同的长度,测试的周期包含所有可能的
输入组合。要注意的是,线性回授位移缓存器不能产生全部为零的试样,假如此
种情况为试样所要求,则可外加一些逻辑闸于线性回授位移缓存器上使其周期能
经过试样全部为零的状态,如果是这样设计,它就不再为线性,所以被称为非线
性回授位移缓存器。

LFSR

CUT

SA

图 7.12 无遗漏测试的硬件架构

7.3.3 虚拟无遗漏测试 ( Pseudorexhaustive Testing )

虚拟无遗漏测试将待测电路区分成几个较小的子电路,且对每个区块做无遗
漏的测试,所有可测试的错误都可在子电路中侦测到。虚拟无遗漏侦测的主要目
标是能在相同的时间或更少的时间内得到与无遗漏侦测相同的失效涵盖率,当失
效涵盖率已保证接近 100 %时,无遗漏侦测与虚拟无遗漏侦测即不须再做侦错模
拟。然而,这样的一个方法须要额外的设计努力来区分整个电路到虚拟全面测试
的测试子电路。再者,测试试样与测试响应的递送也是一个主要的考虑,增加硬
件可能也会增加开销且降低整体表现。[McClusky 1981][Chandra 1983] and
[Udell 1986]。

对虚拟无遗漏测试的电路区分可以用圆锥分割来完成如图 7.13 所示,在此,


一个圆锥被定义成多个输入指向一个输出。为了对圆锥做无遗漏测试,我们可以
应用无遗漏测试的试样到输入,注意,这些输入可能不是相邻的输入端,假如最
大的圆锥大小是 K,试样必须有其特性保证当试样应用到任一个 K 输入时必须包含
所有可能的试样组合。

Exhaustive Test Window

Cone

图 7.13 虚拟无遗漏测试的圆锥分割

为了产生如图 7.13 电路的虚拟无遗漏测试,我们可以使用线性回授位移缓存


器和位移缓存器如图 7.14 [Barzilai 1983]所示。线性回授位移缓存器的长度通
常比最大的圆锥输入来的长,通常至少需要两个输入根源。当圆锥的大小远比总
输入个数少时,产生的测试试样个数会接近最少,这样的架构有最少的硬件开销,
它也被容许用在 DFT 的架构中。假如线性回授位移缓存器有位移模式,这样输入
根源可以被移位至扫描炼中,再者,其它模块的测试响应也可以被压缩移位进去,
一个简单的方法来决定线性回授位移缓存器的长度就是检测圆锥的长度,线性回
授位移缓存器的长度被假定为最大的圆锥宽度。故假设有 2K 个试样进入输入端时,
所有宽度小于 K 的圆锥均有无遗漏测试所需的测试试样。
LFSR Shift Register

Cone

图 7.14 LFSR+SR 对虚拟无遗漏测试

其它虚拟无遗漏测试的方法还有使用多任务器来分割电路,如图 7.15 所示。


一般的模式中,在测试中的子电路接受一般的输入数据,在内建自我测试系统模
式中,由线性回授位移缓存器产生的试样会经过多任务器被递送到子电路中,这
个响应会用特征分析将其压缩,在下一个章节里,我们将对特征分析做详细的讨
论。这样的设计,有最小的测试长度,但其缺点陷于多任务器的硬件开销和递送
测试试样的绕线面积。

L
F normal inputs
S
R
MUX

CUT
Subcircuit
under test
S
A

图 7.15 经过多任务器分割的虚拟无遗漏测试

7.3.4 虚拟随机测试 ( Pseudorandom Testing )

虚拟随机测试应用了一个固定范围的随机测试试样,被应用的测试试样满足随
机的特性,但其测试试样间的排列顺序是固定的。在此方法中失效涵盖率是由测
试的长度和试样的内容所决定,对于随机试样而言,失效涵盖率和测试长度有着
指数曲线的关系,如图 7.16 所示。就像我们所知的,测试长度越长,失效涵盖率
越广。理论上,当时间无穷大时可达到 100%的失效涵盖率,更精确的分析已被
Savir 和 Bardell 计算出来[Savir,Bardell 1994],在此,测试长度可被下列的方
程式决定。
 U  ln( et / k ) 
 N kD =  
  ln(1 − p ) 
 (7-4)
N L  ln( et / k ) − ln(1 − et ./2) 
=  
 kD  ln(1 − p ) 

U L
N kD 和 N kD 是测试长度的上下边界, et 是临界逃脱机率,所对应的可靠程度至少
有 (1 − et ) . p 的机率侦测到所有的错。k 是很难侦测到错的个数。例如,p 若为 10 −5 ,
et 为 0.001,而 k 为 10,则测试长度的区间就为(920980,921030)。假如 k 为
50,则测试长度的区间就为(1081923,1091973)。除了测试长度之外,还有随机 随机
试样阻抗错误是很难用随机试样侦测到的,
试样阻抗错误 如图 7.17 所示树状加法电路的维持零
错误,需要试样(111...1)来侦测此错误,因此,这个错误不像是随机试样所能侦
测到的。对随机试样阻抗错误,我们需要做些修正来改善侦测到的机率,虚拟随
机测试的测试试样产生方法是最简单的,不论是图 7.12 的电路或图 7.14 的电路
都可产生想要的试样。 [Savir 1984],[Williams 1985],[Wagner 1987]

Fault Coverage

Test Length

图 7.16 虚拟随机测试的失效涵盖率与测试长度的关系图

Random Pattern
Resistant Fault

图 7.17 随机试样阻抗错误的范例

7.3.5 加权虚拟随机测试 ( Weighted Pseudorandom Testing )

加权虚拟随机测试是使用确定 0s 与 1s 分布的虚拟随机试样,来处理随机试样
阻抗错误,它是一个介于虚拟随机测试和储存试样方法间的混合技术。在加权虚
拟随机测试里,加权必须被选择在常发生测试试样较难侦测到错误的情形中,你
可以使用软件来分析较难侦测到错误的机率以便决定一个或多个加权,也就是说,
假如加权在虚拟随机试样于图 7.13 的维持零的错误机率接近 0.9,则想要的试样
(111...1)就比较会发生。[Schnurmann 1975],[Chin 1984],和 [Wunderlich 1987]

加权虚拟随机测试的试样产生器可是用两种方法来完成,首先,可以使用线性
回授位移缓存器和一些逻辑闸来产生,如图 7.18(a)所示,就像我们所知的,线性
回授位移缓存器产生的试样其 1s 与 0s 的机率是均等的,假如使用三输入与门,
则 1s 的机率变为 0.125,若使用两输入或门,则机率变为 0.75。第二,我们可以
使用细胞自动机来产生想要加权的试样,如图 7.18(b)所示,对细胞自动机,下一
个状态方程式的选择和排列将产生不一样加权的试样。

LFSR 0
0

123 193 61 114 228 92 25

D D D D D D D
Q Q Q Q Q Q Q

1/8 3/4 1/2 7/8 1/2 0.8 0.6 0.8 0.4 0.5 0.3 0.3
(b)
(a)

图 7.18 加权虚拟随机试样产生器

7.3.6 测试策略的比较(Test
测试策略的比较(Test Strategies Comparison)

如前面所述,内建自我测试系统方法的考虑与部署有失效涵盖率、硬件开销、
测试时间的长短,和设计努力。这四个考虑有着相当复杂的关系,也就是说,无
遗漏测试有最好的失效涵盖率,然而它的测试时间也最长。虚拟随机测试对测试
时间与硬件开销有较好的妥协,然而,设计努力就非常重要。表 7.1 列出了前面
所提及之测试方法的特性,在失效涵盖率项目中,无遗漏测试与虚拟全面测试有
着最高的失效涵盖率,在硬件开销方面,虚拟随机测试最低,测试时间方面,储
存测试试样的方法有最短的测试时间,然而虚拟无遗漏测试须要非常多的设计努
力。

表 7.1 不同测试方法的比较

Test Method Coverage Hardware Test Time Design Effort


Stored Pattern High High Short Large
Exhaustive High Low Long Small
Pseudoexhaustive High High Medium Large
Pseudorandom Low Low Long Small
Weight Pseudorandom Medium Medium Long Medium

7.4 内建自我测试响应的压缩与分析(BIST
内建自我测试响应的压缩与分析 (BIST Response
Response Compression
and Analysis)

响应分析器压缩一个非常长的测试响应到一个单一的字,这样的字被称为
(特征),然后利用这个特征字与事先所储存的无误电路中得到的标准特征字相比
较,假如特征和标准特征复制字相同,则此电路被视为无错误,否则,它就是错
误的。在此部分,我们将学习以下响应分析的方法,一的计数、转态的计数、征
兆的计数、和特征分析,就像前面所提及的,有一个储存试样的方法预先储存测
试试样及响应,这个响应分析被和储存的无错误响应做一对一的比较,因为这样
的方法是非常直接的,我们将不在后面多做讨论。

压缩就像是一个方程式从一个大的输入空间(响应)转到一个小的输出空间
(特征),它是一个多对一的映射,因此,一个错误响应可能会和无错误响应有相
同的特征,这样的情形被归之为化名,化名的机率为错误响应被视为无错误的可
能性,被定义如下式:

Number _ of _ faulty _ responses _ with _ fault _ free _ syndrome


Palias = (7-5)
Number _ of _ faulty _ responses

化名机率是响应分析中主要的考虑,由于压缩的多对一映射的特性,它不像是压
缩后做审查,因此,压缩后诊断的结果非常差。除了化名机率外,硬件的开销与
硬件的兼容性也是重要的讨论课题,在此,硬件的兼容性可以参考如何将有效内
建自我测试系统可以被插入于待测电路或设计给测试用的电路中。

7.4.1 一的计数(
一的计数( Ones Count )

一的计数是计算输出结果为一的个数,因此,特征就是一的个数,它是一个
很直觉的方法用来压缩一长串输出序列成为单一的字。试样产生器可以为 7.3
章节中所提的任何一个方法,图 7.19 显示一的计数为单一输出电路的测试架构。
对于多个输出一,我们可以在每一个输出使用一个计数器或者用相同的输入顺
序,依次一次输出一个。化名机率的被推导如下式,m 为测试长度,r 为一的个
数。

 m
 r  −1
=  
0.5
Poc ≅ (πm) (7-6)
2m − 1

在此,分母为错误输出序列的总数,其中 2 m 为输出序列的总数且只有一个是正
m
确的,分子是有 r 个一的序列组合个数   ,也就是与正确的序列有相同的一的
r  
个数。从上面的式子,我们知道,当 r 的个数为 m 个数的一半时,化名的机率最
大,当 r=0 或 r=m 时,化名机率为零。从此压缩的方法,我们知道,输入测试序
列可以交换而不改变一的个数。

Test
CUT
Pattern

Clock Counter

图 7.19 一的计数压缩电路架构

7.4.2 转换计数 (Transition Count)

转换计数压缩法与 1 的计数压缩法非常相似,只是将计算 1 的个数换成计算转


换的次数,也就是从 0 变 1 与/或 1 变 0 的次数。图 7.20 是转换计数法的电路结
构图。转换计数压缩法的化名机率如下:

 m − 1
2× −1
 r  0.5
Ptc = ≅ (πm)
2m − 1
(7-7)

同样的,当测试长度为 m 时,分母是输出序列的总和,分子是有 r 次转换的错误


m − 1
序列的个数。注意,对测试长度为 m 而言,有 m-1 次转换。所以,   是有 r
 r 
次转换序列的个数。因为第一个输出可以是 1 或 0,因此,总数还必须要乘以 2。
再者,其中只有一个是无错误的。
与 1 的计数法相同,r=m/2 时,有最大的化名机率。然而,当 r=0 或 r=m-1 时,
化名机率并非为零,而是 1 / ( 2 m − 1) ,是一个非常接近零的数。与 1 的计数法不同
的是,输入序列不可改变次序。假如改变输入次序,则转换计数亦会随着改变。
换另一方面而言,吾人可以重新排列测试序列来达到最多或最少次的转换次数。
所以,可以将化名机率减到最小。注意,假如所有输出皆为 0 的测试图样被用在
所有输出皆为 1 的测试图样之前的话,则转换计数将仅有 1。结果,化名机率将
几乎为 0,而且所需硬件花费也将最少。在这里,只需要一个位的计数器即可。
DFF
Test
CUT
Pattern

Clock Counter

图 7.20 转换计数压缩法电路节构

7.4.3 征兆测试 (Syndrome Testing)

征兆被定义成输出结果为 1 的机率。假如输入 0 与 1 的机率相同,对 3 个输入端


的与门而言,征兆是 1/8,而 3 个输入端的或门为 7/8。图 7.21 是一个征兆计数
的内建自我测试电路结构图。它与 1 的计数和转换计数法很相似,不同之处在于
最后计数要除以被用到的图样个数。征兆测试最大的区别特征在于征兆与实现方
式是互相独立的,他仅由电路的功能来决定。

random
test CUT
pattern

Clock Syndrome counter

Counter /
Syndrome

图 7.21 征兆测试电路结构

征兆测试原先的设计是使用无遗漏的图样。所以,它的征兆是 S = K / 2 n ,其中 n 是
输入的个数,而 K 是最小项的个数。假如全部的单一维持-在错误是征兆可侦测
的话,则此电路是可以征兆测试的。对征兆测试法感兴趣的部分是,任何功能的
电路皆可被设计成可做征兆测试。在征兆上已有许多的研究,详细内容请参考
[Savir 1980] 与 [Barzilai 1981]。

7.4.4 特征分析 (Signature Analysis)

特征分析是一种压缩技巧,原理是基于前面章节讨论过的线性回授位移缓存器。
图 7.22 是特征分析的电路结构图。以数学上看,输出序列(多项式)是被特征多
项式所除,除后的余式就叫做特征。图 7.9 的范例亦可被看作是特征分析的范例。
输入序列 (110110110) 被压缩成 (1101) 的特征,也就是余式。对长度为 m 的
输出序列而言,全部有 2 m − 1 个错误序列。假设我们将输入序列 P(x) 表示成
P(x)=Q(X)G(x)+R(x)
(7-8)

其中,G(x) 是特征方程式; Q(x) 是商; R(x) 称作余式或特征。对于那些化名


错误序列,会有与正确序列相同的余式 R(x) 。因为,P(x) 是 m 阶,G(x) 是 n
阶,得到 Q(x) 有 m-n 阶。所以,会有 2 m− n 个可能的 Q(x) 或 P(x)。而其中一
个是正确的。因此,这个化名机率如下:

2 m− n − 1
Psa = m
≅ 2 −n
2 −1
(7-9)

Test
CUT LFSR
Pattern

图 7.22 特征分析电路结构

D3 + D2 + D1 + D0 +

D3 + D2 + D1 + D0 +

图 7.23 MISR – 多重输入特征缓存器

与之前的方法不同的是,特征分析的化名机率与测试响应是相互独立的,可用增
加线性回授位移缓存器长度的方式来减低化名机率。依据多项式的特性,用线性
回授位移缓存器方式做的特征分析有下列性质。第一,一个线性回授位移缓存器
若有两个或以上的非零项,将可侦测出任何的单一错误。第二,一个有质特征多
项式的线性回授位移缓存器可侦测出任何被分开成小于 2 n − 1 个位置的双重错
误。第三,一个有 g 0 = 1 的线性回授位移缓存器可侦测出全部的长度小于 n 的
burst error。图 7.22 是只有单一输出的线性回授位移缓存器的硬件结构。对
多重输出电路而言,吾人并不需要多重的线性回授位移缓存器或每次压缩输出回
应。取而代之是用多重输入特征缓存器或简称 MISR。图 7.23 是两个 MISR(根据
图 7.3 中的线性回授位移缓存器)的电路结构。它的多重输入位是从 MISR 的顶端。
MISR 与单一输入特征分析的线性回授位移缓存器有相同性质。

7.4.5 空间压缩 (Space Compression)

到目前为止,我们已经提出了许多技巧将一长串的测试序列压缩成单一字组特征
来作验证,这可以被视为是在时间域上的压缩。这里,我们要讨论空间压缩。空
间压缩是一种控管有多个输出电路的技巧。拿利用 MISR 所作的特征分析为例,
因为有多个输出,所以 MISR 的长度将会很长。结果,此硬件花费将会非常高。
在时间压缩之前,吾人可以用 XOR 闸将两个或更多的输出脚组合成单一输出。为
了将化名机率降到最低,误差控制编码技巧可被用上。图 7.24 是利用一个 16
位 SEC-DEC (单一误差修正与双重误差侦测) 码所作的空间压缩。这里,16 个输
出被压缩成 5 个输出。连同时间压缩,其结构如图 7.25 所示。这里,TC(时间压
缩)可被想成是线性回授位移缓存器或 MISR。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ + + + + + + + + + + +
+ + + + + + + +

+ + + + +
+
P1 P2 P3 P4 P5
图 7.24 空间压缩利用 16 SEC-DEC 码

CUT SC TC

图 7.25 空间与时间压缩结构

7.5 内建自我测试结构 (BIST Architecture)

在说明完内建自我测试的基础后,这个章节,我们将焦点放在内建自我测试结构
上。因为,线性回授位移缓存器和 MISR 与扫描 DFT 兼容,而且比其它内建自我
测试模块更广受欢迎。所以,我们将专注在以线性回授位移缓存器,MISR 和扫
描缓存器为基本原则的技巧上。大部分的内建自我测试技巧包含了测试时间与测
试硬件花费之间的基本取舍。在 [Argrawal 1993] 中,内建自我测试技巧被归
成两类: 测试-每-频率与测试-每-扫描。测试-每-频率内建自我测试是运用测试
向量,与每个频率抓取测试响应一次。测试-每-扫描内建自我测试利用扫描链递
送测试向量与测试响应。因此,一个完整的测试周期与一个完整的扫描周期有相
同的周期时间。再以下的次小节中,我们将以测试-每-频率与测试-每-扫描分类
中,讨论循序与组合内建自我测试的技巧。

7.5.1 组合测试-
组合测试-每-频率内建自我测试 (Combinational
(Combinational Test-
Test-Per-
Per-Clock BIST)
基本结构 (Basic Structure)

图 7.12 是一个测试-每-频率内建自我测试 的基本结构。对每一个测试频率,线


性回授位移缓存器产生一个测试向量,而且 SA (MISR)压缩一个响应向量。此种
结构是最多功能用途的。这也就是说,它可用来作无遗漏测试,假无遗漏测试,
假随机测试,与加权假随机测试。对于最后一个而言,其线性回授位移缓存器的
结构必须用 7.3.5 节中的硬件结构取代。对于此种方法,线性回授位移缓存器与
MISR 的长度必须与 CUT 的输入和输出数目相同。因此,硬件花费可能会非常大。
利用此种基本方法的技巧包括[Benowitz 1975]的集中化与分离板阶层(CSBL) 内
建自我测试,和[Resnick 1983]的内建求值与自我测试(BEST)。此两种方式的结
构分别如图 7.26 与图 7.27 所示。注意,CSBL 内建自我测试与 BEST 同样是被提
出用于组合与序向电路。

PIs n
MUX

n CUT m
(C or S)
m POs
LFSR Counter MUX SISR
1 k 1
k = log 2 m

图 7.26 CSBL 内建自我测试结构


LFSR

MISR

CUT
PI PO
(C or S)

图 7.27 BEST 内建自我测试结构

共存内建自我测试
共存内建自我测试 (CBIST)

图 7.28 所示的共存内建自我测试 (CBIST)是测试-每-频率方法的另一个例子


[Saluja 1988]。对于共存部分,比较器监督正常运作数据。假如它与在线性回
授位移缓存器中的图样相同的话,则测试频率被标记起来。而响应被送到 MISR
作压缩,并且线性回授位移缓存器增加一个频率周期。假如有一段长时间没有吻
合,则线性回授位移缓存器产生测试频率被自动标记一次来增加一个测试周期。
在此同时,系统频率被停止一个周期。
N/T
CBIST
Comparator
Circuitry

Normal inputs
LFSR EN

MUX N/T

CUT
(C)

MISR

Normal outputs

图 7.28 CBIST 结构

LFSR+SR

图 7.29 是利用线性回授位移缓存器与扫描缓存器所做的结构。每次线性回授位
移缓存器递移出一个位到扫描缓存器,则有一个测试图样被运用且有一个测试响
应被压缩。有了这种结构,我们可以将测试图样产生器内的硬件花费减到最低,
而回应压缩器则维持不变。将扫描缓存器与线性回授位移缓存器组合在一起,所
产生的图样与用线性回授位移缓存器所产生的图样有相同的性质,可以用此种策
略扩展开来的方法包括有虚拟无疑漏的与虚拟随机(见图 7.14)。集中化与内嵌
自我测试 (CEBS) 是此种方式的一个例子。
LFSR Shift register

Circuit Under Test

SA

图 7.29 测试-每-频率方法的 LFSR+SR 结构

内建逻辑区块观察 (Built-
(Built-in Logic Block Observation)

内建逻辑区块观察是一种有名的管线结构方法。有关 BILBO 模块的电路图与利用


BILBO 的结构在图 7.30 中。BILBO 有两个控制信号 (B1 与 B2) 来使得一个 BILBO
区块构成为递移缓存器,重置,MISR,与平行加载(正常) 。利用 BILBO 所做的
内建自我测试结构在图 7.30 的右边部分。对 C1 的测试而言,BILBO1 与 BILBO2
是作 MISR。假如吾人只看 BILBO1,C1,与 BILBO2,它们与图 7.12 有相同的外
观。这些 BILBO 的初始状态可用 (01) 指令来重置,而在 BILBO2 内的特征可用
指令 (00) 将全部的 BILBO 设定成递移缓存器来递移出去。有了此种的 BILBO
结构,只要小心排定测试资源的时间,多个模块将可同时作测试 [Koenemann
1979] 。
Z1 Z2 Zn
B1 ...

BILBO1
B2 ...

Si 0 C1
MUX

D Q D Q D Q D Q
1 ...
BILBO2
Q Q Q Q S0

C2
Q1 Q2 Qn-1 Qn
BILBO3
...
B1 B2 BILBO
C3
0 0 shift register
0 1 reset
1 0 MISR (input Þ constant Þ LFSR)
1 1 parallel load (normal operation)

图 7.30 BILBO 电路图与结构

7.5.2 测试-
测试-每-扫描内建自我测试 (Test-
(Test-Per-
Per-Scan BIST)

基本结构 (Basic Structure)


Structure)

测试-每-扫描方法目标是在尽可能地减低硬件花费。舍弃对每个输入/输出脚都
要用的线性回授位移缓存器与 MISR,这个方法用的是组合线性回授位移缓存器
/MISR 与递移缓存器,来将硬件花费减至最低。图 7.31 是一个测试-每-扫描内
建自我测试的基本电路结构。在内建自我测试模式下,线性回授位移缓存器产生
测试向量而且透过扫描缓存器递移到 CUT 的输入。在此同时,测试响应被扫描进
去且被线性回授位移缓存器压缩。因为用了扫描链来递送测试图样与响应,所以
测试速度比之前所谈的方法慢。一个测试周期所需的频率是输入与输出扫描缓存
器的扫描阶段的最大值。同样属于此类的包括 CEBS,LOCST,与 STUMP。我们将
再详细讨论这些。
LFSR Shift register

Circuit Under Test

LFSR Shift register

图 7.31 基本测试-每-扫描结构

有 Boundary Scan 的集中化与内嵌内建自我测试结构


(Centralized and Embedded BIST Architec
Architecture with Boundary Scan-
Scan-CEBS))
有 Boundary Scan 的集中化与内嵌内建自我测试结构 (CEBS)除包含图 7.31 的基
本结构外,并扩展将内部扫描链也包含在扫描路径内,其电路图如图 7.32 所示。
其测试程序与基本结构的测试程序相同。然而因为包含了内部扫描链的关系,测
试时间可能会很长。此种设计与扫描 DFT 设计有很好的兼容性。除扫描 DFT 外,
额外的费用是最少的。所以,对有全部扫描 DFT 的电路而言,它是特别有用的
[Komanytsky 1982]。
PIs

Sin LFSR Boundary-scan register

Si
CUT
So

Sout MISR Boundary-scan register


POs
图 7.32 CEBS 结构

内建自我测试利用 MISR 与平行 SRSG


(Self-
(Self-Testing Using MISR and Parallel SRSG - STUMP))

内建自我测试利用 MISR 与平行 SRSG (STUMP) [Bardell 1987] 的结构图在图


7.33。舍弃仅用一条扫描链,他利用多个扫描链来降低测试时间。由于扫描链可
能有不同的长度,线性回授位移缓存器会跑 N 个周期 (最长扫描链的长度) 来加
载全部的链。对于此种设计,内部型式的线性回授位移缓存器是较好的。假如用
了外部型式的话,两个线性回授位移缓存器输出位之间的差只是时间递移。因此,
两个扫描链之间的相关性是非常高的。

LFSR

S S S
CUT CUT
R R R

MISR

图 7.33 STUMP 结构

7.5.3 序向内建自我测试(Sequential
序向内建自我测试(Sequential BIST)
在前面所提的测试方法,主要是着重在组合逻辑的测试或是在测试模式下利用扫
描链将序向逻辑转变为组合逻辑后用相同的方法进行测试,因此测试的波形与测
试的结果无任何的关系。在此我们将讨论在测试模式下仍保留序向逻辑特性所需
的测试特性,由于测试的波形不仅是测试产生器所产生的波形,而且这个测试试
样也由测试结果决定,由于这个结果会循环成下一个测试试样,因此又称为循环
内建自我测试。

循环分析测试系统(Cyclic
循环分析测试系统(Cyclic Analysis
Analysis Test System-
System-CATS)

循环分析测试系统(CATS)是一个典型的循环内建自我测试测试例子。其结构如图
7.34。 在测试模式下,输出直接连到输入,因此输出的响应向量直接当作输入
的测试向量。如果输出的向量比输入少,则可将一个输出连接到多个输入,如果
输出端的数量比输入端多,则可利用 XOR 逻辑闸方式完成如图 7.24 所示的空间
压缩(将数个输出端向量合并为一个)。此方法的硬件花费非常的低。不过失效涵
盖率 (fault coverage )会随电路的不同而不同。由于重复使用输出响应向量,
因此可能造成失效遮没。值得注意的是由于失效与没有失效所产生的测试试样不
同,因此这里所提到的失效遮没与前面所提的化名具有不同的涵义[Burkness
1987]。
y1
...

xn
MUX
...

...

CUT
...

yn

bist

图 7.34 循环分析测试系统架构

随机测试资料(Random
随机测试资料(Random Test Data-
Data-RTD)

随机测试数据(RTD)是将内部的正反器转变为 MISR 。其电路结构如图 7.35。在


正常模式下,MISR 如 latch 般的工作。当系统在测试模式下时,其工作如 MISR。
MISR 具有压缩内部的反应及产生测试试样的双重功能。RTD 具每周期产生一个
测试试样的能力。与 CATS 比较其硬件的花费高出许多,不过由于 MISR 的扩张
能力使得测试响应的波形在成为测试试样前被搅乱,因此其被本身遮盖的机率比
前者要低。
Sin Sout
MISR

MISR

PIs CUT POs

MISR
图 7.35 随机测试资料架构

同时自我测试(Simultaneous
同时自我测试(Simultaneous Self Test-
Test-SST)

为能取代 MISR 所需的内部记忆装置,同时自我测试采用较简单的架构。在内建


自我测试模式下的 SST 电路架构如图 7.36 所示。在测试模式下,内部的 latch
接收由正常回授路径及前次 latch 内含数据作 XOR 的结果,所以其结果会被前
次的数据所搅乱。在正常模式下,XOR 闸被关闭 [DasGupta 1982]。
PI CUT PO
Combinational

图 7.36 同时自我测试架构

7.5.4 结构电路下的内建自我测试(BIST
结构电路下的内建自我测试(BIST for Structured Circuits)

高度积体化的 VLSI 的关键是结构化的设计。而此结构化的设计一般包含了只读


存储器、随机内存、可规划逻辑数组及其它一些电路所组成。在这些众多分类的
内存组件中,程序化的逻辑数组具有规律性及非常简单的电路设计,因而成为数
字系统中最常见的组件,尤其是利用程序化的逻辑数组组成的任意组合或序列逻
辑更是各类方法中最有效率的一种方式,因此在本节中将探讨程序化的逻辑数组
中的内建自我测试。
程序化的逻辑数组在观念上是利用两层的及-或 闸所建构成的布尔函数实践器,
其结构如图 7.37 所示。由图中可看出,一般程序化的逻辑数组包含输入译码器、
及面、或面及输出缓冲器等四个部分。其中输入译码器的主要功能是产生单一
bit 的译码信号,此信号包含直接及反向的输出以供给其它的电路使用。及面用
来产生所有的乘积项。或面则将所有乘积项的结果加起来成为输出的结果。由于
及 及或的逻辑电路无法直接用电路完成因此在实际应用时,均使用 NAND-NAND
或 NOR-NOR 的结构来取代。
.
AND Plane . OR Plane
product
First NOR Plane lines Second NOR Plane
.
.

... ...
Input Decoders Output Buffers
... ...
PLA Inputs PLA Outputs

图 7.37 程序化的逻辑数组的一般架构
由于程序化的逻辑数组除具有如前节所述的维持-在、bridging 失效模式
外还有交越点失效,因此想要产生能测试如此复杂的失效模式所需的测试试样比
一般的组合逻辑测试要困难的多。再加上,典型的程序化的逻辑数组具有 50 个
输入、67 输出、190 个乘积项[Liu and Saluja 198xxx],因此想要进行功能测
试是一件非常困难的工作,除此以外 程序化的逻辑数组有无心及无法分辨的备
用电路,因此对失效会产生遮没(masking)。除以上这些问题外,程序化的逻辑
数组时常被隐含在其它逻辑电路中,因此想将信号输入到被测体是非常困难的,
相同的其结果也不容易观察。基于以上的原因,人们会将内建自我测试放到程序
化的逻辑数组中以便能对程序化的逻辑数组进行测试。目前大多的微处理器中的
程序化的逻辑数组均有此功能,因此我们将对其中的一些设计做讨论。

Yajima's 程序化的逻辑数组内建自我测试
程序化的逻辑数组内建自我测试(Yajima's
逻辑数组内建自我测试(Yajima's PLA BIST)

Y Feedback Value
Generator OR Parity Circuits
...
4 Extra Product Lines
. Product . . 2 Extra . AND
Flag . Term . . .
Circuit
Shift OR Plane Output Parity
. Register . AND Plane . .
(PSR) Line Circuits
. . . .
. . . . . . . .
Augmented Decoders
(AD)
Output Buffers
. . . . . . . .
Control
Signals PLA Inputs PLA Outputs

图 7.38 Yajima's 程序化的逻辑数组内建自我测试.


Yajima's 所设计的程序化的逻辑数组内建自我测试电路如图 7.38[Yajima and
Aramaki 1981]。在此设计中有下列这些额外的电路(1)使及面上每次仅能启动一
个比次参数译码器(Augmented Decoder)。(2)乘积项位移纪录器(PSR)能将 1 加
载其中的一个比次,使得乘积项次中产生单一比次的或面。(3)4 个额外的乘积
项加在及平面上,以便于产生同位(parity)及在测试时的控制之用。(4)及面的
同位检查电路用来检查及面上单一比次线路动作时乘绩项上的同位。(5)两个额
外或面上的信号线用来产生测试或面所需的同位及在测试时所需的控制信号。(6)
或面的同位检查电路用来检查利用 PSR 驱动单一线路时,由乘绩项所造成总合项
的同位。(7)回授值产生器用来产生测试程序上所需的控制信号,而此信号的产
生主要是依据自主测试观念而来。
在 Yajima’s 的方法中,利用参数译码器产生测试及面所需的每一时间仅一个比
次线会动作的信号,然后利用及 同位检查电路验证系统是否正确。相同的,利
用 PSR 产生或面所需的测试信号,然后利用或 同位检查电路验证结果是否正确。
此正确的同位是利用额外多出来的两条线(每个面一条)完成的,其自主控制的完
成,则由其它的额外的线来完成。Yajima’s 的方法能测出在及/或面、额外线
及及/或 检查电路上所有的维持-在失效。此方法最大的限制是使用此方法对多
重失效的测试结果无法作任何的保证,且由于需要 EXOR 树来完成同位检查电路,
因此也会影响测试的速度。

Daehn’s 程序化的逻辑数组内建自我测试(Daehn’s
程序化的逻辑数组内建自我测试(Daehn’s PLA BIST)

Daehn and Mucha 提出利用产生测试试样及响应分析用的 BILBO[Daehn and


Mcha 1981]进行程序化的逻辑数组的测试。图 7.39 为利用此方法的架构图。在
此架构中 BILBO 放在输入译码器、及面、或面及输出缓冲器中间,当要测试及面
时,BILBO1 用来产生测试试样,而 BILBO2 用来作响应分析器。在此,由于应用
的需求关系,因此原本的虚拟随机数产生波形改变为一次仅驱动一个比次线的测
试信号,此信号与 Yajima’s 的 AD 相同。而 BILBO2 的功能为 MISR。对于或面
来说,其测试的方式完全相同。与前面相同的,此方法对单一的维持-在及交越
点失效所造成的失效具 100%的失效涵盖率且更为简单,不过所占用的额外面积
是此种方法的最大缺陷。

BILBO2

AND Plane OR Plane


BILBO1

BILBO3

Input Decoders Output Buffer


图 7.39 Daehn’s 程序化的逻辑数组内建自我测试

Liu’s 程序化的逻辑数组内建自我测试(Liu’s
程序化的逻辑数组内建自我测试(Liu’s PLA BIST)

Liu et. al.提出利用程序化的逻辑数组内交越点的数目来重新安排及/或面的设


计方法[Liu 1987]。此方法的系统架构图如图 7.40 所示。此法与前面不同的是,
在及/或面进行测试时,仅有一个比次线及一个输出线会在测试时被驱动。利用
额外的 z1 线连接所有及面的乘绩线,如此一来,如果 TPG1 上的某一条线有信号
时,此线就可用来测试此线与乘绩在线交越点上的组件是否正常工作。因为当有
交越点存在时,z1 会为 1,因此会使得交越记数器加 1。当测试结束时,在 C1
上的数目为在平面上交越点的数目。相同的利用此方法可以对或面进行测试。利
用此种技术,可以测出所有的维持-在及交越点失效。
Crosspoint Counter Additilnal Logic to
Response (C1) Control Output Lines
Evalutor Reference Counter (TPG3)
(RE)
(C2)
Z2

Product
.
Shift .
AND Plane OR Plane
Register .
(PSR) .
. . . . . . . . . . . .
Additional Logic to Control Input Z1
Output Buffers
(TPG1)
External . . . . . . . . . . . .
Control
Input PLA Inputs PLA Outputs

图 7.40 Liu’s 程序化的逻辑数组内建自我测试

7.6 内建自我测试的应用(BI
内建自我测试的应用(BIST
(BIST Applications)

将内建自我测试的功能放在实际的产品中,已成为制造商的一种趋势。在此我们
将介绍一些应用在半导体、通讯、及计算机工业上例子来说明内建自我测试的应
用。

Intel 80386 的完整测试[Gelsinger


的完整测试[Gelsinger 1987](Exhaustive Test in the Intel
80386)

在 Intel 80386 中用来作控制的 3 个程序化的逻辑数组及具有完整测试的内建


自我测试逻辑。在测试试样产生的方法来说对程序化的逻辑数组利用输入记忆闸
的内含线性回授位移缓存器 来产生无遗漏测试试样,对仅读内存则利用原本的
逻辑电路及微控码来产生所需的测试试样,不过因为最大的程序化的逻辑数组有
19 个输入脚所以需要 512K 个频率来完成测试。利用以上方式所获得的结果利用
MISR 加以压缩并连续的移出到线性回授位移缓存器,然后在测试结束后将线性
回授位移缓存器 的结果作比较,以便确定是否正常工作。

AT&T 应用在 ASIC 的循环内建自我测试[Stroud


的循环内建自我测试[Stroud 1988](Circular BIST in AT&T
ASICs)

AT&T 在七个 ASIC 上使用部分连续的循环内建自我测试。其主要的目的是


要完成除了输入输出接脚及部分的多任务逻辑外所有的电路自测。这个方式采用
的模块与 BILBO 相同。除此以外,其中四个 ASIC 的内建自我测试提供内建式的
随机存取内存。总体来说逻辑的花费大约为 20%、面积的花费为 13%、所包含的
失效范围为 92%。这庞大比例的面积花费是因为芯片本身的电路面积很小。另外
值得一提的是 AT&T 在标准细胞设计时有自动化的工具来产生所需的自测电路。

IBM RISC/6000 所使用的虚拟随机数测试法(Pseudorandom


所使用的虚拟随机数测试法(Pseudorandom Test in the IBM
RISC/6000
RISC/6000 [Ratiu and Bakoglu 1990][Yen et. Al. 1995])

RISC/6000 的整个系统具有扩张的内建自我测试。依据公司的传统 RISC/6000 具


有完整的串联扫描。在此采用 STUMPS 的虚假随机数产生器。对内建的随机存取
内存采用自我测试及延迟测试。对内建自我测试来说,每个芯片都具有芯片处理
器。此芯片处理器含有线性回授位移缓存器 来产生测试试样、MISR 来压缩测试
结果、随机存取内存内建自我测试所需的地址计数器。此计数器仅占芯片面积的
3%。

ALPHA 21164 上的指令快取内建自我测试[Bhavsar


的指令快取内建自我测试[Bhavsar and Edmondson
1994](Instruction Cache BIST in Alpha AXP 21164)

ALPHA AXP 21164 是 Digital Alpha AXP 架构下的一个芯片。它具有一个 8K Byte


大小的快取数组。此数组采用七列对一的方式堆砌在一起来提供数据的读取。图
7.41 显示内建自我测试/BiSr 的结构。它包含了数据、标记、及跳跃历史三项的
快取随机存取内存数组。数据路径包含读取扫描路径、填入扫描路径、地址产生、
背景产生及纪录失效列纪录的内容可寻址内存。在封装前利用内建自我测试进行
测试,并将失效列结果纪录在内容可寻址内存中。如果失效列超过 3 个则标记
无法修复并停止测试,否则利用内容可寻址内存内的失效列纪录进行雷射修复,
跟着重复上述的动作并进行验证。
Background Fill Scan Path
Generator

Control spare rows


Sequencer

Address
Generator
Cache Array
Failing
ROW CAM

Fuses
Read Scan Path & Compare

Figuer 7.41 AXP 21164 的指令快取 BiST/BiSR

MC68060 内含高速缓存的内建自我测试[Crouch
内含高速缓存的内建自我测试[Crouch et al. 1994](Embedded Cache
Memories BIST of MC68060)
MC68060)

MC68060 有两种内含内存的测试方法。第一种方法是在工厂制造时所采用的
ADHOC 方式,因为只有这种方式可以完整的测出设计时所制定的目标。ADHOC 使
用外加的逻辑电路使地址、数据输入、数据输出、及控制信号能有效的由封装的
接脚直接连接到各内存的基本单元。因此各内存就如同独立的记忆数组般的容易
由外接脚来观察。在高温筛选测试时,采用自我测试的硬件架构将 ADHOC 电路包
起来。采用此方法是因为如此可以用非常少的外加电路来符合高温筛选测试的需
求。

MC68HC11-
MC68HC11-以算数及逻辑单位为基础的可程序化 MISR [Broseghini and
Lenhert1993](ALU Based Programmable MISR of MC68HC11)

Broseghini 及 Lenhert 在 MC68HC11 微处理控制器上实践了以算数及逻辑单位为


基础的自我测试系统。在此架构下,利用可程序化的虚拟随机数波形产称器及
MISR 来降低测试试样的数量及误判发生的机率。除此以外他们利用微句柄将算
数及逻辑单位转变为线性回授位移缓存器或 MISR,并利用强迫进位输入为零的
方式使加法器变为线性回授位移缓存器。由于采用了这些方法因此使得在硬件的
花费上仅为使用专属的硬件的百分之 25,故所造成的硬件花费是最少的。
References
[Abadir and Breuer,1985] M.S. Abadir and M.A. breuer, “A knowledge-Based System for
Designing Testable VLSI Chips,” IEEE Design & Test of Computers, Vol. 2, No.
4, Aug. 1985, pp. 56-68.

[Abadir,1989] M.S. Abadir, “TIGER: Testability Insertion Guidance Expert System,”


Proc. Int’l Conf. Computer-Aided Design, IEEE CS Press, 1989, pp. 562-565.

[Abramovici, Breuer, and Friedman, 1991] M. Abramovici, M. Breuer, and Friedman,


Digital Systems Testing and Testtable Design , Cmputer Science Press, New York,
1991.

[Agrawal, Kime, and Saluja 1993] V.D. Agrawal, C.R. Kime, and K.K. Saluja, “A Tutorial
on Built-in Self-Test Part1: principles,” IEEE Design and Test of Computers,
March 1993, pp. 73-82.

[Agrawal, Kime, and Saluja 1993] V.D. Agrawal, C.R. Kime, and K.K. Saluja, “A Tutorial
on Built-in Self-Test Part1: applications,” IEEE Design and Test of Computers,
June 1993, pp. 69-77.

[Akiyama and Saluja 1991] K. Akiyama and K.K. Saluja, “A Method of Reducing Aliasing
in a Built-In Self-Test Environment,” IEEE Trans. Computer-Aided Design, Vol.
CAD-10, No.4, Apr. 1991, pp. 548-553.

[Ambler et al 1986] A.P. Ambler et al., “Economically Viable Automatic Insertion of


Self-Test Featuresfor Custom VLSI,” Proc. Int’l Test Conf., IEEE Coumper
Society Perss, Los Alamitor, Calif., Sept.1986, pp. 232-243.

[Bardell, McAnney, and Savir 1987] P.H. Bardell , W.H. McAnney , and J. Savir, Built-in
Test for VLSI : Pseudorandom Techniques, John Wiley & Sons, New York, 1987.

[Bardell, 1990] P.H.Bardell, “Design Considerations for Parallel Pseudorandom


Patterm Generators,” J. Electronic Testing : Theory and Applications, Vol.
1, Feb.1990, pp. 73-87.

[Bateson 1985] I. Bateson, In-Circuit Testing, Van Nostrand Reinhold, New Tork,1985.

[Benowitz et al. 1976] N. Benowitz, D.F. Calhoun, G.E. Alderson, J.E. Bauer, and C.T.
Joeckel, “An Advances Fault Isolation System for Digital Logic,” IEEE Trans.
On Computers, vol. C-24, No. 5, pp. 489-497, May 1975.

[Broseghini and Lenhert 1993] J. Broseghini and D.H. Lenhert, “An ALU-Based
Programmable MISR/Pseudorandom Generator for a MC68HC11 Family Self-Test,”
Proc. Int’l Test Conf., 1993, pp. 349-358.

[Burkness 1987] D.C. Burkness, "Self Diagnostic Cyclic Analysis Testing System
Techniques for VLSI Circuits," Computer, Vol. 18, pp. 69-82, 1982.

[Catthoor, van Sas, Inze, and De Man, 1989] F. Catthoor, J. van Sas, L. Inze, and H.
De Man, “A Testability Strategy for Multiprocessor Architecture,” IEEE Design
& Test of Computers, Vol. 6, No. 2, Apr. 1989, pp. 18-34

[Crouch et al. 1994] A.L .Crouch, M. Pressly, J. Circello, “Testability Features of


the MC68060 Microprocessor,” Proc. Int’l Test Conf., 1994, pp. 60-69.

[Daehn and Mucha 1981] W. Daehn, J. Mucha, “A Hardware Approach to Self-Testing of


Large Programmable Logic Arrays,” IEEE Trans, Computers, Nov. 1981, pp.
829-833.

[DasGupta 1982] S. DasGupta, P. Goel, R.F. Walther, and T.W. Williams, “A Variation
of LSSD and its Implications on Design and Test Pattern Generation in VLSI,”
Digest of Papers 1982 Int’l Test Conf., pp. 63-66, Nov. 1982.

[Dear 1991] I.D .Dear, “Economic Effects in Design and Test,” IEEE Design &Test of
Computers, Vol.8 No. 4 Dec. 1991, pp.64.77.

[Dekker, Beenker, and Thijssen, 1989] R. Dekker, F. Beenker, and L. Thijssen,


“Realistic Built-In Self-Test for Static RAMs,” IEEE Design & Test of Computers,
Vol. 6, NO. 1, Feb. 1989, pp. 26-34.

[Dufaza and Cambon 1991] C. Dufaza and G. Cambon, “LFSR-Based Deterministic and
Pseudo-random Test Pattetm Generator Structure,” Proc. European test Conf, IEEE
CS Press, 1991, pp. 27-34.

[Eichelberger et al 1991] E.B.Eichelberger et al., Structured LOGic Testing,


Prentice-Hall, Englewood Cliffs, NJ. 1991.

[Franklin and Saluja, 1990] M. Franklin and K.K. Saluja, “Built-In Self-Test of
Random-Access Memories,” Computer, Vol. 23, No. 10, OCT. 1990, pp. 45-46.

[Fung and Hirschhom, 1986] H.S. Fung and S. Hirschhom, “An Automatic DFT System for
the Silic Silicom Compiler,” IEEE Design & Test of Computers, Vol. 3, No. 1,
Feb. 1986, pp.45-57.
[Gelsinger,1987] P. Gelsinger, “Design and Test of the 80386,” IEEE Design & Test
of Computers, Vol. 4, No. 3, June 1987, pp.42-50.

[Golomb 1982] S.W. Golomb, Shift Register Sequrnces, Aegeam Park Press, Laguna Hill,
Calif,1982.

[Hassan and McCluskey 1984] S.Z. Hassan and E.J. McCluskey, “Increased Fault Coverage
Through Multiple Signatures,” Proc. Int’l Symp. Fault- Tolerant Computing,
IEEE CS Press, 1984, pp. 354-359.

[Hortensius, McLeod, and Podaima, 1990 ] P.D. Hortensius,R.D.McLeod, and B.W.


Podaima, ”Cellular Automata Circuits for Built-In Self-Test,” IBM J. Research
and Development, Vol.34, No. 2/3, Mar./May. 1990, pp.389-405.

[Iwasaki and Arakawa 1990] K. lwasaki and F. Arakawa, “An Analysis of the Aliasing
Probability of Multiple-Input Signature Registers in the Case of a 2m -arry
Symmetric Channel,” IEEE Trans. Computer-Aided Design, Vol. CAD-9, No. 4, Apr.
1990, pp. 427-438.

[Lightart and Stans, 1991] M.M. Lightart and R.J. Stans, “A Fault Model for PLAs,”
IEEE Trans. computer Aided Design, Vol. 10, No.2, Feb. 1991, pp. 265-270.

[Jain and Stroud, 1986] S.Jain and C.Stroud, “Built-In Self-Testing of Embedded
Memories,” IEEE Design & Test of Computer ,Vol.3, No.5, Oct.1986, pp. 52-63.

[Khare and Albicki 1987] M. Khare and A. Albicki, “Cellular Automata Used for Test
Pattern Generation,” Proc Int’l Conf. Computer Design, IEEE CS Press, 1987,
pp. 56-59.

[Kim, Tront, and Ha,1991 ] K.Kim, J.G. Tront, and D.S. Ha, “BIDES: A BIST Design Expert
System,” J. Electronic Testing: Theory and Applications, Vol. 2, No. 2 June
1991, pp. 165-179.

[Kinoshita and Saluja, 1986] K. Kinoshita and K.K. Saluja, “Built-In Testing of Memory
Using an On-Chip Compact Testing Scheme,” IEEE Trans. Computers, Vol. C-35,
No. 10, OCT. 1986, pp. 862-870.

[Komanytsky 1982] D. Komonytsky, “LSI Self-Test Using Level-Sensitive Scan Design


and Signature Analysis,” Digest of Papers 1982 Int’l Test Conf., pp. 414-424,
Nov. 1982.

[Konemann et al. 1979] B. Konemann, J. Mucha, and G. Zwiehoff, “Built-in Logic Block
Observation Techniques,” Digest of Paper 1979 Test Conf., pp. 37-41, Oct.1979.

[Kroeger,1984] R.C. Kroeger, “Testability Emphasis in the General Electric A/VLSI


Program,” IEEE Design & Test of Computers, Vol. 1, No. 2, May 1984, pp.61-65.

[Kuban and Bruce 1984] J. Kuban and W. Bruce, “Self-Testing the Motorola MC6804P2, ”
IEEE Design &Test of Computers , Vol. 1 , No. 2 May 1984, pp. 33-41.

[Liu, Saluja, and Upadhyaya 1987] C.Y. Liu, K.K Saluja, and J.S. Ypadhyaya, “BIST-PLA:
th
A Built-in Self-Test Design of Large Programmable Logic Arrays,” Proc. 24
Design Automation Conf., June 1987, pp. 385-391.

[Liu and Saluja, 1993] C.Y.Liu and K.K.Saluja, “Built -In Self-Test Techniques for
Programmable logic Arrays,” in VLSI Fault Modeling and Testing Techniques, G.
W. Zobrist,ed., Ablex Publishing, Norwood, N.J.,1993.

[McCluskey 1984] E.J. McCluskey, “Built-In Self-Test Techniques,” IEEE Design &Test
of Computers , Vol. 2, No.2, Apr. 1984, pp. 21-28.

[McCluskey 1984] E.J. McCluskey, “Built-In Self-Test Structures,” IEEE Design


A&Test od Conputers , Vol. 2, No. 2, Apr. 1984, pp. 29-36.

[Mucha, Daehn, and Gross, 1986] J.P. Mucha, W. Daehn, and J. Gross, “Self-Test in
a Standard Cell Environment,” IEEE Design & Test of Computers, Vol. 3, NO. 6,
DEC 1986, pp.35-41.

[Nadeau-Dosite, Silburt, 1990] B. Nadeau-Dosite, A. Silburt,and V.K. Agarwal,


“Serial Interfacing for Embedded-Memory Testing,” IEEE Design & Test of
Computers, Vol. 7, No.2, Apr. 1990, pp. 52-63.

[Pardhan et al,.1988] M.M. Pardhan et al, “Cirular BIST with Partial Scan,” Proc.
Int’l Test Conf., IEEE CS PRESS, 1988, pp. 719-729.

[Petersan and Weldon Jr. 1972] W.W. Petersan and E.J. Weldon,Jr, Error-Correcting Code,
John Wiley &Sons. New York, 1972.

[Pradhan, Gupta, and Karpovsky] D.K. Pradhan, S.K. Gupta, and M.G. Karpovsky,
“Aliasing Probability for Multiple-Input Signature Analyzer,” IEEE Trans.
Computers, Vol. C-39, No. 4, Apr.1990, pp. 586-591.

[Ratiu and Bakouglu, 1990] I.M. Ratiu and H.B. Bakouglu, “Pseudorandom Built-In
Self-Test Methodology and implementation for the IBM RISC System/6000
Processor,” IBM J. Research and Development, Vol. 34. 1990, pp.78-84.

[Reddy, Saluja, and Karpovsky 1989] S.M. Reddy, K.K, Saluja, and M.G. Karpovsky, “A
Data Compression Technique for Built-In Self-Test,” IEEE Trans. Computers, Vol.
C-37, No. 9, Sept. 1988, pp. 1151-1156; correction, Vol. C-38No2, Feb. 1989,
p.320.

[Renick 1983] D.R. Resnick, “Testability and Maintainability with a New 6K Gate
Array,” IEEE Trans. On Computer-Aided Design, Vol. 7, No. 12, pp. 1250-1259,
March/April, 1983.

[Saxena and Robinson 1988] N.R. Saxena and J.P. Robinson, “Syndrome and Transition
Count Are Uncorrelated,” IEEE Trans. Information Theory, Vol. 34.,Jan. 1988,
pp. 64-69.

[Seth and Agrawal 1984] S.C. Seth and V.D. Agrawal, “Characterizing the VLSI Yield
Equation from Wafer Test Data,” IEEE Trans. Computer-Aided Design, Vol. CAD-3,
No.4, Apr.1984, pp.123-126.

[Seth, Agrawal, and Farhat 1990] S.C. Seth , V.D. Agrawal, and H.Farhat, “A
Statistical Theory of Digital Circuit Testability,” IEEE Trans. Computers,
Vol.C-39, No.4, Apr.1990, pp.582-586.

[Srihar et. al 1987] T.Sridhar et al., “Analysis and Sinulation of Parallel Signalture
Analyzers,” Int’l J. Computers and Mathermatics with Applications, Vol.
13,No.5/6,feb. 1987,pp.537545.

[Stroued 1988] C.E. Stroued “Automated BIST for Sequential Logial Synthesis,” IEEE
Design & Test of Computers, Vol. 5, No.6,Dec. 1988, pp. 22-32.

[van de Goor and Verruijt ,1990] A.J. van de Goor and C.A.Verruijt , “An Overview
of Deterministic Functional RAM Chip Testing ,” ACM Computing Survey,
Vol.22,Mar. 1990,pp.5-33.

[van Sas, Catthoor, and De Man 1990] J, van Sas, F. Catthoor, and H. De Man, “Cellular
Automata-Based Self-Test for Programmable Data Paths,” Proc. Int’l Test Conf.,
IEEE CS Press, 1990, pp. 769-778.

[Wu, 1991] E. Wu,“PEST: A Tool for Implementing Rseudo-Exhaustive Self-Test,” AT&T


Technical J., Vol. 70, No. 1, Jan/Feb. 1991, pp. 87-100

[Waicukauskietal., 1989] J.Waicukauskietal., “A Mthod for Geneating Weighted Random


Test Pattems,” IBM J. Research and Development, Vol. 33, No.2, May 1989,
pp.149-161.

[Wunderlich, 1989 ] H.J. Wunderlich, “The Design of Random-Testable Sequential


Circuits,” Proc Int'l Symp. Fault-Tolerant Computing, IEEE Computer Society
Press, Los Alamitos, CA., 1989, pp.110-117.

[Wunderlich, 1987] H.-J. Wunderlich, ” elf-Test. Using Unequiprobable Random


Patterms,” Proc Int'l Symp. Fault-Tolerant Computing, IEEE CS Press, 1987,
pp. 258-263.

[Yajima and Aramaki 1981] S. Yajima and T. Aramaki, “Autonomously Testable


th
Programmable Logic Arrays,” Proc. 11 Int’l Symp. On Fault Tolerant Computing,
June 1981, pp. 41-43.

[Yen et. al. 1995] J.T. Yen, et al., “Overview of PowerPC 6200 Multiprocessor
Verification Strategy,” Proc. Int’l Test Conf., 1995, pp. 167-174.

[Zorian,1990] Y. Zorian, “A Structured Approach to Macrocell Testing Using Built-In


Self-Test,” Proc. IEEE Custom Integrated Circuits Conf., IEEE Custom Integrated
Circuits Conf., 1990, pp. 28.3.1-28.3.4.

[Zorian and Agrawal 1990] Y. Zorian and V.K. Agrawal, “Optimizing Error Masking in
BIST by Output Data Modification,” J. Electronic Testing: Theory and
Applications, Vol. 1, Feb 1990. pp. 59-72.

You might also like