首页 > 其他 > 详细

Rocket - debug - TLDebugModuleInnerAsync

时间:2020-04-06 01:19:40      阅读:77      评论:0      收藏:0      [点我收藏+]

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的总体结构示意图(可以单独打开图片查看)如下:

 

技术分享图片             

 

 

 

Rocket - debug - TLDebugModuleInnerAsync

原文:https://www.cnblogs.com/wjcdx/p/12639813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!