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