OoOのプロセッサ
これらのソフトウェアをインストールしておく必要があります。
NixについてはNixの公式サイトやZero to Nixを参考にしてみてください。
次のコマンドでこのプロジェクトのキャッシュを有効にしておくと多くのパッケージのビルドを省略できます。
$ nix shell "nixpkgs#cachix" -c cachix use b4smt
開発
- intellij IDEA
- java
- sbt
- LLVM circt (System Verilog生成用のfirtoolコマンドラインツール)
テスト
- Verilator
- Icarus Verilog
次のコマンドで./processor
にSystem Verilogのソースが出力されます。
$ make processor
次のコマンドで./programs
にいくつかテスト用のプログラムとriscv-testsのコンパイル結果が出力されます。
$ make programs
テスト用プログラムはnix
を使って管理しています。
いくつかの時間のかかるテストを除いたテストは次のように行います。
$ sbt "testOnly * -- -l org.scalatest.tags.Slow"
すべてのテストを実行するには次のコマンドを実行します。(とても時間がかかります)
$ sbt test
細かく実行するテストを決めたい場合はIntellij IDEAでプロジェクトを開き、各テストを実行してください。
コンパイル中に依存関係周りで問題が発生していれば、Nixの依存関係のキャッシュに問題がある場合があります。 その場合は次のコマンドを実行してください。
$ nix run ".#update-hash"
このコマンドでnixの依存関係をを管理するHashを更新できます。