基于边界扫描的板级互连测试模型研究
2009-05-12李洋
李 洋
摘 要:主要研究边界扫描技术在电路板互连测试中的应用,对互连测试的故障模型和测试方法进行优化。根据电路板制造故障的具体成因和分布情况,对基于边界扫描的板级互连测试模型进行扩展。提出以元器件焊点故障作为基本参考点,增加了网络两端发生不同故障的情况,从而总结出新的故障模型,并给出了针对新故障模型的测试方案。基于新的故障模型的测试可以更加全面地发现电路板的潜在问题,避免在生产测试中因为故障的漏判而反复维修,从而提高生产的效率。
关键词:边界扫描;互连测试;故障模型;测试矩阵
中图分类号:TN407文献标识码:A
文章编号:1004 373X(2009)02 008 04
Board Interconnections Test Model Based on Boundary Scan
LI Yang
(Tsinghua University,Beijing,100084,China)
Abstract:The paper optimizes the board interconnections model and test methodology based on boundary scan.Based on the investigations into board manufacturing defects,a new defect model is proposed for boundary scan interconnections test.The new model takes into accounting the situation that the input and output of one net have different defects.The test solution for the new model is also provided.By implementing the right test solution for this model,manufacturing test can cover more potential defects.The efficiency for factory test and repairment are improved.
Keywords:boundary scan;interconnections test;defect model;test matrix
0 引 言
边界扫描技术是联合测试行动组JTAG(Joint Test Action Group)于1987年提出一种电路测试方法,并于1990年被IEEE接纳,形成了IEEE 1149.1标准[1]。因此边界扫描技术也被称为JTAG测试技术。随着大规模集成电路的发展,JTAG测试技术得到了越来越广泛的应用,尤其是在电路板制造行业中,很多工厂已经把其作为必备的生产测试流程。
能够进行JTAG测试的电路板必须采用支持IEEE 1149.1标准的电子元器件,这里称为BS(Boundary Scan)器件。BS器件的管脚和内部逻辑电路之间增加了由移位寄存器构成的边界扫描单元,各边界扫描单元串行连接。把电路板上的所有BS器件连接起来,就形成了边界扫描链。通过串行扫描方式设定和读取器件管脚的状态,实现对电路板的测试和诊断。
电路板的JTAG测试包括以下3个步骤:
第一步:测试边界扫描链的完整性,确保JTAG的扫描链路和各个接口工作正常。这一步是JTAG测试的基础,必须在其他测试开始之前进行;
第二步:测试电路板各BS器件管脚之间的互连;
第三步:对电路板上的可编程逻辑器件进行在线编程。
在此主要研究BS器件管脚之间的互连测试。互连测试采用网络互连模型,用网络描述电路板上的互连,把网络之间的短路和开路作为电路板的故障模型。实际上,电路板在制造过程中发生的故障有其特殊的成因,根据这些特点,可以进一步细化网络互连模型的故障模型,使之更加符合电路板制造业的实际缺陷,从而提高工厂JTAG测试的效率。
在以下章节里,首先介绍网络互连模型,并给出了传统的故障模型,然后根据电路板制造业的特点,对传统故障模型进行了扩展,给出了一种更贴近电路板生产实际的故障模型,最后提出了基于新故障模型的测试方案。
1 电路板的网络互连模型
JTAG互连测试采用网络互连模型。其核心思想是把电路板上元器件管脚之间的连接描述为网络。┮桓霆网络是由1个输入节点、1个输出节点,和1根连接输入/输出节点的导线构成的,图1是网络的示意图。网络的输入、输出点对应着电路板上存在互连关系的2个管脚,网络的导线对应着这两个管脚之间的基板导线。
把电路板上所有的管脚互连都定义成网络,就构成了网络表。图2是一个由5个网络组成的网络表。
图1 单个网络
图2 网络表
JTAG技术提供了一套写入和读取机制,通过JTAG可以把测试代码串行加载到网络表的各个输入点,然后从输出点串行读出测试结果。通过对测试结果的分析,来检查网络是否发生了故障。
在对网络进行互连测试时,涉及到以下几个概念[2]:
并行测试向量PTV (Parallel Test Vector):在一次测试循环中,加载到各网络上的测试代码构成的向量,记为vP璲,j=1,2,…,P。对某个固定的电路板而言,它的PTV维数是确定的,等于网络的总数N。
并行响应向量PRV(Parallel Response Vector):采用某个PTV进行测试所得到的测试响应向量称为并行响应向量,记为rP璲,j=1,2,…,P。
串行测试向量STV(Sequential Test Vector):在多次测试循环中施加到同一网络的测试代码构成的向量,记为vQ璲,j=1,2,…,N。STV的数量等于网络的总数N,其维数等于测试循环的次数(或PTV的数目)。
串行测试响应向量SRV(Sequential Response Vector):网络在输入一定的STV后的输出响应向量为串行测试响应向量,记为rQ璲,j=1,2,…,N。У蓖络无故障时,其SRV与STV相同。
测试矩阵:以PTV为列向量,STV为行向量构成的矩阵。
故障征兆:当某个网络存在故障时,表征故障的SRV称为故障征兆,记为Sf璱。
2 传统的互连故障模型(故障模型1)
传统的互连故障模型包括2种故障[3]:一种是单个网络输出呆滞。另一种是几个网络之间发生短路。如图3所示。
图3 传统故障模型单个网络输出呆滞,是指网络的输出值为固定为1或者固定为0。因此又被称为S-A-1(Stuack-At-1)或S-A-0(Stuack-At-0)。造成这类故障的原因主要有以下2个:
(1) 网络发生开路,外界不能给其施加激励,从该网络读取的响应始终为1或者始终为0。具体为1或0取决于电路工艺。
(2) 网络跟电源或地短路,造成网络输出始终为1或者始终为0。
发生S-A-1或S-A-0故障的网络,其测试输出为全“1”SRV或全“0”SRV。
短路故障是指一个网络和其他1个或几个网络发生桥接,短路故障所涉及的网络具备相同的输出结果,即在不同的 STV激励下,涉及短路的网络SRV相同。短路故障有两种类型[4]:
(1) 线“或”短路W-O(Wired-OR-Short):最终的逻辑值为各网络STV的逻辑“或”。数学描述如下,其中B表示涉及短路的网络的集合;
ИSf璱=∪j∈BvQ璲И
(2) 线“与”短路W-A(Wired-AND-Short):最终的逻辑值为各网络STV的逻辑“与”。数学描述如下;
ИSf璱=∩j∈BvQ璲И
对网络进行测试时,测试时间取决于PTV的数量,测试的诊断能力则受到混淆症候和混迭症候的影响[5]。
混迭症候(Abasing Syndrome):当测试矩阵中某个网络的STV或某个短路故障响应相同时,将无法确定这个网络是否包含在该短路故障中,这种现象称为混迭症候。
混淆症候(Confounding Syndrome):当多个独立故障的输出结果相同时,不能确定故障现象究竟是由哪个故障引起,这种现象称为混淆症候。
上述的故障模型是目前互连测试研究中常用的故障模型。现把这种模型称为故障模型1。故障模型1把网络作为一个整体来测试,认为网络是发生故障的最小单元。但在实际上网络包括输入点,输出点和连线,这几个环节可能分别发生不同的故障。
通过对电路板生产过程的分析,可以在故障模型1的基础上把网络故障加以细化,从而得出更接近电路板生产实际的互连故障模型。
3 以管脚故障为参考点的互连故障模型(故障模型2)
电路板在生产过程中发生的管脚互连故障可以分为以下几类:
电路板基板导线的故障;
焊接故障:包括元器件管脚与基板之间的焊料缺失;管脚焊点上的焊料桥接;管脚断裂或抬起导致管脚脱离焊点等;
元器件故障:包括电路板上的元器件缺失;在贴片时使用了错误的元器件;元器件安装方向相反等;
随着电路板生产技术的进步,基板的制造过程已经非常成熟,基板上的导线发生故障的可能性很小,工厂在制造过程中的问题大都发生在元器件的组装阶段,即焊接或元器件引起的故障。
前面已经说明,电路板上的元器件是串行连接成边界扫描链的。元器件故障会导致电路板上的边界扫描链中断,因此在测试边界扫描链的完整性时就可以发现并修复元器件的问题。这样在进行管脚互连测试时,元器件故障就已经被排除了,所以互连测试主要是检查元器件管脚的焊接故障,包括以下2个方面:
管脚和电路板导线开路:包括元器件管脚脱离焊点,元器件管脚与基板之间的焊料缺失;
管脚之间短路,即元器件管脚焊点上的焊料桥接。
管脚对应着网络的输入或输出点,把管脚故障作为参考点来定义网络互连故障,可以得出:网络短路就是网络的输入点之间或输出点之间发生短路,而开路就是指网络的输入点或输出点跟网络导线之间断开。
对于单个网络而言,其输入点和输出点可能只有一端发生故障,可能两端同时发生同一类故障,也可能两端各发生不同的故障。因此网络的互连故障可以有更多的类型,现归纳如下:
(1) 网络输出呆滞:故障原因包括网络一端开路一端正常;或两端同时开路;如图4所示。网络跟电源或地发生短路也会造成这类故障。这些故障都表现为网络SRV固定为1(S-A-1)或者固定为0(S-A-0)。
(2) 网络短路:N(N≥2)个网络之间发生短路,且这些网络本身没有开路故障, 如图5所示。这种短路故障可能是W-A短路,也可能是W-O短路,这些短路网络可能一端短路另一端正常,也可能网络两端同时和其他网络短路。
图4 网络开路故障
图5 网络短路故障
(3) 输入短路,输出开路:如图6所示,某个网络输入点跟其他网络短路,同时输出点开路。在这种情况下,该网络的SRV为S-A-0或S-A-1,输入点因为和其他网络短路,会对短路组合的SRV产生影响。
(4) 输入开路,输出短路:如图7所示,某个网络输入点开路,同时输出点跟其他网络短路。在这种情况下,该网络的输入值对输出值没有影响,网络的输出值是由短路组合决定的。
图6 输入短路,输出开路故障
图7 输入开路,输出短路故障
如果把网络的输入点和输出点对调,第四种情况就变成了第3种情况。但是在把电路板描述成网络表时,对于输入点和输出点发生何种故障是完全不可知的,所以,第3种情况和第4种情况应该分开来考虑。
在此把上述故障模型称为故障模型2,其中第1种和第2种情况与故障模型1是等效的,在建模时考虑到网络两端可能发生不同的故障,增加了第3种和第4种情况。
每个网络的输出结果只能直接反映输出端的故障,如果输入端也存在故障,那么它就可能被忽视。这里把这种现象称为漏判。
工厂测试的目的是发现故障并进行维修,其流程如图8所示:测试中如发现故障,就要进行维修,修复后再进行验证测试。如果发生了漏判,一次测试不能发现所有故障,则只能在电路板输出端维修完成后,进行验证测试时,才能发现输入端的故障,于是必须再次维修并再次验证测试。这就增加了测试的时间和维修的复杂性。如果能够基于故障模型2找到方法消除漏判,就可以有效提高生产测试的效率。
4 基于故障模型2的测试方案
故障模型2引入了网络一端开路,一端短路的故障。在测试时采用走步1算法[6]和走步0算法[6]生成测试矩阵,能够同时检测出网络两端的故障,避免发生漏判。
设网络总数为N,走步1算法的初始测试矢量为1,0,0,…,0(N维),然后让1顺序移位,构成N行N列的测试矩阵,所以称作走步1算法。走步0算法与走步1算法原理相同,只是走步0算法的初始测试矢量为0,1,1,…,1,然后让0顺序移位。走步1算法和走步0算法生成的测试矩阵,PTV数量都是N。
表1和表2是走步1算法和走步0算法生成的测试矩阵示例,网络总数为5。
图8 工厂 JTAG测试流程
表1 走步1测试矩阵
网络
PTV
vP5vP4vP3vP2vP1STV
110000vQ1
201000vQ2
300100vQ3
400010vQ4
500001vQ5
表2 走步0测试矩阵
网络
PTV
vP5vP4vP3vP2vP1STV
101111vQ1
210111vQ2
311011vQ3
411101vQ4
511110vQ5
走步1算法生成的测试矩阵能实现对所有W-O短路的完全诊断,每个故障征兆都有惟一的故障成因与之对应,不会发生混迭或混淆[7];对网络一端W-O短路,一端开路的故障也具有诊断能力。因为STV 中“1”的位置是网络的标志,如果发生了W-O短路,可以根据SRV中“1”的位置,分析出哪些网络发生了短路,哪些网络发生了开路,从而避免漏判。例如,用走┎1矩阵对表1的5个网络中进行测试,如果网络1的SRV是00000, 网络2的SRV是11000,从11000这个结果,可以分析出网络1和2 的输入点必然发生了或短路;但是网络1的SRV不是11000,而是全“0”向量,那么可以判定:网络1的输出点发生了开路,导致输出㏒-A-0。
同理,走步0算法生成的测试矩阵能实现对所有W-A短路的完全诊断,对网络一端W-A短路,一端开路的故障具有诊断能力。
在实际测试时为了同时覆盖W-O短路和W-A短路,要把走步1矩阵和走步0矩阵组合起来使用,如表3示。这样,PTV 的数量就是2N。
表3 走步1和走步0组合测试矩阵
网络点
PTV
vP10獀P9vP8vP7vP6vP5vP4vP3vP2vP1STV
11000001111vQ1
20100010111vQ2
30010011011vQ3
40001011101vQ4
50000111110vQ5
走步1矩阵和走步0矩阵构成的组合测试矩阵,只有当全部网络一起发生短路时,其结果才是全“0”SRV或全“1”SRV。而显然这种故障是不可能发生的,因此可以认为全“0”SRV和全“1”SRV不是由短路故障造成的,这样就避免了和开路故障发生混淆。也就是说,用组合矩阵测试时,只要一个网络的输出是全“0”和全“1”,就可以肯定该网络发生了输出开路或者输出呆滞。
综上所述,组合矩阵能够对故障模型2的所有情况进行完备诊断,不会发生混迭症候、混淆症候和漏判问题。
组合矩阵的PTV数量是2N,当网络数量比较大时会造成测试时间过长。因此对于大规模集成电路板的测试不宜直接采用这种算法。为了缩短测试时间,可以采用两步测试的方案[8]:第一步用紧凑性比较好的测试矩阵进行初步测试,快速地找出可能存在问题的网络,缩小诊断测试的范围;第二步,采用组合矩阵,对存在故障的网络进行精确诊断。这样就可以又快又好地达到测试目的。
第一步测试可以采用改良计数序列算法[9]或等权值算法[10],其PTV数量级为 log2 NВ是紧凑性最好的一类算法[10]。用这类算法生成的测试矩阵可以发现所有可能存在问题的网络,但不能完全确定故障的位置和类型。
5 结 语
电路板生产测试目的在于发现故障并进行维修。测试中对故障的漏判会造成反复维修,影响生产的效率,因此需要尽可能全面地发现故障。现以网络输入端和输出端的故障为参考点,引入了一端开路,一端短路的故障。基于这种故障模型的测试可以避免对输入端故障的漏判,从而减少反复维修。
JTAG测试技术的应用还包括用BS器件测试非BS器件[3]。因为BS器件之间的互连可能会经过一些非BS器件(电阻,功放等),可以通过测试BS器件之间的互连来检查这些中继器件。这种测试实际上是假设网络互连模型的导线部分也可能发生故障。根据这种情况,本文提出的故障模型2可以进一步扩展,从而应用到BS器件测试非BS器件的领域。
参考文献
[1]IEEE Std 1149.1:IEEE Standard Test Access Port and Boundary-Scan Architecture[S].IEEE Computer Society,2001.
[2]Najmi Jarwala,Yau C W.A New Framework for Analyzing Test Generation and Diagnosis Algorithms for Wiring Interconnects[A].Intl Test Conf..1989:63-70.
[3]Ben Bennetts.Boundary Scan Tutorial[R].ASSET InterTech.,2001.
[4]胡政,温熙森.边界扫描测试的数学描述模型[J].国防科技大学学报,1999,21(5):83-87.
[5]陈圣俭,牛春平,任哲平.边界扫描测试生成算法优化问题[J].电子测量与仪器学报,2006,20(4):73-76.
[6]Hassan A,Rajski J,Agarwal V K.Testing and Diagnosis of Interconnects using Boundary Scan Architecture[A].IntlTest Conf..1988:126-137.
[7]牛春平,陈圣俭,任哲平.同时具备W-O和W-A对角独立性的多故障测试生成算法[J].微电子学与计算机,2005,22(1):54-57.
[8]Cheng W T.Optimal Diagnostic Methods for Wiring Interconnects[J].IEEE Trans.on C.A.D.,1992,11(9):1 161-1 165.
[9]Goel P,McMahon M T.Electronic Chip-in-Place Test[A].Proc.Intl.Test Conf.1982:126-137.
[10]胡政,黎琼炜,温熙森.边界扫描测试向量生成的抗混迭算法[J].电子测量技术,1998(1):8-12.
[11]杨吉祥,赵玉莲.用于电路板生产检验的边界扫描[J].国外电子测量技术,1997(2):15-18.
作者简介 李 洋 1979年出生,陕西汉中人,现在清华大学电子工程系在职攻读工程硕士。供职于摩托罗拉(中国)电子有限公司,主要负责产品的可测试性设计和基于边界扫描的测试技术应用。