寻找一个好点开始为rocketchip生成器定制Chisel源

时间:2016-07-29 05:31:32

标签: scala riscv chisel

我安装了riscv工具链,并使用https://github.com/ucb-bar/rocket-chip主分支中的rocketchip生成器源生成了默认配置的verilog源。

我希望了解凿子来源,这样我就可以尝试对Chisel源进行修改,而且我不确定如何开始使用它。 例如,在src / main / scala / TestConfigs.scala文件中 - 第87行具有以下代码 -

    class WithPrefetches extends Config(
      (pname, site, here) => pname match {
        case "COMPARATOR_PREFETCHES" => true
        case _ => throw new CDEMatchError
      })

我很好奇为什么允许使用COMPARATOR_PREFETCHES作为案例,我正在试图找出“允许”的内容以及我可以在哪里看到这些“定义”。

赞赏正确的方向。

1 个答案:

答案 0 :(得分:0)

开始的地方是src/main/scala/Configs.scala(TestConfigs.scala用于生成测试结构,而不是实际的处理器)。有很多例子说明如何生成各种风格的Rocket。举一个具体的例子,假设您想要修改默认核心以删除FPU并增加DCache关联性。你可以写:

class MyBetterCore extends Config (
    topDefinitions = { (pname,site,here) => pname match {
      case UseFPU => false
      case _ => throw new CDEMatchError
    }},
  knobValues = {
    case "L1D_WAYS" => 8
    case _ => throw new CDEMatchError
  }
)

class MyBetterConfig extends Config(new MyBetterCore ++ new BaseConfig)

然后,您可以通过设置CONFIG命令行变量来构建和模拟此核心:

make CONFIG=MyBetterConfig

所有可安全修改的参数都位于Configs.scala