我安装了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作为案例,我正在试图找出“允许”的内容以及我可以在哪里看到这些“定义”。
赞赏正确的方向。
答案 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
。