First release of xpulp instructions generation in corev-dv
Created by: XavierAubert
This PR adds the ability to generate custom XPulp instructions using the corev-dv (riscv-dv) generator.
This PR is split in 7 commits.
The first commit 6578ccae contains all the files needed to extend the riscv-dv generator with custom XPulp instructions.
Sadly, I had to modify a Makefile shared with other projects to compile the riscv-dv generator with custom instructions. This modification is the second commit of the list f2522df7. In order to be as transparent for other projects as possible, the modification works as follow :
- a specific directory for custom files meant to extend riscv-dv is scanned. The custom directory is at this location :
$(CORE_V_VERIF)/$(CV_CORE_LC)/env/corev-dv/custom
. if nothing is detected in this directory (or if this directory doesn't exist), nothing is done. - After the clone_riscv-dv Make target is done and before compiling the generator, all the files in the custom directory are copied to the riscv-dv src. The copy overwrites pre-existing riscv-dv files, as some of them are only exemples on how to add custom extension and are therefore useless in our case.
By doing this, I made sure that it doesn't interfere too much with other cores and only needed files are updated on riscv-dv side to avoid as much as possible future conflicts with new versions.
For the third commit of the list 0a1c2864, I found that the current status of riscv-dv generator doesn't allow people to add custom category or custom format of instructions. So, I added small modifications to the main riscv-dv package and I will perform an Issue/PR for this since it can be beneficial for other poeple using the generator.
The other commits of the list are only small modifications to allow a simple test that generates all XPulp instructions except HWLoops and Branch_immediate, and a typo correction.