JTAG 标准IEEE STD 1149.1-2013学习笔记(三)Test data registers
文章目录
- 一、TDR的实现
- 二、Bypass Register
- 三、Boundary-scan register
注:转载请注明出处
参考JTAG标准第九章测试数据寄存器(Test data registers)、第10章旁路寄存器(Bypass register)、第11章边界扫描寄存器(boundary-scan register)。
记录下学习过程,个人水平有限,可能理解有误,后续若发现错误之处,会及时更新。
Version | Date |
---|---|
1.0 | 2021.12.15 |
此标准所定义的测试逻辑架构中,测试数据寄存器至少要包括两种寄存器,分别为旁路寄存器(Bypass Register)和边界扫描寄存器(boundary-scan register),当然也有其他可选寄存器,如设备ID寄存器、芯片ID寄存器、初始化数据寄存器等。
一、TDR的实现
TDR是由多个测试数据寄存器组成,每个数据寄存器又基于移位寄存器实现,从而可以通过串行输入将数据写入选中的数据寄存器中,一种实现方案如图1所示:
图1 一组测试数据寄存器的实现
实线绘制的寄存器为必须实现的数据寄存器,虚线绘制的寄存器为可选实现的。可以看到数据通过TDI端口串行输入到DR中,再通过MUX选择要输出的数据,经TDO端口输出。
下面简单介绍下所实现的一些DR。
二、Bypass Register
该寄存器只有一个移位寄存器,即只能存储1bit数据,存在的意义是当进行某项测试操作时,不需要访问其他的DR,那么TDI就选择从旁路寄存器通过,从而减少对感兴趣段的测试访问时间,也就是让数据能尽快从TDI达到感兴趣段。
实现的电路结构图如图2所示:
图2 旁路寄存器 表1 DR输如输出信号概述
信号名 | 作用 |
---|---|
ShiftDR | 移位使能 |
From TDI | 串行扫描输入 |
ClockDR | 移位时钟信号,仅在Capture-DR和Shift-DR状态时有效 |
标准中提供了一个例子:
现有一个包含 100 个芯片的电路板,每个芯片的边界扫描寄存器中有 100 位。 如果所有芯片同时串联连接,则电路板上的边界扫描路径将包括 10000 个移位寄存器。 现在需要仅访问测试路径上的一个芯片,这会导致测试时间过长。但若存在旁路寄存器的话,便可大大减少路径上经过的移位寄存器级数,具体方法是将 99 个芯片设置为仅通过其旁路寄存器进行移位,而被测芯片在路径中仍是通过边界扫描寄存器去测试。 这将使总串行路径级数减少为 199 级,与 10000 级相比大幅减少。
三、Boundary-scan register
在DR中,边界扫描寄存器(BSR)是最复杂了,标准中用来解释该寄存器的篇幅也比较长,这里简单介绍一下,后续等自己理解加深后再更新。
图3 无BSR的组件
该组件有输入输出管脚,输入输出缓冲器,输入信号分为时钟信号和非时钟信号,输出信号部分可通过一些控制信号控制其输出。
BSR的作用就是用来观察这样一个片上系统逻辑的输入输出引脚传输的数据,接下来介绍一下BSR单元
- “observe-only”单元
图4 “observe-only”单元
为三端单元,两个输入端,一个输出端,其中一个输入端接Pin,用于将输入或者输出管脚的信号加载到移位寄存器中,另外两个端口用于与其他单元相连接,组成完整的扫描链。
- “control-and-observe” 单元
图5 “control-and-observe”单元
为四端单元,两个输入端口,两个输出端口,其中一个输入端接Pin,用于将输入或者输出管脚的信号加载到移位寄存器中,一个输出端口用于将存储的数据加载到Pin上,另外两个端口用于与其他单元相连接,组成完整的扫描链。此单元构成的BSR就可以将期望的测试输入向量加载到芯片中。
其内部结构如图6所示:
图6 “control-and-observe”单元内部结构
这里多了一些输入端口,传输时钟信号和控制信号,方便通过指令对BSR进行一些操作。
参考文献
【1】IEEE Standard for Test Access Port and Boundary-Scan Architecture IEEE Std 1149.1™-2013
JTAG 标准IEEE STD 1149.1-2013学习笔记(三)Test data registers相关推荐
- JTAG 标准IEEE STD 1149.1-2013学习笔记(二)Instruction register
文章目录 一.D型扫描触发器 二.IR 电路结构 三.指令寄存器的操作 注:转载请注明出处 参考JTAG标准第七章指令寄存器(Instruction register) 记录下学习过程,个人水平有限, ...
- Dynamic CRM 2013学习笔记(十八)根据主表状态用JS控制子表自定义按钮
有时要根据主表的审批状态来控制子表上的按钮要不要显示,比如我们有一个需求审批通过后就不能再上传文件了. 首先打开Visual Ribbon Editor, 如下图,我们可以利用Enable Rules ...
- Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
1. 问题描述 最近新建了一个post事件的插件,传入的参数处理如下: 1: if (context.InputParameters.Contains("Target") & ...
- Dynamic CRM 2013学习笔记(四十三)流程6 - 自定义流程活动
当我们在流程里添加步骤时,有一些默认的步骤,像创建.更新.发邮件等,但如果你想加一个里面没有的步骤,比如发SMS消息,或者调用一个外部的web service,怎么办?这时就只能自定义一个流程活动了. ...
- Dynamic CRM 2013学习笔记(四十二)流程5 - 实时/同步工作流(Workflow)用法图解...
实时工作流跟插件一样,也是用事件执行管道来执行,能在pre,post或核心操作中执行.跟插件一样,不能在创建之前和删除之后执行.如果执行过程中有异常发生,会取消并回滚整个操作.实时工作流里所有的活动和 ...
- Dynamic CRM 2013学习笔记(三十三)自定义审批流4 - 规则节点 -有分支的流程处理...
上次介绍过节点的基本配置<Dynamic CRM 2013学习笔记(三十二)自定义审批流3 - 节点及实体配置>,这次介绍下规则节点,因为有时流程里会有一些分支.合并,这时就要用到规则节点 ...
- fetchxml 汇总_Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧
我们经常要对表单里各种类型的字段进行读取或赋值,下面列出各种类型的读写方法及注意事项: 1. lookup 类型 清空值 var state = Xrm.Page.getAttribute(" ...
- Dynamic CRM 2013学习笔记(二十二)插件里调用WCF服务
1. 添加service: 2.调用WCF BasicHttpBinding myBinding = new BasicHttpBinding(); myBinding.Name = "Ba ...
- SurfaceFlinger学习笔记(三)之SurfaceFlinger进程
概述 本系列是基于android Q 即android10 SurfaceFlinger学习笔记(一)应用启动流程 SurfaceFlinger学习笔记(二)之Surface SurfaceFling ...
最新文章
- android floatingactionbutton样式,Android 之 FloatingActionButton
- orakill和alter system kill session的区别
- arcengine 错误
- jquery easyui datagrid getSelections用法
- 「LG2664 树上游戏」
- jetty9更改post请求长度
- ntko web firefox跨浏览器插件_Firefox火狐浏览器插件全部失效解决方法
- 第三百七十二天 how can I 坚持
- [04-01]css组合选择器
- 据我爱无人机网-英国政府向无人机研发项目提供3000万资助
- 热敏电阻制作温度传感器的c语言,NTC热敏电阻温度测量和控制系统.doc
- 海马模拟器linux,Droid4X Mac版-海马玩模拟器Mac版下载 V0.8.3Beta-PC6苹果网
- 中国MES市场主流厂商及产品分析
- zblog php建站教程_开源建站程序ZBlogPHP博客安装图文教程
- 雷达导论PART IV.1 多普勒效应
- 乐优商城(三十九)—— 订单中心
- android课程助手,小鹅通课堂助手APP
- 运动耳机选择哪种好、什么款式的耳机戴着舒服
- python中syntaxerror什么意思_在Python中,“SyntaxError:调用'print'时缺少括号”是什么意思?...
- 1道动态规划(搬箱子)、KMP算法、图(Prim算法)、1道哈夫曼树