From 5a39d8b7e750865a0dadf18bc7cc9b5d2ee441d9 Mon Sep 17 00:00:00 2001 From: Luke Wren Date: Wed, 6 Jul 2022 13:50:13 +0100 Subject: [PATCH] Track minstret and mcycle separately now that the model is cycle-accurate --- test/sim/rvpy/rvpy | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/sim/rvpy/rvpy b/test/sim/rvpy/rvpy index 1b43f9a..cd36e08 100755 --- a/test/sim/rvpy/rvpy +++ b/test/sim/rvpy/rvpy @@ -129,15 +129,18 @@ class RVCSR: def __init__(self): self.mcycle = 0 + self.minstret = 0 self.mscratch = 0 def step(self): self.mcycle += 1 + self.minstret += 1 def read(self, addr, side_effect=True): - # Close your eyes - if addr in (RVCSR.MCYCLE, RVCSR.MTIME, RVCSR.MINSTRET): + if addr in (RVCSR.MCYCLE, RVCSR.MTIME): return self.mcycle + elif addr == RVCSR.MINSTRET: + return self.minstret elif addr == RVCSR.MSCRATCH: return self.mscratch else: @@ -150,6 +153,8 @@ class RVCSR: data = self.read(addr, side_effect=False) | data if addr == RVCSR.MCYCLE: self.mcycle = data + elif addr == RVCSR.MINSTRET: + self.minstret = data elif addr == RVCSR.MSCRATCH: self.mscratch = data