Rocket - debug - TLDebugModuleInner - Program Buffer Access
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为真的情况下,其值由hartHaltedId和hartResumingId确定:
2) haltedBitRegs
hartHaltedWrEn为真时,hartHaltedId对应的比特为真;
hartResumingWrEn为真时,hartResumingId对应的比特为假;
3) resumeReqRegs
hartResumingWrEn为真时,hartResumingId对应的比特为假;
resumereq为真时,hamaskWrSel(component)选中的核心,对应的比特为真;
4) hartHaltedWrEn/hartHaltedId
hartHaltedId接收写寄存器的数据,hartHaltedWrEn是写寄存器的标志:
谁写呢?核心写:
核心如何写?想必是通过读写指令。
5) hartResumingWrEn/hartResumingId
hartResumingId接收写寄存器的数据,hartResumingWrEn是写寄存器的标志:
这个寄存器也是由核心来写。
2. sbcsFields, sbAddrFields, sbDataFields
通过SystemBusAccessModule生成系统总线相关的寄存器:
3. Program Buffer Access
生成通过dmi接口访问寄存器的逻辑:
包括除了由outer实现的dmcontrol/hawindow/hawindowsel寄存器之外的,其他寄存器:
4. 附录
略
Rocket - debug - TLDebugModuleInner - Program Buffer Access的更多相关文章
- Rocket - debug - TLDebugModuleInner - Program Buffer
		
https://mp.weixin.qq.com/s/kjhJJ3moRQzxHt6pJOXEgg 简单介绍TLDebugModuleInner中Program Buffer寄存器的实现. 1. pr ...
 - Rocket - debug - TLDebugModuleInner - Hart Bus Access
		
https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...
 - Rocket - debug - TLDebugModuleInner - Drive Custom Access
		
https://mp.weixin.qq.com/s/1bIqzDYXM36MIfSsjvvYIw 简单介绍TLDebugModuleInner中的针对Custom的访问. 1. customNode ...
 - Rocket - debug - TLDebugModuleInner
		
https://mp.weixin.qq.com/s/jkiHceU0HaJbHGvHiU-QOA 简单介绍TLDebugModuleInner的实现. 1. 引入全局配置 1) cfg 引入Debu ...
 - Rocket - debug - TLDebugModuleInner - DMI Register Control and Status
		
https://mp.weixin.qq.com/s/tI41wu0xaIQ5PRq6F82tNw 简单介绍TLDebugModuleInner中生成DMI控制和状态寄存器使用到的状态. 1. abs ...
 - Rocket - debug - TLDebugModuleInner - Abstract Command Decoding & Generation
		
https://mp.weixin.qq.com/s/0zKSTktxgzo5uCUphqaWSQ 介绍抽象命令的解码和生成. 1. accessRegisterCommandReg accessRe ...
 - Rocket - debug - TLDebugModuleInner - Abstract Command State Machine
		
https://mp.weixin.qq.com/s/RcXI8uEHvZHGCvX3DoVR4Q 简单介绍TLDebugModuleInner中处理抽象命令时的状态机. 1. CtrlState 定 ...
 - Rocket - debug - TLDebugModuleInner - ROM Generation
		
https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg 简单介绍Variable ROM Generation. 1. jalAbstract jalAbs ...
 - Rocket - debug - TLDebugModuleInner - Abstract Data
		
https://mp.weixin.qq.com/s/DOLkEi-_qQt6lWOhJ2hxVQ 简单介绍TLDebugModuleInner中抽象数据寄存器的实现. 1. abstractData ...
 
随机推荐
- D. Equalize the Remainders  set的使用+思维
			
D. Equalize the Remainders set的学习::https://blog.csdn.net/byn12345/article/details/79523516 注意set的end ...
 - Java 经典面试题:聊一聊 JUC 下的 LinkedBlockingQueue
			
本文聊一下 JUC 下的 LinkedBlockingQueue 队列,先说说 LinkedBlockingQueue 队列的特点,然后再从源码的角度聊一聊 LinkedBlockingQueue 的 ...
 - jQuery的相关尺寸获取 - 学习笔记
			
获取元素相对于文档的偏移量 获取当前元素相对于父级元素的偏移量 获取文档滚动距离 获取元素的宽度和高度 设置元素的宽度和高度 获取可视区域的宽度和高度 获取文档的宽度和高度 获取元素相对于文档的偏移量 ...
 - VA01销售订单批导问题解决
			
1业务场景 事务代码:VA01创建销售订单,VA02修改销售订单 可以通过BAPI_SALESORDER_CREATEFROMDAT2批量创建 可以通过BAPI_SALESORDER_CHANGE批量 ...
 - 使用 Visual Studio Code 搭建 C/C++ 开发和调试环境
			
文章目录 1. 安装 C/C++ 插件 2. 安装 MinGW-w64 并配置好环境变量 3. 测试环境变量是否配置正确 4. 创建和设置 C 语言开发工作区 5. 编写你的第一个 C 语言程序 6. ...
 - HTTP Strict Transport Security (通常简称为HSTS)
			
HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源, 禁止HTTP方式. Freebuf百科:什么是Str ...
 - C# 数据操作系列 - 6 EF Core 配置映射关系
			
0. 前言 在<C# 数据操作系列 - 5. EF Core 入门>篇中,我们简单的通过两个类演示了一下EF增删改查等功能.细心的小伙伴可能看了生成的DDL SQL 语句,在里面发现了些端 ...
 - pytest——pycharm中右击运行(run)没有问题,在terminal中运行pytest报错:E  ModuleNotFoundError: No module named
			
参考了这个解决办法:https://blog.csdn.net/qq_36829091/article/details/82180866 我的是Windows,linux的和Windows的解决办法有 ...
 - 【Python】【第二节】【时间与日期处理模块】
			
转载至https://blog.csdn.net/p9bl5bxp/article/details/54945920 Python中提供了多个用于对日期和时间进行操作的内置模块:time模块.date ...
 - 读懂操作系统(x64)之堆栈帧(过程调用)
			
前言 上一节内容我们对在32位操作系统下堆栈帧进行了详细的分析,本节我们继续来看看在64位操作系统下对于过程调用在处理机制上是否会有所不同呢? 堆栈帧 我们给出如下示例代码方便对照汇编代码看,和上一节 ...