@@ -26,9 +26,9 @@ module cluster_icache_ctrl_unit import snitch_icache_pkg::*; #(
2626 import cluster_icache_ctrl_reg_pkg :: * ;
2727
2828 initial begin
29- assert (5 == $bits (icache_l0_events_t));
30- assert (4 == $bits (icache_l1_events_t));
31- assert (NumAvailableCounters >= 4 + NR_FETCH_PORTS * 5 );
29+ assert (NumL0Events == $bits (icache_l0_events_t));
30+ assert (NumL1Events == $bits (icache_l1_events_t));
31+ assert (NumAvailableCounters >= NumL1Events + NR_FETCH_PORTS * NumL0Events );
3232 assert (NR_FETCH_PORTS <= NumCores);
3333 end
3434
@@ -66,11 +66,16 @@ module cluster_icache_ctrl_unit import snitch_icache_pkg::*; #(
6666 counters_reg[3 ].de = reg2hw.enable_counters.q & l1_events_i.l1_handler_stall;
6767
6868 for (int unsigned i = 0 ; i < NR_FETCH_PORTS ; i++ ) begin
69- counters_reg[4 + i* 5 + 0 ].de = reg2hw.enable_counters.q & l0_events_i[i].l0_miss;
70- counters_reg[4 + i* 5 + 1 ].de = reg2hw.enable_counters.q & l0_events_i[i].l0_hit;
71- counters_reg[4 + i* 5 + 2 ].de = reg2hw.enable_counters.q & l0_events_i[i].l0_prefetch;
72- counters_reg[4 + i* 5 + 3 ].de = reg2hw.enable_counters.q & l0_events_i[i].l0_double_hit;
73- counters_reg[4 + i* 5 + 4 ].de = reg2hw.enable_counters.q & l0_events_i[i].l0_stall;
69+ counters_reg[NumL1Events + i* NumL0Events + 0 ].de = reg2hw.enable_counters.q &
70+ l0_events_i[i].l0_miss;
71+ counters_reg[NumL1Events + i* NumL0Events + 1 ].de = reg2hw.enable_counters.q &
72+ l0_events_i[i].l0_hit;
73+ counters_reg[NumL1Events + i* NumL0Events + 2 ].de = reg2hw.enable_counters.q &
74+ l0_events_i[i].l0_prefetch;
75+ counters_reg[NumL1Events + i* NumL0Events + 3 ].de = reg2hw.enable_counters.q &
76+ l0_events_i[i].l0_double_hit;
77+ counters_reg[NumL1Events + i* NumL0Events + 4 ].de = reg2hw.enable_counters.q &
78+ l0_events_i[i].l0_stall;
7479 end
7580
7681 // Clear on global clear signal
0 commit comments