Rocket

https://mp.weixin.qq.com/s/03mqAmLiaA1JwOePR5IDyQ

 

简单介绍Configs的实现。

 

 

1. BaseSubsystemConfig

 

BaseSubsystemConfig包含基本子系统的配置定义。

 

1) 核心参数

 

a. PgLevels:页表层次:

 

b. XLen:核心数据总线宽度:

 

c. MaxHartIdBits:根据核心的个数确定:

 

2) 连接参数

 

包括系统总线、控制总线、外设总线、存储总线、前端总线的基本配置参数:

 

3) (基本上)必备的设备参数

 

包含BootROM/Debug/CLINT/PLIC等模块的配置参数:

 

2. WithNBigCores

 

引入n个大核的配置:

其中:

a. RocketTilesKey用于查找和定义核心参数;

b. big为模板配置,然后根据复制n份作为n个核心的配置;

c. RocketTileParams定义单个核心的配置参数:

 

3. WithNSmallCores

 

引入n各小核的配置:

其中:

a. RocketTilesKey用于查找和定义核心参数;

b. small为模板配置,然后根据复制n份作为n个核心的配置;

c. 与大核相比,比较明显的差异是小核不支持VM;

 

4. With1TinyCore

 

引入一个超小核的配置:

因为大核、小核、超小核使用同样的RocketTilesKey,所以WithNBigCores/WithNSmallCores/With1TinyCore不能同时存在。

 

5. WithNBanks

 

用于修改L2 Memory的bank数量:

 

6. WithNTrackersPerBank

 

用于修改BroadcastKey中的nTrackers参数,进而影响生成的TLBroadcast节点:

 

7. WithL1ICacheSets

 

用于配置L1 instruction/data cache的参数:

 

8. WithL1DCacheSets

 

同上。

 

9. WithL1ICacheWays

 

同上。

 

10. WithL1DCacheWays

 

同上。

 

11. WithCacheBlockBytes

 

配置cache line的长度:

 

12. WithBufferlessBroadcastHub

 

用于配置TLBroadcast节点的bufferless参数:

 

13. WithIncoherentTiles

 

配置缓存不一致的tiles:

 

14. WithRV32

 

使用32位的核:

 

15. WithNonblockingL1

 

修改核心的nMSHRs参数:

 

16. WithNBreakpoints

 

修改核心支持的断点数量:

 

17. WithRoccExample

 

定义生成ROCC样例的方法:

 

18. WithDefaultBtb

 

修改BTB参数为默认值:

 

19. WithFastMulDiv

 

支持快速乘除运算:

 

20. WithoutMulDiv

 

不支持乘除运算:

 

21. WithoutFPU

 

修改fpu参数:

 

22. WithFPUWithoutDivSqrt

 

同上。

 

23. WithBootROMFile

 

修改bootrom镜像文件的名称:

 

24. WithSynchronousRocketTiles

 

修改rocket crossing type:

 

25. WithAsynchronousRocketTiles

 

同上。

 

26. WithRationalRocketTiles

 

同上。

 

27. WithEdgeDataBits

 

修改数据位宽:

 

28. WithJtagDTM

 

使用JTAG调试接口:

 

29. WithDebugSBA

 

包含一个系统总线访问模块:

 

30. WithNBitPeripheryBus

 

定义外设总线宽度:

 

31. WithoutTLMonitors

 

禁用Monitor:

 

32. WithNExtTopInterrupts

 

支持n个外部中断:

 

33. WithNMemoryChannels

 

定义支持的内存通道数:

 

34. WithExtMemSize

 

定义外部存储的大小。

 

35. WithDTS

 

定义DTS相关参数:

 

36. WithTimebase

 

定义时间基准:

 

37. WithDefaultMemPort

 

定义内存端口的参数:

 

38. WithNoMemPort

 

同上。

 

39. WithDefaultMMIOPort

 

定义MMIO端口参数:

 

40. WithNoMMIOPort

 

同上。

 

41. WithDefaultSlavePort

 

定义SlavePort的参数:

 

42. WithNoSlavePort

 

同上。

 

43. WithScratchpadsOnly

 

定义scrach参数:

             

 

 

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