@@ -149,37 +149,66 @@ module snitch_cluster_peripheral
149149 sel_core_events = core_events_i[hart_select];
150150 sel_dma_events = dma_events_q[hart_select];
151151 unique case (perf_metrics_q[i])
152- Cycle: perf_cnt_d[i] + = 1 ;
153- TcdmAccessed: perf_cnt_d[i] + = tcdm_events_q.inc_accessed;
154- TcdmCongested: perf_cnt_d[i] + = tcdm_events_q.inc_congested;
155- IssueFpu: perf_cnt_d[i] + = sel_core_events.issue_fpu;
156- IssueFpuSeq: perf_cnt_d[i] + = sel_core_events.issue_fpu_seq;
157- IssueCoreToFpu: perf_cnt_d[i] + = sel_core_events.issue_core_to_fpu;
158- RetiredInstr: perf_cnt_d[i] + = sel_core_events.retired_instr;
159- RetiredLoad: perf_cnt_d[i] + = sel_core_events.retired_load;
160- RetiredI: perf_cnt_d[i] + = sel_core_events.retired_i;
161- RetiredAcc: perf_cnt_d[i] + = sel_core_events.retired_acc;
162- DmaAwStall: perf_cnt_d[i] + = sel_dma_events.aw_stall;
163- DmaArStall: perf_cnt_d[i] + = sel_dma_events.ar_stall;
164- DmaRStall: perf_cnt_d[i] + = sel_dma_events.r_stall;
165- DmaWStall: perf_cnt_d[i] + = sel_dma_events.w_stall;
166- DmaBufWStall: perf_cnt_d[i] + = sel_dma_events.buf_w_stall;
167- DmaBufRStall: perf_cnt_d[i] + = sel_dma_events.buf_r_stall;
168- DmaAwDone: perf_cnt_d[i] + = sel_dma_events.aw_done;
169- DmaAwBw: perf_cnt_d[i] + = ((sel_dma_events.aw_len + 1 ) << (sel_dma_events.aw_size));
170- DmaArDone: perf_cnt_d[i] + = sel_dma_events.ar_done;
171- DmaArBw: perf_cnt_d[i] + = ((sel_dma_events.ar_len + 1 ) << (sel_dma_events.ar_size));
172- DmaRDone: perf_cnt_d[i] + = sel_dma_events.r_done;
173- DmaRBw: perf_cnt_d[i] + = DMADataWidth/ 8 ;
174- DmaWDone: perf_cnt_d[i] + = sel_dma_events.w_done;
175- DmaWBw: perf_cnt_d[i] + = sel_dma_events.num_bytes_written;
176- DmaBDone: perf_cnt_d[i] + = sel_dma_events.b_done;
177- DmaBusy: perf_cnt_d[i] + = sel_dma_events.dma_busy;
178- IcacheMiss: perf_cnt_d[i] + = icache_events_q[hart_select].l0_miss;
179- IcacheHit: perf_cnt_d[i] + = icache_events_q[hart_select].l0_hit;
180- IcachePrefetch: perf_cnt_d[i] + = icache_events_q[hart_select].l0_prefetch;
181- IcacheDoubleHit: perf_cnt_d[i] + = icache_events_q[hart_select].l0_double_hit;
182- IcacheStall: perf_cnt_d[i] + = icache_events_q[hart_select].l0_stall;
152+ snitch_cluster_peripheral_reg__PERF_METRIC__CYCLE: perf_cnt_d[i] + = 1 ;
153+ snitch_cluster_peripheral_reg__PERF_METRIC__TCDM_ACCESSED: perf_cnt_d[i] + =
154+ tcdm_events_q.inc_accessed;
155+ snitch_cluster_peripheral_reg__PERF_METRIC__TCDM_CONGESTED: perf_cnt_d[i] + =
156+ tcdm_events_q.inc_congested;
157+ snitch_cluster_peripheral_reg__PERF_METRIC__ISSUE_FPU: perf_cnt_d[i] + =
158+ sel_core_events.issue_fpu;
159+ snitch_cluster_peripheral_reg__PERF_METRIC__ISSUE_FPU_SEQ: perf_cnt_d[i] + =
160+ sel_core_events.issue_fpu_seq;
161+ snitch_cluster_peripheral_reg__PERF_METRIC__ISSUE_CORE_TO_FPU: perf_cnt_d[i] + =
162+ sel_core_events.issue_core_to_fpu;
163+ snitch_cluster_peripheral_reg__PERF_METRIC__RETIRED_INSTR: perf_cnt_d[i] + =
164+ sel_core_events.retired_instr;
165+ snitch_cluster_peripheral_reg__PERF_METRIC__RETIRED_LOAD: perf_cnt_d[i] + =
166+ sel_core_events.retired_load;
167+ snitch_cluster_peripheral_reg__PERF_METRIC__RETIRED_I: perf_cnt_d[i] + =
168+ sel_core_events.retired_i;
169+ snitch_cluster_peripheral_reg__PERF_METRIC__RETIRED_ACC: perf_cnt_d[i] + =
170+ sel_core_events.retired_acc;
171+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_AW_STALL: perf_cnt_d[i] + =
172+ sel_dma_events.aw_stall;
173+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_AR_STALL: perf_cnt_d[i] + =
174+ sel_dma_events.ar_stall;
175+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_R_STALL: perf_cnt_d[i] + =
176+ sel_dma_events.r_stall;
177+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_W_STALL: perf_cnt_d[i] + =
178+ sel_dma_events.w_stall;
179+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_BUF_W_STALL: perf_cnt_d[i] + =
180+ sel_dma_events.buf_w_stall;
181+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_BUF_R_STALL: perf_cnt_d[i] + =
182+ sel_dma_events.buf_r_stall;
183+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_AW_DONE: perf_cnt_d[i] + =
184+ sel_dma_events.aw_done;
185+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_AW_BW: perf_cnt_d[i] + =
186+ ((sel_dma_events.aw_len + 1 ) << (sel_dma_events.aw_size));
187+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_AR_DONE: perf_cnt_d[i] + =
188+ sel_dma_events.ar_done;
189+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_AR_BW: perf_cnt_d[i] + =
190+ ((sel_dma_events.ar_len + 1 ) << (sel_dma_events.ar_size));
191+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_R_DONE: perf_cnt_d[i] + =
192+ sel_dma_events.r_done;
193+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_R_BW: perf_cnt_d[i] + = DMADataWidth/ 8 ;
194+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_W_DONE: perf_cnt_d[i] + =
195+ sel_dma_events.w_done;
196+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_W_BW: perf_cnt_d[i] + =
197+ sel_dma_events.num_bytes_written;
198+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_B_DONE: perf_cnt_d[i] + =
199+ sel_dma_events.b_done;
200+ snitch_cluster_peripheral_reg__PERF_METRIC__DMA_BUSY: perf_cnt_d[i] + =
201+ sel_dma_events.dma_busy;
202+ snitch_cluster_peripheral_reg__PERF_METRIC__ICACHE_MISS: perf_cnt_d[i] + =
203+ icache_events_q[hart_select].l0_miss;
204+ snitch_cluster_peripheral_reg__PERF_METRIC__ICACHE_HIT: perf_cnt_d[i] + =
205+ icache_events_q[hart_select].l0_hit;
206+ snitch_cluster_peripheral_reg__PERF_METRIC__ICACHE_PREFETCH: perf_cnt_d[i] + =
207+ icache_events_q[hart_select].l0_prefetch;
208+ snitch_cluster_peripheral_reg__PERF_METRIC__ICACHE_DOUBLE_HIT: perf_cnt_d[i] + =
209+ icache_events_q[hart_select].l0_double_hit;
210+ snitch_cluster_peripheral_reg__PERF_METRIC__ICACHE_STALL: perf_cnt_d[i] + =
211+ icache_events_q[hart_select].l0_stall;
183212 default : ;
184213 endcase
185214 // Set performance metric.
@@ -213,7 +242,8 @@ module snitch_cluster_peripheral
213242 if (i < NumPerfMetricRstValues) begin : gen_perf_metrics_rst_value
214243 `FF (perf_metrics_q[i], perf_metrics_d[i], PerfMetricRstValues[i], clk_i, rst_ni)
215244 end else begin : gen_perf_metrics_default
216- `FF (perf_metrics_q[i], perf_metrics_d[i], Cycle, clk_i, rst_ni)
245+ `FF (perf_metrics_q[i], perf_metrics_d[i],
246+ snitch_cluster_peripheral_reg__PERF_METRIC__CYCLE, clk_i, rst_ni)
217247 end
218248 end
219249
0 commit comments