Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Illegal instruction generator for CV32E40Pv2 #2492

Conversation

XavierAubert
Copy link

@XavierAubert XavierAubert commented Jul 3, 2024

This is a modification I did to the script done by Greg Tumbush (see his script in commit d87679a)

Unfortunately, this script was not working as-is for us using latest embecosm toolchain, so we had to update it to make it work (mainly, options given to the binaries, and some grepping that were not working anymore due to this)

As this file were not pushed on cv32e40p/dev branch and we were working on tit exclusively without merging back-and-forth with master, I named this file differently to avoid later merge conflicts.

Also, I took the opportunity to improve the script with a more directive approach for Xpulp and F instructions while keeping the great idea from the base script: I generate an exhaustive list of possibly illegal instruction with fixed operand values, and I give it to the compiler.

This script was used to generate the testillegal_fp_instr_testused for v2 verification. However, I did differently for the Xpulp-related test (custom_opcode_illegal_test) with a SV/UVM class with randomization, but it was wwaaaaayyy more complex than the base idea from Greg Tumbush, so we kept our base test as coverage analysis were already done and manual additions were made, but I added Xpulp illegal generation anyway to the script.

@pascalgouedo pascalgouedo merged commit 2a5ee14 into openhwgroup:cv32e40p/dev Jul 3, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants