ChipyardをインストールしてVerilatorを実行する

Last update: 2025/2/9


環境

Condaをインストールする

作って学ぶコンピュータアーキテクチャという本を読みながらRISC-Vの勉強をしているが、Chipyardのインストール方法が本の手順とは変わっていたためメモしておく。

インストールは以下の公式ドキュメントの手順を参照しながら進めていく。

https://github.com/conda-forge/miniforge/?tab=readme-ov-file#unix-like-platforms-macos-linux--wsl

https://chipyard.readthedocs.io/en/stable/Chipyard-Basics/Initial-Repo-Setup.html#default-requirements-installation

まずCondaが必要になるのでインストールする。

$ curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
$ bash Miniforge3-$(uname)-$(uname -m).sh

インストール時にいろいろ聞かれるが、とりあえずすべてYes&デフォルトで設定した。インストールしたら一回シェルを閉じてもう一度開く。

試しに以下を実行してみたところ、バージョンが表示されたのでインストールは完了。

conda --version
conda 24.11.3

Chipyardをインストールする

ドキュメントの手順に従って次のコマンドを順番に実行していく。

$ conda install -n base conda-libmamba-solver
$ conda config --set solver libmamba
$ conda install -n base conda-lock==1.4.0
$ conda activate base

これで事前準備はできたので、gitでChipyardをcloneして、Chipyardディレクトリの中でbuild_setup.shを実行する。

$ git clone https://github.com/ucb-bar/chipyard.git
$ cd chipyard
$ ./build-setup.sh riscv-tools

しかしかなり時間がかかった末に、以下のようなErrorが出てインストールできず。

FileNotFoundError: [Errno 2] No such file or directory: 'guestmount'

ERROR: Failed to build workload br-base.json
Log available at: /home/kd/tmp/chipyard/software/firemarshal/logs/br-base-build-2025-02-09--02-48-00-F8QZ42W0BZ2Q1T4R.log
ERROR: FAILURE: 1 builds failed
build-setup.sh: Build script failed with exit code 1 at step 9: Pre-compiling FireMarshal buildroot sources

Chipyardのissuesに記載があったが、どうやらguestmountコマンドが使える状態になってないとエラーになるらしい。

https://github.com/ucb-bar/chipyard/issues/2073

guestmountはlibguestfs-toolsパッケージに含まれているので、インストールする。

sudo apt-get install libguestfs-tools

インストール完了したら、再びChipyardディレクトリの中でbuild_setup.shを実行する。今度は無事にセットアップ完了した。

$ ./build-setup.sh riscv-tools
…
Setup complete!

インストール完了したら、再びChipyardディレクトリの中でbuild_setup.shを実行する。今度は無事にセットアップ完了した。

$ ./build-setup.sh riscv-tools
…
Setup complete!

セットアップ完了後、Chipyardディレクトリの中で以下を実行しておく。

$ conda env list
$ source ./env.sh

ちなみにこれを最初忘れていたので、以下のようなerrorが出た。

$ make CONFIG=RocketConfig
/home/kd/tmp/chipyard/common.mk:5: *** RISCV is unset. Did you source the Chipyard auto-generated env file (which activates the default conda environment)?.  Stop.

参考文献

Chipyard 1.8.1のインストール方法がかなり変わっていた - FPGA開発日記


Copyright (c) 2024 kd