2016-11-07 60 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

相關問題