Ищете хороший момент, чтобы начать настройку источника Chisel для генератора ракетных чипов

Я установил набор инструментов riscv и сгенерировал источник verilog с конфигурациями по умолчанию, используя источник генератора rocketchip в главной ветке по адресу https://github.com/ucb-bar/rocket-chip.

Я хочу понять источник 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 разрешен как случай, и я пытаюсь выяснить, что «разрешено» и где я могу увидеть эти «определения».

Приветствуется толчок в правильном направлении.


person ae1209    schedule 29.07.2016    source источник


Ответы (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.

person Ben    schedule 04.08.2016