Chiselの環境構築をUbuntu上で行う
Ubuntu(Debian系のLinux)でChiselの環境構築を行う方法です。
(Windows環境でWSLを通してUbuntuを使用しても可能です)
Chiselの動作には
- java(jdk)
- sbt
- verilator
をインストールする必要があります。
そしてテキストエディターとして
- InteliJ や VScode
をインストールする必要があります。
Java(jdk)のインストール
次のコマンドでインストールします。
sudo apt install default-jdk
sbtのインストール
SDKMANのインストール
SDKMANはsbtのインストールに使用します。
SDKMANがすでにインストールされている場合は飛ばしてください。sdk version
のコマンドでバージョンが画面に出力されるかで確認できます。
インストールされていない場合は以下のコマンドを順に実行してください。
apt-get update
apt-get install -y unzip zip curl vim
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version
注意
sbtのインストールには次のコマンドを使用するように説明されることがありますが、url関係に問題が起こることがあるので個人的に非推奨です
・echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
・curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
・sudo apt update
・sudo apt install sbt
sbtをSDKMANでインストールする
次のコマンドでインストールします。
sdk install sbt
Verilatorのインストール
verilatorに必要なパッケージをインストールする
verilatorの実行には必要なパッケージがあるのでそれらを次のコマンドでインストールします。
sudo apt install gcc g++ make perl flex bison texi2html
verilatorのインストール
gitがインストールされていない場合には次のコマンドを使用してください。
sudo apt-get install git
verilatorをインストールするために次のコマンドを順に実行してください。
sudo apt-get install git help2man perl python3 make autoconf g++ flex bison ccache
sudo apt-get install libgoogle-perftools-dev numactl perl-doc
sudo apt-get install libfl2
sudo apt-get install libfl-dev
sudo apt-get install zlibc zlib1g zlib1g-dev
git clone https://github.com/verilator/verilator
unsetenv VERILATOR_ROOT
unset VERILATOR_ROOT
cd verilator
git pull
git tag
git checkout stable
autoconf
./configure
make -j `nproc`
sudo make install
注意
verilatorのインストールに次のコマンドが説明されていることがあります
apt-get install verilator
しかしこれではsbtを実行したとき、エラーになる可能性があるので非推奨です。
この方法でverilatorを入れてchisel-templateをsbt testしたときに次のエラーが発生しました(1行のみを抜粋、実際はもっと長い)。
chisel - Gcd should calculate proper greatest common denominator *** FAILED ***
....
...
..
原因はverilatorのバージョンにあります。apt-get install
の方法では最新のバージョンをインストールできる可能性が低いので、古いバージョンのエラーが発生してしまいます。git
の方法だと最新のバージョンが手に入り、インストールのオプションも設定できます。公式ドキュメントに詳細が記載されています。
(僕はこのエラーに長時間悩まされました。ネットで検索してもヒットしなかったので、いろいろと試してやっと解決しました。verilatorのインストールはapt-get installではなくgitでやるべきだということがこの記事を書く動機であり、一番言いたかったことでもあります。)
InteliJのインストール
InteliJの公式サイトからダウンロードできます。IntelliJ IDEA Ultimate版とIntelliJ IDEA Community版の2種類がありますが、無料なのでCommunity版をおすすめします。価格についてのページで学生や教職員などはUltimate版でも無料で使用できるそうです。変更する可能性があるので最新の情報はサイトで確認してください。
またサイトにいくと次のような画面になると思います。
有料のUltimate版を白で目立たせて無料のCommunity版が黒で分かりにくいです。
そしてInteliJがダウンロードできたらInteliJを起動しScalaのプラグインを入れます。起動後すぐにpluginからScalaを選択できますが、後でもInteliJの右上の歯車マークからpluginsを選択し、Scalaを選択すればインストールできます。
VScodeの場合
Extension(拡張機能)でScala(metals)をインストールします。
chisel-templateの導入
まずchisel-templateのgithubにいき、緑色のCode
からhttps://github.com/chipsalliance/chisel-template.git
をコピーします。
次にコマンドプロンプトで以下のコマンドを実行することでCドライブ直下にchisel-templateを配置できます。
git clone https://github.com/chipsalliance/chisel-template.git
chisel-templateをsbt testする
InteliJでchisel-templateを開きます(このときScalaのプラグインが入っていないと.scalaファイルが隠された状態になります。ファイルの数が少なくても慌てずにプラグインを入れましょう)。README.mdに書いてあるようにbuild.sbtの"%ORGANIZATION%"
や"%NAME%"
は適当な文字列"..."
に置き換えます。
[WSLの場合]
InteliJの左下のアイコンからTerminalを選択します。そしてTerminalの下矢印のアイコンを選択してUbuntuを選択します。
※VScodeの場合も同様にターミナルでUbuntu(WSL)を開きます。
ここまで完了したら次のコマンドでテストができます
sbt test
エラーが発生しなければテスト完了です