当前位置: 首页 > ds >正文

集成电路流片随笔16:jtag top下的两个子模块概览 tinyriscv

JTAG 接口模块,实现了对系统的 调试、控制状态检查 功能。具体来说,它是通过 JTAG (Joint Test Action Group) 接口,控制和访问系统中的内部寄存器、内存以及其他外设。


模块整体说明

该模块是 JTAG(调试接口) 的顶层模块,主要有两个子模块:

  1. jtag_driver:该模块负责处理 JTAG 信号,进行通信与响应。
  2. jtag_dm:该模块是 JTAG 数据寄存器管理模块,处理从 JTAG 驱动器到内存或寄存器的数据操作。

JTAG 接口信号

输入信号:
  • clk:时钟信号。
  • jtag_rst_n:JTAG 接口复位信号。
  • jtag_pin_TCK:时钟信号,用于同步数据传输。
  • jtag_pin_TMS:测试模式选择信号,用于指示 JTAG 状态机的状态。
  • jtag_pin_TDI:JTAG 数据输入信号,从外部发送到设备。
  • reg_rdata_i:寄存器的数据输入,读取的数据。
  • mem_rdata_i:内存的数据输入,读取的内存内容。
输出信号:
  • jtag_pin_TDO:JTAG 数据输出信号,将数据返回给外部。
  • reg_we_o:寄存器写使能信号,表示是否进行寄存器写操作。
  • reg_addr_o:寄存器地址信号,用于指定目标寄存器的地址。
  • reg_wdata_o:寄存器写数据,写入寄存器的数据。
  • mem_we_o:内存写使能信号,表示是否进行内存写操作。
  • mem_addr_o:内存地址,指示要写入的内存位置。
  • mem_wdata_o:内存写数据,写入内存的数据。
  • op_req_o:操作请求信号,表示操作是否已请求。
  • halt_req_o:停止请求信号,用于发出停止信号。
  • reset_req_o:重置请求信号,发出重置信号。

主要子模块

1. jtag_driver
  • 功能:处理来自 JTAG 端口的信号,尤其是 TDI (输入) 和 TDO (输出),同时负责 JTAG 协议的时序控制。
  • 信号交互
    • 接收 TDI、TMS、TCK 信号,操作 JTAG 流程。
    • JTAG 数据管理模块(jtag_dm) 发送请求,进行调试或操作。
    • 负责处理与 dtm_req_valid_odtm_req_data_o 等相关的数据请求。
2. jtag_dm
  • 功能:处理与内存和寄存器的交互。负责将来自 JTAG 的请求转换为实际的硬件操作。
  • 信号交互
    • 接受来自 jtag_driver 模块的请求,处理内部数据访问。
    • 负责将请求发送给寄存器、内存等设备,通过 mem_we_oreg_we_o 和相应的地址与数据控制信号。
    • 根据 JTAG 流程,执行数据读取、写入,甚至发送操作请求。

模块工作流程

  1. JTAG 设备初始化

    • 通过 JTAG 接口,向目标设备发送初始化信号。
    • S_IDLE 状态表示设备空闲,等待操作。
  2. 寄存器和内存读写

    • jtag_dm 模块中,根据接收到的 JTAG 信号,执行对目标寄存器或内存的读取或写入。
    • JTAG 信号处理过程中包括写入数据到寄存器和内存、读取并返回数据。
  3. 控制信号的请求

    • halt_req_o:发送停止操作请求,通常用于调试过程中暂停程序执行。
    • reset_req_o:发送重置请求,通常用于设备初始化或故障恢复。

总结

这个 JTAG 接口模块 的作用是通过 JTAG 协议 提供硬件调试和控制功能,可以对设备的寄存器、内存进行读写操作,并支持发出停止和重置请求。通常用于 嵌入式系统调试平台 中,以帮助开发者进行硬件调试和验证。

http://www.xdnf.cn/news/162.html

相关文章:

  • 【HDFS入门】HDFS性能调优实战:从基准测试到优化策略
  • Flash存储器(一):接口标准全解析
  • ARINC818协议(三)
  • rulego-server是一个开源程序,是一个轻量级、无依赖性的工作流自动化平台。支持 iPaaS、流式计算和 AI 能力。
  • 问题三、导入到Isaacsim中的文件无法修改节点名称(已解决)
  • VR拍摄要点与技巧有哪些?有哪些最佳实践?
  • Docker快速入门
  • Ubuntu20.04 部署llama-factory问题集
  • zset.
  • 计算机基础 | 常见进制与单位简介 / 表示 / 描述
  • 超导体的应用价值:超导磁探测技术开启科技与生活的新变革
  • P2P用服务器运行所需的带宽资源
  • RT-DETR源码学习bug记录
  • 关系型数据库MYSQL(续)
  • 【网络编程】UDP数据报套接字编程
  • Kafka 时间轮
  • PC主板及CPU ID 信息、笔记本电脑唯一 MAC地址获取
  • 七牛使用任务工作流对音频进行转码
  • 云服务器和物理服务器
  • Java并发编程高频面试题(已整理Java面试宝典PDF完整版)
  • 在 PDF.js 的 viewer.html 基础上进行改造,实现同一个 PDF 文件在网页中上下拆分显示,并且两部分的标注数据能够实时同步
  • UMG:ListView
  • CrewAI Community Version(一)——初步了解以及QuickStart样例
  • Vite 4.0性能优化:如何提升前端构建速度与开发体验
  • 文件上传Ⅰ
  • 【面经】杭州产链数字科技一面
  • lottie深入玩法
  • RT-Thread开发文档合集
  • 学习型组织与系统思考
  • MySQL启动Failed to start LSB: start and stop MySQL