summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Binkert <binkertn@umich.edu>2007-06-09 23:01:47 -0700
committerNathan Binkert <binkertn@umich.edu>2007-06-09 23:01:47 -0700
commitfc4ab050b4940138a4288c416f3bfa9dc442c7b6 (patch)
tree473eb9746e4345cfe11c9591a113f821a7253b8a
parent11f1c8dd3eb769b39939eafedc7155ad36701a7e (diff)
downloadgem5-fc4ab050b4940138a4288c416f3bfa9dc442c7b6.tar.xz
Add a startup function that will fast forward to the right clock edge
using a divide in order to not loop forever after resuming from a checkpoint --HG-- extra : convert_revision : 4bbc70b1be4e5c4ed99d4f88418ab620d5ce475a
-rw-r--r--src/mem/bus.cc7
-rw-r--r--src/mem/bus.hh1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/mem/bus.cc b/src/mem/bus.cc
index 1f96115b8..13e545064 100644
--- a/src/mem/bus.cc
+++ b/src/mem/bus.cc
@@ -605,6 +605,13 @@ Bus::drain(Event * de)
}
}
+void
+Bus::startup()
+{
+ if (tickNextIdle < curTick)
+ tickNextIdle = (curTick / clock) * clock + clock;
+}
+
BEGIN_DECLARE_SIM_OBJECT_PARAMS(Bus)
Param<int> bus_id;
diff --git a/src/mem/bus.hh b/src/mem/bus.hh
index 5dd98c07e..ee647e20a 100644
--- a/src/mem/bus.hh
+++ b/src/mem/bus.hh
@@ -267,6 +267,7 @@ class Bus : public MemObject
virtual void deletePortRefs(Port *p);
virtual void init();
+ virtual void startup();
unsigned int drain(Event *de);