Skip to content

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 :

  1. 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.
  2. 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.

Merge request reports

Loading