Fab*_*enM 8 scala verilog sbt chisel
我正在寻找一个简单的howto来转换Verilog中的简单Chisel3模块.
我在凿子的官方网页上给出了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
}
Run Code Online (Sandbox Code Playgroud)
我找不到如何编写build.sbt和类实例化以在Verilog中转换它.
Jac*_*nig 13
感谢您对Chisel的兴趣!我们通常鼓励人们使用我们的凿子模板回购作为Chisel3项目的起点:https: //github.com/ucb-bar/chisel-template
如果你想做最准确的事情.创建此build.sbt并将其放在项目的根目录中.
scalaVersion := "2.12.10"
resolvers ++= Seq(
Resolver.sonatypeRepo("snapshots"),
Resolver.sonatypeRepo("releases")
)
libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.2.+"
Run Code Online (Sandbox Code Playgroud)
将上面的GCD源代码放在GCD.scala中,并将以下内容添加到文件中:
object GCDDriver extends App {
chisel3.Driver.execute(args, () => new GCD)
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过运行:生成Verilog sbt "runMain GCDDriver".默认输出目录是当前目录>
您可以通过运行sbt "runMain GCDDriver --help"查看可用的命令行选项.例如,--target-dir您可以更改目标目录