JTAG IEEE1149.1(未完)
前言
本文是学习JTAG自己的一些心得和笔记,如有错误的地方,请各位指出。
一、JTAG Architecture?
1. JTAG Components
(1)Test Access Port(TAP紫色部分)
(2)TAP controller(蓝色部分)
(3)Registers(红色部分)
a)Instruction Register
b)Data Register
Bscan Register
Bypass Register
(4)Instruction Decoder(绿色部分)
1.1 TAP
TDI:Test Data Input
数据输入接口,由TDI串行输入
TDO:Test Data Output
数据输出接口,由TDO串行输出
TCK:Test Clock
测试逻辑根据TCK的上升沿或下降沿执行操作
TMS:Test Mode Select
TMS上升沿有效,在TMS未驱动的情况下,TAP controller将保持reset状态
TRST(optional):Reset of Test Logic(Active Low)
1.2 TAP Controller
TAP controller有一个16个状态的状态机,控制JTAG的operation,TAP controller由TCK驱动,输入TMS来控制状态的跳转
(1)Test-Logic-Reset:初始状态,系统上电后TAPcontroller自动进入该状态。在该状态下,测试电路被全部禁用,保证function电路正常工作。通过TRST信号可以让状态机进入Test-Logic-Reset状态,除此之外还可以通过在TMS上连续加5个1也可以让状态机进入Test-Logic-Reset状态,所以TRST作为可选信号。当TMS由1变为0后,状态机进入Run-Test/Idle状态。
(2)Run-Test/Idle:Scan operation的中间状态。一旦进入该状态,只要TMS为低电平,状态机会一直保持在这个状态,当TMS变为高电平后,状态机进入Select-DR-Scan状态。在Run-Test/Idle状态下的动作取决于当前指令寄存器中的指令。有些指令会在该状态下执行一定的操作,有些指令在该状态下不需要执行任何操作。
(3)Select-DR-Scan:该状态也是一个中间态,当TCK下一个上升沿到来时进入下一个状态。如果TMS=1,进入Select-IR-Scan;如果TMS=0,进入Capture-DR状态.
(4)Capture-DR:TAP控制器处于该状态,且当前指令是SAMPLE/PRELOAD指令,那么BSR将在TCK信号的上升沿捕获输入管脚的数据。如果当前指令不是SAMPLE/PRELOAD指令,那么BSR保持先前的值,BSR的值会被放入连接在TDI和TDO管脚之间的移位寄存器中。
(5)Shift-DR:在该状态下,每个TCK的上升沿,TDI的数据会移入移位寄存器,移位寄存器中的数据会向右移一位,移位寄存器最靠近TDO的位会移动到TDO管脚上。
(6)Exit1-DR:该状态为临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-DR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,TAP进入Pause-DR状态。
(7)Pause-DR:暂时停止TDI-移位寄存器-TDO串行通道的移位操作。
(8)Exit2-DR:该状态为临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-DR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,TAP重新进入Shift-DR状态。
(9)Update-DR:在该状态下数据寄存器中的数据将被加载到相应的芯片管脚上去,用来驱动芯片。
(10)Select-IR-Scan:该状态为临时的中间状态。如果TMS信号在下一个TCK上升沿为0,TAP进入Capture-IR状态;如果TMS信号在下一个TCK上升沿为1,TAP重新进入Test-Logic-Reset状态。
(11)Captue-IR:在该状态下,在TCK的上升沿。一个特定的逻辑序列将被加载到指令寄存器中。
(12)Shift-IR:在该状态下,每个TCK的上升沿,被连接在TDI和TDO之间的指令寄存器将从TDI接收一位数据,并通过TDO输出一位数据。
(13)Exit1-DR:该状态为临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-IR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,TAP进入Pause-IR状态。
(14)Pause-DR:暂时停止TDI-移位寄存器-TDO串行通道的移位操作。
(15)Exit2-DR:该状态为临时状态,如果TMS信号在下一个TCK上升沿处于高电平,TAP进入Update-IR状态,结束扫描操作;如果TMS信号在下一个TCK上升沿处于低电平,TAP重新进入Shift-IR状态。
(16)Update-IR:在该状态下,在Shift-IR状态下输入的新指令将被用来更新指令寄存器。
1.3 JTAG Register
JTAG包括以下Register:
(1)Data Register:DR
a)Bypass Register:BR
b)Boundary Scan Register:BSR
(2)Instruction Register:IR
(3)Optional Data Register
a)Device ID Register
b)Device specific Register
1.3.1 Bypass Register
(1)目的:提供从TDI到TDO的最短路径
(2)作用:当ShiftDR=1时将Data从TDI shift到TDO(1bit FF)
例:当我们不想测chip1而想直接测chip2和chip3时,可以通过Bypass register Bypass掉chip1,从而节省测试的时间。如果没有Bypass register那么我们的pattern需要先通过8个时钟周期才能到达chip2,如果使用Bypass register那么只需要1个时钟周期我们的pattern就能到达chip2,可以减少7个时钟周期。
1.3.2 Boundary Scan Register(BSR)
(1)目的:控制和观测system I/O pins。
我们从TDI输入测试pattern,通过BSR将pattern shift至TDO。
(2)Input Boundary Scan Cell (BSC)
每个BSC包含:
a)2个寄存器(capture/scan FF和output FF)
b)2个control signals:Shift DR,Mode
c)2个clock:clockDR,UpdateDR