Rocket - debug - TLDebugModuleOuterAsync
https://mp.weixin.qq.com/s/PSeMVZjSjEFHJgCYZzfa9Q
简单介绍TLDebugModuleOuterAsync的实现。
1. dmi2tl
dmi2tl是TLDebugModuleOuterAsync中的一个子模块,用于把dmi接口转换为tilelink接口。
其结构图如下:
2. dmiXbar
dmiXbar是一个TLXbar模块,用于连接多个TileLink模块:
3. dmOuter
dmOuter也是一个子模块:
4. intnode
intnode是一个别名,dmOuter.intnode经过一个IntSyncCrossingSource生成的结构:
结构示意如下:
5. dmiInnerNode
dmiInnerNode是dmiXbar.node经过TLAsyncCrossingSource之后生成的结构:
结构示意如下:
6. 内部子节点
1) TLDebugModuleOuterAsync各个内部子节点如下:
2) 对内部部分节点进行了连接:
结构示意图如下:
可以看到io.dmi经过dmi2tl转换为tilelink接口,连接到dmiXbar节点。
a. 进而连接到dmOuter节点的dmiNode访问dmOuter中的寄存器;
b. 也经过TLAsyncCrossingSource节点跨域与inner节点连接;
7. lazy val module
lazy val module实现了TLDebugModuleOuterAsync的内部逻辑。
1) 这里声明了IO接口:
2) 又进行了一定的接口连接:
示意图如下(可以单独打开图片查看):
8. 总结
1) io.dmi
io.dmi用于实现DMI访问。通过DMI接口读写DMI地址空间的寄存器对调试模块进行控制。
在实现中,DMI地址空间被分为了outer和inner两个部分。outer部分对应的是dmiNode:TLRegisterNode;inner部分通过TLAsyncCrossingSource模块跨域进行访问。
2) io.ctrl
io.ctrl的定义如下:
其方向无论是在TLDebugModuleOuter中还是在TLDebugModuleOuterSync中都没有进行转向(flip)。所以这里就是:
a. debugUnavail从outerSync输出到outer
debugUnavail用于从外部控制调试模块是否可用,在outerSync内部并没有被使用。
b. ndreset从outer输出到outerSync
ndreset的值来自于DMCONTROL寄存器的ndmcontrol位:
其意义在于复位系统中除调试模块之外的其他部分:
ndreset最终用于控制系统其他模块复位:
c. dmactive从outer输出到outerSync;
dmactive的值来自于DMCONTROL寄存器的dmactive位:
用于复位调试模块:
3) io.innerCtrl
io.innerCtrl定义如下:
根据注释,用于从outer传递控制信息到inner。因为其定义中没有方向信息,所以整个结构全部信号值传递的方向是一致的:都是从outer到inner。
最新文章
- C#使用Quartz.NET详细讲解
- 面试复习(C++)之快速排序
- IIS 服务器下载apk文件报404错
- PHP中设置时区方法小结
- Create Dynamic Modal Dialog Form in AdminLTE Bootstrap template
- 最短路径算法——Dijkstra,Bellman-Ford,Floyd-Warshall,Johnson
- 关于 ";Context"; 模式(基于COM思想IUnknown思想)
- 【ASP.NET Web API教程】1 ASP.NET Web API入门
- Asp.net 视频摘要
- eclipse-ee修改字体大小和配置Tomcat服务器
- ## Python中的Package和Jupyter中import包问题
- python特征提取——pyAudioAnalysis工具包
- CentOS 6.3 64位下MySQL5.1.54源码安装配置详解
- The connection to the server localhost:8080 was refused - did you specify the right host or port?
- teamviewer quicksupport 插件(下载)
- 【PHP函数】PHP 去掉字符串中的转义符号
- easyui获取选中行上一行的数据
- [转帖]SSH 的 三种代理功能.
- iOS 解压Assets.car文件
- .NET 常用ORM之Gentle.Net
热门文章
- 036_python的大文件下载以及进度条展示
- 物流配送中心管理系统(SSM+MYSQL)
- STM32 基于 CubeMX配置GPIO点亮LED灯(超级详细+图文并茂)
- search(12)- elastic4s-聚合=桶+度量
- 设计模式之GOF23备忘录模式
- Two Operations Gym - 102263M 优先队列水题
- 前端:参数传错了,spring-boot:那错误信息我给你显示的友好点儿
- git仓促拉去提交输入密码读取钥匙串
- java ->;斗地主洗牌
- Winform GDI+绘图二:绘制旋转太极图