activator(sbt)を使ったシンプルなSynthesijer.Scalaの始め方について紹介します.EclipseでScalaプラグインを使って開発する場合には,Synthesijer.Scalaを使ってみる(Eclipse編)も参照してください.
その前に
SynthesijerはJavaプログラム”を”同様な振る舞いをするVHDL/Verilog HDLに変換しますが,Synthesijer.ScalaはScala”で”RTLモジュール(最終的にはVHDLあるいはVerilog HDLで出力)を組み立てるツールです.クロックレベルでの制御,同時並行処理を記述できます.
準備
ScalaとJava 8を利用できる環境が必要です.Windows/MacOSX/Linuxなど主要なOSで実行できます.どのプラットフォームでもactivator(sbt)を使ってシンプルに利用を開始できます.
Activatorのインストール
Activator(sbt)はScalaプロジェクトのビルド/管理ツールです.Activator/Downloadからzipファイルをダウンロードできます.Synthesijer.Scalaを使うだけであればmini-packageでも十分です.Zipファイルをダウンロードしたら展開し,そのフォルダにパスを通してください.WindowsであればDOSプロンプトあるいはPowerShellで,MacOSX/LinuxなどのUnix系OSの場合にはターミナルで,activatorコマンドが実行できればOKです.
Activatorプロジェクトディレクトリの作成
activatorを起動できるようになったら作業用のプロジェクトディレクトリを作成してください.たとえば,次のようにコマンドを実行します.
activator new synthesijer-scala-test
プロジェクトのタイプは4) minimal-scalaを選択します.synthesijer-scala-testディレクトリが作成され,その下にプロジェクトが作成されますの移動しましょう.
cd synthesijer-scala-test
Synthesijer.Scala関連ファイルの設置
activatorでSynthesijer.Scala関連ライブラリが使えるように用意しましょう.プロジェクト直下にlibという名前のディレクトリを作成し,SynthesijerのWebサイトからダウンロードしたsynthesijer_yyyymmdd.jarを配置すればOKです.Windowsならcopyコマンド,Unix系ならcpですね.
mkdir lib
copy ダウンロードフォルダ\synthesijer_yyyymmdd.jar lib
使ってみる
準備ができたら使ってみましょう.まずはインタプリタで感じを味わってみることにします.
activator console
でREPLを起動することができます.”scala>”がREPLのプロンプトです.
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_65).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import synthesijer.scala._
import synthesijer.scala._
scala> val m = new Module("fefe", "clk", "reset")
m: synthesijer.scala.Module = synthesijer.scala.Module@45429ae0
scala> m.genVHDL()
scala>
これで,Synthesijer.ScalaのRTLの設計単位であるモジュールの定義ができるようになりました.モジュールのgenVHDLやgenVerilog()メソッドを呼び出すとVHDLやVerilog HDLのコードが生成できます.
この例では,hogeという名前のモジュールを定義したhoge.vhdというファイルが生成されます.
あとは,モジュールのインスタンスを束縛したmに対して,入出力ポートやレジスタ/ワイヤ,式を追加していくことで所望の回路を設計することができます.
ちなみにREPLの終了はCtrl-Dです.
実際には
実際の開発では,ファイルに保存しておいてコンパイル実行するのがよいでしょう.activatorで作成したプロジェクトの場合,src\main\scalaディレクトリの下に置いたScalaコードは自動的に実行の対象にすることができます.
activator compile
activator run
でコンパイル,実行できます.
次は
次は,簡単なモジュール設計の事例を紹介します.Synthesijer.Scalaのサンプルや,このブログでもこれまでにサンプルを掲載していますので,合わせて参考にしてもらえたらと思います.
ピンバック: sbtでSynthesijer.Scala開発を始める | わさらぼ