[Deprecated] RISC-V IEEE 754 Floating point Support#448
Conversation
+ changed registerfile interface so that the register count can be set + changed registerfile interface so that the zero register can be hardwired to zero or be regular register + change is backwards compatible with existing integrations
made expression parser object orientated to be more versatile for implementations like float, double etc. and added floating point parsing and computation.
…mode and csr register constants
the currently handling of extension of all default (ss, 5s, 6s) processors advertised all extension the RVIsa is capable of, but since adding floating point support to a processor requires a separate processors design/class this default advertising must be restricted to just the extensions the specific processor supports.
…ot the architecture bitwidth
required to test floating point tests
…to be easier to test
|
@NLS-04 Awesome! This is a massive change, so it's taking me some time to review. Are you on top of the CI errors? |
Yes — the CI failures in #448 are expected, since that PR partially depends on #449. More broadly, these PRs are structured as a dependency chain:
Because of this, #448 and #449 are not intended to be standalone, conflict-free merge-ready additions to Ripes. They primarily exist to split the work into smaller, more manageable review chunks. As a result, the CI issues in #448 and #449 can be ignored, since the related problems are resolved in #450. Hope that clarifies things. |
|
After taking another look, I realized something went wrong during the PR setup, and the current structure is unfortunately not what I originally intended 🫤 Contrary to the plan, PR #450 already contains the changes from #448 and #449. That effectively makes #448 and #449 obsolete, and they should therefore not be merged into Ripes separately. Only PR #450, which includes the complete implementation, should be considered for merging. Sorry for the confusion on my end 🫤 @mortbopet, how would you prefer to proceed from here? Would you rather review the full implementation as it currently exists in PR #450, or should I properly split it again into smaller follow-up PRs? In any case, I would suggest closing PR #448 and PR #449, since their contents are already covered by PR #450, and moving any relevant descriptions/information from those PRs into #450 instead. |
Add comprehensive floating-point extension support to RISC-V processor models
Summary
This PR adds floating-point support to Ripes, enabling simulation of the RISC-V F single-precision floating-point (and Zicsr constrol and status register) extensions. The implementation is modular in design so that future works can build upon this PR.
What is Added
The whole PR is composed of 3 sub-PRs:
In this Pull-Request
Impact
What Changed
Core Components:
ISA Extensions:
Note:
For simplicity the current intergations of the floating-point unit and fcsr avaoid the integration of a dedicated CSR register file and controller by making the fcsr part of the FPU. Therefore, the FPU also manages the state of the fcsr and the acces via the Zicsr instructions.
Processor Models:
Assembler & Frontend:
.floatGNU directive supportTesting & Quality: (also regard PR: #450)