Chisel使用にあたっての事前準備紹介です。内容は以前英語で書いたものを加筆修正し、日本語訳にしたものです。
この記事の対象者
Chiselに興味があるけど使ったことがなく、とりあえず触ってみたい方。Scalaスクリプト言語で高位記述でハードウェア記述を体験してみたい方。
Chiselって何?
ChiselはHDL(Hardware Description Language; ハードウェア記述言語)を生成するスクリプト言語です。Java系のScalaスクリプト言語を基にしていて、文法規則も基本それに従いますが、Chiselではハードウェア記述のためのプリミティブなクラスや文法が追加されています。Scalaコーディングライクにハードウェア設計ができる特徴を持ちます。現在のChiselのバージョンはChisel3で、リリースバージョンは3.5が最新です。Scalaはオブジェクト指向プログラミング言語ですので、それに従ってChiselではハードウェアをクラスとして定義してそれを基にHDLを生成します。
事前準備
予め必要なものは以下のとおりです;
- Java Runtime Environment (or JDK, Scala実行のための大元の言語)
- SBT (Simple Built Tool, Chisel(Scala)実行のための環境)
- インターネットワーク環境
一般的なインストール手順
初めに事前準備のソフトについて説明します。
- Java Runtime Environment (JRE)
おそらくJREはPCにデフォルトでインストールされていると思いますが、念のために次のコマンドをターミナルで試してみてください。
java -version
バージョン情報とともに実行されない場合、インストールされていません。Macであれば**homebrewを使用してインストールできます。Ubuntuの場合、aptを使用してインストールできます。次にインストールするSBTはオープンソースJavaなのでOracle社のものではなくOpenJDKの方が必要です。
https://openjdk.java.net/
-
SBT
インストール方法は次のWebサイトに記載されています。
https://github.com/freechipsproject/chisel3/wiki/Installation-Preparation
SBTはインストールの際にOpenJDKを呼ぶのでデフォルトでOracle社のものがインストールされている場合、別途先に説明したJREをインストールしてください。
インストール
注意: インストール前にChisel利用にあたり自分がどちらの利用者か確認してください。どちらの利用者かで適切なインストール方法が異なります。
- 一般利用者:chisel記述したプログラムからHDLを生成する目的で使用したい。Chiselは一般的なもので良いのでリリースされているchiselを使用すれば十分です。ローカルにインストールしなくても利用できます。その代わりネットワーク環境が必要です。
- 開発利用者:最新のChiselバージョンが必要(例えばrcバージョンを使いたいなど)だったり、ローカル環境で開発環境を帰結したい方、Chiselソース高度に触れてカスタマイズしたい方。おそらくプリリリースされているchiselを使用したいのではないでしょうか。
一般利用者向けのインストール方法
ChiselはSBTで実行する際にbuild.sbtという実行するバージョン指定などが記述された環境ファイルであり、これを参照します。このファイルにはリリースバージョンの一般的な定義が記載されており、SBT実行時にMavenサーバにアクセスしますのでネットワーク環境は必須です。build.sbtファイルを更新すれば常に最新の環境でChiselを使用できます。予めテンプレートのbuild.sbtが用意されていますので定期的にこのテンプレートを更新すれば良いだけです。
テンプレートはここにあります:
コピー&ペーストをプロジェクトディレクトリで行えば良いだけです。これでChiselの環境は整いました。コーディングしてコンパイルしてみてください!
開発利用者向けのインストール方法
ローカルコンピュータにインストールしたい場合、Chiselなどのツールをコンパイルしてインストールする必要があります。インストールまでの手順は次のとおりです。
sbt compile
コンパイル後に実行可能なファイルにします。
sbt assembly
そしてローカル環境で使用できるようにします。
sbt publishLocal
- Coursier
Coursierを使ってインストールすることもできます。FIRRTLを例に説明します。次のコマンドでcurlを使用してCoursierをローカル環境にインストールします。
curl -fLo cs https://git.io/coursier-cli-linux && chmod +x cs && ./cs
このコマンドで実行可能なCoursierがファイル名"cs"として生成されます(もちろんCourssierが事前にインストールされていればこのステップをスキップできます)。この後にFIRRTLをインストールします。
./cs bootstrap edu.berkeley.cs::firrtl:1.3.2 --main-class firrtl.stage.FirrtlMain -o firrtl-1.3.2
Coursierに登録されているバージョンに限定されることに留意してください。上記コマンドではfirrtl:1.3.2
でバージョンを指定して、-o
オプションでインストールするFIRRTLファイル名を指定しています。
テスト環境
-
安定バージョン
Stable Recent Version: 3.5.0
https://github.com/freechipsproject/chisel3/releases/tag/v3.4.0 -
iotesters
iotestersは旧テスト用ツールです。
https://github.com/freechipsproject/chisel-testers/tree/master/src/main/scala/chisel3/iotesters -
tester2 (chisel-testers)
https://github.com/freechipsproject/chisel-testers