如何从凿子代码生成 FIRRTL?
How can I generate FIRRTL from chisel code?
如何从 chisel 代码生成 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)
}
我问了一个类似的问题。
解决方案可能是使用提供的完整模板 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) 源将在生成的目录中。
如何从 chisel 代码生成 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)
}
我问了一个类似的问题
在您的 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) 源将在生成的目录中。