From d7755ec828868582e2b409ba14f1c8c920c7f184 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 16 Jul 2018 15:53:04 -0700 Subject: [PATCH] systemc: Hook up sc_time_stamp sc_delta_count. sc_time_stamp reports the current simulation time. sc_delta_count was hooked up to a dummy value. This change hooks it up to the scheduler so that it returns the real value. Change-Id: I354c4be32161eabeea86af653f5cb0a5d384645b Reviewed-on: https://gem5-review.googlesource.com/11712 Reviewed-by: Gabe Black Maintainer: Gabe Black --- src/systemc/core/sc_main.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/systemc/core/sc_main.cc b/src/systemc/core/sc_main.cc index fec3faeb0..0b385e9a0 100644 --- a/src/systemc/core/sc_main.cc +++ b/src/systemc/core/sc_main.cc @@ -33,8 +33,10 @@ #include "base/logging.hh" #include "base/types.hh" #include "python/pybind11/pybind.hh" +#include "sim/core.hh" #include "sim/eventq.hh" #include "sim/init.hh" +#include "systemc/core/scheduler.hh" #include "systemc/ext/core/sc_main.hh" #include "systemc/ext/utils/sc_report_handler.hh" @@ -124,8 +126,6 @@ sc_status _status = SC_ELABORATION; Tick _max_tick = MaxTick; sc_starvation_policy _starvation = SC_EXIT_ON_STARVATION; -uint64_t _deltaCycles = 0; - } // anonymous namespace int @@ -193,14 +193,17 @@ sc_stop() const sc_time & sc_time_stamp() { - warn("%s not implemented.\n", __PRETTY_FUNCTION__); - return *(sc_time *)nullptr; + static sc_time tstamp; + Tick tick = sc_gem5::scheduler.eventQueue().getCurTick(); + //XXX We're assuming the systemc time resolution is in ps. + tstamp = sc_time::from_value(tick / SimClock::Int::ps); + return tstamp; } sc_dt::uint64 sc_delta_count() { - return _deltaCycles; + return sc_gem5::scheduler.numCycles(); } bool -- 2.30.2