A 32-bit RISC-V soft processor
python setup.py install python cli.py generate > minerva.v
To use Minerva in its minimal configuration, you need to wire the following ports to
The microarchitecture of Minerva is largely inspired by the LatticeMico32 processor.
Minerva is pipelined on 6 stages:
The L1 data cache is coupled to a write buffer. Store transactions are in this case done to the write buffer instead of the data bus. This enables stores to proceed in one clock cycle if the buffer isn't full, without having to wait for the bus transaction to complete. Store transactions are then completed in the background as the write buffer gets emptied to the data bus.
The following parameters can be used to configure the Minerva core.
| Parameter | Default value | Description | | ----------------- | -------------- | -------------------------------------------------- | |
0x00000000| Reset vector address | |
False| Enable the instruction cache | |
1| Number of ways in the instruction cache | |
128| Number of lines in the instruction cache | |
4| Number of words in a line of the instruction cache | |
0x00000000| Base of the instruction cache address space | |
0x80000000| Limit of the instruction cache address space | |
False| Enable the data cache | |
1| Number of ways in the data cache | |
128| Number of lines in the data cache | |
4| Number of words in a line of the data cache | |
0x00000000| Base of the data cache address space | |
0x80000000| Limit of the data cache address space | |
False| Enable RV32M support | |
False| Enable the Debug Module | |
False| Enable the Trigger Module | |
8| Number of triggers | |
False| Enable the riscv-formal interface |
A riscv-formal testbench for Minerva is available here.
In no particular order:
If you are interested in sponsoring new features or improvements, get in touch at contact [at] lambdaconcept.com .
Minerva is released under the permissive two-clause BSD license. See LICENSE file for full copyright and license information.