diff --git a/hw/rtl/cache/VX_cache.sv b/hw/rtl/cache/VX_cache.sv index 30594f1a..65efc607 100644 --- a/hw/rtl/cache/VX_cache.sv +++ b/hw/rtl/cache/VX_cache.sv @@ -537,7 +537,7 @@ module VX_cache import VX_gpu_pkg::*; #( wire [`CLOG2(NUM_BANKS+1)-1:0] perf_read_miss_per_cycle; wire [`CLOG2(NUM_BANKS+1)-1:0] perf_write_miss_per_cycle; wire [`CLOG2(NUM_BANKS+1)-1:0] perf_mshr_stall_per_cycle; - wire [`CLOG2(NUM_BANKS+1)-1:0] perf_crsp_stall_per_cycle; + wire [`CLOG2(NUM_REQS+1)-1:0] perf_crsp_stall_per_cycle; `POP_COUNT(perf_core_reads_per_cycle, perf_core_reads_per_req); `POP_COUNT(perf_core_writes_per_cycle, perf_core_writes_per_req); @@ -562,6 +562,12 @@ module VX_cache import VX_gpu_pkg::*; #( reg [`PERF_CTR_BITS-1:0] perf_mem_stalls; reg [`PERF_CTR_BITS-1:0] perf_crsp_stalls; + wire [`CLOG2(NUM_REQS+1)-1:0] perf_core_reads_per_cycle_r; + wire [`CLOG2(NUM_REQS+1)-1:0] perf_core_writes_per_cycle_r; + + `BUFFER(perf_core_reads_per_cycle_r, perf_core_reads_per_cycle); + `BUFFER(perf_core_writes_per_cycle_r, perf_core_writes_per_cycle); + always @(posedge clk) begin if (reset) begin perf_core_reads <= '0; @@ -572,8 +578,8 @@ module VX_cache import VX_gpu_pkg::*; #( perf_mem_stalls <= '0; perf_crsp_stalls <= '0; end else begin - perf_core_reads <= perf_core_reads + `PERF_CTR_BITS'(perf_core_reads_per_cycle); - perf_core_writes <= perf_core_writes + `PERF_CTR_BITS'(perf_core_writes_per_cycle); + perf_core_reads <= perf_core_reads + `PERF_CTR_BITS'(perf_core_reads_per_cycle_r); + perf_core_writes <= perf_core_writes + `PERF_CTR_BITS'(perf_core_writes_per_cycle_r); perf_read_misses <= perf_read_misses + `PERF_CTR_BITS'(perf_read_miss_per_cycle); perf_write_misses <= perf_write_misses + `PERF_CTR_BITS'(perf_write_miss_per_cycle); perf_mshr_stalls <= perf_mshr_stalls + `PERF_CTR_BITS'(perf_mshr_stall_per_cycle);