[转]边界扫描的测试原理及九大指令
![此博文包含图片 边界扫描的测试原理及九大指令(zz) - Lexlin - lexlin的博客](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
[ 转自http://blog.163.com/wangchen727@126/ ]
详细边界扫描结构及信号流程参考图1。
测试操作的最重要步骤是移入和同步移出测试数据(DR SHIFT),新的数据进入移位链,测试数据传送到测试单元(DR-update)的输出锁存器中,对于指令寄存器(IR-shift,IR-capture,IR-update)同样如此。除了边界扫描寄存器(Boundary Scan Register),IEEE 1149.1标准还定义了在数据寄存器附近至少存在一个旁路寄存器,用来将TDI 到TDO 的可以直连接。数据寄存器根据指令寄存器的指令寻址,然后在TDI 和TDO 的引脚之间,各个数据寄存器结合成移位路径。正如图2 所示,从一个状态转换成另一个状态由信号TMS 的逻辑电平决定。“TAP ”是一个时钟系统,它的时钟是由信号TCK 提供。信号TMS 和信号TCK共同作用,使得数据一位一位从TDI 移入,最后由TDO 移出。
各种边界扫描单元是否有效取决于是否实行测试或者得到激励。
图3 就是一个最普通的边界扫描单元的结构图。如,第一个锁存器锁存数据由移位寄存器(SHIFT DR)决定从前一个扫描单元移出的数据(SCAN IN)或者是扫描输入的数据(DA
MODE, SHIFT DR, UPDATE DR 以及CLOCK DR 这些全局信号线与所有扫描单元都相连接,而且同一个时间状态都一样。这样,TAP 状态在CAPTURE DR 时,所有的扫描单元都能在CLOCK DR 的上升沿取样输入数据。测试数据的输出也相类似,它是在TAP 状态在UPDATE DR 的下降沿时将扫描输入端锁存并输出。所有的扫描单元都能完成以上功能。所有的扫描单元运行在工作模式还是在测试模式,由MODE 信号控制选择其一,同时运行在两个模式是不可能的。而MODE 信号是由扫描指令控制的。
九大指令
指令(必须/可选) | 操作码 | 模式 | 选择数据寄存器 |
EXTEST | 0...0* | 测试 | Boundary |
SAMPLE/PRELOAD | 用户定义 | 一般 | Boundary |
BYPASS | 1...1 | 一般 | Bypass |
INTEST | 用户定义 | 测试 | Boundary |
RUNBIST | 用户定义 | 测试 | 用户定义 |
INCODE | 用户定义 | 一般 | 器件ID |
USERCODE | 用户定义 | 一般 | 器件ID |
CLAMP | 用户定义 | 测试 | Bypass |
HIGHZ | 用户定义 | 测试 | Bypss |
用户定义 | 用户定义 | 用户定义 | 用户定义 |
Extest指令--强制指令
原先EXTEST指令时强制为全“0”的,在IEEE 1149.1--2001中,这条强制取消了。选择EXTEST指令时,IC工作在边界扫描外部测试模式(external boundary-test mode),也就是说对IC的操作影响芯片的正常工作。选择边界扫描寄存器连通TDI和TDO。在这种指令下,可以通过边界扫描输出单元来驱动测试信号至其他边界扫描芯片,以及通过边界扫描输入单元来从其他边界扫描芯片接收测试信号。EXTEST指令是IEEE 1149.1标准的核心所在,在边界扫描测试中的互连测试(interconnect test)就是基于这个指令的。
Sample/Preload指令--强制指令
PRELOAD
INTEST指令 ---可选指令
选择INTEST指令时,IC工作在边界扫描内部测试模式(internal boundary-test mode),选择边界扫描寄存器连通TDI和TDO。在这种指令下,可以通过边界扫描输出单元来驱动测试信号至其内部逻辑,以及通过边界扫描输入单元来从 其内部逻辑接受测试信号。
RUNBIST指令 ---可选指令
选择RUNBIST指令时,IC工作在自测试模式(self-test mode),对IC的内部逻辑进行全面的自测试,通过选择用户自定义的数据寄存器连通TDI和TDO。在这种指令下,边界扫描单元的输出被内部逻辑控制了,所以外部信号不能干扰其相邻IC。
IDCODE指令 ---可选指令
选择IDCODE指令时,IC工作在正常工作模式,选择数据识别寄存器(da
(读取CPU ID号指令。在设计中存在device identification register时,TAP强制定义。该指令将处理器的ID号寄存器连接到TDI和TDO之间。)
USERCODE指令 ---可选指令
选择USERCODE指令时,IC工作在正常工作模式,选择用户自定义数据寄存器(user defined test da
CLAMP指令 ---可选指令
CLAMP指令使IC的输出置于由边界扫描寄存器的当前内容决定的逻辑电平上,选择BYPASS寄存器连通 TDI和TDO。在加载这个指令之前,边界扫描寄存器的内容可以由SAMPLE/PRELOAD指令来预置。在CLAMP指令下,数据通过BYPASS寄 存器从TDI传递至TDO,不会影响此IC的输出。
HIGHZ指令 ---可选指令
HIGHZ指令使IC的所有输出置于高阻状态,选择BYPASS寄存器连通TDI和TDO。在HIGHZ指令下,数据通过BYPASS寄存器从TDI传递至TDO,不会影响此IC的输出。