Illegal instruction generator for CV32E40Pv2
Created by: XavierAubert
This is a modification I did to the script done by Greg Tumbush (see his script in commit d87679ae)
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_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.