rocket-chip icon indicating copy to clipboard operation
rocket-chip copied to clipboard

The new decoder

Open cyyself opened this issue 2 years ago • 2 comments

This PR takes over #3498 and removed Zb* and Zk* since #3532 has been merged.

Related issue: #3498

Type of change: other enhancement

Impact: API addition (no impact on existing code)

Development Phase: implementation

Release Notes Switch to DecodeTable API.

cyyself avatar Nov 18 '23 09:11 cyyself

We can keep the existing IntCtrlSigs bundle

I don’t think the reason keeping the original IntCtrl is a good design since for different instruction sets, some control signal will be optional. The current design doesn’t support it.

And have a generator param control whether to use the new decoder (this can even be the default) or the old way.

i don’t think the maintain burden is acceptable for me :(

sequencer avatar Nov 19 '23 06:11 sequencer

I don’t think the reason keeping the original IntCtrl is a good design since for different instruction sets, some control signal will be optional. The current design doesn’t support it.

I don't like the premise that additional extensions require adding signals to IntCtrlSigs. IntCtrlSigs are the control signals for the subset of the control signals for the base integer ISA... the fields in this bundle should never need to change. We should develop interfaces and APIs that allow for extensions to define their own control signal bundles that propagate through the pipeline.

i don’t think the maintain burden is acceptable for me :(

Aggressively deprecating APIs is a large maintenance burden. I don't see how retaining support for the original decoder is a large burden, if we do it with the correct interfaces. Once done, the original decoder code should never need to change again.

I will look into integrating this without deprecating the existing decoder.

jerryz123 avatar Nov 19 '23 21:11 jerryz123