chipsalliance / Cores-VeeR-EL2

VeeR EL2 Core
https://chipsalliance.github.io/Cores-VeeR-EL2/html/
Apache License 2.0
243 stars 73 forks source link

Use RISC-V DV for core verification #79

Closed mkurc-ant closed 1 year ago

mkurc-ant commented 1 year ago

This PR introduces the use of RISC-V DV framework for testing VeeR-EL2 core.

The flow uses a custom Makefile located in tools/riscv-dv. The makefile invokes the run.py script which generates a random instruction stream for a given test, compiles it and runs in a ISS. Currently spike and veer-iss are supported by the makefile. The other part of the makefile is responsible for building verilated testbench for VeeR and running the same compiled code. The last part is execution log comparison using an utility from RISC-V DV.

Since RISC-V DV uses its own format of execution log (CSV) it was necessary to write a log converter for VeeR to adapt execution logs produced by testbench.

The PR also includes a GH action CI flow which builds all the dependencies (verilator, spike, and veer-iss) and runs the tests. The tests are organized in a matrix which tests all combinations of ISS and test. Currently there is only one test and two ISSes.