📙
NutShell
  • README
  • 介绍
    • NutShell (果壳) 处理器核
    • 快速上手教程
  • 流水线设计细节
    • 取指级
    • 译码级
    • 发射级
    • 执行级
    • 写回级
  • 功能部件设计细节
    • 访存单元
    • CSR单元
    • 分支预测单元
    • Cache
    • TLB
  • 系统设计
    • 访存系统
    • 外设系统
    • 总线
  • 其他
    • 配套生态
    • 参数化配置
    • 调试指南
由 GitBook 提供支持
在本页
  1. 其他

参数化配置

上一页配套生态下一页调试指南

最后更新于4年前

NutShell 支持参数化配置, 目前经过验证的核心配置集有小核、顺序核、乱序核, 运行环境配置集有仿真, FPGA (支持 pynq 和 axu3cg), 相关配置集已经预设在代码中.

其中, 顺序核是本文档主要针对介绍的, 小核以顺序核为基础进行裁剪;而乱序核部分则是王华强同学的毕业设计内容, 现已融入 NutShell 配置框架中.

在 src/main/scala/top/Settings.scala 中给出了目前支持可配置的各个参数, 截取默认的配置如下所示:

object DefaultSettings {
  def apply() = Map(
    "MemMapBase" -> 0x0000000000000000L,
    "MemMapRegionBits" -> 0,
    "MMIOBase" -> 0x0000000040000000L,
    "MMIOSize" -> 0x0000000040000000L,
    "ResetVector" -> 0x80000000L,
    "NrExtIntr" -> 1,

    "HasL2cache" -> true,
    "HasPrefetch" -> true,
    "EnableMultiIssue" -> false,
    "EnableSuperScalarExec" -> false,
    "EnableOutOfOrderExec" -> false,
    "HasDTLB" -> true,
    "HasITLB" -> true,
    "HasDcache" -> true,
    "HasIcache" -> true,
    "MmodeOnly" -> false,
    "IsRV32" -> false,

    "EnableILA" -> true,
    "EnableDebug" -> false,
    "EnableRVC" -> true,
    "EnableCoh" -> true,
    "SDIMem" -> false
  )
}

在工程的 Makefile 中, 你可以设定环境变量 CORE 和 BOARD 指定生成的处理器使用哪一种预设配置集, 默认为顺序核+仿真环境.

配置集测试情况

顺序核:可运行 AM 应用, Linux Kernel, Debian 等

乱序核:可运行 AM 应用, Linux Kernel 等

小核(32位):可运行 AM 应用等