Open JeanRochCoulon opened 1 year ago
Ariane_cfg_t
should be done.
@zarubaf I listed the parameters belonging to the config package to identify which are already in CVACfg ("done") and the others, some could be easily transformed as parameter ("easy"), some less ("hard").
There was already an existing task for this https://github.com/openhwgroup/cva6/issues/1233
Yes, #1233 was not defined as Kanban board task, but normal github issue. Thank for having added the link. @Jbalkind Any news about parametrization ?
Hello, I’m working on it
I have started working on it last week but this week I did not have time to work on this topic.
Back from holiday, I am rebasing my previous work and will continue working on it.
I have finished transferring ariane_pkg
and riscv
values which depend on configuration to the new parametrization system. However there are values in other packages that depend on these ariane_pkg
"variable" values so I have to transfer them too.
It is not possible to elaborate until everything is transferred so I have to continue to completion before submitting changes.
It will require me a few more weeks before I can complete this task.
wt_cache_pkg
is now transferred too.
Here is the current status: https://github.com/openhwgroup/cva6/pull/1704
Once this PR is completed and merged, the planned work will be to:
localparam
s from config files so that only the cva6_cfg
definition remains
a) requires moving all remaining user-config-dependent values from all packages
b) requires HPDCache update
c) requires CoreV Verif update about CV-X-IFIt would be nice if someone else can help me, especially for points b) and c) which I cannot handle myself. These two points can be started in parallel of my current work.
All the three steps announced on Mattermost are now merged. Many values have been moved to the new structure but the work is not over yet! Below are points that still need to be addressed.
Submodules currently depend on configuration values from packages. It prevents form moving these values and their dependencies into the structure.
core/include/cva6_hpdcache_default_config_pkg.sv
@cfuguet)core/include/cv[36][24]a6*_config_pkg.sv
define localparam
values which are used to build the structure. We should remove localparam
definitions except the one of the structure. It would help us making sure that the old values are not used anymore.
However, util/config_pkg_generator.py
first needs to be updated to handle both localparam field = value;
and field: cast'(value);
for the transition.
Not all values are parametrized yet, and updating user configurations would help finding them.
pmp
The pmp
takes CVA6Cfg
but does not use it yet. A choice should be made:
CVA6Cfg
pmp
might not work anymore.CVA6Cfg
parameter from pmp
.Another input from @zarubaf
The types could be at the beginning of the module instead of inside the parameters.
module the_module #(
- localparam type the_type = ...
) ( ... );
+ localparam type the_type = ...;
...
endmodule
Is there an existing CVA6 task for this?
Task Description
To be able to instantiate several CVA6 with different configurations, parameters must be defined as cva6 input parameters.
Required Changes
Move parameters from packages to cva6 input parameters. But as not all the parameters can be configured, identify:
Current Status
NOC done RVFI done Ariane_cfg_t ongoing All others to be done
Risks
To not finish the modification, to be in the middle of the bridge.
Prerequisites
system verilog limitations
KPI (KEY Performance Indicators)
remaining number of parameters to be moved from package to input parameters
Description of Done
All parameters are moved from package to input parameters
Associated PRs
No response