Skip to content

Draft: User config

Created by: cathales

This PR is not ready for merge yet. It builds CVA6 with embedded configuration on Verilator and runs CoreMark but there are still formatting + history cleanup + rebase + fixes to do for VCS and other configurations.

This PR is a step towards CVA6 parametrization.

  1. It distinguishes two types: "user configuration" VS "extended configuration", which is interesting because:
    • It is not needed anymore to insert dummy values into a structure if the configuration file.
    • It appears in the type signature that configuration has been extended or not: when the extended configuration is needed, the appropriate type is used to force that the transmitted parameter is already extended, avoiding the accidental use of dummy values.
  2. It creates a function to gather the extension logic.
  3. It moves user-config-dependent information from packages to this configuration structure as it is not possible for packages to use values from a configuration structure.

Not everything has been moved yet, but as moving XLEN (and its dependents PLEN, VLEN and many more types and values) implied a lot of changes, it is better to commit them as soon as it is working to avoid an even bigger PR (and the associated conflicts).

Merge request reports

Loading