M1 MacOS上でChipyardの環境を構築したくて、いろいろ調査しているとすでに試行されているのを発見した。
Chipyardのバージョンは1.6.2を使用した。
M1 Mac上ではOpenJDKは別にダウンロードしなければならない。
curl -L https://cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64.tar.gz | tar xz
export PATH=${HOME}/work/java/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64/bin:${PATH} export LD_LIBRARY_PATH=${HOME}/work/java/zulu11.56.19-ca-jdk11.0.15-macosx_aarch64/lib:${LD_LIBRARY_PATH}
ツールチェインのビルドは例によって失敗するので、既にインストール済みのものを使用する。
$ which riscv64-unknown-elf-gcc /opt/homebrew//bin/riscv64-unknown-elf-gcc
これで一応、ChiselからVerilogの生成まで行って、バイナリを作るところまで確認した。
$ cd sims/verilator $ make CONFIG=RocketConfig debug
あれ、そこから先はSegmentation Faultで落ちた。
$ ./simulator-chipyard-RocketConfig-debug -v rv64ui-p-add.vcd $RISCV/riscv64-unknown-elf/share/riscv-tests/isa/rv64ui-p-add This emulator compiled with JTAG Remote Bitbang client. To enable, use +jtag_rbb_enable=1. Listening on port 58492 [UART] UART0 is here (stdin/stdout). zsh: segmentation fault ./simulator-chipyard-RocketConfig-debug -v rv64ui-p-add.vcd
上記のリンクでも書いてあったが、まだまだM1 Macはハードウェア屋さんにとっては使い物にならないな...