[设为首页] [加入收藏[繁体中文]
SMT易网技术频道

  当前位置:首页 >> 技术文章 >> 电子技术 >> 正文

基础知识 SMT工艺 技术交流 无铅专题 焊接技术 PCB工艺 行业标准 品质管理 电子技术 封装技术

VLSI边界扫描测试故障诊断及其策略研究(二)

【来源:《半导体技术》】【编辑:倪军,杨建宁,成立,徐丽红】【时间: 2006-9-20 9:12:37】【点击:

4 芯片故障测试步骤及诊断策略

4.1 测试总线的故障诊断流程

支持JTAG标准的芯片都附有特定的BSDL(boundary scan description language)描述文件[4]。BSDL语言是硬件描述语言(VHDL)的一个子集,它是该芯片的边界扫描特性的描述,用来沟通厂商、用户与测试工具之间的联系,为自动测试图形生成工具检测特定的电路板提供相关的信息;它在BSDL文件的支持下生成由JTAG标准定义的测试逻辑;BSDL文件可与软件工具结合用于测试生成、结果分析和故障诊断。

根据对xc9572 pc84芯片的BSDL部分文件[5]的分析:

……

attribute instruction_capture of xc9572_pc84:

entity is "000XXX01"&

attribute INSTRUCTION_DISABLE of xc9572_pc84 : entity is "HIGHZ" &

……

‘X’代表任意值,指令捕获属性字串“ 000XXX01”,这组代码是检验总线故障的重要依据。当TAP控制器处于Capture-IR状态时,位图形“000XXX01”被装入指令寄存器的移位寄存器部分。检测时首先移出正确的指令捕获数据,保证通过capture信号检测到扫描链上固定为“0”或者固定为 “1”的故障。

本故障诊断测试系统中,被测器件为两块 xc9572 pc84芯片组成的互连电路,其IR位数是16,输入测试码“FEFE00FF ”。为了进行故障诊断,需要移出16位固定的指令捕获属性代码,移出部分测试向量。根据给定的芯片、JTAG信号连接测试以及TAP控制器功能测试,实验中提出了一种算法:即从TDI外加测试码“1..10..0”以及各器件的IDCODE指令或BYPASS指令,其中 “1”的数目与“0”的数目相等,且与扫描链中最长的指令寄存器(IR)的位数相同。

根据上述故障分析,依据测试码,测试总线的故障诊断流程如图3所示。

4.2 测试步骤与诊断策略

由图3的测试流程可以发现和辨别大部分故障,但不能对故障作唯一的定位。从表1和表2中分析可知,若测试到TDO的输出全为 “1”,则可确定测试总线出现故障,但却无法具体地定位故障,为了区分产生相同故障结果的不同故障模型,需要在图3的基础上进行子级测试 [6]。

⑴ 区分TDI-TMS与TDI s-a-0

仔细跟踪测试码“FEFE00FF”在TDI-TMS 与TDI s-a-0这两种情况下移入IR的情况,可以发现最后一位“1” 移进时,TDI设置为“1”。如果TDI-TMS,由于此时TMS为“ 1”,又是“与”短路,所以“1”正常移入,但如果TDI s-a-0,则移入的代码为“0”,这是两种故障输入测试码的唯一区别。

⑵ 区分TMS-TCK与TCK s-a-0

这两种故障都会出现导致输出数据不稳定。 TCK s-a-0通常是与地短路,由于控制信号来源于下载电缆,驱动电流较大,所以TDO并不总是保持在高阻状态下,输出的结果不全为“1”。而TMS-TCK受脉冲边沿的影响往往出现数据结果是全“1”。综上所述,经多次测试(8~10次即可),如果数据振荡且出现全 “1”,诊断结果为TMS-TCK;如果数据振荡但不出现全“1 ”,诊断结果为TCK s-a-0。

⑶ 区分TDO-TCK、TDI-TCK、TDO s-a-1、TMS s-a-0和TMS s-a-1

这些故障出现测试结果为全“1”,主要是因为涉及状态转换的两条重要总线TCK和TMS出现故障,不能正常进入Shift-IR状态。但借助其它总线可以将故障定位。

测试步骤如下:连接TCK与TMS,再进行测试并重复多次,次数大于10次。如果采集的数据出现全“0“,则为TDO-TCK;如果数据既有“0”

又有“1”,则为TDI-TCK。连接TDO与TCK,重复测试多次,次数大于10次。如果数据为全“0”,则TMS s-a-0或TMS s-a-1,否则TDO s-a-1。

5 实验验证

根据上面总线故障测试生成步骤及诊断策略,结合测试图形生成程序,对本文测试系统中被测电路板进行总线测试,测试结果反馈PC机。测试向量和每一步测试结果都将保存在文件库中,便于查找数据并分析,以生成bus.svf文件。

SIR 32 TDI(fefe00ff)SMASK(ffffffff)TDO(00ff0101)MASK(00000303);// 加载32位测试码。

SIR将32位TDI参数移入指令寄存器,随着指令的移位,JTAG2SVF保存TDO信号。

TDO:00ff0101;

MASK:00000303;

Expected output:xxxx xxxx xxxx xxxx xxxx xx01 xxxx xx01。

上述表达式中的“x”代表任意值。若期望输出(Expected output)中加下划线的数据和实际得到的TDO中相同位置处的数据(为方便说明,亦用下划线突出标示)完全一致,则代表被测电路板上没有出现本条指令可以检测到的故障,否则表明有故障存在。对于本条指令,实际测试结果为

The TDI is:fefe00ff;

The Captured TDO is:00ff0101;

0000 0000 1111 1111 0000 0001 0000 0001。

下划线处的“01”是TAP控制器在对指令进行移位前,经过capture-IR状态指令寄存器捕获的最低两位数据值,能正确移出这两位数据的说明:芯片IC1与IC2之间的TCK,TMS,TDI和TDO连接是正确的,且指令寄存器能正常工作。

采用人工注入故障的方法,将TDI与TDO桥接,构成TDI ——TDO故障,由于验证系统的软件SVF2JTAG在每执行一条测试向量后,会根据SVF文件中的MASK值,来确定是否比较预期TDO和实际TDO,如果比较结果不对,将停止测试过程。因此,为在有故障的情况下完成整个测试过程,需要修改SVF文件,将MASK置全 “0”,以保存所有的实际TDO。修改的svf文件如下:

SIR 32 TDI(fefe00ff)SMASK(ffffffff) TDO(00ff0101)MASK(00000000); // 加载32位测试码

The Captured TDO is: 01010101; 0000 0001 0000 0001 0000 0001 0000 0001;

比较本测试结果与无故障时测试结果,发现第二条实际TDO的关键位变成了“0101”(相应的二进制位为 “0000 0001 0000 0001”)。正是由于TDI与TDO桥接,使接收端TDO引脚无法接收实际的测试码,只能捕获指令寄存器中原有的属性字符串,因此产生了错误的测试结果。

6 结束语

在该测试系统上利用设计的测试码和测试步骤,经软件编程可快速、准确的将总线可能出现的14个故障进行定位,准确度高达1-1/2 20≥99.9%,测试时间不超过1s,故这种高效率的方法亦可用于MCM电路板的测试。由于这种技术借助于计算机程序来检查电路和/或连线的故障,所以非常适合于那些要求可靠性高,且及时检测、定位出故障的VLSI产业链的芯片测试场合。


·最新文章·
 
·热点文章·
·其他相关文章·
上一篇:VLSI边界扫描测试故障诊断及其策略研究(一)
下一篇:开关电源的电磁兼容性及其设计