Как я могу сгенерировать FIRRTL из кода долота?

Как я могу сгенерировать файл FIRRTL из кода долота? Я установил sbt, firrtl и verilator согласно вики github. И создал код зубила для простого сумматора. Я хочу создать FIRRTL и скрыть его в Verilog? Моя проблема в том, как получить файл firrtl из кода долота. Спасибо.

Исходный файл: MyQueueTest / src / main / scala / example / MyQueueDriver.scala

package example

import chisel3._
import chisel3.util._

class MyQueue extends Module {
  val io = IO(new Bundle {
    val a = Flipped(Decoupled(UInt(32.W)))
    val b = Flipped(Decoupled(UInt(32.W)))
    val z = Decoupled(UInt(32.W))
  })  

  val qa = Queue(io.a)
  val qb = Queue(io.b)

  qa.nodeq()
  qb.nodeq()

  when (qa.valid && qb.valid && io.z.ready) {
    io.z.enq(qa.deq() + qb.deq())
  }
}

object MyQueueDriver extends App {
  chisel3.Driver.execute(args, () => new MyQueue)
}

person Aditha Rajakaruna    schedule 29.11.2016    source источник


Ответы (1)


Я задал аналогичный вопрос здесь. Решением может быть использование полного шаблона, предоставленного здесь, или вы можете просто сделать это:

Добавьте эти строки в конец ваших исходников scala:

object YourModuleDriver extends App {
  chisel3.Driver.execute(args, () => new YourModule)
}

Заменив "YourModule" именем вашего модуля.

И добавьте файл build.sbt в тот же каталог ваших источников со следующими строками:

scalaVersion := "2.11.8"

resolvers ++= Seq(
  Resolver.sonatypeRepo("snapshots"),
  Resolver.sonatypeRepo("releases")
)

libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.0-SNAPSHOT"

Чтобы сгенерировать FIRRTL и Verilog, вам просто нужно сделать:

$ sbt "run-main YourModuleDriver"

И источники FIRRTL (yourmodule.fir) / Verilog (yourmodule.v) будут находиться в сгенерированном каталоге.

person FabienM    schedule 29.11.2016
comment
Большое спасибо, мне удалось увидеть файл Verilog. Когда у меня package <some-package-name> в исходном коде, $ sbt "run-main YourModuleDriver" не работал. Это дало исключение Class Not Found. - person Aditha Rajakaruna; 03.12.2016
comment
Как называется ваш модуль? Вы можете размещать источники? - person FabienM; 03.12.2016
comment
Прошу прощения за долгую задержку ответа. Я добавил в вопрос исходный код. Когда я удалил package в исходном коде и переместил исходный код в каталог MyQueueTest / src / main / scala /, он работает как шарм. - person Aditha Rajakaruna; 29.12.2016
comment
Пожалуйста, не забудьте отметить, что вопрос решен. - person FabienM; 02.01.2017