是否有一个简单的示例说明如何从 Chisel3 模块生成 verilog?
Is there a simple example of how to generate verilog from Chisel3 module?
我正在寻找在 Verilog 中转换简单 Chisel3 模块的简单方法。
我取的是chisel官网给出的Gcd源码
import chisel3._
class GCD extends Module {
val io = IO(new Bundle {
val a = Input(UInt(32.W))
val b = Input(UInt(32.W))
val e = Input(Bool())
val z = Output(UInt(32.W))
val v = Output(Bool())
})
val x = Reg(UInt(32.W))
val y = Reg(UInt(32.W))
when (x > y) {
x := x -% y
}.otherwise {
y := y -% x
}
when (io.e) {
x := io.a
y := io.b
}
io.z := x
io.v := y === 0.U
}
我找不到如何编写 build.sbt 和 class 实例化以在 Verilog 中转换它。
感谢您对 Chisel 的关注!我们通常鼓励人们使用我们的 chisel-template repo 作为 Chisel3 项目的起点:https://github.com/ucb-bar/chisel-template
如果你想做最简单的事情。创建这个 build.sbt 并将其放在项目的根目录中。
scalaVersion := "2.13.8"
addCompilerPlugin("edu.berkeley.cs" % "chisel3-plugin" % "3.5.3" cross CrossVersion.full)
libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.5.3"
将上面的GCD源码放在GCD.scala中,在文件中添加如下内容:
import chisel3.stage.ChiselStage
object GCDDriver extends App {
(new ChiselStage).emitVerilog(new GCD, args)
}
然后您可以通过 运行: sbt "runMain GCDDriver"
生成 Verilog。默认输出目录为当前目录。
您可以通过 运行 查看可用的命令行选项 sbt "runMain GCDDriver --help"
例如 --target-dir
将让您更改目标目录
我正在寻找在 Verilog 中转换简单 Chisel3 模块的简单方法。
我取的是chisel官网给出的Gcd源码
import chisel3._
class GCD extends Module {
val io = IO(new Bundle {
val a = Input(UInt(32.W))
val b = Input(UInt(32.W))
val e = Input(Bool())
val z = Output(UInt(32.W))
val v = Output(Bool())
})
val x = Reg(UInt(32.W))
val y = Reg(UInt(32.W))
when (x > y) {
x := x -% y
}.otherwise {
y := y -% x
}
when (io.e) {
x := io.a
y := io.b
}
io.z := x
io.v := y === 0.U
}
我找不到如何编写 build.sbt 和 class 实例化以在 Verilog 中转换它。
感谢您对 Chisel 的关注!我们通常鼓励人们使用我们的 chisel-template repo 作为 Chisel3 项目的起点:https://github.com/ucb-bar/chisel-template
如果你想做最简单的事情。创建这个 build.sbt 并将其放在项目的根目录中。
scalaVersion := "2.13.8"
addCompilerPlugin("edu.berkeley.cs" % "chisel3-plugin" % "3.5.3" cross CrossVersion.full)
libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.5.3"
将上面的GCD源码放在GCD.scala中,在文件中添加如下内容:
import chisel3.stage.ChiselStage
object GCDDriver extends App {
(new ChiselStage).emitVerilog(new GCD, args)
}
然后您可以通过 运行: sbt "runMain GCDDriver"
生成 Verilog。默认输出目录为当前目录。
您可以通过 运行 查看可用的命令行选项 sbt "runMain GCDDriver --help"
例如 --target-dir
将让您更改目标目录