From a4d409adc86c2dcd864f71cb6b374669923a0fae Mon Sep 17 00:00:00 2001 From: ANurmi <57677666+ANurmi@users.noreply.github.com> Date: Mon, 3 Oct 2022 12:29:11 +0300 Subject: [PATCH 1/2] [rtl] trim rf_reg addresses for rv32e Fix for array index out of range with rv32e configuration. --- rtl/ibex_register_file_ff.sv | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/rtl/ibex_register_file_ff.sv b/rtl/ibex_register_file_ff.sv index b76df733ab..71aec15e0f 100644 --- a/rtl/ibex_register_file_ff.sv +++ b/rtl/ibex_register_file_ff.sv @@ -129,9 +129,14 @@ module ibex_register_file_ff #( assign rf_reg[0] = WordZeroVal; end - assign rdata_a_o = rf_reg[raddr_a_i]; - assign rdata_b_o = rf_reg[raddr_b_i]; - + if(RV32E) begin : rv32e_regfile + assign rdata_a_o = rf_reg[raddr_a_i[3:0]]; + assign rdata_b_o = rf_reg[raddr_b_i[3:0]]; + end else begin : rv32i_regfile + assign rdata_a_o = rf_reg[raddr_a_i]; + assign rdata_b_o = rf_reg[raddr_b_i]; + end + // Signal not used in FF register file logic unused_test_en; assign unused_test_en = test_en_i; From 1ce3ed01b8127891d2773f40588f9a79be026170 Mon Sep 17 00:00:00 2001 From: ANurmi <57677666+ANurmi@users.noreply.github.com> Date: Tue, 4 Oct 2022 13:14:13 +0300 Subject: [PATCH 2/2] [rtl] Syntax for linter --- rtl/ibex_register_file_ff.sv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtl/ibex_register_file_ff.sv b/rtl/ibex_register_file_ff.sv index 71aec15e0f..67253fdc78 100644 --- a/rtl/ibex_register_file_ff.sv +++ b/rtl/ibex_register_file_ff.sv @@ -129,7 +129,7 @@ module ibex_register_file_ff #( assign rf_reg[0] = WordZeroVal; end - if(RV32E) begin : rv32e_regfile + if (RV32E) begin : rv32e_regfile assign rdata_a_o = rf_reg[raddr_a_i[3:0]]; assign rdata_b_o = rf_reg[raddr_b_i[3:0]]; end else begin : rv32i_regfile