sparcians / atlas

RISC-V Functional Model
Apache License 2.0
1 stars 2 forks source link

Create Extension Manager Class #5

Open kathlenemagnus-mips opened 3 days ago

kathlenemagnus-mips commented 3 days ago

Create a class for managing which extensions are supported, enabled and disabled in Atlas.

The class should be able to do the following:

klingaard commented 3 days ago

@bdutro, Kathlene and I chatted about this effort for a bit and we agree this could live in Mavis (and probably should). We also volunteered you to make the class. :stuck_out_tongue_closed_eyes:

kathlenemagnus-mips commented 3 days ago

I'd like for Mavis to be able to be constructed with an ISA string instead of a list of included and excluded tags. Internally, it should parse the string, throw an error if the string or set of extensions is invalid, and create a list of included "tags" (a.k.a. extensions). Mavis should also understand what combinations of extensions are supported. For example, you can't enable d without f.

bdutro commented 2 days ago

I'm thinking I would like the extensions (and whatever requirements they may have) to be defined in JSON. Right now I'm adding additional fields to the existing ISA JSONs, but we could also put that info in its own special JSON(s) if we don't want to mess with the current format. Thoughts?

kathlenemagnus-mips commented 2 days ago

@bdutro, that sounds good to me. I like the idea of special JSONs to communicate the supported extensions and their requirements. Are we still trying to keep Mavis generic? Or are we okay with Mavis being a "RISC-V decoder" only?