基于边界扫描技术的数字系统测试研究
发布时间:2008/6/2 0:00:00 访问次数:509
当今,微电子技术已经进入超大规模集成电路(vlsi)时代。随着芯片电路的小型化及表面封装技术(smt)和电路板组装技术的发展,使得传统测试技术面临着巨大的挑战。在这种情况下,为了提高电路和系统的可测试性,联合测试行动小组(jtag)于1987年提出了一种新的电路板测试方法--边界扫描测试,并于1990年被ieee接纳,形成了ieee1149.1标准,也称为jtag标准[1]。这种技术以全新的"虚拟探针"代替传统的"物理探针"来提高电路和系统的可测性。由于jtag标准的通用性很好,现在许多ic公司都提供了支持边界扫描机制的ic芯片,甚至部分fpga和cpld芯片也采用了这一技术。
本文介绍支持jtag标准的ic芯片结构,并以xilinx公司的两块xc9572_pc84芯片为例,探讨并利用边界扫描技术控制ic芯片处于某种特定功能模式的方法,并且针对ic芯片某种特定的功能模式设计该芯片的jtag控制器。
1支持jtag标准的ic芯片结构
边界扫描技术的核心就是在ic芯片的输入输出引脚与内核电路之间设置边界扫描结构。jtag标准定义了一个4-wire串行总线[2],通过这四条测试线访问边界扫描单元,可以达到测试芯片内核与外围电路的目的。图1示出了支持jtag标准的ic芯片结构。图中,扫描结构由测试存取通道(tap)、边界扫描寄存器(bsr)、tap控制器、指令寄存器(ir)和辅助寄存器等组成。
1.1 tap
tap是由4-wire串行测试线组成的测试存取通道,jtag标准定义的所有操作都由这四条测试线来控制。这四条测试线分别是:测试时钟输入线(tck),测试方式选择输入线(tms),测试数据输入线(tdi),测试数据输出线(tdo)。
1.2 tap控制器
tap控制器是边界扫描测试的核心控制器,具有一个16状态的有限状态机。它与tck信号同步工作,并响应tms信号。在tck信号和tms信号的控制下,tap控制器可以选择使用指令寄存器扫描还是数据寄存器扫描,以及选择用于控制边界扫描测试的各个状态。图2描述了tap控制器的状态转换全过程[3]。
无论当前状态如何,只要tms保持5个tck时钟为高电平,tap控制器都会回到test_logic_reset状态,使测试电路不影响ic芯片本身的正常逻辑。需要测试时,tap控制器跳出该状态,选择数据寄存器扫描(select_dr_scan)或选择指令寄存器扫描(select_ir_scan)进入图2的各个状态。一个标准的测试过程如下:tap控制器在capture_ir状态捕获指令信息,经过shift_ir状态移入新指令,新指令经过update_ir状态成为当前指令;紧接着,当前指令在select_dr_scan状态选择相应的测试数据寄存器,在capture_dr状态捕获前一测试向量的响应向量,在shift_dr状态移出该响应向量,同时移入下一测试向量,在update_dr状态将新的测试量并行加载到相应的串行数据通道,直到移入最后一个测试向量为止。其中,pause_dr状态和pause_ir状态暂停数据移位状态;而四个exit状态是不稳定状态,它们为状态转换提供灵活性。
1.3 bsr
bsr是边界扫描技术的核心,它构成边界扫描链,其中的每一个边界扫描单元(bsc)都是由触发器q、多路选择开关mux组成。图3示出了jtap标准中bc_1类型的bsc的结构[3]。
在图3中,si为bsc的串行输入端,连接上一个器件(bsc)的串行输出端so,依次相连便构成边界扫描链。该扫描链的首端接tdi引脚,末端接tdo引脚。当mode为0时,芯片工作在正常模式下。当芯片工作在测试模式时,测试数据在移位信号(shift=1)的控制下,通过si端进入到多路选择器1(mux1)中,通过so端进入下一个bsc的si端;当芯片工作在捕获方式时(shift=0),触发器q1将捕获bsr并行输入端(di)的数据,送入so端,在扫描链中传递捕获的数据,并在tdo回收数据,以此来检测故障的存在并且定位故障所在的位置。当mode为1时,芯片工作在更新方式下,q1中的数据在更新信号(update)的作用下,进入到多路选择器2(mux2)中,通过bsr的并行输出端(d0)进入芯片的内核中。
1.4 ir
ir是向各个数据寄存器发出各种操作码并确定其工作方式的指令寄存器,图4示出了一种ir单元的结构[4]。由图4可以看出,ir单元是由一个触发器q1和一个锁存器q2构成的。capture date信号控制ir装载指令,shirft ir信号控制指令在ir中的移位;clk ir信号是从tck获得的时钟信号,
当今,微电子技术已经进入超大规模集成电路(vlsi)时代。随着芯片电路的小型化及表面封装技术(smt)和电路板组装技术的发展,使得传统测试技术面临着巨大的挑战。在这种情况下,为了提高电路和系统的可测试性,联合测试行动小组(jtag)于1987年提出了一种新的电路板测试方法--边界扫描测试,并于1990年被ieee接纳,形成了ieee1149.1标准,也称为jtag标准[1]。这种技术以全新的"虚拟探针"代替传统的"物理探针"来提高电路和系统的可测性。由于jtag标准的通用性很好,现在许多ic公司都提供了支持边界扫描机制的ic芯片,甚至部分fpga和cpld芯片也采用了这一技术。
本文介绍支持jtag标准的ic芯片结构,并以xilinx公司的两块xc9572_pc84芯片为例,探讨并利用边界扫描技术控制ic芯片处于某种特定功能模式的方法,并且针对ic芯片某种特定的功能模式设计该芯片的jtag控制器。
1支持jtag标准的ic芯片结构
边界扫描技术的核心就是在ic芯片的输入输出引脚与内核电路之间设置边界扫描结构。jtag标准定义了一个4-wire串行总线[2],通过这四条测试线访问边界扫描单元,可以达到测试芯片内核与外围电路的目的。图1示出了支持jtag标准的ic芯片结构。图中,扫描结构由测试存取通道(tap)、边界扫描寄存器(bsr)、tap控制器、指令寄存器(ir)和辅助寄存器等组成。
1.1 tap
tap是由4-wire串行测试线组成的测试存取通道,jtag标准定义的所有操作都由这四条测试线来控制。这四条测试线分别是:测试时钟输入线(tck),测试方式选择输入线(tms),测试数据输入线(tdi),测试数据输出线(tdo)。
1.2 tap控制器
tap控制器是边界扫描测试的核心控制器,具有一个16状态的有限状态机。它与tck信号同步工作,并响应tms信号。在tck信号和tms信号的控制下,tap控制器可以选择使用指令寄存器扫描还是数据寄存器扫描,以及选择用于控制边界扫描测试的各个状态。图2描述了tap控制器的状态转换全过程[3]。
无论当前状态如何,只要tms保持5个tck时钟为高电平,tap控制器都会回到test_logic_reset状态,使测试电路不影响ic芯片本身的正常逻辑。需要测试时,tap控制器跳出该状态,选择数据寄存器扫描(select_dr_scan)或选择指令寄存器扫描(select_ir_scan)进入图2的各个状态。一个标准的测试过程如下:tap控制器在capture_ir状态捕获指令信息,经过shift_ir状态移入新指令,新指令经过update_ir状态成为当前指令;紧接着,当前指令在select_dr_scan状态选择相应的测试数据寄存器,在capture_dr状态捕获前一测试向量的响应向量,在shift_dr状态移出该响应向量,同时移入下一测试向量,在update_dr状态将新的测试量并行加载到相应的串行数据通道,直到移入最后一个测试向量为止。其中,pause_dr状态和pause_ir状态暂停数据移位状态;而四个exit状态是不稳定状态,它们为状态转换提供灵活性。
1.3 bsr
bsr是边界扫描技术的核心,它构成边界扫描链,其中的每一个边界扫描单元(bsc)都是由触发器q、多路选择开关mux组成。图3示出了jtap标准中bc_1类型的bsc的结构[3]。
在图3中,si为bsc的串行输入端,连接上一个器件(bsc)的串行输出端so,依次相连便构成边界扫描链。该扫描链的首端接tdi引脚,末端接tdo引脚。当mode为0时,芯片工作在正常模式下。当芯片工作在测试模式时,测试数据在移位信号(shift=1)的控制下,通过si端进入到多路选择器1(mux1)中,通过so端进入下一个bsc的si端;当芯片工作在捕获方式时(shift=0),触发器q1将捕获bsr并行输入端(di)的数据,送入so端,在扫描链中传递捕获的数据,并在tdo回收数据,以此来检测故障的存在并且定位故障所在的位置。当mode为1时,芯片工作在更新方式下,q1中的数据在更新信号(update)的作用下,进入到多路选择器2(mux2)中,通过bsr的并行输出端(d0)进入芯片的内核中。
1.4 ir
ir是向各个数据寄存器发出各种操作码并确定其工作方式的指令寄存器,图4示出了一种ir单元的结构[4]。由图4可以看出,ir单元是由一个触发器q1和一个锁存器q2构成的。capture date信号控制ir装载指令,shirft ir信号控制指令在ir中的移位;clk ir信号是从tck获得的时钟信号,