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

Fix AXI4 to AHB converter issues #141

Merged
merged 6 commits into from
Dec 12, 2023

Conversation

mkurc-ant
Copy link
Collaborator

This PR fixes incorrect operation of axi4_to_ahb converter module where rvalid and bvalid depend on rready and bready respectively which is forbidden by the spec.

Microarchitectural tests are updated to exercise correct AXI channel handshaking. A VeeR configuration with AHB bus where the axi4_to_ahb module is used is added to CI regression tests.

@@ -345,8 +354,8 @@ import el2_pkg::*;
end
DATA_WR: begin
buf_state_en = (cmd_doneQ & ahb_hready_q) | ahb_hresp_q;
master_ready = buf_state_en & ~ahb_hresp_q & slave_ready; // Ready to accept new command if current command done and no error
buf_nxtstate = (ahb_hresp_q | ~slave_ready) ? DONE :
master_ready = buf_state_en & ~ahb_hresp_q & axi_bready; // Ready to accept new command if current command done and no error

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [verible-verilog-lint] reported by reviewdog 🐶
Line length exceeds max: 100; is: 144 [Style: line-length] [line-length]

@@ -403,7 +422,7 @@ import el2_pkg::*;
assign slave_valid = slave_valid_pre;// & (~slvbuf_posted_write | slvbuf_error);
assign slave_opc[3:2] = slvbuf_write ? 2'b11 : 2'b00;
assign slave_opc[1:0] = {2{slvbuf_error}} & 2'b10;
assign slave_rdata[63:0] = slvbuf_error ? {2{last_bus_addr[31:0]}} : ((buf_state == DONE) ? buf_data[63:0] : ahb_hrdata_q[63:0]);
assign slave_rdata[63:0] = slvbuf_error ? {2{last_bus_addr[31:0]}} : ((buf_state == DONE_RD) ? buf_data[63:0] : ahb_hrdata_q[63:0]);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [verible-verilog-lint] reported by reviewdog 🐶
Line length exceeds max: 100; is: 138 [Style: line-length] [line-length]

Internal-Tag: [#49716]
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
Internal-Tag: [#49716]
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
Internal-Tag: [#49716]
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
…eter.

Internal-Tag: [#49716]
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
Internal-Tag: [#49716]
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
Internal-Tag: [#49716]
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
Copy link

github-actions bot commented Dec 6, 2023

Links to coverage and verification reports for this PR (#141) are available at https://chipsalliance.github.io/Cores-VeeR-EL2/

@tmichalak
Copy link
Collaborator

LGTM

@tmichalak tmichalak merged commit c6441f7 into chipsalliance:main Dec 12, 2023
164 checks passed
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

Successfully merging this pull request may close these issues.

None yet

2 participants