-
Notifications
You must be signed in to change notification settings - Fork 428
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
Add Bitmanipulation Support #900
Conversation
Hi @gullahmed1, thanks for your interest in CV32E40P. This is a significant PR and before we can merge it there are several things to consider:
Lastly, this is a significant change to the core and it is possible that acceptance will need to be reviewed by the OpenHW Group Cores Task Group or even the Technical Working Group. @davideschiavone and @DBees what are your thoughts on that? |
00cd87e
to
5ff2112
Compare
Hi @MikeOpenHWGroup @DBees @davideschiavone
For sure we have to discuss about accepting to merge this in CV32E40P or not. Second reason is that we are in the final steps of finalizing CV32E40Pv2 to its Project Freeze state. |
@MikeOpenHWGroup @pascalgouedo @DBees @davideschiavone , fully agreed with @pascalgouedo ' post above. Such PRs should be done on a new core, e.g. CV32E42p as this goes against our agreed rules with respect to allowed changes on a frozen core. |
5ff2112
to
6ccc9d9
Compare
85bd177
to
e3e7127
Compare
e3e7127
to
7bf53fe
Compare
b9f9437
to
7bf53fe
Compare
7bf53fe
to
be8bb0b
Compare
Dear @gullahmed1, thanks for making the PR with your valuable contribution. The ISA of the CV32E40P was fixed when the project started in OpenHW Group (back in 2019) and therefore we cannot have the RVB support in this CPU as it would change the ISA, against the maintenance rule of OpenHW Group. However, as part of OpenHW Group, you can propose to the TWG a new CPU (that can be the fork of the cv32e40p) with a new architecture and new ISA - for your information, there will be a proposal in the TWG for a new CPU (tentative name cv32e40px) that will be a fork of cv32e40p, plus the core-v-x interface, plus the RVP and RVB ISA extensions - therefore we may want to retarget your contribution to this (probably) upcoming new CPU - it would be amazing to have your valuable contribution merged in! |
Thank you all for the valuable feedback. For now, I think we can close this PR and will discuss the possibility of the new CPU with TWG. |
Introduction
This PR adds support for the zba, zbb, zbc and zbs extensions in CV32E40P core. This support will be enabled by changing
parameter ZBITMANIP = 1
in cv32e40p_pkg.sv file and disabled by changingparameter ZBITMANIP = 0
Implementation
Added the support for all the ratified bitmanip extensions as defined under this bitmanip-spec
Verification
All the implemented instructions are passing riscv-arch tests for B type instructions. I have implemented the CV32E40P core as a DUT and SAIL as a reference model within the RISCOF framework, the successful execution of riscv-arch tests on both the CV32E40P core and the SAIL reference model and the comparison of their signatures provided the desired test results.