注:转载请注明出处
参考JTAG标准第七章指令寄存器(Instruction register)
记录下学习过程,个人水平有限,可能理解有误,后续若发现错误之处,会及时更新。
Version | Date |
---|---|
1.0 | 2021.12.14 |
顾名思义,指令寄存器用来存储指令的,指令通过TDI输入到指令寄存器,再通过指令译码,产生对应控制信号, 用于选择要执行的测试操作或要访问的测试数据寄存器(DR)。
一、D型扫描触发器
在正式介绍IR结构之前,先介绍下带多路选择器的D型扫描触发器,此扫描触发器是扫描测试结构的基本单元。
扫描触发器有两种工作模式,分别为:
- 正常工作模式:scan_enable 为 0,此时数据从D端输入,从Q端输出。
- 扫描移位模式:scan_enable 为 1,此时数据从scan_in 输入,从scan_out输出(Q与scan_out复用)
将这种扫描单元按照扫描移位模式连接起来,就构成了扫描测试中的基本结构,这里仅简单介绍全扫描。全扫描就是多个扫描单元相连接,上一单元的扫描输出,连接到目前单元的扫描输入,目前单元的扫描输出连接到下一单元的扫描输入,以此类推,构成一条移位寄存器链,如图2所示:
这样的扫描结构,可通过一个串行输入端,将期望的数据存入移位寄存器链并观察运行结果。
二、IR 电路结构
指令寄存器的电路结构与全扫描类似,同样是采用了移位寄存器链。其扫描单元如图3所示:
信号名 | 作用 |
---|---|
ShiftIR | 移位使能 |
PI Data | 并行输入数据 |
From last cell | 扫描输入(数据来自上一扫描单元的扫描输出端口) |
ClockIR | 扫描单元时钟信号,仅在Capture-IR和Shift-IR状态时有效 |
Update IR | 指令位触发器时钟信号,仅在Update-IR状态时有效 |
Reset | 复位信号,用于强制性指令解码(BYPASS或IDCODE) |
To next cell | 扫描输出(连接到下一扫描单元的扫描输入端口) |
Instruction bit | 指令位,指示是否为该指令位对应的指令 |
构成的移位寄存器链如图4所示:
扫描路径已经用红色笔标注了,所以IR就是根据TAP输出的控制信号,来进行对应的移位,更新,捕获等操作,译码器对指令进行译码,并将对应的指令位置1并输出来控制测试逻辑架构其他组件。其中在 Test-Logic-Reset 状态时,Instruction1将被复位,表示强制性指令BYPASS或者IDCODE。
三、指令寄存器的操作
在不同的 TAP 控制器状态下,IR进行的操作不同,详情见图5:
可以看到 IR 扫描单元存储值只在Shift-IR状态和Capture-IR状态发生改变,且指令只在 Test-Logic-Reset 和 Update-IR 状态更新并生效,其中前者是复位到强制性指令BYPASS或者IDCODE,后者则是更新为译码器结果。
参考文献
【1】IEEE Standard for Test Access Port and Boundary-Scan Architecture IEEE Std 1149.1™-2013
【2】SoC设计方法与实现 第三版 郭炜