特権命令付きのRISC-Vプロセッサです。 rs32i + zicar + machine modeの特権命令セットを実装しています。 インオーダプロセッサなのでfence命令は実装していません。
filename.vを追加し、その中で.hexファイルまでのパスをdefineしてください.
# example
`define FILENAME "/path/to/hoge.hex"テスト名をtb_hoge.cppとして、tb_hoge.vを追加してください。
その後、BASEPATHを設定し、fetch.vのcase文にテスト名を追加してください。
tb_hoge.cppの場合条件はHOGEとしてください。
- ecall
- ebreak
- mret
- wfi
- csrrw
- csrrs
- csrrc
- csrrwi
- csrrsi
- csrrci
もし、cファイルをコンパイルする場合は、以下のコマンドを実行してください。
cd src
vim hoge.c
make必要なツールは以下の通りです。
- riscv32-unknown-linux-gnu-gcc
- riscv32-unknown-linux-gnu-objcopy
- riscv32-unknown-linux-gnu-objdump
- riscv32-unknown-linux-gnu-ld
- hexdump
- python3
ここからダウンロードできます。 https://github.com/riscv-collab/riscv-gnu-toolchain
詳しくはsrc/Makefileを参照してください。
- パイプライン化
- supervisor modeの実装