enabled performance counter in CSR register

This commit is contained in:
2026-03-18 11:49:19 +00:00
parent a0b8d07155
commit 9606815dfa
6 changed files with 3910 additions and 1 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -112,6 +112,8 @@ BSC_COMPILATION_FLAGS += \
-D RISCV \
-D TSO_MM \
-D RV64 \
-D PERF_COUNT \
-D PERFORMANCE_MONITORING \
-D ISA_PRIV_M -D ISA_PRIV_S -D ISA_PRIV_U \
-D SV39 \
-D ISA_I -D ISA_M -D ISA_A -D ISA_F -D ISA_D -D ISA_FD_DIV -D ISA_C \

View File

@@ -918,6 +918,7 @@ module mkCore#(CoreId coreId)(Core);
// incr cycle count
(* fire_when_enabled, no_implicit_conditions *)
rule incCycleCnt(doStats);
$display("calling cycle");
cycleCnt.incr(1);
endrule

View File

@@ -330,7 +330,7 @@ interface StatsCsr;
endinterface
module mkStatsCsr(StatsCsr);
Reg#(Bool) doStats <- mkConfigReg(False);
Reg#(Bool) doStats <- mkConfigReg(True);
FIFO#(Bool) writeQ <- mkFIFO1;

View File

@@ -233,6 +233,14 @@ module mkDTlb#(
L1TlbAllMissCycles: (allMissCycles);
default: (0);
endcase);
// Print the requested counter and its value
$display("[doPerf] Request Type: %0d, Value: %0d", t, d);
// (Optional) More detailed debug info
$display(" accessCnt=%0d, missParentCnt=%0d, missParentLat=%0d",
accessCnt, missParentCnt, missParentLat);
$display(" L1TlbmissPeerCnt=%0d, L1TlbmissPeerLat=%0d, L1TlbhitUnderMissCnt=%0d, L1TlballMissCycles=%0d",
missPeerCnt, missPeerLat, hitUnderMissCnt, allMissCycles);
perfRespQ.enq(PerfResp {
pType: t,
data: d