特権命令付きの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の実装