[TASK] Enable heterogeneous CVA6 instantiations
Created by: Jbalkind
Is there an existing CVA6 task for this?
-
I have searched the existing task issues
Task Description
We are interested in having multiple, heterogeneous instances of CVA6 in a single design. At present, the configuration mechanism doesn't support this well. As discussed during the CVA6 meeting, a number of us are interested in figuring out a mechanism that does support this use case.
My read of the situation is that the struct types are the biggest issue. If we passed around ariane_cfg_t with appropriate defaults (set via the configs) then I don't think there would be much trouble for things like XLEN when they are used within modules or even for port widths. The trouble I see is that the sizes of struct fields need to be set more globally in a way that is less compatible with the heterogeneity idea.
I've created this as a task but am looking more to stir up some brainstorming about how to resolve the issue. Hopefully that's appropriate if we actually come up with a solution and can use this task to track it.
Description of Done
The ability to instantiate multiple heterogeneous CVA6 cores without duplication of necessary files.
Associated PRs
No response