0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Chisel環境をつくる

Posted at

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版でも無料で使用できるそうです。変更する可能性があるので最新の情報はサイトで確認してください。

 またサイトにいくと次のような画面になると思います。

スクリーンショット 2024-03-17 060846.png

有料のUltimate版を白で目立たせて無料のCommunity版が黒で分かりにくいです。

 そしてInteliJがダウンロードできたらInteliJを起動しScalaのプラグインを入れます。起動後すぐにpluginからScalaを選択できますが、後でもInteliJの右上の歯車マークからpluginsを選択し、Scalaを選択すればインストールできます。
no1.png

no2.png

VScodeの場合

 Extension(拡張機能)でScala(metals)をインストールします。

chisel-templateの導入

 まずchisel-templateのgithubにいき、緑色のCodeからhttps://github.com/chipsalliance/chisel-template.gitをコピーします。

スクリーンショット 2024-03-17 062927.png

 次にコマンドプロンプトで以下のコマンドを実行することで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を選択します。
no3.png
 ※VScodeの場合も同様にターミナルでUbuntu(WSL)を開きます。

  
 ここまで完了したら次のコマンドでテストができます

sbt test

エラーが発生しなければテスト完了です

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?