Skip to content

Commit f79da72

Browse files
committed
[rtl] Exclude data_wdata_intg from lockstep comparison
We can remove the integrity portion of the write data as we anyways compare the `data_wdata` in the lockstep comparison. This helps us to save some area. Signed-off-by: Pascal Nasahl <[email protected]>
1 parent 7d3fc3f commit f79da72

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

rtl/ibex_lockstep.sv

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ module ibex_lockstep import ibex_pkg::*; #(
7171
input logic data_we_i,
7272
input logic [3:0] data_be_i,
7373
input logic [31:0] data_addr_i,
74-
input logic [MemDataWidth-1:0] data_wdata_i,
74+
input logic [31:0] data_wdata_i,
7575
input logic [MemDataWidth-1:0] data_rdata_i,
7676
input logic data_err_i,
7777

@@ -339,7 +339,7 @@ module ibex_lockstep import ibex_pkg::*; #(
339339
logic data_we;
340340
logic [3:0] data_be;
341341
logic [31:0] data_addr;
342-
logic [MemDataWidth-1:0] data_wdata;
342+
logic [31:0] data_wdata;
343343
logic [IC_NUM_WAYS-1:0] ic_tag_req;
344344
logic ic_tag_write;
345345
logic [IC_INDEX_W-1:0] ic_tag_addr;
@@ -402,6 +402,10 @@ module ibex_lockstep import ibex_pkg::*; #(
402402
logic shadow_dummy_instr_id;
403403
logic shadow_dummy_instr_wb;
404404

405+
// The following output does not need to be checked in the lockstep comparison as we anyways
406+
// check the data_wdata itself.
407+
logic [6:0] shadow_data_wdata_intg;
408+
405409
///////////////////////////////
406410
// Shadow core instantiation //
407411
///////////////////////////////
@@ -468,7 +472,7 @@ module ibex_lockstep import ibex_pkg::*; #(
468472
.data_we_o (shadow_outputs_d.data_we),
469473
.data_be_o (shadow_outputs_d.data_be),
470474
.data_addr_o (shadow_outputs_d.data_addr),
471-
.data_wdata_o (shadow_outputs_d.data_wdata),
475+
.data_wdata_o ({shadow_data_wdata_intg, shadow_outputs_d.data_wdata}),
472476
.data_rdata_i (shadow_inputs_q[0].data_rdata),
473477
.data_err_i (shadow_inputs_q[0].data_err),
474478

@@ -657,8 +661,8 @@ module ibex_lockstep import ibex_pkg::*; #(
657661
assign data_we_shadow_o = shadow_outputs_d.data_we;
658662
assign data_be_shadow_o = shadow_outputs_d.data_be;
659663
assign data_addr_shadow_o = shadow_outputs_d.data_addr;
660-
assign data_wdata_shadow_o = shadow_outputs_d.data_wdata[31:0];
661-
assign data_wdata_intg_shadow_o = shadow_outputs_d.data_wdata[38:32];
664+
assign data_wdata_shadow_o = shadow_outputs_d.data_wdata;
665+
assign data_wdata_intg_shadow_o = shadow_data_wdata_intg;
662666
assign instr_req_shadow_o = shadow_outputs_d.instr_req;
663667
assign instr_addr_shadow_o = shadow_outputs_d.instr_addr;
664668
endmodule

rtl/ibex_top.sv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -800,7 +800,7 @@ module ibex_top import ibex_pkg::*; #(
800800
data_we_o,
801801
data_be_o,
802802
data_addr_o,
803-
data_wdata_core,
803+
data_wdata_o,
804804
data_rdata_core,
805805
data_err_i,
806806
rf_rdata_a,
@@ -846,7 +846,7 @@ module ibex_top import ibex_pkg::*; #(
846846
logic data_we_local;
847847
logic [3:0] data_be_local;
848848
logic [31:0] data_addr_local;
849-
logic [MemDataWidth-1:0] data_wdata_local;
849+
logic [31:0] data_wdata_local;
850850
logic [MemDataWidth-1:0] data_rdata_local;
851851
logic data_err_local;
852852

@@ -893,7 +893,7 @@ module ibex_top import ibex_pkg::*; #(
893893
data_we_o,
894894
data_be_o,
895895
data_addr_o,
896-
data_wdata_core,
896+
data_wdata_o,
897897
data_rdata_core,
898898
data_err_i,
899899
rf_rdata_a,

0 commit comments

Comments
 (0)