39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
# riscv-formal-nmigen
|
|
|
|
A port of [riscv-formal](https://github.com/SymbioticEDA/riscv-formal) to nMigen
|
|
|
|
## Breakdown
|
|
|
|
| Directory | Description |
|
|
| --- | --- |
|
|
| `shell.nix` | [nix-shell](https://nixos.wiki/wiki/Development_environment_with_nix-shell) configuration file |
|
|
| `rvfi` | RISC-V Formal Verification Framework (nMigen port) |
|
|
| `rvfi/insns` | Supported RISC-V instructions and ISAs |
|
|
| `rvfi/checks` | Checks for RISC-V compliant cores |
|
|
| `rvfi/cores` | Cores currently tested against this port of riscv-formal |
|
|
| `rvfi/cores/minerva` | Tests for the 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:
|
|
|
|
```bash
|
|
$ nix-shell
|
|
```
|
|
|
|
This should run the tests (cache, multiplier, divider) provided by Minerva itself and give you an environment with all the dependencies required for this project. Then, to run the main verification tasks for Minerva provided in this repo:
|
|
|
|
```bash
|
|
$ python -m rvfi.cores.minerva.verify
|
|
```
|
|
|
|
This should run in an order of a few minutes.
|
|
|
|
## 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.
|
|
|
|
## License
|
|
|
|
See [LICENSE](./LICENSE)
|