Rocket - debug - TLDebugModuleInnerAsync
https://mp.weixin.qq.com/s/Xf4VFTHIDFh1NHmfwlTX3w
简单介绍TLDebugModuleInnerAsync的实现。
1. dmInner
dmInner是TLDebugModuleInnerAsync内部的一个子模块。其中又包含多个子节点。
1) dmiNode
dmiNode是一个寄存器节点:
2) tlNode
tlNode也是一个寄存器节点:
3) sb2tlOpt
sb2tlOpt是一个把系统总线转换为tilelink总线的转换模块:
4) customNode
customNode是一个自定义节点:
5) io
6) 结构图
总体结构图如下:
2. dmiXing
dmiXing是一个TLAsyncCrossingSink节点,用于实现跨域逻辑:
3. dmiNode
dmiNode是dmiXing.node的别名:
4. tlNode
tlNode是dmInner.tlNode的别名。
5. 连接跨域逻辑
6. lazy val module
lazy val module用于实现TLDebugModuleInnerAsync的内部逻辑。
1) io
模块定义了单独的IO:
结构示意图如下:
2) dmactive_synced
使用io.dmactive和io.psd生成的同步之后的dmactive信号:
PS.这里有机会再细究。
3) gated_clock
根据dmactive_synced生成的一个门控时钟:
如果配置参数中clockGate为假,则不使用门控。
PS.这里有机会再细究。
4) 指定时钟
使用withClock指定使用gated_clock为时钟,生成一段连接逻辑:
PS.这里有机会再细究。
7. 总体结构
TLDebugModuleInnerAsync的总体结构示意图(可以单独打开图片查看)如下:
最新文章
- IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)
- python学习笔记(python简史)
- python-open文件处理
- Python全栈--9 __import__ 反射和面向对象基础 self 封装 继承(多继承的顺序) 多态
- python split()函数使用拆分字符串 将字符串转化为列表
- Android SDK 更新镜像服务器
- BZOJ2494 Triangles and Quadrangle
- hdu 5206 Four Inages Strategy
- BloomFilter–大规模数据处理利器(转)
- linux inode已满解决方法
- c# 读取ACCESS 数据库
- js插入节点appendChild和insertBefore
- 老板让我们去陪睡!-It高管的焦虑
- iOS正确使用const,static,extern
- Linux常用命令行
- Leetcode 125.验证回文串 By Python
- ffmpeg在asp.net 视频转换
- php http请求封装
- Hibernate的Api以及三种查询方式
- Graying the black box: Understanding DQNs
热门文章
- 自己封装函数,实现数组的内置方法indexOf的功能
- 搬东西 dp
- 谈谈Spring bean的生命周期(一)
- Java 多线程启动为什么调用 start() 方法而不是 run() 方法?
- 5.7.17版本mysqlbinlog实时拉取的二进制日志不完整的原因分析
- IDEA打包JavaWeb项目
- JS理论--正则表达式RegExp的创建、元字符、优先度、方法(test(),exec(),match(),replace())
- python --error整理(不定时更新)
- java mybatis中大于号小于号的转义
- 两个有序数组 A1 A2 的合并