https://mp.weixin.qq.com/s/pHtrlmSCPqzlDdfj3qkNPQ

简单介绍JtagShifter的实现。

1. 简单介绍

实现移位寄存器链,包含并行Capture和Update功能,用于实现从TDI到IR/DR,再到TDO的串行移位路径。

2. ShifterIO

定义Shifter的输入输出接口:

a. data:被移位(移入移出)的数据;

b. shift:控制是否移位(high in the ShiftIR/DR state);

c. capture:控制是否捕获数据(high in CaptureIR/DR state);

d. update:控制是否更新数据(hign in UpdateIR/DR state);

另外:

a. 多个ShifterIO可以组合在一起成为一个shifter chain;

b. chainControlFrom方法只是把控制接口串在一起,并没有串接data;

3. ChainIO

定义包含一个输入移位器接口和一个输出移位器接口的移位器链:

4. Capture

定义CaptureIO:

其中,

a. bits:输入信号,从中输入要捕获的数据(data to capture);

b. capture:输出信号,只是是否在捕获数据;

5. Chain

定义会引入一个ChainIO输入输出接口的特征:

6. JtagBypassChain

定义包含bypass寄存器的移位器链,按照规范中的说法,是select the bypass register to be connected for serial access between TDI and TDO in the Shift-DR controller state:

1) io

输入输出接口是一个ChainIO,用于把数据串行移入移出:

2) reg

reg即是bypass register,只有一个比特:

reg中的数据输出到chainOut这个ShifterIO:

reg中的数据从chainIn中来:

这里同时也考虑到capture的情况,可以参考规范。

3) assert

这个断言后面还会出现,用于断定capture/update/shift这三个值不能同时为真:

7. CaptureChain

包含并行数据捕获功能的移位器链:

1) io

在ChainIO的基础上,添加CaptureIO:

2) n

n是并行捕获数据的宽度,同时也是构造移位器链所需要的单比特寄存器数:

3) regs

regs用于存放并行捕获的数据,同时也支持移位:

4) 移位

regs可以通过移位逐位输入输出。

a. 串出

b. 串入

c. 移位

5) 捕获

regs也可以通过捕获并行输入输出。

a. 并行捕获

并行(一次性)地把io.capture.bits中的数据输入到regs中:

b. io.capture.capture赋值

相较于io.chainIn.shift通过外部输入,io.capture.capture的值根据io.chainIn.capture和io.chainIn.shift来决定:

8. CaptureUpdateChain

包含并行捕获和更新的移位寄存器链:

1) io

在ChainIO的寄存上加入CaptureIO和update相关的数据:

其中,更新相关的数据使用ReadyValid接口;

2) captureWidth/updateWidth/n

a. captureWidth:捕获数据的宽度;

b. updateWidth:更新数据的宽度;

c. n:两者中的较大值;

n取较大值,因为生成的寄存器既要并行输入要捕获的数据,也要并行输出更新的数据:

3) 移位

a. 串出

b. 串入

c. 移位

4) 捕获

把io.capture.bits并行输入到regs中:

这里使用math.min(n, captureWidth)是没有必要的,可以直接使用captureWidth;因为n ≥captureWidth,所以两者中较小的肯定是captureWidth。

5) 更新

在判断到io.chainIn.update为真时,会把io.update.valid值为真:

此时由regs产生的updateBits就并行更新(parallel update)输出到io.update.bits中了:

6) 断言

这个断言的意义在这里就更明确了,用于断定capture/update/shift这三个值不能同时为真:

