A functionally accurate RISC-V instruction set simulator developed in Rust.
- 目标: 用 Rust 编写一个 RISC-V 的功能精确 ISS,这个 ISS 要能够运行 FreeRTOS。
- 采用不严格的 TDD 来开发,开发过程中单元测试和集成测试要同步进行。
- 片上外设参考 SiFive FE310-G002。
在项目根目录下执行 make 可以执行测试程序。
make run-cargo-test做完准备工作后,执行cargo test.make use-riscv-tests在模拟器上运行 riscv-tests 的rv32ui-p-*的程序.make use-md5-test在模拟器上运行计算 md5 校验和的程序.make use-riscv-arch-tests在模拟器上运行 riscv-arch-test 中的测试程序.make run-freertos-tests在模拟器上运行 FreeRTOS。makeormake all-tests执行所有测试.
- cargo test 中的所有测试都 pass。
- riscv tests 中
rv32ui-p-*的程序运行结果都 pass。 - md5 测试程序成功运行。
- riscv arch test 中的所有测试都 pass(ISA: RV32IZicsr)。
- 可以成功运行 FreeRTOS。
riscv-tests中的rv32ui-p-fence_i和rv32ui-p-ma_data使用了 tohost,目前还不清楚 tohost 的具体细节,暂时跳过这两个 case。
- Spike, a RISC-V ISA Simulator
- riscv-rust : RISC-V processor emulator written in Rust+WASM