0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JTAG Operation示例

sally100 来源:数字ICer 2023-02-07 10:35 次阅读

通过此前一系列文章熟悉 JTAG 架构后,让我们用一个完整的示例来了解用于 Debug 访问的 TAP 是如何工作的。

假设这么一个调试场景,我们出于调试需求,需要 JTAG 能够访问并修改设计中一个 3 比特位宽的控制信号。在正常的 functional 模式中,该控制信号数值为 3'b111;但出于一些调试目的,我们想要把它改成 3'b100。以下是通过 TAP 实现这一点的过程。

假设设计中的 JTAG 指令寄存器(IR)位宽为 4 比特。

首先我们需要在 JTAG 设计中增加一个 3 比特位宽的用户数据寄存器(User DR),并将其输出连接到我们想要修改的控制信号上。接下来,我们为该 User DR 指定一个 opcode,比如 4'b1010(因为 IR 为 4 比特,因此 opcode 同样为 4 比特)。在设计中添加该 User DR 时,需要将其复位值设定为 3'b111(为什么?复位值对应于该控制信号在 functional 模式中需要的数值,即 3'b111)。

这样一来,User DR 在任何 JTAG Update 事件更改数值前,将驱动该信号为 3'b111。一般来说,在芯片上电过程中,JTAG 会比其他逻辑更早退出复位状态,因此,该控制信号能赶在被其驱动的逻辑退出复位之前,确保其数值为所需的 3'b111。

05166ea8-a63d-11ed-bfe3-dac502259ad0.png

图 1- 示例的时序图

图 1 中的时序图展示了如何将 User DR 的数值更新为 3‘b100 的过程。该时序图来自 JTAG 工业标准,其中的 TMS 和 TDI 以及 IR/DR Hold Register 在时钟下降沿更新数值,而 FSM 状态以及 IR/DR Hold Register 则在时钟上升沿跳变数值。

图 1 中的 16-状态 FSM 从 Test-Logic Reset 状态开始工作,通过设置 TMS 的时序使状态机进入 Shift IR 状态。

接下来通过 TDI 端口数据寄存器对应的 opcode(4’b1010)移入指令寄存器。shift 和 hold 寄存器的初始值均为复位值 0,4'b1010 由从 LSB 到 MSB 的顺序串行地移入指令寄存器中。

通过设置 TMS 的时序使状态机进入 Update IR 状态。在 Update IR 状态中,IR 的 hold 寄存器更新为 Shift 寄存器中的值,指令译码器解码该指令的数值,建立起一条 TDI 和用户数据寄存器之间的通路。

接下来,FSM 退出 Update IR 状态,转移至 Shift DR 状态,此时串行地向 DR shift 寄存器中移入所需的数值 3'b100,由从 LSB 到 MSB 的顺序。在数据 3'b100 完全加载到 Shift 寄存器中后,FSM 跳转到 Update DR 状态。在该状态中,DR hold 寄存器更新为 3'b100,就在此时,需要修改的控制信号数值也从复位值 3’b111 改变为 3'b100。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5186

    浏览量

    118411
  • JTAG
    +关注

    关注

    6

    文章

    386

    浏览量

    71266

原文标题:JTAG Operation 示例

文章出处:【微信号:数字ICer,微信公众号:数字ICer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    cc3200 移植file operation 和tcp出现的rtos问题

    像例程一样运行成功。我想问:1.这个error的原因是什么?如何解决?2.能否不使用OS 在其他项目中运用tcp和file operation3. _SlNonOsMainLoopTask() 这个函数的具体用法示例,细节的说明
    发表于 02-24 10:04

    怎么在Xilinx FPGA上获得JTAG详细文档的最佳位置

    in-depth technical detail for JTAG operation in Xilinx FPGAs.I am considering building my own TAP
    发表于 01-24 09:36

    使用jtag接口通过网口烧写程序

    什么是JTAG 到底什么是JTAG呢? JTAG(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持
    发表于 06-05 12:10 98次下载

    JTAG口及其对Flash的在线编程

    通过JTAG 实现对Flash 在线编程。首先, 介绍JTAG 的定义、结构及引脚的定义, 并阐述JTAG 状态机的工作原理。然后,介绍JTAG口的边界扫描寄存器,给出实现
    发表于 04-16 10:00 61次下载

    JTAG先进的功能和系统设计,JTAG Advanced C

    JTAG先进的功能和系统设计,JTAG Advanced Capabilities and System Design The JTAG bus, originally intended
    发表于 05-16 09:57 32次下载

    JTAG调试原理(推荐)

    JTAG调试原理(推荐):ARM JTAG 调试原理
    发表于 05-27 08:59 21次下载

    JTAG与ISP使用中的常见问题

    第1章 JTAG使用相关问题1.1 正确安装方法与使用1.1.1 H-JTAG安装步骤避免H-JTAG问题发生最重要的一点是要进行正确的配置。下面介绍一下H-JTAG软件的安装和配置流
    发表于 11-18 16:24 0次下载

    什么是jtag接口 jtag接口定义 JTAG ARM

    什么是jtag接口 JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试, J
    发表于 12-20 13:40 4.9w次阅读
    什么是<b class='flag-5'>jtag</b>接口 <b class='flag-5'>jtag</b>接口定义 <b class='flag-5'>JTAG</b> ARM

    PMU Mode Operation for the MAX

    PMU Mode Operation for the MAX9979 Pin-Electronics IC Abstract: This application note
    发表于 12-25 17:55 1309次阅读
    PMU Mode <b class='flag-5'>Operation</b> for the MAX

    JTAG功能及系统设计

    本内容向大家提供了JTAG功能及系统设计 JTAG也是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的
    发表于 03-30 10:04 0次下载
    <b class='flag-5'>JTAG</b>功能及系统设计

    ARM JTAG 调试原理

    ARM JTAG 调试原理对于了解jtag结构由很好的帮助。
    发表于 03-10 14:08 10次下载

    jtag接口是什么_jtag接口定义

    JTAG(JointTestActionGroup,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门
    发表于 01-11 09:45 3w次阅读
    <b class='flag-5'>jtag</b>接口是什么_<b class='flag-5'>jtag</b>接口定义

    嵌入式JTAG接口你了解多少

    JTAG是串行接口,使用打印口的简单JTAG电缆,利用的是打印口的输出带锁存的特点,使用软件通过I/O产生JTAG时序。
    发表于 10-18 11:47 2173次阅读

    ARM的JTAG调试结构

    JTAG是Joint Test Action Group的缩写,是IEEE 1149.1标准。使用JTAG的优点:JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试。
    的头像 发表于 08-27 14:18 3014次阅读

    JTAG简介 JTAG和SWD之间的区别

    01JTAG简介 JTAG(JointTest ActionGroup)是一个接口,为了这个接口成立了一个小组叫JTAG小组,它成立于1985年。在1990年IEEE觉得一切妥当,于是发布了IEEE
    的头像 发表于 07-23 17:53 6.5w次阅读
    <b class='flag-5'>JTAG</b>简介 <b class='flag-5'>JTAG</b>和SWD之间的区别