Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[B ISA extension] add carry-less multiply instructions (Zbc) support #260

Merged
merged 9 commits into from
Jan 27, 2022

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Jan 26, 2022

This PR is a follow-up of #259 and adds the last missing sub-extension to the CPU's RISC-V bit-manipulation ISA extension "B":

  • Zbc - carry-less multiplication instructions

The NEORV32 CPU now supports all four B subsets (according to the recently frozen and ratified RISC-V bit-manipulation spec. v0.93/v1.00):

  • ✔️ Zbb - basic bit-manipulation instructions
  • ✔️ Zba - address-generation instructions
  • ✔️ Zbs - single-bit instructions
  • ✔️ Zbc - carry-less multiplication instructions

📚 A copy of the RISC-V B spec (v0.93) can be found in docs/references.

Since there is no upstream gcc support yet, Zbc intrinsics and emulation functions have been added to sw/example/bitmanip_test/neorv32_b_extension_intrinsics.h. Furthermore, according test cases have been added to sw/example/bitmanip_test/main.c to verify correct operations.

@stnolting stnolting added enhancement New feature or request risc-v compliance Modification to comply with official RISC-V specs. HW hardware-related SW software-related labels Jan 26, 2022
@stnolting stnolting self-assigned this Jan 26, 2022
@stnolting stnolting marked this pull request as ready for review January 27, 2022 04:13
@stnolting stnolting merged commit ce64f6e into master Jan 27, 2022
@stnolting stnolting deleted the b_isa_extension_zbc branch January 27, 2022 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request HW hardware-related risc-v compliance Modification to comply with official RISC-V specs. SW software-related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant