码迷,mamicode.com
首页 > 其他好文 > 详细

Rocket - tile - Core

时间:2020-07-09 22:49:22      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:error   deb   转换   模块   span   conf   get   一个   blank   

https://mp.weixin.qq.com/s/-PlVHWPPTCG5mMz_jEAd6g

 

简单介绍Core的实现。

 

技术图片

 

1. XLen

 

XLen定义了总线宽度:

技术图片

 

其值在BaseSubsystemConfig中定义为64:

技术图片

 

2. CoreParams

 

CoreParams定义了核心的一系列参数:

技术图片

这里不再逐个介绍。

 

3. HasCoreParameters

 

HasCoreParameters继承自HasTileParameters,从tileParams中取出核心参数,提供了一系列针对核心参数的转换方法以方便使用:

技术图片

这里不再逐个介绍。

 

相较于core, tile是一个抽象层次更高的概念,core是一个tile。

core除了包含tile的参数之外,还有core的具体参数。

 

4. CoreModule

 

CoreModule定义了一个包含了核心参数的模块,也就是核心模块:

技术图片

 

这是一个抽象模块,其抽象成员,也就是IO接口没有定义:

技术图片

 

5. CoreBundle

 

CoreBundle是一个包含核心参数的Bundle:

技术图片

 

CoreBundle虽然是抽象类,却并没有抽象成员。标记为抽象的意义在于不能单独实例化进行使用,而只能对其继承扩展而后才可使用。

 

6. CoreInterrupts

 

定义核心的中断:

技术图片

其中:

a. buserror是总线错误单元(BusErrorUnit)报告的中断;

b. TileInterrupts基本上包含了核心的全部中断:

技术图片

 

7. HasCoreIO

 

HasCoreIO定义了核心的IO接口:

技术图片

其中:

a. 定义一个匿名类:继承自CoreBundle,引入了HasExternallyDrivenTileConstants;

b. 就地实例化该匿名类new {...};

c. 匿名类中定义了核心的基本接口,如中断、指令、数据、浮点运算单元、扩展指令、跟踪调试等等;

 

Rocket - tile - Core

标签:error   deb   转换   模块   span   conf   get   一个   blank   

原文地址:https://www.cnblogs.com/wjcdx/p/13276275.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!