Skip to content

nsearchf/Open-RRV-ISS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open-RRV-ISS

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-testsrv32ui-p-* 的程序.
  • make use-md5-test 在模拟器上运行计算 md5 校验和的程序.
  • make use-riscv-arch-tests 在模拟器上运行 riscv-arch-test 中的测试程序.
  • make run-freertos-tests 在模拟器上运行 FreeRTOS。
  • make or make all-tests 执行所有测试.

当前状态

  • cargo test 中的所有测试都 pass。
  • riscv tests 中 rv32ui-p-* 的程序运行结果都 pass。
  • md5 测试程序成功运行。
  • riscv arch test 中的所有测试都 pass(ISA: RV32IZicsr)。
  • 可以成功运行 FreeRTOS。

已知问题

  • riscv-tests 中的 rv32ui-p-fence_irv32ui-p-ma_data 使用了 tohost,目前还不清楚 tohost 的具体细节,暂时跳过这两个 case。

RRV-ISS 文档

参考的开源指令集模拟器

About

A functionally accurate RISC-V instruction set simulator developed in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors