sim: Fatal if a clocked object is set to have a clock of 0
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 7 Jan 2013 18:05:39 +0000 (13:05 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 7 Jan 2013 18:05:39 +0000 (13:05 -0500)
This patch adds a check to the clocked object constructor to ensure it
is not configured to have a clock period of 0.

src/mem/cache/base.cc
src/sim/clocked_object.hh

index 262573663f7a6a21fb8050ec20bc731884618dcd..d126906d0f62464123d2b3b6d4ce544792c71864 100644 (file)
@@ -81,10 +81,6 @@ BaseCache::BaseCache(const Params *p)
       addrRanges(p->addr_ranges.begin(), p->addr_ranges.end()),
       system(p->system)
 {
-    // ensure the clock is not running at an unreasonable clock speed
-    if (clock == 1)
-        panic("Cache %s has a cycle time of 1 tick. Specify a clock.\n",
-              name());
 }
 
 void
index d9630139a2bf3f156b933c706455ddddeee9e642..b0aaa17210fab62cd165eebd62160f92907fe4d8 100644 (file)
@@ -46,6 +46,7 @@
 #define __SIM_CLOCKED_OBJECT_HH__
 
 #include "base/intmath.hh"
+#include "base/misc.hh"
 #include "params/ClockedObject.hh"
 #include "sim/core.hh"
 #include "sim/sim_object.hh"
@@ -113,7 +114,11 @@ class ClockedObject : public SimObject
      */
     ClockedObject(const ClockedObjectParams* p) :
         SimObject(p), tick(0), cycle(0), clock(p->clock)
-    { }
+    {
+        if (clock == 0) {
+            fatal("%s has a clock period of zero\n", name());
+        }
+    }
 
     /**
      * Virtual destructor due to inheritance.