Professional Documents
Culture Documents
eetop.cn mbist理论知识
eetop.cn mbist理论知识
7.1 前言
对于任何途径来说,以下的目标要求是必须的: 有高且容易证明的失效涵盖率,
产生最少测试试样,最小的性能衰减,能在实际工作速度下测试,短的测试时间
和合理的硬件费用。针对以上的要求,内建自我测试系统( Bult-In Self-In ) 提
供了可行的解决方式。首先,内建自我测试系统利用减少不同芯片间的联系,来
克服因为有限的输出入所造成瓶颈,并进而减少相当多的测试试样与模拟过程,
除此以外经由测试时程安排,能使同一时间测试许多不同的单位来使测试时间相
对的缩短,且整个硬件面积的额外花费也能借由仔细的设计与透过测试硬件的分
享而变小。
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
虽然有限的输出入(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
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]
Pseudorexhaustive Testing):所谓的虚拟无遗漏的测
虚拟无遗漏的测试方法(Pseudorexhaustive Testing
试是将待测电路分成数个小部份来分别进行测试。在这些部分的电路
里所有的错都能被侦测到。然而,这样的测试方式须要下很大的功夫
才能把电路做适当的分割及送测试试样与获得测试反应。[McCluskey
1981],[Chandra 1983],与[Udell 1986]。
对于测试试样产生器,主要考虑包含了失效涵盖率,测试长度,已以及硬件额外
的花费。针对以上试样产生器的硬件设计包括有针对决定好测试试样的只读存储
器(ROM),与针对无遗漏以及随机试样测试的线性回授位移缓存器(LFSR)。在 3.2
节,我们将对线性回授位移缓存器(LFSR)作更详尽的讨论,因为此缓存器是内建
自我测试环境下非常重要的模块。在 3.3 节中,我们将讨论整个线性回授平移的
使用与其它测试试样产生器的模块。
在大部份的情况下,结果分析器会把很长的测试反应序列压缩到一个字,像这样
的字我们称作特征(Signature)或是征兆(Syndrome)。然后利用这个特征/征兆字
与事先所储存的无误电路中得到的标准特征/征兆字相比较就可以决定被测电路
的好坏。根据这些压缩的方法,可分类如下:
特征分析:特征分析法利用线性回授位移缓存器(LFSR)将得到的结果压到单一的
特征字。这会是最受欢迎的方式,是因为其方式简单且有效.[Peterson
1972]与[Colomb 1982]。
变化次数计算(Transition Count):变化次数计数方式数是算出在测试结果中变
化总数去决定电路的正确与否。这样的方法的复杂程度与 1 的计方式
是 相 同 。 然 而 , 此 种 方 式 使 的 测 试 的 序 列 不 能 改 变 。 [Barzilzi
1981][Hayes 1976]
分析器方法的选择包含化名机率(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)里的多项式来决定。其特征
方成式如下:
在特征多项式与两型式的电路结构间的相对性显示如图形 7.4。基本线性回授位
移缓存器(LFSR) 的架构是 D 型的正反器,XOR 逻辑闸,与接点。这些接点以 g i
参数标上。当 g i 是 1 时,回路通过讯号到 XOR 逻辑闸,否则接点就关闭对于
x 4 + x 3 + 1 的特征多项式,线性回授位移缓存器(LFSR)型式显示在 7.3 图。
D3 D2 D1 D0 D3 D2 D1 D0
图 7.3 线性回授位移缓存器(LFSR)型式
+ + ... +
g1 g2 gn-1
gn-1 gn-2 g1
线性回授位移缓存器(LFSR)重要的特色之一就是它的再循环关系,这样的循环确
定线性回授位移缓存器(LFSR)的状态会在一定的顺序下重复,而这样的关系由下
列式子表达。
n
∑ gi x i ( a − i x − i +L+ a−1x −1 )
G( x ) = i =1 (7-2)
g( x )
个循还周期重复出现。这循还周期包含所有可能的组合,但除了(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 。
除了这些静态的随机的特质,也有一些动态的随机特质。任何输出自本身相关性
非常趋近于零,自身相关性指的是在相同的位下伴随一定的时间位移之试样所得
到的相关性。这儿,是 0 与 1 作相关性计算。此外,输出的交互相关愈近零愈好,
当一个 M-序列有静态与动态的两特色,称做类似随机序列虚拟 虚拟(pseudo
虚拟 pseudo)用来指
pseudo
前面讨论的再循环关系。
7.2.2. 如多项式乘法器的线性回授位移缓存器(LFSR)(LFSR
如多项式乘法器的线性回授位移缓存器(LFSR)(LFSR as a polynomial
multiplier)
+ + + ... +
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
7.2.3 如同除法器之线性回授位移缓存器(LFSR)(LFSR
如同除法器之线性回授位移缓存器(LFSR)(LFSR as a polynomial
Divider)
output
gn gn-1 gn-2 g1 g0
图 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)的例子
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
D D D D D D
Q Q Q Q Q Q
D D D D D D
Q Q Q Q Q Q
图 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)被使用来储存测试试样
和测试响应,计数器则被用来排列内存内的记忆顺序,以便进行测试。
无遗漏的测试是将所有可能的输入组合送入待测电路,此方法可以保证侦测
到所有的失效只要这些失效不具有顺序性的行为因素在内,因为测试的顺序中可
能不包含测试这些顺序失效所需的测试顺序,详细的顺序测试试样的方法请参考
序向产生器这一章。此测试方法的测试长度是以指数正比于输入个数( 2n ),由于
所有输入组合都被使用到,所以它也被视为完全功能测试。[McClusky 1981][Wang
1986]。
LFSR
CUT
SA
图 7.12 无遗漏测试的硬件架构
虚拟无遗漏测试将待测电路区分成几个较小的子电路,且对每个区块做无遗
漏的测试,所有可测试的错误都可在子电路中侦测到。虚拟无遗漏侦测的主要目
标是能在相同的时间或更少的时间内得到与无遗漏侦测相同的失效涵盖率,当失
效涵盖率已保证接近 100 %时,无遗漏侦测与虚拟无遗漏侦测即不须再做侦错模
拟。然而,这样的一个方法须要额外的设计努力来区分整个电路到虚拟全面测试
的测试子电路。再者,测试试样与测试响应的递送也是一个主要的考虑,增加硬
件可能也会增加开销且降低整体表现。[McClusky 1981][Chandra 1983] and
[Udell 1986]。
Cone
图 7.13 虚拟无遗漏测试的圆锥分割
Cone
L
F normal inputs
S
R
MUX
CUT
Subcircuit
under test
S
A
图 7.15 经过多任务器分割的虚拟无遗漏测试
虚拟随机测试应用了一个固定范围的随机测试试样,被应用的测试试样满足随
机的特性,但其测试试样间的排列顺序是固定的。在此方法中失效涵盖率是由测
试的长度和试样的内容所决定,对于随机试样而言,失效涵盖率和测试长度有着
指数曲线的关系,如图 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 随机试样阻抗错误的范例
加权虚拟随机测试是使用确定 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
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 不同测试方法的比较
7.4 内建自我测试响应的压缩与分析(BIST
内建自我测试响应的压缩与分析 (BIST Response
Response Compression
and Analysis)
响应分析器压缩一个非常长的测试响应到一个单一的字,这样的字被称为
(特征),然后利用这个特征字与事先所储存的无误电路中得到的标准特征字相比
较,假如特征和标准特征复制字相同,则此电路被视为无错误,否则,它就是错
误的。在此部分,我们将学习以下响应分析的方法,一的计数、转态的计数、征
兆的计数、和特征分析,就像前面所提及的,有一个储存试样的方法预先储存测
试试样及响应,这个响应分析被和储存的无错误响应做一对一的比较,因为这样
的方法是非常直接的,我们将不在后面多做讨论。
压缩就像是一个方程式从一个大的输入空间(响应)转到一个小的输出空间
(特征),它是一个多对一的映射,因此,一个错误响应可能会和无错误响应有相
同的特征,这样的情形被归之为化名,化名的机率为错误响应被视为无错误的可
能性,被定义如下式:
化名机率是响应分析中主要的考虑,由于压缩的多对一映射的特性,它不像是压
缩后做审查,因此,压缩后诊断的结果非常差。除了化名机率外,硬件的开销与
硬件的兼容性也是重要的讨论课题,在此,硬件的兼容性可以参考如何将有效内
建自我测试系统可以被插入于待测电路或设计给测试用的电路中。
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 一的计数压缩电路架构
m − 1
2× −1
r 0.5
Ptc = ≅ (πm)
2m − 1
(7-7)
Clock Counter
图 7.20 转换计数压缩法电路节构
random
test CUT
pattern
Counter /
Syndrome
图 7.21 征兆测试电路结构
征兆测试原先的设计是使用无遗漏的图样。所以,它的征兆是 S = K / 2 n ,其中 n 是
输入的个数,而 K 是最小项的个数。假如全部的单一维持-在错误是征兆可侦测
的话,则此电路是可以征兆测试的。对征兆测试法感兴趣的部分是,任何功能的
电路皆可被设计成可做征兆测试。在征兆上已有许多的研究,详细内容请参考
[Savir 1980] 与 [Barzilai 1981]。
特征分析是一种压缩技巧,原理是基于前面章节讨论过的线性回授位移缓存器。
图 7.22 是特征分析的电路结构图。以数学上看,输出序列(多项式)是被特征多
项式所除,除后的余式就叫做特征。图 7.9 的范例亦可被看作是特征分析的范例。
输入序列 (110110110) 被压缩成 (1101) 的特征,也就是余式。对长度为 m 的
输出序列而言,全部有 2 m − 1 个错误序列。假设我们将输入序列 P(x) 表示成
P(x)=Q(X)G(x)+R(x)
(7-8)
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 +
与之前的方法不同的是,特征分析的化名机率与测试响应是相互独立的,可用增
加线性回授位移缓存器长度的方式来减低化名机率。依据多项式的特性,用线性
回授位移缓存器方式做的特征分析有下列性质。第一,一个线性回授位移缓存器
若有两个或以上的非零项,将可侦测出任何的单一错误。第二,一个有质特征多
项式的线性回授位移缓存器可侦测出任何被分开成小于 2 n − 1 个位置的双重错
误。第三,一个有 g 0 = 1 的线性回授位移缓存器可侦测出全部的长度小于 n 的
burst error。图 7.22 是只有单一输出的线性回授位移缓存器的硬件结构。对
多重输出电路而言,吾人并不需要多重的线性回授位移缓存器或每次压缩输出回
应。取而代之是用多重输入特征缓存器或简称 MISR。图 7.23 是两个 MISR(根据
图 7.3 中的线性回授位移缓存器)的电路结构。它的多重输入位是从 MISR 的顶端。
MISR 与单一输入特征分析的线性回授位移缓存器有相同性质。
到目前为止,我们已经提出了许多技巧将一长串的测试序列压缩成单一字组特征
来作验证,这可以被视为是在时间域上的压缩。这里,我们要讨论空间压缩。空
间压缩是一种控管有多个输出电路的技巧。拿利用 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 空间与时间压缩结构
在说明完内建自我测试的基础后,这个章节,我们将焦点放在内建自我测试结构
上。因为,线性回授位移缓存器和 MISR 与扫描 DFT 兼容,而且比其它内建自我
测试模块更广受欢迎。所以,我们将专注在以线性回授位移缓存器,MISR 和扫
描缓存器为基本原则的技巧上。大部分的内建自我测试技巧包含了测试时间与测
试硬件花费之间的基本取舍。在 [Argrawal 1993] 中,内建自我测试技巧被归
成两类: 测试-每-频率与测试-每-扫描。测试-每-频率内建自我测试是运用测试
向量,与每个频率抓取测试响应一次。测试-每-扫描内建自我测试利用扫描链递
送测试向量与测试响应。因此,一个完整的测试周期与一个完整的扫描周期有相
同的周期时间。再以下的次小节中,我们将以测试-每-频率与测试-每-扫描分类
中,讨论循序与组合内建自我测试的技巧。
7.5.1 组合测试-
组合测试-每-频率内建自我测试 (Combinational
(Combinational Test-
Test-Per-
Per-Clock BIST)
基本结构 (Basic Structure)
PIs n
MUX
n CUT m
(C or S)
m POs
LFSR Counter MUX SISR
1 k 1
k = log 2 m
MISR
CUT
PI PO
(C or S)
共存内建自我测试
共存内建自我测试 (CBIST)
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
SA
内建逻辑区块观察 (Built-
(Built-in Logic Block Observation)
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.5.2 测试-
测试-每-扫描内建自我测试 (Test-
(Test-Per-
Per-Scan BIST)
测试-每-扫描方法目标是在尽可能地减低硬件花费。舍弃对每个输入/输出脚都
要用的线性回授位移缓存器与 MISR,这个方法用的是组合线性回授位移缓存器
/MISR 与递移缓存器,来将硬件花费减至最低。图 7.31 是一个测试-每-扫描内
建自我测试的基本电路结构。在内建自我测试模式下,线性回授位移缓存器产生
测试向量而且透过扫描缓存器递移到 CUT 的输入。在此同时,测试响应被扫描进
去且被线性回授位移缓存器压缩。因为用了扫描链来递送测试图样与响应,所以
测试速度比之前所谈的方法慢。一个测试周期所需的频率是输入与输出扫描缓存
器的扫描阶段的最大值。同样属于此类的包括 CEBS,LOCST,与 STUMP。我们将
再详细讨论这些。
LFSR Shift register
图 7.31 基本测试-每-扫描结构
Si
CUT
So
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)
MISR
MISR
图 7.35 随机测试资料架构
同时自我测试(Simultaneous
同时自我测试(Simultaneous Self Test-
Test-SST)
图 7.36 同时自我测试架构
7.5.4 结构电路下的内建自我测试(BIST
结构电路下的内建自我测试(BIST for Structured Circuits)
... ...
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
Daehn’s 程序化的逻辑数组内建自我测试(Daehn’s
程序化的逻辑数组内建自我测试(Daehn’s PLA BIST)
BILBO2
BILBO3
Liu’s 程序化的逻辑数组内建自我测试(Liu’s
程序化的逻辑数组内建自我测试(Liu’s PLA BIST)
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.6 内建自我测试的应用(BI
内建自我测试的应用(BIST
(BIST Applications)
将内建自我测试的功能放在实际的产品中,已成为制造商的一种趋势。在此我们
将介绍一些应用在半导体、通讯、及计算机工业上例子来说明内建自我测试的应
用。
Address
Generator
Cache Array
Failing
ROW CAM
Fuses
Read Scan Path & Compare
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)
[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.
[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.
[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
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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 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.