a163236のブログ

Chiselマスターになになりたい初心者

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