概要
FPGAに搭載する論理のシミュレーションは、その動作の正しさを検証するために重要な工程です。
今回は高速なVerilogシミュレータであるVerilatorの最新安定版をビルドします。
作業
Verilatorのマニュアルに従って、Verilatorを自前でビルドします。 今回は "Git Quick Install" をもとに作業します。
初めに依存パッケージをインストールします。
一覧にあるものをすべて書くとzlibc
がないといわれます。
そこで、zlibc
を除外してコマンドを実行します。
sudo apt install -y git help2man perl python3 make autoconf g++ flex bison ccache libgoogle-perftools-dev numactl perl-doc libfl2 libfl-dev zlib1g zlib1g-dev
# zlibcを除外しない場合 $ sudo apt install git help2man perl python3 make autoconf g++ flex bison ccache libgoogle-perftools-dev numactl perl-doc libfl2 libfl-dev zlibc zlib1g zlib1g-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package zlibc
今回は安定版を用いるので、以下のコマンドたちを実行します。
特に、stable
ブランチにチェックアウトすることが重要です。
ここでお好みのバージョンを指定することも可能です (git tag
等で確認) 。
git clone https://github.com/verilator/verilator # VerilatorをGitHubからクローン。 unset VERILATOR_ROOT # Verilatorのパス?を意味する環境変数をアンセット。 cd verilator git pull # 最新のコミットまで落としていることを確認。 git checkout stable # 最新の安定コミット (安定ブランチ) にチェックアウト。
もちろん、以下のようにシャロークローンしてもよいと思います。
git clone https://github.com/verilator/verilator -b stable --depth=1
続いて、以下のコマンドたちを実行し、Verilatorをビルドしインストールします。
並列数はお好みで指定してください。
ただし、-j
だけ書くと並列処理可能な数だけスレッドが生成されるようで、メモリ不足などの原因になりますから、何らかの数を指定することをお勧めします。
autoconf # ./configureスクリプトを生成。 ./configure # 設定済みMakefileを生成。 make -j$(($(nproc)/2+1)) # 全CPUスレッド数の半分+1で並列コンパイル。 sudo make install
インストールが完了したら、以下のコマンドでバージョンを確認します。 筆者の環境ではv5.026がインストールされました。
$ verilator --version Verilator 5.026 2024-06-15 rev UNKNOWN.REV
まとめ
本記事では、高速なVerilogシミュレータであるVerilatorの最新安定版を自前でビルドしました。
今後はこのVerilatorを使ってLiteXのSoCをシミュレートしたいと思います。