JTAG原理

用途

  1. 边界扫描测试
  2. 下载程序,调试,配置等(访问内部寄存器)
  3. 概括性地将,可以认为Jtag是一个带控制通路的串行通信协议。

结构

总体结构

  1. TCK和TMS并联到所有的模块上;
  2. 各个模块TDO和TDI依次首位相接
  3. 最后的TDO并接回到上位机端的TDO,上位机段的TDI接入第一个模块的TDI[1]
    在这里插入图片描述

内部结构

对于某一个芯片,其内部构成可以如下图[2]所示。芯片内部需要检查连通性或者提供可观测性的寄存器已经通过相同的TDI->{TDO->TDI}->TDO的方式串起来了。时钟信号和控制信号(TCK和TMS)被接入到了TAP逻辑块中。
在这里插入图片描述

TAP控制器

TAP维护了一个状态机[1],这个状态机的状态变化只是受TMS控制,状态改变之后对TDI、TDO的解释和行为定义将发生对应的变化,从而实现了监测、下载程序、调试等不同的功能。
在这里插入图片描述
当TAP处在Shift-IR模式下,就可以通过TDI每次写入一bit到IR寄存器,然后IR寄存器会自动移动一位。通过这样的方式总是可以向IR寄存器写入任何想要的值。同样地,当TAP处于Shift-DR模式下,可以向D(E)R寄存器写入任何想要的值。

指令寄存器

IR寄存器中的值被当成调试指令,芯片内部根据这些指令完成响应的动作。随便举例,当IR=0b1001时,将芯片内部的xxx寄存器的值输出;当IR=0b1011时,将芯片hang住。

协议特殊规定,对于IR寄存器,如果其每个bit都是1,则表示BYPASS指令,此时TDI经过一个cycle到TDO。注意每个芯片内部的IR寄存器的位数不一定相同。

数据寄存器

DR寄存器可以理解成为IR操作的数据。需要注意的是DR寄存器有很多,每个IR指令可以对应不同的DR。一个特殊的DR动作是,当TAP进入Test-Logic-Reset状态时,DR寄存器自动装入这个器件对应的ID,规定这是一个32位的值。这一状态的控制权比IR寄存器大。

参考

[1] https://www.fpga4fun.com/JTAG2.html
[2] https://www.xjtag.com/about-jtag/what-is-jtag/

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值