Rocket - system - ExampleRocketSystem

Posted wjcdx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rocket - system - ExampleRocketSystem相关的知识,希望对你有一定的参考价值。

https://mp.weixin.qq.com/s/U4GAEogQMwo0PIxeU6n8jg

 

简单介绍ExampleRocketSystem的实现。

 

技术图片

 

1. ExampleRocketSystem

 

ExampleRocketSystem是一个顶层模块的样例,包含一个Rocket子系统,一系列的外部设备和接口:

技术图片

 

1) 继承自RocketSubsystem

 

技术图片

 

2) 包含一系列外部设备和接口

 

技术图片

配合ExampleRocketSystemModuleImp中引入的特征(trait)进行实现:

技术图片

 

3) lazy val module是ExampleRocketSystemModuleImp类的实例

 

技术图片

 

4) 进行必要的内部节点连接

 

A. 连接cbus和sbus

 

技术图片

这里不需要跨时钟域。

 

B. 连接pbus和cbus

 

技术图片

这里的跨域类型为同步跨域,外设的时钟可能较慢。

 

C. 连接fbus和sbus

 

技术图片

 

D. 连接sbus和mbus

 

技术图片

其中:

a. 根据配置,生成存储总线的一致性管理模块;

b. 系统总线作为上游连接到一致性管理模块的输入;

c. 一致性管理模块再作为上游节点连接到内存总线;

d. 如果内存包括多个bank,则包含一个BankBinder,以对上游提供统一的视图;

 

5) 结构示意图

 

技术图片

引用自:https://carrv.github.io/2017/papers/cook-diplomacy-carrv2017.pdf

 

2. ExampleRocketSystemModuleImp

 

ExampleRocketSystemModuleImp与ExampleRocketSystem配对使用:

技术图片

ExampleRocketSystemModuleImp实现ExampleRocketSystem的具体逻辑。不过这个类的层次比较高,具体的实现逻辑都已经在其组成模块中已经实现了,所以这里的定义中不包含类体,而只是继承RocketSubsystemModuleImp和引入一系列外设和接口的实现。

 

3. 附录

 

以上是关于Rocket - system - ExampleRocketSystem的主要内容,如果未能解决你的问题,请参考以下文章

Rocket - debug - Example: Write Memory

Rocket - system - ExampleRocketSystem

Rocket - system - Configs

Rocket - system - TestHarness

Rocket - config - DefaultConfig

rocket-api