JTAG 标准IEEE STD 1149.1-2013学习笔记(四)Test logic controllers

2023-10-27 18:21

本文主要是介绍JTAG 标准IEEE STD 1149.1-2013学习笔记(四)Test logic controllers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、TAP控制器的状态转移图
  • 二、各状态介绍

注:转载请注明出处
参考JTAG标准第六章测试逻辑控制器(Test logic controllers)。
记录下学习过程,个人水平有限,可能理解有误,后续若发现错误之处,会及时更新。

VersionDate
1.02021.12.15

这篇笔记用来介绍TAP 控制器,TAP控制器是同步有限状态机,状态根据 TMS 和 TCK 信号的变化而变化,控制测试逻辑的行为,并保持测试扫描链上所有组件的同步,以允许移位、捕获和数据更新。

一、TAP控制器的状态转移图

TAP控制器的状态转移图如图1所示:
在这里插入图片描述

图1 TAP控制器状态转移图

TAP控制器根据TMS和TCK信号来控制状态转移,其中TMS在TCK上升沿采样,根据采样的TMS值来进行操作控制。根据图1可知,无论处于哪一状态,TMS只要维持5个周期的高电平就一定会回到Test-Logic-Reset状态。
在这里插入图片描述

图2 控制器的动作时序

即动作发生在状态切换后的一个周期中TCK的下降沿处或者上升沿处。

二、各状态介绍

