riscv-formal-nmigen/README.md

48 lines
1.8 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
## Dependencies
- [nMigen](https://github.com/m-labs/nmigen)
2020-08-19 14:56:26 +08:00
Note that:
1. Even though this project includes a copy of nMigen, it is highly recommended to remove the copy and install the latest version of nMigen on your system for building this repo
1. The nMigen package that comes with the [Nix](https://nixos.org/features.html) package manager may not contain the latest changes and therefore may not work with this repo
1. If you do choose to keep the copy of nMigen provided in this repo anyway, you may need to separately install its dependencies for the build to work:
- [setuptools](https://pypi.org/project/setuptools/)
- [pyvcd](https://pypi.org/project/pyvcd/)
2020-08-17 16:46:15 +08:00
- [Yosys](https://github.com/YosysHQ/yosys)
- [SymbiYosys](https://github.com/YosysHQ/SymbiYosys)
2020-07-21 16:13:52 +08:00
## Breakdown
| Directory | Description |
| --- | --- |
2020-08-19 14:58:00 +08:00
| `nmigen` | [nMigen](https://github.com/m-labs/nmigen) |
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 |
2020-07-21 16:13:52 +08:00
## Build
2020-08-17 16:46:15 +08:00
### Minerva
`cd` to the root directory of this project and do:
```python
$ python -m rvfi.cores.minerva.verify
```
2020-07-21 16:13:52 +08:00
2020-08-19 14:56:26 +08:00
You may see some warning messages about unused `Elaboratable`s and deprecated use of `Simulation` which can be safely ignored.
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)