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

Destination register not taken into account for detection of illegal load instruction #42

Open
esdatmisarian opened this issue Jul 25, 2024 · 2 comments

Comments

@esdatmisarian
Copy link

Observed Behavior

In ibex_decoder, rf_we is not assigned in opcode case block

"unique case (opcode)
...
OPCODE_LOAD: begin
rf_ren_a_o = 1'b1;
data_req_o = 1'b1;
data_type_o = 2'b00;
..
"
For configuration RV32E, illegal destination not detetcted as in example for instruction lh x20, 1956(x4)
See snap
issue_on_destination_register_decoding_for_load_cheri

Expected Behavior

Steps to reproduce the issue

My Environment

EDA tool and version:

Operating system:

Version of the Ibex source code:

d3672fe

@kliuMsft
Copy link
Contributor

Thanks. This is indeed a corner case that I have overlooked. In the ibex decoder implementation rf_we is not set for load instructions since in that case the actual regfile writes are generated by LSU responses. So we should include that in the condition for illegal register detection. I will fix this in the next commit.

kliuMsft added a commit that referenced this issue Jul 26, 2024
…leanup in cheri_regfile, hardcode NCAPS to 16 in ibex_top
@kliuMsft
Copy link
Contributor

Commit 3f0ec86 should fix the issue, please confirm. Thanks,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants