【问题标题】:Looking for a good point to start customizing the Chisel source for rocketchip generator寻找一个开始为 Rocketchip 生成器定制 Chisel 源的好点
【发布时间】:2016-07-29 05:31:31
【问题描述】:

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

我希望了解 chisel 源,以便尝试对 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 被允许作为一个案例,我试图弄清楚什么是“允许的”以及在哪里可以看到这些“定义”。

感谢您朝着正确的方向前进。

【问题讨论】:

    标签: scala riscv chisel


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 2023-03-15
      • 1970-01-01
      • 2012-12-08
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多