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

Implement PyUVM/cocotb/Verilator verification environment #83

Closed mczyz-antmicro closed 1 year ago

mczyz-antmicro commented 1 year ago

In this change, the verification environment is extended by a PyUVM test with CI. The PR supersedes #81

└─ verification ├── test_pyuvm ├── test_debug

In the directory test_pyuvm you find a basic PyUVM structure to simulate to test the interrupt pins. The UVM Agent connects to the wrapper design/el2_veer_wrapper.sv and provides randomized stimulus to external interrupt sources pins: nmi_int, timer_int,soft_int,extintsrc_req. To execute the test, a makefile verification/Makefile is prepared. Please find its description and usage in the verification/README.md file.

In the directory test_debug a mock pytest, which always passes, is created for debugging purposes. If you set flag MOCK_VERIFICATION_RUN in verifcation.yml, only the quick test will be executed, which will significantly speed up CI runs. The job will run as a matrix and generate mock html/md reports for later stages.