diff options
Diffstat (limited to 'src/sim/ticked_object.cc')
-rw-r--r-- | src/sim/ticked_object.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/sim/ticked_object.cc b/src/sim/ticked_object.cc index a9f3aceb7..1a04dc14f 100644 --- a/src/sim/ticked_object.cc +++ b/src/sim/ticked_object.cc @@ -46,7 +46,7 @@ Ticked::Ticked(ClockedObject &object_, Stats::Scalar *imported_num_cycles, Event::Priority priority) : object(object_), - event(*this, priority), + event([this]{ processClockEvent(); }, name(), false, priority), running(false), lastStopped(0), /* Allocate numCycles if an external stat wasn't passed in */ @@ -56,6 +56,16 @@ Ticked::Ticked(ClockedObject &object_, { } void +Ticked::processClockEvent() { + ++tickCycles; + ++numCycles; + countCycles(Cycles(1)); + evaluate(); + if (running) + object.schedule(event, object.clockEdge(Cycles(1))); +} + +void Ticked::regStats() { if (numCyclesLocal) { |