riscv-formal-nmigen/README.md

38 lines
1.3 KiB
Markdown
Raw Normal View History

2020-07-14 10:30:37 +08:00
# riscv-formal-nmigen
2020-07-14 10:42:06 +08:00
A port of [riscv-formal](https://github.com/SymbioticEDA/riscv-formal) to nMigen
2020-07-21 16:13:52 +08:00
## Breakdown
| Directory | Description |
| --- | --- |
| `shell.nix` | [nix-shell](https://nixos.wiki/wiki/Development_environment_with_nix-shell) configuration file |
2020-08-17 12:05:39 +08:00
| `rvfi` | RISC-V Formal Verification Framework (nMigen port) |
| `rvfi/insns` | Supported RISC-V instructions and ISAs |
2020-08-19 14:56:26 +08:00
| `rvfi/cores` | Example cores for verification with riscv-formal-nmigen |
2020-08-17 12:05:39 +08:00
| `rvfi/cores/minerva` | The [Minerva](https://github.com/lambdaconcept/minerva) core |
## Running the Verification
First make sure you have [Nix](https://nixos.org/download.html) installed. Then `cd` to the root directory of this repo and run:
2020-07-21 16:13:52 +08:00
```bash
$ nix-shell
```
2020-08-17 16:46:15 +08:00
This should give you an environment with all the dependencies required for this project. Then, to run the verification:
2020-08-17 16:46:15 +08:00
```bash
2020-08-17 16:46:15 +08:00
$ python -m rvfi.cores.minerva.verify
```
2020-07-21 16:13:52 +08:00
You may see some warnings on unused `Elaboratable`s and deprecated use of `Simulator` emitted which can be safely ignored.
2020-08-19 14:56:26 +08:00
2020-08-05 12:54:46 +08:00
## Scope
Support for the RV32I base ISA and RV32M extension are planned and well underway. Support for other ISAs in the original riscv-formal such as RV32C and their 64-bit counterparts may also be added in the future as time permits.
2020-07-21 16:13:52 +08:00
## License
See [LICENSE](./LICENSE)