集成电路流片随笔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 协议 提供硬件调试和控制功能,可以对设备的寄存器、内存进行读写操作,并支持发出停止和重置请求。通常用于 嵌入式系统调试平台 中,以帮助开发者进行硬件调试和验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值