Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feature request - Zb* sub-extensions #640

Closed
biosbob opened this issue Jun 28, 2023 · 4 comments
Closed

feature request - Zb* sub-extensions #640

biosbob opened this issue Jun 28, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request HW Hardware-related risc-v compliance Modification to comply with official RISC-V specs.

Comments

@biosbob
Copy link
Collaborator

biosbob commented Jun 28, 2023

the Zbc sub-extension (carry-less multiplication) is quite different from the other sub-extensions, which really do "bit manipulation" in the more traditional sense...

not critical, but it might be helpful to enable the Zb* sub-extensions individual -- as this also has impact on the overall size of the synthesized core....

a placeholder for the future....

@stnolting
Copy link
Owner

stnolting commented Jun 30, 2023

For the records: this is being discussed in #633 (comment)

@stnolting stnolting self-assigned this Jun 30, 2023
@stnolting stnolting added enhancement New feature or request risc-v compliance Modification to comply with official RISC-V specs. HW Hardware-related labels Jun 30, 2023
@biosbob
Copy link
Collaborator Author

biosbob commented Jun 30, 2023

#633 talks about the Zc* sub-extensions; this issue concerns the Zb* sub-extensions....

perhaps the data-sheet could not only list the extensions currently supported, but those on (or NOT on) the roadmap....

@stnolting
Copy link
Owner

Oh sorry, seems like I have mixed up something 😅

B vs. Zb* is something I need to take care of because the B extensions basically does not exist (anymore): riscv/riscv-bitmanip#183

So we should replace CPU_EXTENSION_RISCV_B by several CPU_EXTENSION_RISCV_Zb* generics to fine tune the bitmanip extension. Actually, this fine-grained tuning is already implemented:

-- Sub-extension configuration ----------------------------
-- Note that this configurations does NOT effect the CPU's (illegal) instruction decoding logic!
constant zbb_en_c : boolean := true;
constant zba_en_c : boolean := true;
constant zbc_en_c : boolean := true;
constant zbs_en_c : boolean := true;

But theses switches are not propagated to the top nor to the control unit to check for legal/illegal instructions.

@stnolting
Copy link
Owner

The B ISA extension has been ratified in April 2024 (https://wiki.riscv.org/display/HOME/Ratified+Extensions). It consists of the Zba, Zbb and Zbs sub-extensions, which is/are implemented by the core (see #869). So I think this can be closed now.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request HW Hardware-related risc-v compliance Modification to comply with official RISC-V specs.
Projects
None yet
Development

No branches or pull requests

2 participants