边界扫描故障及研究(VISL)
仪器信息网 · 2011-03-24 00:23 · 35114 次点击
金凯博边界扫描故障及研究(VISL)
1引言
随着信息技术发展和超大规模集成电路的应用,印制电路板越来越复杂,多层板(MCM)设计越来越普遍,芯片制备工艺中大量使用各种表面贴装元件和球阵列封装元件,芯片管脚数目和管脚密度不断提高,使得基于物理探针的传统测试技术难以为继。1987年联合测试行动小组(JTAG)提出的边界扫描测试被IEEE接纳,形成JTAG标准。该标准用插入边界扫描结构的全新技术和方法,解决了芯片测试技术的瓶颈问题,受到了全球测试业界的广泛认同和支持,许多主流公司的IC芯片均支持边界扫描机制。边界扫描技术不但芯片故障定位方便,测试效率高,控制逻辑简便,而且易于实现。
本文介绍支持JTAG标准的芯片结构,以PC机作为边界扫描测试向量生成和故障诊断的基础,针对由两块芯片互连的PCB板,就其测试总线的故障诊断策略的实现方法进行讨论,并且通过了实验验证。
2支持JTAG标准的芯片结构
边界扫描技术的核心是芯片的I/O引脚与内核电路之间设置了边界扫描结构。JTAG标准定义了一个4-wire串行总线,并且通过该总线访问边界扫描单元,达到测试芯片内核与外围电路的目的。图1给出了支持JTAG标准的芯片结构体系。图1中,扫描结构由测试存取通道(TAP)、边界扫描寄存器(BSR)、TAP控制器、指令寄存器(IR)和辅助寄存器组成。TAP是边界扫描测试的核心控制器,它与总线TCK同步工作,并响应总线TMS产生时钟信号和控制信号,将指令装入指令寄存器中;它还将测试数据从TDI端移入扫描链中,并从TDO端移出数据,执行测试功能,例如捕获数据、移位和更新数据等。
3边界扫描结构测试总线故障诊断
3.1测试系统组成
扫描链完整性测试是对扫描结构的测试总线故障的诊断,用于检测边界扫描电路本身的完整性。测试系统由主机(PC机)、测试仪和实验PCB板组成,测试仪通过标准口(RS232)与PC机连接,通过串行标准信号电缆与PCB上的测试存取通道TAP相连,如图2所示。PCB板上两块Xilinx公司的xc9572pc84芯片互连,芯片符合IEEE1149.1的JTAG接口,具有84个外部引脚、4个JTAG引脚、5个VCC引脚、6个VSS引脚、69个双向数据I/O引脚,xc9572系列芯片未实现异步复位信号TRST引脚,电缆不需要提供这一信号线。该器件的边界扫描寄存器有216个边界扫描单元,其中9个是internal属性的单元,其余207个单元由69组边界扫描单元组成。
IC1的1脚和3脚分别通过PCB板外部焊接的两根导线连接IC2的4脚和2脚。实验采用人为方法分别注入了短路故障、断路故障或者呆滞故障。在进行互连测试之前,必须对边界扫描结构的完整性进行测试,以确保扫描链正常工作。
3.2总线测试内容与故障模型
边界扫描结构总线测试的内容包括:各芯片的测试总线(TCK,TMS,TDI和TDO)的开路故障、呆滞故障(s-a-0和s-a-1)和桥接故障。由于TDI,TMS两个信号线内部均有上拉电阻,所以它们的开路故障可归结为s-a-1故障。
表1列举了在边界扫描结构完备性测试中,总线可能出现的6种桥接故障(TDI-TDO表示TDI测试线与TDO测试线相互桥接,下述类同),表2列举了8种可能出现的呆滞故障。
根据上述分析,在对各寄存器作功能互连测试的同时,加入能够检测各TAP端口信号故障的测试码,这样可以达到边界扫描结构完备性测试的目的。
4芯片故障测试步骤及诊断策略
4.1测试总线的故障诊断流程
支持JTAG标准的芯片都附有特定的BSDL(boundaryscandescriptionlanguage)描述文件。BSDL语言是硬件描述语言(VHDL)的一个子集,它是该芯片的边界扫描特性的描述,用来沟通厂商、用户与测试工具之间的联系,为自动测试图形生成工具检测特定的电路板提供相关的信息;它在BSDL文件的支持下生成由JTAG标准定义的测试逻辑;BSDL文件可与软件工具结合用于测试生成、结果分析和故障诊断。
根据对xc9572pc84芯片的BSDL部分文件的分析:
attributeinstruction_captureofxc9572_pc84:
entityis"000XXX01"&
attributeINSTRUCTION_DISABLEofxc9572_pc84:entityis"HIGHZ"&
‘X’代表任意值,指令捕获属性字串“000XXX01”,这组代码是检验总线故障的重要依据。当TAP控制器处于Capture-IR状态时,位图形“000XXX01”被装入指令寄存器的移位寄存器部分。检测时首先移出正确的指令捕获数据,保证通过capture信号检测到扫描链上固定为“0”或者固定为“1”的故障。
本故障诊断测试系统中,被测器件为两块xc9572pc84芯片组成的互连电路,其IR位数是16,输入测试码“FEFE00FF”。为了进行故障诊断,需要移出16位固定的指令捕获属性代码,移出部分测试向量。根据给定的芯片、JTAG信号连接测试以及TAP控制器功能测试,实验中提出了一种算法:即从TDI外加测试码“1..10..0”以及各器件的IDCODE指令或BYPASS指令,其中“1”的数目与“0”的数目相等,且与扫描链中最长的指令寄存器(IR)的位数相同。
4.2测试步骤与诊断策略
由图3的测试流程可以发现和辨别大部分故障,但不能对故障作唯一的定位。从表1和表2中分析可知,若测试到TDO的输出全为“1”,则可确定测试总线出现故障,但却无法具体地定位故障,为了区分产生相同故障结果的不同故障模型,需要在图3的基础上进行子级测试。
⑴区分TDI-TMS与TDIs-a-0
仔细跟踪测试码“FEFE00FF”在TDI-TMS与TDIs-a-0这两种情况下移入IR的情况,可以发现最后一位“1”移进时,TDI设置为“1”。如果TDI-TMS,由于此时TMS为“1”,又是“与”短路,所以“1”正常移入,但如果TDIs-a-0,则移入的代码为“0”,这是两种故障输入测试码的唯一区别。
⑵区分TMS-TCK与TCKs-a-0
这两种故障都会出现导致输出数据不稳定。TCKs-a-0通常是与地短路,由于控制信号来源于下载电缆,驱动电流较大,所以TDO并不总是保持在高阻状态下,输出的结果不全为“1”。而TMS-TCK受脉冲边沿的影响往往出现数据结果是全“1”。综上所述,经多次测试(8~10次即可),如果数据振荡且出现全“1”,诊断结果为TMS-TCK;如果数据振荡但不出现全“1”,诊断结果为TCKs-a-0。
⑶区分TDO-TCK、TDI-TCK、TDOs-a-1、TMSs-a-0和TMSs-a-1
这些故障出现测试结果为全“1”,主要是因为涉及状态转换的两条重要总线TCK和TMS出现故障,不能正常进入Shift-IR状态。但借助其它总线可以将故障定位。
测试步骤如下:连接TCK与TMS,再进行测试并重复多次,次数大于10次。如果采集的数据出现全“0“,则为TDO-TCK;如果数据既有“0”
又有“1”,则为TDI-TCK。连接TDO与TCK,重复测试多次,次数大于10次。如果数据为全“0”,则TMSs-a-0或TMSs-a-1,否则TDOs-a-1。
5实验验证
根据上面总线故障测试生成步骤及诊断策略,结合测试图形生成程序,对本文测试系统中被测电路板进行总线测试,测试结果反馈PC机。测试向量和每一步测试结果都将保存在文件库中,便于查找数据并分析,以生成bus.svf文件。
SIR32TDI(fefe00ff)SMASK(ffffffff)TDO(00ff0101)MASK(00000303);//加载32位测试码。
SIR将32位TDI参数移入指令寄存器,随着指令的移位,JTAG2SVF保存TDO信号。
TDO:00ff0101;
MASK:00000303;
Expectedoutput:xxxxxxxxxxxxxxxxxxxxxx01xxxxxx01。
上述表达式中的“x”代表任意值。若期望输出(Expectedoutput)中加下划线的数据和实际得到的TDO中相同位置处的数据(为方便说明,亦用下划线突出标示)完全一致,则代表被测电路板上没有出现本条指令可以检测到的故障,否则表明有故障存在。对于本条指令,实际测试结果为
TheTDIis:fefe00ff;
TheCapturedTDOis:00ff0101;
00000000111111110000000100000001。
下划线处的“01”是TAP控制器在对指令进行移位前,经过capture-IR状态指令寄存器捕获的最低两位数据值,能正确移出这两位数据的说明:芯片IC1与IC2之间的TCK,TMS,TDI和TDO连接是正确的,且指令寄存器能正常工作。
采用人工注入故障的方法,将TDI与TDO桥接,构成TDI——TDO故障,由于验证系统的软件SVF2JTAG在每执行一条测试向量后,会根据SVF文件中的MASK值,来确定是否比较预期TDO和实际TDO,如果比较结果不对,将停止测试过程。因此,为在有故障的情况下完成整个测试过程,需要修改SVF文件,将MASK置全“0”,以保存所有的实际TDO。修改的svf文件如下:
SIR32TDI(fefe00ff)SMASK(ffffffff)TDO(00ff0101)MASK(00000000);//加载32位测试码
TheCapturedTDOis:01010101;00000001000000010000000100000001;
比较本测试结果与无故障时测试结果,发现第二条实际TDO的关键位变成了“0101”(相应的二进制位为“0000000100000001”)。正是由于TDI与TDO桥接,使接收端TDO引脚无法接收实际的测试码,只能捕获指令寄存器中原有的属性字符串,因此产生了错误的测试结果。
6结束语
在该测试系统上利用设计的测试码和测试步骤,经软件编程可快速、准确的将总线可能出现的14个故障进行定位,准确度高达1-1/220≥99.9%,测试时间不超过1s,故这种高效率的方法亦可用于MCM电路板的测试。由于这种技术借助于计算机程序来检查电路和/或连线的故障,所以非常适合于那些要求可靠性高,且及时检测、定位出故障的VLSI产业链的芯片测试场合。