Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change add an additional memory to the pipeline for those cases where maximum clock is speed is required and data RAM latency is 2.
Right now, you can already do this by setting emitCmdInMemoryStage = false and earlyInjection = false (which are the defaults), but then you have a potential critical path going from execute to the memory.
Most high speed RISC-V CPUs have 2 memory stages.
This has been tested by running coremark, but I haven't run riscv-formal on it.
The change isn't perfect in that the fast version of Mul still injects the final result in WriteBack whereas it could do it in Memory2.
What do you think? Is this worthy of being part of the main tree?
Tom