参数化配置

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 中, 你可以设定环境变量 COREBOARD 指定生成的处理器使用哪一种预设配置集, 默认为顺序核+仿真环境.

配置集测试情况

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

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

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

results matching ""

    No results matching ""