diff options
author | Gabe Black <gabeblack@google.com> | 2018-07-16 15:53:04 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-09-05 06:05:12 +0000 |
commit | d7755ec828868582e2b409ba14f1c8c920c7f184 (patch) | |
tree | e0d4097f7593b7c8b98ed51b65d7943d7028041e /src/systemc | |
parent | 7b8c8bcaa5dc33cd7432cd3f25077321b09c61c9 (diff) | |
download | gem5-d7755ec828868582e2b409ba14f1c8c920c7f184.tar.xz |
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 <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc')
-rw-r--r-- | src/systemc/core/sc_main.cc | 13 |
1 files 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 |