Illegal instruction generator for CV32E40Pv2 #2492
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 withmaster
, 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 test
illegal_fp_instr_test
used 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.