Update code from upstream repository https://github.com/google/riscv- dv to revision 68e3bcac7293ac79067f0d8196bb973bd7c889cf * [pmp] Remove restriction on using NAPOT when granularity = 0 (Marno van der Maas) * [pmp] Add PMP entries for data in case of MML or MMWP (Marno van der Maas) * [pmp] Add already_configured flag to skip address in PMP routine (Marno van der Maas) * [pmp] Fix constraint and CSR write test in MML mode (Marno van der Maas) * [pmp] Use random address instead of offset for full random test (Marno van der Maas) * [pmp] Allow specifying address zero in `+pmp_region_%0d` (Marno van der Maas) * [pmp] Randomizing entry for instructions for PMP randomization (Marno van der Maas) * [lint] Remove trailing whitespace (Marno van der Maas) * Tweak CSR constraints for more even read/write distribution (Greg Chadwick) * [lint] Replace tabs with spaces (Marno van der Maas) * [pmp] No PMP exception handler when no PMP support (Greg Chadwick) * Expand CSR instruction constraint functionality (Greg Chadwick) * Refactor CSR instruction into their own class (Greg Chadwick) Signed-off-by: Marno van der Maas <mvdmaas+git@lowrisc.org> |
||
---|---|---|
.. | ||
riscv | ||
README.md |
About eUVM
eUVM is an opensource implementation of IEEE UVM-1800.2-2020 standard in the D Programming Language.
About the RISCV-DV eUVM port
The RISCV-DV eUVM port is a line-by-line translation of the RISCV-DV SystemVerilog implementation. Except for functional coverage (a work in progress), all other RISCV-DV features have been implemented in eUVM port.
Downloading and Installing eUVM
If you want to build/use the eUVM port, you need an eUVM installation. Please follow the instructions on https://github.com/coverify/euvm/releases to install and setup eUVM.
Building eUVM port of RISCV-DV
A makefile to build and run the eUVM port is available in the euvm/build folder. To build the code, use the following commands (assuming bash shell):
cd euvm/build
make -j $(nproc)
Makefile builds RISCV-DV for RV64IMC architecture by default. If you want to build for an alternate architecture, you need to pass that to make command as TARGET parameter:
cd euvm/build
make clean
make -j $(nproc) TARGET=RV64IMCB
Remember to make clean before switching to a new target.
Generating RISCV-DV tests
cd euvm/build
make run
You can change the number of instructions to be generated by passsing INSTRCOUNT parameter to the make command:
make run INSTRCOUNT=1000000