[英]Looking for a good point to start customizing the Chisel source for rocketchip generator
我已經安裝了riscv工具鏈,並使用主分支中的rocketchip生成器源生成了默認配置的verilog源代碼,地址為https://github.com/ucb-bar/rocket-chip 。
我想了解鑿子來源,所以我可以嘗試對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被允許作為一個案例,我正在試圖弄清楚什么是“允許”以及我在哪里可以看到這些“定義”。
推進正確的方向是值得贊賞的。
開始的地方是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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.