Rocket - debug - Example: DMI】的更多相关文章

https://mp.weixin.qq.com/s/7suuJ7m2BKCpsHk1K2FzJQ 介绍riscv-debug的使用实例:如何使用DMI. 1. dm Debug Module实现了调试模块. 2. dmi Debug Module Interface是对Debug Module的访问接口. 3. DTM dmi包含在DTM中.DTM是硬件接口相关的,可以是JTAG DTM,也可以是USB DTM. 4. JTAG DTM Registers 1) 支持的寄存器列表 a. 这里的…
https://mp.weixin.qq.com/s/tI41wu0xaIQ5PRq6F82tNw 简单介绍TLDebugModuleInner中生成DMI控制和状态寄存器使用到的状态. 1. abstractCommandBusy 表示是否处于等待状态,如果不是在等待状态,则视为Busy: 2. ABSTRACTCSWrEnLegal 如果正处于等待状态,则可以合法写入ABSTRACTCS寄存器: 3. COMMANDWrEnLegal 如果正处于等待状态,则可以合法写入COMMAND寄存器:…
https://mp.weixin.qq.com/s/70BoeS7z4aBZK24zxdZzXA 简单介绍DMI的实现. 1. DMIConsts 定义DMI使用的常量: 其中: a. dmiDataSize为数据宽度: b. dmiOpSize为操作宽度: 2. DMIReq 定义DMI请求的结构: 其中: a. addr为请求地址,其宽度由参数传入: b. data为请求时使用的数据: c. op为请求的操作类型: 3. DMIResp 定义DMI响应的结构: 其中: a. data为响应…
https://mp.weixin.qq.com/s/uGxn-Xec0LkwdaSsCtQBvw 简单介绍Periphery的实现. 1. ExportDebugDMI/ExportDebugJTAG 这是两个参数,用于进行参数查找: ExportDebugDMI表示导出DMI接口: ExportDebugJTAG表示导出JTAG接口: 2. DebugIO 定义系统调试模块接口: 其中:clockeddmi和systemjtag只有一个存在: 3. HasPeripheryDebug Has…
https://mp.weixin.qq.com/s/EcsuTjb4hFF9Ncig9Gfhew 简单介绍DebugTransport的实现. 1. JtagDTMConfig 1) JtagDTMConfig 这是关于JtagDTM的配置: 其中: a. idcodeVersion:表示Jtag模块的版本号: b. idcodePartNum:表示Jtag模块的Part number; c. idcodeManfId:表示设计者或制造者的编号: d. debugIdleCycles:表示需要…
https://mp.weixin.qq.com/s/EhUb1z5oiIw6dJ-90ifDJA 简单介绍TLDebugModule中的实现. 1. device device是一个设备描述符,包含了设备的各种信息: 2. dmOuter dmOuter是一个TLDebugModuleOuterAsync模块: 其结构示意图如下: 3. dmInner dmInner是一个TLDebugModuleInnerAsync模块: 其结构示意图如下: 4. node node是dmInner.tlN…
https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考资料: a. https://github.com/pulp-platform/riscv-dbg/blob/master/doc/debug-system.md b. RISC-V External Debug Support Version 0.13.2 Appendix A.2 1. Hart…
https://mp.weixin.qq.com/s/PSeMVZjSjEFHJgCYZzfa9Q 简单介绍TLDebugModuleOuterAsync的实现. 1. dmi2tl dmi2tl是TLDebugModuleOuterAsync中的一个子模块,用于把dmi接口转换为tilelink接口. 其结构图如下: 2. dmiXbar dmiXbar是一个TLXbar模块,用于连接多个TileLink模块: 3. dmOuter dmOuter也是一个子模块: 4. intnode int…
https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg 简单介绍Variable ROM Generation. 1. jalAbstract jalAbstract是一条指令,跳转到抽象命令的指令: Instruction.JAL是jump and link指令: GeneratedUJ用于生成一个UJ格式的指令结构: JAL属于J-format. GeneratedUJ的定义如下: jalAbstract.setImm(ABSTRACT(cfg)…
https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ 简单介绍TLDebugModuleInner中的Program Buffer Access. 1. implementation-specific bits set by harts executing code 1) haltedBitRegs/resumeReqRegs haltedBitRegs和resumeReqRegs在dmactive为假的情况下,值为0.在dmactive为真的情况下…