一共16个状态,下面简单介绍一下:

  1. Test-Logic-Reset
    在上电的时候,TAP控制器将置于此状态,这种状态下,测试逻辑被禁止,片上系统逻辑正常运行,读IDCODE寄存器将禁止测试逻辑。
    此外,无论TAP控制器处于何种状态,只要将TMS信号在5个连续的TCK信号的上升沿保持高电平,TAP控制器就将进入Test-Logic-Reset状 态,目的是为了防止TMS信号毛刺导致转移到其他状态影响芯片的正常运行,错误启动测试逻辑。如果TMS信号一直为高电平,那么TAP将保持在Test-Logic-Reset状态,另外TRST信号也可以强迫TAP进入Test- Logic-Reset状态。
    处于Test-Logic-Reset状态的TAP,如果下一个TCK的上升沿时TMS信号处于低电平,那么状态将被切换到Run-Test/Idle状态。

  2. Run-Test/Idle
    只要 TMS 保持低电平,控制器保持在运行测试/空闲状态。 当 TMS 为高电平且在 TCK 的上升沿时,控制器将进入 SelectDR-Scan 状态。 在Run-Test/Idle控制器状态下,仅当存在特定指令时,所选测试逻辑中的活动才会发生。
    例如,RUNBIST 指令使片上系统逻辑的自检在此状态下执行。 由 RUNBIST 以外的指令选择的自检也可以设计为在控制器处于此状态时执行。
    对于在 Run-Test/Idle 控制器状态下不执行功能的指令,在该状态中花费的时间成为延迟(即空闲)并且当前指令选择的所有测试数据寄存器应保持其先前状态。

  3. Select-DR-Scan
    一个临时的控制器状态(即控制器在 TCK 的下一个上升沿退出该状态,即无论TMS为什么电平,下一状态都不会是其本身),当前指令选择的所有测试数据寄存器都保留其先前的状态。 如果在控制器处于此状态时 TMS 保持低电平并且处于TCK的上升沿,则控制器将进入 Capture-DR 状态并启动所选测试数据寄存器的扫描序列; 如果 TMS 保持为高电平且处于TCK的上升沿,控制器就会进入 Select-IR-Scan 状态。

  4. Select-IR-Scan
    一个临时的控制器状态(同3解释)在此状态,DR和IR都不会发生改变,在下一个TCK上升沿处,TMS为高电平则控制器回到 Test-Logic-Reset状态;若TMS为高电平则控制器进入 Capture-IR 状态并启动所选IR的扫描序列。

  5. Capture-DR
    一个临时控制器状态,在TCK 上升沿处,数据可以并行加载到当前指令选择的测试数据寄存器的移位捕获路径中,加载后TAP 控制器退出该状态。 如果当前指令选择的测试数据寄存器没有并行输入,或者如果所选测试寄存器不需要捕获,则该寄存器保持其先前状态不变。
    当 TAP 控制器处于此状态时,指令不会更改。
    当 TAP 控制器处于此状态,在下一个 TCK 上升沿处,TMS 为 1 则控制器进入 Exit1-DR 状态;若 TMS 为 0,则控制器进入 Shift-DR 状态。

  6. Shift-DR
    该状态下,作为当前指令的结果,连接在 TDI 和 TDO 之间的测试数据寄存器将数据从 TDI 向TDO移动一级,并在 下一个TCK 的上升沿移至 TDO。 当前指令选择但未放置在串行路径中的测试数据寄存器保持其先前状态不变。
    当 TAP 控制器处于此状态时,指令不会更改。
    当 TAP 控制器处于此状态,在下一个 TCK 上升沿处,TMS 为 1 则控制器进入 Exit1-DR 状态;若 TMS 为 0,则控制器保持在 Shift-DR 状态。
    当 TAP 控制器处于此状态并且对 TCK 施加上升沿时,如果 TMS 保持为 1,则控制器进入 状态,或者如果 TMS 保持为 0,则控制器保持在 Shift-DR 状态。

  7. Exit1-DR
    一个临时的控制器状态。 在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-DR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Pause-DR 状态。
    当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。

  8. Pause-DR
    该状态允许临时停止 TDI 和 TDO 之间串行路径中测试数据寄存器的移位。
    当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。

  9. Exit2-DR
    一个临时的控制器状态。 在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-DR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Shift-DR 状态。
    当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。

  10. Update-DR
    一个临时的控制器状态。边界扫描寄存器的值一般是锁存在并行输出管脚中,以免在EXTEST或SAMPLE/PRELOAD命令下执行移位操作时改变 BSR的值。当处于Update-DR状态时选择的是BSR,那么移位寄存器中的值将在TCK的下降沿处锁存到BSR的并行输出管脚中去。
    处于Update-DR状态时,指令不会被改变。
    在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Select-DR-Scan 状态,终止扫描过程;若TMS 为低电平则控制器进入 Run-Test-Idle 状态。

  11. Capture-IR
    一个临时状态。处于Capture-IR状态时,所选中的IR中的值被固定设置成01,
    处于Capture-IR状态时,指令不会被改变。
    在下一个TCK 的上升沿处,TMS为高电平,则控制器进入EXIT1-IR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Shift-IR 状态。

  12. Shift-IR
    此状态下,连接在 TDI 和 TDO 之间的指令寄存器中的移位寄存器,在 TCK 的每个上升沿将数据从 TDI移位一级至 TDO。
    当前指令选择的测试数据寄存器保持其先前的状态。 当 TAP 控制器处于此状态时,指令不会更改。
    在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Exit1-IR 状态,终止扫描过程;若TMS 为低电平则控制器保持 Shift-IR 状态。

  13. Exit1-IR
    一个临时的控制器状态。 在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-IR 状态,终止扫描过程;若TMS 为低电平则控制器进入 Pause-IR 状态。
    当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。

  14. Pause-IR
    该状态允许临时停止 TDI 和 TDO 之间串行路径中指令寄存器的移位。
    当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。
    在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Exit2-IR 状态;若TMS 为低电平则控制器保持 Pause-IR 状态。

  15. Exit2-IR
    当前指令选择的所有测试数据寄存器保持其先前状态不变。当 TAP 控制器处于此状态时,指令不会更改。
    在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Update-IR 状态;若TMS 为低电平则控制器保持 Shift-IR 状态。

  16. Update-IR
    处于该状态时,移位寄存器中的值将在TCK的下降沿被锁存到指令寄存器中,一旦锁存成功,新的指令将生效代替当前指令。
    在下一个TCK 的上升沿处,TMS为高电平,则控制器进入Select-DR-Scan 状态;若TMS 为低电平则控制器保持 Run-Test-Idle 状态。

参考文献
【1】IEEE Standard for Test Access Port and Boundary-Scan Architecture IEEE Std 1149.1™-2013

这篇关于JTAG 标准IEEE STD 1149.1-2013学习笔记(四)Test logic controllers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/287520

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss