|
JTAG板级测试系统的主要应用
基础测试
基础测试是指扫描链路自测试,由于它是利用BS器件进入CAPTURE-IR状态时会自动装入CAPTURE信号而实现扫描链自测试的目的,所以又称为CAPTURE测试。
基础测试是进行JTAG其他任何测试加载任务之前首先进行的测试操作,以确保JTAG链能正常工作。 Ø 器件标志码IDCODE测试
IDCODE测试,也称为器件标志码测试,或器件型号测试,指令扫描送入IDCODE指令,然后通过数据扫描IDCODE寄存器中的IDCODE标志码,验证器件是否错装,器件的型号、版本号和生产厂商是否正确。
器件标志码存放在器件标准寄存器中,器件标志寄存器是包含在集成电路IC内部的一个可选寄存器,它由并行输入与串行输出的32位移位寄存器组成,而不需要并行输出锁存器。象Bybass寄存器一样,当器件标准寄存器在使用时,芯片IC)正常操作能继续进行。 Ø USERCODE测试
USERCODE测试,也称为用户代码测试,可编程器件提供一个32位的寄存器可以用来存放用户的任意信息。指令扫描送入USERCODE指令,然后通过数据扫描USERCODE寄存器中的标志代码,验证存放信息是否与用户信息一致。这些信息可以是软件的版本号、加密数据等。 Ø 互联测试
互连测试主要是指对电路板上器件之间互连线的测试,主要检测电路板级的开路、短路或呆滞型等故障。互联测试是引进边界扫描测试技术的一个主要原因,因此在IEEE1149.1标准中,互连测试指令(EXTEST)是一条强制性指令,所有的BS器件都支持互连测试。
互连测试可以检测电路板上的开路故障,并能精确定位到具体的引脚;可以检测电路板上的桥接短路广州,并能精确定位到桥接的具体网络和引脚;可以检测呆滞型故障,并能精确定位到具体的引脚;检测其余不知名故障(测试响应与期望响应不一致,但不属于以上三类故障)。 Ø Cluster测试
Cluster测试的问题是由混合技术电路板引起的。目前,虽然BS器件越来越多,但是非BS器件也仍然大量存在;而且在复杂电路设计中,VLSI和ASIC(专用集成电路)虽然能够完成电路的许多功能,但并不是所有的逻辑功能都可以集成,相当多的功能仍需要采用分离器件或通用集成电路实现,而它们很少支持边界扫描。由边界扫描器件和非边界扫描器件组装的混合技术电路板是常见的情形。
在一个电路板上,当BS器件和非BS器件混装的时候,非BS器件就不能直接使用边界扫描的方法进行测试。这时如果非BS器件的周围存在BS器件,那么仍然可能通过BS器件对非BS器件进行测试。被BS器件包围的非BS器件可以不止一个,我们将有若干非BS器件组成的逻辑簇称为一个Cluster,通过BS器件对Cluster进行的测试就称作Cluster测试。
对于JTAG.NET中的Cluster测试提供了两种测试方法,用于针对不同时序电路、组合电路的功能测试。对于存在时序电路的信号,可以使用业界标准的TCL脚本语言来完成相关引脚的控制和采样。从而完成相关的时序电路的设计。下面可以大概看一下对于时钟采样在JTAG.NET系统中的实现方案:
jtag::sample clear //清除所有采样引脚的定义
jtag::def clear //清楚所有参数定义
jtag::def pin p1 U26 "46" //定义U26芯片的第46引脚为P1采样引脚
jtag::add in pin p1 //定义P1引脚为输入引脚
jtag::sample init //初始化,并准备采样
for {set i 0} {$i < 1000} {incr i} { //一千次
jtag::sample frame //JTAG采样
puts [jtag::get pin p1] //输出P1引脚采样的值。
}
对于另外一种电路设计,通常在JTAG.net中同样也可以通过脚本的编写方式来完成测试。但为了简化这部分的编程工作量,提高板级测试设计的效率JTAG.NET提供了自学习的方法来完成这部分的脚本生成。用户仅需要在JTAG.NET中输入确定的输入引脚、输出引脚等信息,并确定输出引脚的学习算法(走部、自定义、遍历)。
Ø 网络覆盖率分析
在JTAG测试仪中,可以对所测试的板卡的网络进行分析。可以大概分成七大类网络:其中包含:电源/地网络,TAP口网络,基础互连测试网络、合并可测试网络、扩展可测试网络、单点网络、不可测试网络。 |
|