Chiselでのハードウェア記述入門編「Hello Chisel3.3 !」
はじめに
Chisel3.3が出てたので、自分の簡単なコードを。IDEとかの環境構築はまたの機会に。 詳しいことは公式かdiningyoさんのブログで確認した方が良いです。 www.tech-diningyo.info
scala.sbtの設定
まずはscala.sbtを記述。とりあえず自分はこんな感じにしてます。意味はそんなに分かってないです。
scala.sbt
name := "Chisel_project" //自分のプロジェクト名 version := "0.1" scalaVersion := "2.12.11" scalacOptions ++= Seq("-deprecation", "-feature", "-unchecked", "-language:reflectiveCalls", "-Xsource:2.11") resolvers ++= Seq( Resolver.sonatypeRepo("snapshots"), Resolver.sonatypeRepo("releases") ) libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "latest.release" libraryDependencies += "edu.berkeley.cs" %% "chiseltest" % "latest.release"
実行方法
src\main\scalaフォルダ直下に次のMain.scalaとHello.scalaを作成する
Main.scala
object Main extends App{ val verilogString = (new chisel3.stage.ChiselStage).emitVerilog(new Hello) // verilogコードを吐く println(verilogString) // verilog のprint ただの確認用 }
Hello.scala
import chisel3._ class Hello extends Module{ val io = IO(new Bundle() { // ここで入出力の宣言 ここでは宣言してないので暗黙のinput reset のみ }) }
Main.scalaを実行すると下のようにVerilogファイルHello.vが出力される。
Hello.v
module Hello( input clock, input reset ); initial begin end endmodule