Incorrect parameterization of CV32E40P in CORE-V-MCU
Within the CORE-V-MCU, the CV32E40P core is instantiated in fc_subsystem.sv as follows:
cv32e40p_core #(
.FPU(`USE_FPU),
.PULP_XPULP(1)
) lFC_CORE (
...
There are several issues here:
- The
USE_FPU
macro (tick-define) is defined inpulp_soc_defines.sv
(see #188). - Assuming that the intended value of
USE_FPU
is 1, this is not a Release 1.0.0 (v1) configuration. -
PULP_XPULP
is set to 1, which is not a Release 1.0.0 configuration.
The CV32E40P User Manual makes it clear how to instantiate the v1 version of this core and the CORE-V-MCU is not doing that. This is a problem because the MCU Project Launch document indicates that the MCU is to use the Release 1.0.0 version of the core. This decision is reinforced in the MCU Plan Approved document:
The MCU project will bring the CV32E40P IP to TRL6 from a starting point at TRL5.
Only Release 1.0.0 of the CV32E40P is at TRL5.
This issue can be resolved when the instantiation parameters of the CV32E40P in the MCU are set as per the Release 1.0.0 values in the User Manual.