Rocket - debug - DMI
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为响应的数据;
b. resp为响应的状态:
4. DMIIO
定义顶层DMI接口:
其中:请求接口中的地址宽度,从全局配置中获取;
5. ClockedDMIIO
增加了时钟和复位信号输出的DMI接口:
6. DMIToTL
定义DMI接口向TileLink接口转换的逻辑:
1) diplomacy node
这是一个只有输出边没有输入边的节点(TLClientNode):
2) lazy module
lazy module实现具体的转换逻辑:
A. diplomacy node只有输出边,没有输入边:
B. 定义模块IO:
C. 生成通过channel a发起请求所需的fromSource/toAddr/size:
D. 生成读写请求逻辑:
E. 生成NOP逻辑:
其中:mask=0代表不写入:
F. 根据操作类型,选择通过channel a发出的请求:
G. 适配请求的ready/valid:
H. 适配响应的ready/valid:
I. 返回响应状态和数据:
J. 不支持缓存:
Rocket - debug - DMI的更多相关文章
- Rocket - debug - Example: DMI
https://mp.weixin.qq.com/s/7suuJ7m2BKCpsHk1K2FzJQ 介绍riscv-debug的使用实例:如何使用DMI. 1. dm Debug Module实现了调 ...
- Rocket - debug - TLDebugModuleInner - DMI Register Control and Status
https://mp.weixin.qq.com/s/tI41wu0xaIQ5PRq6F82tNw 简单介绍TLDebugModuleInner中生成DMI控制和状态寄存器使用到的状态. 1. abs ...
- Rocket - debug - Periphery
https://mp.weixin.qq.com/s/uGxn-Xec0LkwdaSsCtQBvw 简单介绍Periphery的实现. 1. ExportDebugDMI/ExportDebugJTA ...
- Rocket - debug - DebugTransport
https://mp.weixin.qq.com/s/EcsuTjb4hFF9Ncig9Gfhew 简单介绍DebugTransport的实现. 1. JtagDTMConfig 1) JtagDTM ...
- Rocket - debug - TLDebugModule
https://mp.weixin.qq.com/s/EhUb1z5oiIw6dJ-90ifDJA 简单介绍TLDebugModule中的实现. 1. device device是一个设备描述符,包含 ...
- Rocket - debug - TLDebugModuleInner - Hart Bus Access
https://mp.weixin.qq.com/s/deNMEyJ1idJDVoZwwo0A1A 简单介绍TLDebugModuleInner中核心总线访问(Hart Bus Access). 参考 ...
- Rocket - debug - TLDebugModuleOuterAsync
https://mp.weixin.qq.com/s/PSeMVZjSjEFHJgCYZzfa9Q 简单介绍TLDebugModuleOuterAsync的实现. 1. dmi2tl dmi2tl是T ...
- Rocket - debug - TLDebugModuleInner - ROM Generation
https://mp.weixin.qq.com/s/j_CgHU4PnY82NMwJzOqHYg 简单介绍Variable ROM Generation. 1. jalAbstract jalAbs ...
- Rocket - debug - TLDebugModuleInner - Program Buffer Access
https://mp.weixin.qq.com/s/EJVqw7JPjjaib68tENl5AQ 简单介绍TLDebugModuleInner中的Program Buffer Access. 1. ...
随机推荐
- P1750 出栈序列
这好像是普及难度的吧~ 感觉再次被小学生吊打了........ \(\color{Red}{----------------------=|(●'◡'●)|=我是手动的分割线------------- ...
- js上传文件过大导致上传失败原因以及解决办法
背景:项目需要用到上传视频功能,由于视频有知识产权,要求必须上传到自己的服务器上不允许用第三方视频网站接口上传,于是一开始开始用的是input type=file去上传,小的视频上传没有问题,上传将近 ...
- Collection接口【集合】和Iterator迭代器类
1.1集合的概述 前面基础学习并使用过集合ArrayList<E>,那么集合究竟是什么呢? 集合:集合是Java中提供的一种容器,可以用来存储多个数据. 那么意思就是说集合是容器,但是容器 ...
- 架构设计 | 分布式系统调度,Zookeeper集群化管理
本文源码:GitHub·点这里 || GitEE·点这里 一.框架简介 1.基础简介 Zookeeper基于观察者模式设计的组件,主要应用于分布式系统架构中的,统一命名服务.统一配置管理.统一集群管理 ...
- 【HBase】HBase与MapReduce的集成案例
目录 需求 步骤 一.创建maven工程,导入jar包 二.开发MapReduce程序 三.运行结果 HBase与MapReducer集成官方帮助文档:http://archive.cloudera. ...
- Ubuntu 配置/etc/fstab参数实现开机自动挂载硬盘
文章目录 前言 fstab 参数含义 实现步骤 1 查看硬盘信息,并找到需要进行挂载的硬盘 2 sudo mkfs.ext4 /dev/sdc 3 sudo mkdir /home/diska 4 查 ...
- .netcore 部署时遇到413 Request Entity Too Large 和 413Payload Too Large 的问题
.netcore3.1 遇到一个webapi 上传大文件问题 首先,在kestrel模式调试模式下上传 会报错413, 需要在三个地方添加 1.startup中 这里设置的2g最大值 2.在progr ...
- [hdu5203]计数水题
思路:把一个木棍分成3段,使之能够构成三角形的方案总数可以这样计算,枚举一条边,然后可以推公式算出当前方案数.对于已知一条边的情况,也用公式推出.用max和min并维护下,以减少情况数目. #prag ...
- 安装laravel环境之homestead(for mac)
1.先下载virtualbox + vagrant 2.执行命令 vagrant box add laravel/homestead 3.新建一个空文件夹,在里面下载代码.我是放在当前用户下的新建的W ...
- Linux --登录用户显示-bash-4.2#解决办法
登录linux系统过后,发现显示的是-bash-4.2# 而不是root@主机名 + 路径的显示方式,发生这种情况的原因是根目录下缺失几个配置文件,从默认配置中拷贝过来就可以解决了: 1 cp /et ...