Rocket - jtag - JtagShifter的更多相关文章

  1. Rocket - jtag - JtagTap

    https://mp.weixin.qq.com/s/0u9jM2u-FkTlrk3QNuZaBw 简单介绍JtagTap的实现. 1. 简单介绍 定义TAP(Test Access Port)所需要 ...

  2. Rocket - jtag - JtagStateMachine

    https://mp.weixin.qq.com/s/cFXVOBHayV2w27jpT5RglA 简单介绍JtagStateMachine的实现. 1. 简单介绍 根据IEEE 1149.1-200 ...

  3. STM32C8T6 JTAG使用到PB3|PB4|PA13|PA14|PB15端口做普通IO时,需禁止JTAG!

    GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIO ...

  4. STM32用JLINK 烧写程序时出现NO Cortex-m device found in JTAG chain现象和解决方案

    现象 CPU: STM32107VC 用JLINK 烧写程序时出现NO Cortex-m device found in JTAG chain 如图无法查找到硬件就是CPU 提示1:NO Cortex ...

  5. 偶遇STM32 JTAG和SWD口(调试)被禁用无法下载,已经粗暴解决!

    处女座,为了板子走线美观,拉线方便,在项目量产前,还更改了原来外设的IO口,埋头苦干一天,移植ok,发现PB3一直不听使唤,好,加班检查代码,检查初始化,时钟,IO对应,然后试PCB板,是否短路,断路 ...

  6. (转)小心FPGA的JTAG口(上电和下电顺序)

    同志们,根据ALTERA官方FAE(现场应用工程师)的强烈建议,请注意不要随意带电插拔你的JTAG下载接口,否则会损坏FPGA芯片的JTAG口信号管脚.现象:在排除了下载线的问题后,还是不能访问FPG ...

  7. JTAG 学习 -SVF格式

    yxr注: 主要zt,附上自己的心得如下: 1)反观SVF文件,除了设置必要的条件之外(初始条件和TIR等四条命令),真正的运行命令就两条,SIR向JTAG TAP状态机的IR寄存器送命令,SDR往J ...

  8. [异常解决] JTAG 与STM32的SWD连接接线方式

    如果我们的板子上只留了4个接口:V3.3,SWDIO,SWDCLK,GND.那么和JTAG的连接关系参见下图: dd400cf22b5c01e57a6c9e198d5383a0_189.jpg (0 ...

  9. Quartus 11.0 的AS 下载方式和JTAG下载jic文件的方式

    FPGA下载的三种方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式: AS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EP ...

随机推荐

  1. Bootstrap Table 3 官方文档

    备查 Bootstrap Table 3 官方文档 示例

  2. STM32 OSAL操作系统抽象层的移植

    文章目录 什么是 OSAL? 源码安装 Linux 上OSAL的移植 STM32上OSAL的移植 关键点 测试代码 结语 附件 什么是 OSAL? 今天同学忽然问我有没有搞过OSAL,忽然间一头雾水, ...

  3. Linux dts 设备树详解(一) 基础知识

    Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 1 前言 2 概念 2.1 什么是设备树 dts(device tree)? 2. ...

  4. 「从零单排HBase 10」HBase集群多租户实践

    在HBase1.1.0发布之前,HBase同一集群上的用户.表都是平等的,大家平等共用集群资源.容易碰到两个问题: 一是某些业务较其他业务重要,需要在资源有限的情况下优先保证核心重要业务的正常运行 二 ...

  5. HDU 2013 (水)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2013 题目大意:已知最后一天桃子只有一个,告诉你猴崽子第一天吃掉总桃子数的一半多一个,第二天吃掉剩下总 ...

  6. 豹子安全-注入工具-疑问_MySQL_基于联合查询_按钮【获取基本信息】不能成功的解决方法。

    豹子安全-注入工具-疑问_MySQL_基于联合查询_按钮[获取基本信息]不能成功的解决方法. 网站: http://www.leosec.net 如下GIF影片所示:

  7. resize允许你控制一个元素的可调整大小性

  8. 【数据结构】平衡树splay和fhq—treap

    1.BST二叉搜索树 顾名思义,它是一棵二叉树. 它满足一个性质:每一个节点的权值大于它的左儿子,小于它的右儿子. 当然不只上面那两种树的结构. 那么根据性质,可以得到该节点左子树里的所有值都比它小, ...

  9. iOS中的系统目录(Documents、tmp、Library)、RunLoop的一些知识点

    学习内容 欢迎关注我的iOS学习总结--每天学一点iOS:https://github.com/practiceqian/one-day-one-iOS-summary 实现轮播图需要注意的地方 需要 ...

  10. 前端面试题-http和https区别

    说一下http和https https的SSL加密是在传输层实现的. (1)http和https的基本概念 http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求 ...