JTAG IEEE 1194.1笔记

边界扫描架构

架构框图

架构组成元素

测试逻辑架构的必要组成元素:

  • 测试访问端口(TAP)
  • TAP控制器(状态机)
  • 一个指令寄存器
  • 一组数据寄存器

上述所有元素都是测试专用的(不可以用于其他用途),用户自定义数据寄存器例外。
JTAG IEEE 1194.1笔记

测试访问端口

JTAG IEEE 1194.1笔记
如上图所示,TCK、TMS、TDI和TDO是TAP接口必须的要求的,同时上电复位或者专用TRST引脚也是必须(二选一)。所有的TAP接口相关引脚都是专用的,不可用于其他目的。

TDI、TMS、TRST引脚的信号要求上拉,所有的输入在TCK的上升沿采样,所有的输出在TCK的下降沿采样。

状态控制器

JTAG IEEE 1194.1笔记
TAP控制器要求严格遵循上图所示状态图,控制器下一状态由TCK的上升沿时当前状态和TMS的输入值决定。指令扫描(IR-Scan)序列要求仅仅访问单个指令寄存器。数据扫描(DR-Scan)序列要求仅仅访问当前指令所选的数据寄存器。TDO只有在Shift-IR和Shift-DR状态是有效的。

TAP控制器输出

JTAG IEEE 1194.1笔记TAP控制器输出如下:

  • IR扫描和更新时钟,shift和capture选择;
  • DR扫描和更新时钟,shift和capture选择;
  • TDO使能,TDO指令和数据选择。

寄存器概述

|寄存器(要求/可选) | 位宽 | Capture Value | 相关指令

寄存器(要求/可选) 位宽 Capture Value 相关指令
指令寄存器 位宽至少为2 X…01 n/a
边界寄存器 用户定义 用户定义 Extest;Sample/Preload;Intest;Clamp;HighZ
Bypass 1 0 Bypass
设备ID 32 X…1 IDCODE User Code
用户定义 用户定义 用户定义 用户定义

指令寄存器

JTAG IEEE 1194.1笔记
指令寄存器的位宽至少为2,指令寄存器在Capture-IR状态的上升沿被装载到IR的值最低两位必须为"01",其他位的值可以用户自定义。指令寄存器要求有一个锁存并行输出,一旦指令移位结束后(在Update-IR的TCK下降沿),新的指令就生效了。在TAP复位后,指令寄存器的值一般为IDCODE,如果未实现ICODE指令,那么指令寄存器的值应该是Bypass。

数据寄存器

JTAG IEEE 1194.1笔记
IEEE 1194.1要求实现至少两个数据寄存器:

  • 边界扫描寄存器:所有的边界扫描单元串行拼接(每个Cell的位宽需要查看具体的资料手册),每个引脚至少一个Cell;
  • Bypass寄存器。
边界扫描寄存器

JTAG IEEE 1194.1笔记
边界扫描寄存器由所有边界扫描单元组成,每个数字输入和输出都至少拥有一个边界扫描单元。但是,在TAP引脚、一致性使能引脚和非数字信号引脚不允许有边界扫描单元。

Bypass寄存器

JTAG IEEE 1194.1笔记Bypass寄存器要求位宽为1,在Capture-DR阶段加载的值为0。对Bypass寄存器执行任何操作都不应该影响系统逻辑的工作。

设备ID寄存器

JTAG IEEE 1194.1笔记
设备的ID寄存器要求位宽为32,在Capture-DR阶段,IDCODE的值被加载到TDI到TDO扫描链,IDCODE由四部分组成:

  • 最低位:规定恒为1;
  • Bit 1-11:厂商代码;
  • Bit 12-27:物料代码;
  • Bit 28-31:版本代码

对IDCODE寄存器的操作不应影响系统逻辑的工作。

指令概述

|指令(要求/可选) | Opcode| Mode | 相关数据寄存器

寄存器(要求/可选) 位宽 Capture Value 相关指令
EXTEST 0…0* 测试 边界扫描寄存器
SAMPLE/PRELOAD 用户定义 Normal 边界扫描寄存器
Bypass 1…1* Normal Bypass
INTEST 用户定义 测试 边界扫描寄存器
RUNBIST 用户定义 测试 用户定义
IDCODE 用户定义 测试 Device ID
USERCODE 用户定义 测试 Device ID
CLAMP 用户定义 测试 BYPASS
HIGHZ 用户定义 测试 BYPASS
用户定义 用户定义 测试 用户定义
EXTEST指令

JTAG IEEE 1194.1笔记EXTEST指令提供了芯片与外部交互的测试,芯片的输出引脚工作在测试模式,输出引脚的状态由DR-UPDATE锁存的BSC内容驱动。在BSC的输入数据在Shift操作前锁存。shift操作允许在TDO观察测试响应,同时在TDI插入下一个测试激励。在移位操作后,新的测试激励传输到BSC更新锁存。

Sample/Preload指令
Bypass指令

JTAG IEEE 1194.1笔记
Bypass指令用于缩短JTAG链路扫描途径。输入和输出工作在正常模式,单bit Bypass寄存器用于选择作为扫描。要求:所有全"1"指令或TAP控制器不支持的指令都会被解码为Bypass指令。

Sample/Preload指令
Sample/Preload指令
Sample/Preload指令