基於Intellj IDEA+Scala插件模式開發
因為Chisel內嵌於Scala,所以Chisel3的項目實際上是Scala的項目,構建使用sbt。
下面使用官方網站上面的例子Adder,創建第一個項目,並轉換成Verilog語言的實現。
一. 創建一個基於Scala的項目
選擇項目的存儲位置,JDK, sbt和Scala的版本。版本之所以重要,是因為版本之間的差異很大,並且會引入Bug,所以不建議使用最新的Scala版本(2.12版本的會出現Bug,該Bug與Scala有關,與Chisel無關)。
點擊Finish之后,創建出一個Scala項目。
二. 添加chisel3的庫
打開build.sbt文件,添加chisel3的庫引用,添加之后如下:
name := "Adder"
version := "0.1"
scalaVersion := "2.11.12"
libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.1.2"
修改build.sbt之后,會自動同步下載chisel3相關的庫。
三. 添加代碼文件
四. 在Adder.scala中添加main函數
object Main {
def main(args: Array[String]): Unit = {
println("Generating the Adder hardware")
chisel3.Driver.execute(Array("--target-dir", "generated"), () => new Adder(8))
// chisel3.Driver.execute(Array("--help"), null)
}
}
點擊執行按鈕,即可生成Verilog代碼,存放在generated目錄下。打開注釋的--help,可以查看有哪些參數可以使用。
Linux命令行下類似,需要手動創建build.sbt文件,然后執行sbt命令構建。
PS. Scala語言過於復雜,編譯比較慢。所需要的庫基本都在國外,中國人需要耐心等待。