V-scale 開発環境の構築

V-scale を動かすのに最低限必要なもの。
V-scale 本体は、本家 UCB のが ここ にあって、僕が fork していじくっているのが ここ にあります。本家の物は最新バージョンの開発環境や tests では動きません。
開発環境は GNU Compiler Toolchain です。まあ、とにかくでかい。前回は普通に(RV64Gで?)コンパイルしたのですが、今回は RV32IM で作ります。RV64G で作っても gcc -m32 で elf32-littleriscv ができていたみたいですけどね。make してみると riscv32-unknown-elf-* になりました。まあ良いか。だめだ。tests が作れない。やっぱり RV64G で作っておく。
そして、以下のようなエラーが出ます。
./configure --prefix=/opt/riscv --with-arch=rv32im --with-abi=ilp32
sudo make
fatal error: zlib.h: そのようなファイルやディレクトリはありません
やりなおし
sudo apt-get install zlib1g-dev
sudo make
なんで続きやらずに1からやり直すんだろう…
つぎに ISA のテストに使う riscv-tests をとってきます。使うのは rv32mi, rv32ui, rv32um 辺りかな。アセンブラの引数チェックが厳しくなったのか、以下のファイルに修正が必要になりました。ってか、除算系は今まで意味のあるチェックが出来ていなかったっぽい。[追記 ゼロ除算の特殊処理が出来ていなくて商を間違うのですが、tests のバグで見つかっていませんでした。mul-div を高速版に差し替えるとともに修正しました。]
modified: isa/rv32um/div.S
modified: isa/rv32um/rem.S
modified: isa/rv32um/remu.S
modified: isa/rv64ui/sll.S
modified: isa/rv64ui/slli.S
modified: isa/rv64ui/srai.S
本家 V-scale のリポジトリには、いつの頃のか分からないけど、論理と対応した tests も入っています。マシンモードがすごく弱いけど、昔はこうだったのかな?僕のリポジトリにも比較的新しめのを入れてあります。どちらも、変換済みの物だけですけどね。[追記 僕のリポジトリには、インストール済みの tests から ihex を生成するための Makefile (かなり格好悪い記述だけど)を追加しておきました。]
ここから先はお好みで。
命令セットエミュレータはたくさん有るけど、一番最初に目に留まった spike を。それぞれが何なのかよくわかりませんが、次の3点セットです。 Frontend ServerISA Simulatorpk
ほかにも 新しいエミュレータ が出ているみたいなので、今度試してみたいと思っています。
さらに、いろいろとお手本になると思われるので、V-scale とは直接関係ないけど Rocket Chip Generator もあると良いと思います。でも、現状の WSL では Java に問題があるらしくって、chisel を動かすことができないみたいです。

[PR]
トラックバックURL : http://tom01h.exblog.jp/tb/27398260
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by tom01h | 2016-12-29 16:32 | PCとか | Trackback | Comments(0)