Skip to content

Commit

Permalink
[ibex,fpga] Fix FPGA related Ibex RF issue
Browse files Browse the repository at this point in the history
This commit manually pulls over lowRISC/ibex#2224 to fix
the register file for the FPGA configuration. As we do not
want to include other Ibex changes, this is done using a
patch file.

Signed-off-by: Pascal Nasahl <nasahlpa@lowrisc.org>
(commit is original to earlgrey_1.0.0)
  • Loading branch information
nasahlpa authored and luismarques committed Dec 9, 2024
1 parent 547335f commit 20bf77b
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 4 deletions.
8 changes: 4 additions & 4 deletions hw/vendor/lowrisc_ibex/rtl/ibex_register_file_fpga.sv
Original file line number Diff line number Diff line change
Expand Up @@ -147,14 +147,14 @@ module ibex_register_file_fpga #(
.out_o (mem_o_b)
);

assign rdata_a_o = (raddr_a_i == '0) ? '0 : mem_o_a;
assign rdata_b_o = (raddr_b_i == '0) ? '0 : mem_o_b;
assign rdata_a_o = (raddr_a_i == '0) ? WordZeroVal : mem_o_a;
assign rdata_b_o = (raddr_b_i == '0) ? WordZeroVal : mem_o_b;
end else begin : gen_no_rdata_mux_check
// async_read a
assign rdata_a_o = (raddr_a_i == '0) ? '0 : mem[raddr_a_i];
assign rdata_a_o = (raddr_a_i == '0) ? WordZeroVal : mem[raddr_a_i];

// async_read b
assign rdata_b_o = (raddr_b_i == '0) ? '0 : mem[raddr_b_i];
assign rdata_b_o = (raddr_b_i == '0) ? WordZeroVal : mem[raddr_b_i];
end

// we select
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
diff --git a/ibex_register_file_fpga.sv b/ibex_register_file_fpga.sv
index 7a0ae34b15..73e0afab2f 100644
--- a/ibex_register_file_fpga.sv
+++ b/ibex_register_file_fpga.sv
@@ -147,14 +147,14 @@ module ibex_register_file_fpga #(
.out_o (mem_o_b)
);

- assign rdata_a_o = (raddr_a_i == '0) ? '0 : mem_o_a;
- assign rdata_b_o = (raddr_b_i == '0) ? '0 : mem_o_b;
+ assign rdata_a_o = (raddr_a_i == '0) ? WordZeroVal : mem_o_a;
+ assign rdata_b_o = (raddr_b_i == '0) ? WordZeroVal : mem_o_b;
end else begin : gen_no_rdata_mux_check
// async_read a
- assign rdata_a_o = (raddr_a_i == '0) ? '0 : mem[raddr_a_i];
+ assign rdata_a_o = (raddr_a_i == '0) ? WordZeroVal : mem[raddr_a_i];

// async_read b
- assign rdata_b_o = (raddr_b_i == '0) ? '0 : mem[raddr_b_i];
+ assign rdata_b_o = (raddr_b_i == '0) ? WordZeroVal : mem[raddr_b_i];
end

// we select

0 comments on commit 20bf77b

Please sign in to comment.