边界扫描是解决印刷电路板(PCB)上芯片间互连测试的一种方案。它与内部扫描明显不同。前者是在电路的输入/输出端口增加扫描单元,将这些扫描单元连接成扫描通道。后者是将电路中常见的时序单元替换为具有扫描能力的时序单元,然后接入扫描通道。
一、边界扫描测试原理
边界扫描的原理是在核心逻辑电路的输入输出端口增加一个寄存器。通过在I/O上连接这些寄存器,数据可以串行输入到被测单元,并从相应的端口读出。在这个过程中,它可以实现三个测试。
首先是芯片级测试,即可以对芯片本身进行测试和调试,使芯片工作在正常的功能模式。通过输入端子输入测试向量,通过观察串行移位的输出响应进行调试。
其次,板级测试用于检测集成电路和PCB之间的互连。实现原理是连接所有IC中的扫描寄存器在PCB上使用边界扫描。通过一定的测试向量,可以发现元器件是否丢失或放错位置,同时可以检测出管脚的开路和短路故障。
最后是系统级测试。板级集成后,可以通过板上的CPLD或Flash在线编程实现系统级测试。
其中最重要的功能是测试板级芯片的互连,如图1所示。
图1基于边界扫描的板级互连测试
二、IEEE 1149.1标准
边界扫描(Boundary scan)是由欧美一些大公司联合成立的组织——联合测试行动组(Joint Test Action Group,JTAG),是解决印刷电路板(PCB)上芯片间互连测试的解决方案。由于该方案的合理性,1990年被IEEE采用,成为标准,即IEEE 1149.1。本标准规定了边界扫描的测试端口、测试结构和操作说明。
1.IEEE 1149.1结构
IEEE 1149.1的架构如图2所示,主要包括一个TAP控制器和一个寄存器组。TAP控制器如图3所示。寄存器组包括边界扫描寄存器、旁路寄存器、标志寄存器和指令寄存器。主要端口是TCK、TMS、TDI和TDO,还有一个用户可选的端口TRST。
图2 IEEE 1149.1结构
图3 TAP控制器
2.端口定义如下
(1)TCK(测试时钟)
扫描设计中的测试时钟是独立的,所以与原IC或PCB上的时钟无关,可以重用。
(2)TMS(测试模式选择)
在测试过程中,有数据捕捉、移位、暂停等不同的工作模式,所以需要一个信号来控制。在IEEE 1149.1中,控制信号只有一个,工作模式由特定的输入序列决定,由有限状态机实现。该信号在测试时钟TCK的上升沿被采样。
(3)TDI(测试数据输入)
串行模式下有两种类型的数据TDI输入。一个是指令信号,送到指令寄存器;另一个是测试数据(激励、输出响应等信号),输入到对应的边界扫描寄存器中。
(4)TDO(测试数据输出)
串行输出数据也有两种,一种是从指令寄存器移位的指令,一种是从边界扫描寄存器移位的数据。
此外,还有一个可选的TRST端口,它是测试系统的复位信号,其功能是强制复位。
3.抽头控制器
TAP控制器的作用是对串行输入的TMS信号进行解码,使边界扫描系统进入相应的测试模式,并在该模式下产生所需的控制信号。IEEE 1149.1的TAP控制器由有限状态机实现,状态转换图如图4所示。DR表示数据寄存器,IR表示指令寄存器。
图4 tap控制器的状态转换图
4.寄存器组
(1)指令寄存器。
如图5所示,指令寄存器由移位寄存器和锁存器组成,其长度等于指令的长度。IR可以连接到TDI和TDO的两端,指令可以通过TDI串行输入,然后送到latch保存当前指令。这两部分都有一个解码单元,负责识别当前指令。由于JTAG有三个强制指令,该寄存器的宽度至少应为2位。
图5指令寄存器
(2)旁路寄存器(BR)
旁路寄存器也可以直接连接在TDI和TDO之间,并且仅由1位组成。如果PCB上有多个具有边界扫描设计的IC,则每个IC中的边界扫描链可以串联连接。此时,如果需要测试某些IC,可以通过bypass命令绕过不需要测试的IC。如图6所示,如果需要测试芯片2和芯片3,可以在TDI输入110000处配置旁路寄存器。此时,Chip1的bypass寄存器被置位,表示该芯片在测试期间被旁路。
图6旁路寄存器使用示例
(3)身份登记
如图7所示,在一般的边界扫描设计中,有一个设备标记固化的寄存器。它是一个32位标准寄存器,包含有关版本号、器件型号和器件制造商的信息。用于PCB生产线,可以查看IC的型号和版本,进行维护和更换。
在器件标志寄存器的标准格式中,最低位(位0)为1,用于标识标志寄存器和旁路寄存器的标志位。第1到第11位数字是制造商的识别数字。根据国际联合电子器件工程委员会提出的方案,这11位数字允许有2032家厂商的标识。第12 ~ 27位表示设备的型号,总共可以表示216=65536种不同的型号。其余4位代表同一型号设备的不同版本。
图7标志寄存器
(4)边界扫描寄存器
扫描寄存器是边界扫描中最重要的结构单元,完成测试数据的输入、输出锁存和移位过程中必要的数据操作。它工作在多种模式下,首先满足扫描链上的串行移位模式,其次在正常模式下捕获并更新电路的数据,如图8所示。
图8边界扫描寄存器
边界扫描寄存器可以提供以下主要测试功能:
测试被测IC的外部电路,比如可测试IC之间的互连。这时,可以使用外部测试指令EXTEST;
使用INTEST对被测电路进行内部自检;
通过对输入输出信号的采样和更新,可以完全不影响核心逻辑电路的工作状态。
5.相关说明
JTAG规定了三个强制指令:外部测试、旁路、采样/预加载。
(1)外部测试:外部测试说明
外部测试指令主要用于测试IC和PCB之间的布线或边界扫描设计之外的逻辑电路。执行此指令的主要操作是将测试向量串行移位到边界扫描寄存器,以激励被测布线或外部逻辑电路。同时,寄存器捕获响应数据,并串行移出测试结果以供检查。
(2)旁路:旁路指令
这是由1组成的全1指令串。其功能是选择IC中的bypass寄存器BR,决定IC是否测试。
(3)取样/预加载:取样/预加载指令
采样指令用于将边界扫描设计中并行输入端的信号捕获到边界扫描寄存器中,而不影响核心逻辑的正常操作。在测试期间,被测逻辑电路的响应由采样指令捕获。预指令功能基本上与采样相同,只是载入边界扫描寄存器的数据是程序员已知或确定的。除了上面要求的指令,JTAG还定义了一些可选指令:INTEST,IDCODE,RUNBIST,CLAMP,HIGHZ。
Test是内部测试指令,用于测试核心逻辑电路。执行过程与外部测试指令基本相似,只是被测对象的位置正好相反,其激励端和响应测试端也正好相反。
Idcode指令用于从标志寄存器中获取标志代码。
Run BIST是一条自测指令,用于执行被测逻辑的自测功能。有必要确保电路本身具有
自测
CLAMP是一个组件指令,它有两个功能。一个是使旁路寄存器为0,另一个是使边界扫描寄存器BSR的输出为一组给定的固定电平。
Highz是输出高阻指令,可以使IC的所有输出端都处于高阻状态,即无效状态。
三、边界扫描测试策略和相关工具
1.板级测试策略
使用边界扫描IEEE 1149.1进行板级测试的策略分为以下三个步骤。
根据IEEE 1149.1标准建立边界扫描的测试结构。
利用边界扫描测试结构,对被测零件之间的连接进行矢量输入和响应分析。这是板级测试的主要环节,也是边界扫描结构的主要应用。它可用于检测由电气、机械和温度引起的板级集成故障。
通过测试一个单核逻辑,可以初始化逻辑并使用它自己的测试结构。
2.相关EDA工具
工业中使用的主要边界扫描工具是Mentor s BSDArchitect和Synopsys BSD编译器。以后者为例,其主要设计流程如图9所示。这个过程将生成BSDL文件,这是边界扫描测试描述文件,该文件的内容包括引脚定义和边界扫描链的结构。通用ATE可以识别这个文件,自动生成相应的测试程序,完成对板上芯片漏电流等参数的测试。
图9边界扫描设计流程
标签:测试边界器