2016-11-07 58 views
4

我正在寻找一个简单的howto转换Verilog中的简单Chisel3模块。有没有一个简单的例子来说明如何从Chisel3模块生成verilog?

我把凿子的官方网页上给出的GCD源代码。

import chisel3._ 

    class GCD extends Module { 
    val io = IO(new Bundle { 
    val a = Input(UInt.width(32)) 
    val b = Input(UInt.width(32)) 
    val e = Input(Bool()) 
    val z = Output(UInt.width(32)) 
    val v = Output(Bool()) 
    }) 
    val x = Reg(UInt.width(32)) 
    val y = Reg(UInt.width(32)) 
    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和类实例化在Verilog中进行转换。

回答

9

感谢您对凿子的兴趣!我们一般鼓励人们使用我们的凿子模板回购作为凿子3项目的起点:https://github.com/ucb-bar/chisel-template

如果你想做最可靠的事情。创建这个build.sbt并把它放到你的项目的根目录下。

scalaVersion := "2.11.12" 

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

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

把上面的GCD源代码GCD.scala并添加以下文件:

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

然后,您可以生成的Verilog运行:sbt "runMain GCDDriver"。默认输出目录是当前目录>

你可以看到的命令行选项可通过运行sbt "runMain GCDDriver --help"例如--target-dir让你修改的目标目录

+0

感谢jkoenig。是的,我看过模板回购,但我想要一个快速示例来了解Verilog是如何生成的。 – FabienM

+0

我试着用相同的代码来生成一个verilog代码,但是我得到了'java.lang.ClassNotFoundException' – Mahdi

+0

你能提供更多的错误信息吗?它说什么级别的无法找到? – jkoenig

相关问题