instruction register (ir) 指令寄存器
指令寄存器的目的是通过 tdi 信号移入指令。另外,指令寄存器还可以在新指令完全移入之前,存储当前的指令。
一般情况下,一个 ir 会图 1 中的那样,包含两个寄存器。hold 寄存器存储的是前一条指令,shift 寄存器用于在不影响前一条指令的情况下,移入下一条指令。
图 1- 数据寄存器顶层示意图
指令寄存器的控制信号来自于 tap 控制器,具体的控制信号数值取决于当前 fsm 状态机的状态,使指令寄存器工作 shift 寄存器移入/移出指令(即 shift-ir 状态下的串行更新过程),或者使 shift 寄存器的内容传递到 hold 寄存器中(即 update-ir 状态下的并行更新过程)。
假设一个 4 比特长度的指令寄存器,如果要向其中装填的一个数值,比如 4‘b1100,那么需要以下几个步骤:
控制 tms 信号输入以下序列,使状态机从 “test logic reset” 状态转入 shift-ir 状态:
tms = 0 (1st clock)
tms = 1 (2nd clock)
tms = 1 (3rd clock)
tms = 0 (4th clock)
tms = 0 (5th clock)
在 shift-ir 状态时,在接下来的 3 个时钟周期内保持 tms = 0,并通过 tdi 串行移入指令数值(4'b1100)。note:这里使用 3 个时钟周期就移入了 4 比特数据,这是因为数据 4'b1100 的 lsb (即比特 0)在第四个时钟周期后出现在 tdi 端口上,这样在第五个时钟周期 fsm 进入shift-ir 状态时就会将 lsb 移入。最终,数据的最后一比特 msb 会在第八个时钟周期移入。
控制 tms 信号输入以下序列,使状态机从 shift-ir 状态移入 “update-ir” 状态:
在 fsm 进入 “update-ir” 状态后,shift 寄存器中的数值(4'1100)会并行地被加载到 hold 寄存器。此时,该指令将可以被指令译码器读取。
tms = 1 (9th clock)
tms = 1 (10th clock)
instruction decoder 指令译码器
指令寄存器(ir)中的指令会被传输给指令译码逻辑,译码逻辑会根据指令选取下一步 jtag 操作的目标数据寄存器。
我们给每个数据寄存器都分配了一个不同的指令码数值。当选择某个数据寄存器时,会将其对应的指令装填到指令寄存器中,随后指令译码器将译码该指令码,并建立其一条 tdi/tdo 和对应数据寄存器之间的通路。
假设我们的 jtag 模块中有两个数据寄存器 dr-1 和 dr-2,以及一个 4 比特宽度的指令寄存器。所以我们将给每个数据寄存器指定一个指令码以及对应的指令,比如:
dr-1 ( opcode = 4’b0010)
dr-2 ( opcode = 4’b0011)
note:采用 4 比特指令码,是因为该 jtag 指令译码器位宽为 4 比特。
如果我们想通过 jtag 访问 dr-2,那么我们需要在指令译码器中装填数值 4'b0011,指令译码器将可以译码该数值,并选中 dr-2。
开源的在线流程图绘制工具
PTN技术的特点及在城域传送网中业务承载策略的分析
电子信息制造业统计工作培训会成功举办
MAX4760,MAX4761 宽带、四路DPDT开关
易飞扬量产400G硅光模块迎新年钟声
JTAG 指令寄存器和指令译码器介绍
普通全面屏手机发展仍存在四大难题
如何DIY一个惠斯通电桥
KEPServerEX助力电机制造高效管理系统
小米笔记本ProGTX版评测 到底好不好用
机器学习成功案例的内部视角是怎样的
固态电池仍处于研究的初始阶段,固态电池电动汽车将会迟到
中国移动5G终端采购计划进行中,积极加速5G网络建设
腾达千兆智能路由器AC18,让蹭网者无机可乘
VSLAM系统方法的各种特点
特斯拉已向中国工信部备案Model Y车型
泄漏电流测试仪的使用方法
爱立信展示全球5G生态中的最新行业应用案例
WCDMA系统无线网络规划和优化
输电线路分布式故障定位装置方案选|独特的设计和强大的功能