随笔分类 - Chisel3
摘要:https://mp.weixin.qq.com/s/jkiHceU0HaJbHGvHiU-QOA 简单介绍TLDebugModuleInner的实现。 1. 引入全局配置 1) cfg 引入DebugModulePrams: 2) hartSelFuncs 定义hartsel与hart id之间的
阅读全文
摘要:https://mp.weixin.qq.com/s/9nMo6IYmDCz7S-ALFx824g 简单介绍TLDebugModuleOuter的实现。 1. DebugModuleAccessType 定义调试模块访问宽度: 2. DebugAbstractCommandError 定义抽象命令访
阅读全文
摘要:https://mp.weixin.qq.com/s/70BoeS7z4aBZK24zxdZzXA 简单介绍DMI的实现。 1. DMIConsts 定义DMI使用的常量: 其中: a. dmiDataSize为数据宽度; b. dmiOpSize为操作宽度; 2. DMIReq 定义DMI请求的结
阅读全文
摘要:https://mp.weixin.qq.com/s/eFOHrEhvq2PlEJ14j2vlhg 简单介绍SBA的实现。 1. SystemBusAccessState 系统总线访问状态: 分别是:空闲、读请求、写请求、读响应、写响应; 2. SBErrorCode 定义错误码: 3. SBToT
阅读全文
摘要:https://mp.weixin.qq.com/s/YPFa6kE6I_Ud_MJGvzmS-g 简单讨论输入边/输出边Bundle的方向。 1. 上游节点的地址不重复 仔细看了一下sourceFn的实现: 其中要求上游节点中不存在重复的地址: 这样也就不存在decoded中存在两个元素同时为真的
阅读全文
摘要:https://mp.weixin.qq.com/s/7h9Bdb0x4_clyigMU_0B7Q 讨论DebugCustomXbar中的几个问题。 1. sources/sourceParams node.in.unzip解出来输入边中的BI, EI参数,分别是sources和sourcePara
阅读全文
摘要:https://mp.weixin.qq.com/s/jkBP6ZjEbgm-SVDpLUMjlA 简单介绍Custom的实现。 1. DebugCustomParams 包含两个参数: a. addrs: 地址; b. width: 数据宽度; 2. DebugCustomNull 定义向上游传递
阅读全文
摘要:https://mp.weixin.qq.com/s/P48K17TyRoZC7xBMltbXKQ 简单介绍调试模块中每个寄存器的定义。 1. DMI_RegAddrs 记录DMI访问的各个寄存器的地址: 在规范中定义如下: 2. DMSTATUSFields 在规范中定义如下: 3. DMCONT
阅读全文
摘要:https://mp.weixin.qq.com/s/7suuJ7m2BKCpsHk1K2FzJQ 介绍riscv-debug的使用实例:如何使用DMI。 1. dm Debug Module实现了调试模块。 2. dmi Debug Module Interface是对Debug Module的访
阅读全文
摘要:https://mp.weixin.qq.com/s/HjG5S9binyniG_amC3Dr5Q 介绍riscv-debug的使用实例:如何选择核心,执行Halt/Resume请求。 1. Selecting Harts 可以有多个核心连接在一个调试模块上,如果要让一个核心暂停、重新执行、复位,或
阅读全文
摘要:https://mp.weixin.qq.com/s/SxmX-CY2tqvEqZuAg-EXiQ 介绍riscv-debug的使用实例:配置Quick Access功能。 1. Quick Access 快速访问,即暂停核心执行Program Buffer中的一段短的代码,然后再恢复核心运行。 具
阅读全文
摘要:https://mp.weixin.qq.com/s/zPNyrBOhsytkRrZTDTEvpw 介绍riscv-debug的使用实例:配置Triggers功能。 1. Trigger Trigger是指硬件触发器:A debugger can use hardware triggers to h
阅读全文
摘要:https://mp.weixin.qq.com/s/on1LugO9fTFJstMes3T2Xg 介绍riscv-debug的使用实例:使用三种方法写内存。 1. Using System Bus Access 1) Write a word to memory A. 写sbaddress0寄存器
阅读全文
摘要:https://mp.weixin.qq.com/s/ChXNTbx94WDC72GvmE9bGA 介绍riscv-debug的使用实例:使用三种方法读取内存。 1. Using System Bus Access 1) System Bus Access 除了抽象命令,Program Buffer
阅读全文
摘要:https://mp.weixin.qq.com/s/8yYLVg-RXX3XX0T431lxeA 介绍riscv debug接口的使用实例:使用Program Buffer读取寄存器。 1. Write mstatus using program buffer 1) csrw s0 MSTATUS
阅读全文
摘要:https://mp.weixin.qq.com/s/RdJzE06mMkh2x__vVj_fEA 介绍riscv debug接口的使用实例:使用抽象命令读取寄存器。 1. Read s0 using abstract command 1) abstract command 抽象命令,Debug模块
阅读全文
摘要:https://mp.weixin.qq.com/s/poCJBcx45clXHm6Uuv8M6w 介绍AddressSet.misaligned的实现。之前介绍的比较概括,也有偏差。这里根据实际执行结果,分析总结其功能。 1. 提取执行 misaligned功能比较独立,可以单独提取出来。执行观察
阅读全文
摘要:https://mp.weixin.qq.com/s/0u9jM2u-FkTlrk3QNuZaBw 简单介绍JtagTap的实现。 1. 简单介绍 定义TAP(Test Access Port)所需要的相关模块,并实现一个生成TAP的方法。 2. JTAGIO 定义JTAG模块的输入输出接口,输入输
阅读全文
摘要:https://mp.weixin.qq.com/s/cFXVOBHayV2w27jpT5RglA 简单介绍JtagStateMachine的实现。 1. 简单介绍 根据IEEE 1149.1-2001规范,实现一个状态机,根据TCK/TMS的值,驱动TAP控制器状态变化。 2. JtagState
阅读全文
摘要:https://mp.weixin.qq.com/s/pHtrlmSCPqzlDdfj3qkNPQ 简单介绍JtagShifter的实现。 1. 简单介绍 实现移位寄存器链,包含并行Capture和Update功能,用于实现从TDI到IR/DR,再到TDO的串行移位路径。 2. ShifterIO
阅读全文

浙公网安备 33010602011771号