Add script to generate custom configuration
Created by: Gchauvon
Hello,
I have written a python script to generate custom configuration from one of the existing four ( cv32_...._config_pkg, etc...).
This script allows us at Thales to run regression on specific configuration to make sure new commits do not break features which are not in our four configuration. Examples: Check that we can still disable X-interface or FPU in 64 bits, activate user bits etc...
Each parameter can be modified ( in the limit of possible values ) except for the xlen
parameter.
A mandatory --isa
parameter is required to make sure code is compiled with the right ISA. If FPU is disable, the CVA6 should not run a code with F or D extension.
Note: --isa is not used to create new configuration but is returned by the script to be used to compile code. It is necessary to compile any test from core-v-verif repositories.
Example of command to disable FPU, X-interface and C extension from the 64 bits configuration:
python3 config_pkg_generator.py --default_config=cv64a6_imafdc_sv39 --isa=rv64ima --fpu=0 --cvxif=0 --c_ext=0
It will generate core/include/gen64_config_pkg.sv
and core/Flist.gen64
( gen32... if default configuration is 32 bits ). Change the target
parameter in the Makefile to gen32 or gen64 to build the CVA6 with the generated configuration.
Guillaume