如何从凿子代码生成FIRRTL文件?我根据github wiki安装了sbt,firrtl和verilator。并为简单加法器创建了一个凿子代码。我想生成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)
}
答案 0 :(得分:3)
我问了一个类似的问题here。 解决方案可能是使用提供的完整模板here,或者您只需执行此操作:
在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)源将位于生成的目录中。