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] Rework and addition of Zba subset #190

Merged
merged 11 commits into from
Oct 29, 2021

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Oct 29, 2021

This PR is a rework of the NEOR32 preliminary support of the RISC-V bit-manipulation ISA extension B. It adds the address generation instructions subset Zba to the already implemented basic bit-manipulation instructions subset Zbb.

This PR also reworks the configuration generic of the bit-manipulation extensions:

  • the CPU_EXTENSION_RISCV_Zbb top generic is removed
    • the SYSINFO_CPU_ZBB flag from the SYSINFO module is removed
  • the CPU_EXTENSION_RISCV_B top generic is added and will implement all currently support subsets (Zba Zbb) when "true"
    • software can now determine if the NEORV32 B extensions is implemented by checking the according misa CSR bit

⚠️ Note that the RISC-V B extension is frozen but not officially ratified yet. Hence, there is no upstream gcc support available at this time. However, the NEORV32 B extension can still be utilized via the provided intrinsics (sw/example/bitmanip_test/neorv32_b_extension_intrinsics.h).

⚠️ RISC-V Compatibility: The RISC-V spec states that all Zb* subsets have to be implemented when the B bit in the misa CSR is set. This is a NEORV32-specific deviation from the spec.


I accidentally added minor VHDL source code clean-ups of the TWI module to this PR. I won't revert that commit because it is entirely cosmetic 😉

@stnolting stnolting added HW hardware-related risc-v compliance Modification to comply with official RISC-V specs. SW software-related labels Oct 29, 2021
@stnolting stnolting self-assigned this Oct 29, 2021
@stnolting stnolting changed the title [Bit-Manipulation] Rework of B ISA extension + addition of Zba subset [B ISA Extension] Rework and addition of Zba subset Oct 29, 2021
@stnolting stnolting marked this pull request as ready for review October 29, 2021 11:29
@stnolting stnolting merged commit 9d5fe55 into master Oct 29, 2021
@stnolting stnolting deleted the bit_manipulation_zba branch October 29, 2021 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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