Replies: 1 comment
-
|
Implemented in #238 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Currently, VADL ISAs support single inheritance, allowing one ISA to extend another. However, architectures with ISA extensions that do not have a linear dependency structure are difficult to model.
Consider RISC-V 64 with its standard-extensions:

Arrows mark dependencies. All those extensions are combinable.
One inaccuracy in this diagram is the optional dependency of
ZicsronRV64I, which provides control and status registers. If a processor does not implementZicsr, theECALLandEBREAKinstructions behave asNOPs. However, ifZicsris present, they trigger an exception that modifies control and status registers, enabling privilege mode transitions.This extension system cannot be accurately modeled with single inheritance. Defining processors with different extension variations would lead to significant ISA duplication.
However, using multiple inheritance it could look like this
Now if the user wants to define a processor supporting
RV64IMthey can do this byAnd if they want CSR, Vector and Atomic instructions but no multiplication in another processor they would use
Restrictions
To determine the constraints under which multiple inheritance is feasible in our ISA specification, consider merging all dependencies of an ISA into the root one. (EDIT: The root is the ISA actually used by the generator, e.g.
RV64IAVZicsrin the upper example)This merged ISA is valid if:
• Single Program Counter (PC): Exactly one PC counter exists.
• No Naming Conflicts: There are no duplicated definitions, such as two register files sharing the same name.
For the ISS, these conditions seem sufficient.
Since we don’t support definition overriding (as in method overriding in OOP), implementing multiple inheritance should be straightforward.
However, I am sure that I forgot something.
NOTE: This is transferred from Gitea.
Beta Was this translation helpful? Give feedback.
All reactions