LoginSignup
0
1

More than 1 year has passed since last update.

Apple Silicon に Chipyard 環境を構築する

Last updated at Posted at 2022-05-16

Apple Silicon の性能が良いので、 Chipyard の開発で使えないか? の調査です。今の所Verilogの生成までは問題ないようですが、その先はFPGAにしろ、ASICSにしろX86 のLinux環境が無難な模様。手元のマシンでChiselのコーディング、X86なクラウドを使うスタイルならアリかもしれない。

結論

調査環境

  • マシン: Mac Studio, M1 MAX, 8 +2 CPUs, 64GB
  • OS: Monterey (12.3.1)
  • Brew: 3.4.11
  • JRE: OpenJDF 17.0.2
  • SBT: 1.6.2

セットアップ

JVM, SBT はいくつか方法がありますが sdkman を使う場合は

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version

sdk install java $(sdk list java | grep -o "8\.[0-9]*\.[0-9]*\.hs-adpt" | head -1)
java -version

sdk install sbt

あと、Brew

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ eval "$(/opt/homebrew/bin/brew shellenv)"

$HOME/.zprofile

$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ eval "$(/opt/homebrew/bin/brew shellenv)

あと、コマンドラインツールを最新にしておく

$ softwareupdate --all --install --force

chipyardは(調査時点で最新の)リリース V1.6.2 をつかう。(ちなみにmainだとinit-submodulesがなんかおかしい)

$ git clone https://github.com/ucb-bar/chipyard.git chipyard-1.6.2
$ cd chipyard-1.6.2
$ git checkout 1.6.2
$ ./scripts/init-submodules-no-riscv-tools.sh

Toolchain のBuildは案の定トラブったり、時間がかかるので Brew で導入が無難。

$ brew tap riscv-software-src/riscv
$ brew install riscv-tools
$ brew test riscv-tools

./env.sh はこんな感じ

export CHIPYARD_TOOLCHAIN_SOURCED=1
export RISCV=/opt/homebrew/
export PATH=${RISCV}/bin:${PATH}
export LD_LIBRARY_PATH=${RISCV}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

/opt/homebrew/bin/riscv64-unknown-elf-gcc

source ./env.sh

verilator で Simulation

brew install verilator
$ cd sims/verilator
$ make

$ ./simulator-chipyard-RocketConfig $RISCV/riscv64-unknown-elf/share/riscv-tests/isa/rv64ui-p-simple
<SNIP>
zsh: segmentation fault  ./simulator-chipyard-RocketConfig

FPGA Verilog 生成

Vivadoが相変わらず OSX をサポートしないので、Verilog RTL の生成まで

$ ./scripts/init-fpga.sh
$ cd fpga
$ make SUB_PROJECT=arty verilog

ASIC Verilog 生成

init-vlsi.shのエラーになるModuleをコメントアウトする。

$ ./scripts/init-vlsi.sh
$ cd vlsi
$ make verilog

SRAM周りでコケる。多分、何か足りない。

Toolchain の Build (トラブル中)

Buildに必要なToolをインストール(環境によって追加で必要なものには違いがあると思いいます)

$ brew install coreutils

$ brew install make
$ PATH="/opt/homebrew/opt/make/libexec/gnubin:$PATH"

$ brew install gawk
$ brew install autoconf
$ brew install gmp
$ brew install mpc

$ brew install zlib1g
Error: No formulae found in taps.
brew install zlib

brew install dtc

  • greadlink: command not found
    • brew install coreutils
  • obsolete make version; need GNU make 4.x or later
    • brew install make
    • PATH="/opt/homebrew/opt/make/libexec/gnubin:$PATH"
  • configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
    • /opt/homebrew/Cellar/gmp/6.2.1_1/include/gmp.h
$ export MAKE=make
$ export MAKEFLAGS=-j8

$ time ./scripts/build-toolchains.sh --ignore-qemu riscv-tools
<SNIP>
./scripts/build-toolchains.sh riscv-tools  372.96s user 162.83s system 129% cpu 6:55.23 total
  • 早いのはBuildできてないModuleがある模様
  • 生成された env.sh で readlinkをgreadlinkの変更
  • gmpなどのパスが、、、

Brewで入れたToolchainで問題がないならやめたほうがいい。

参照

EOF

0
1
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
1