diff options
Diffstat (limited to 'src/python')
-rw-r--r-- | src/python/m5/ticks.py | 25 | ||||
-rw-r--r-- | src/python/pybind11/core.cc | 4 |
2 files changed, 12 insertions, 17 deletions
diff --git a/src/python/m5/ticks.py b/src/python/m5/ticks.py index 582c65cac..fe258421e 100644 --- a/src/python/m5/ticks.py +++ b/src/python/m5/ticks.py @@ -31,26 +31,14 @@ from __future__ import print_function import sys from m5.util import warn -tps = 1.0e12 # default to 1 THz (1 Tick == 1 ps) -tps_fixed = False # once set to true, can't be changed - -# fix the global frequency and tell C++ about it +# fix the global frequency def fixGlobalFrequency(): import _m5.core - global tps, tps_fixed - if not tps_fixed: - tps_fixed = True - _m5.core.setClockFrequency(int(tps)) - print("Global frequency set at %d ticks per second" % int(tps)) + _m5.core.fixClockFrequency() def setGlobalFrequency(ticksPerSecond): from m5.util import convert - - global tps, tps_fixed - - if tps_fixed: - raise AttributeError, \ - "Global frequency already fixed at %f ticks/s." % tps + import _m5.core if isinstance(ticksPerSecond, (int, long)): tps = ticksPerSecond @@ -61,17 +49,20 @@ def setGlobalFrequency(ticksPerSecond): else: raise TypeError, \ "wrong type '%s' for ticksPerSecond" % type(ticksPerSecond) + _m5.core.setClockFrequency(tps) # how big does a rounding error need to be before we warn about it? frequency_tolerance = 0.001 # 0.1% def fromSeconds(value): + import _m5.core + if not isinstance(value, float): raise TypeError, "can't convert '%s' to type tick" % type(value) # once someone needs to convert to seconds, the global frequency # had better be fixed - if not tps_fixed: + if not _m5.core.clockFrequencyFixed(): raise AttributeError, \ "In order to do conversions, the global frequency must be fixed" @@ -79,7 +70,7 @@ def fromSeconds(value): return 0 # convert the value from time to ticks - value *= tps + value *= _m5.core.getClockFrequency() int_value = int(round(value)) err = (value - int_value) / value diff --git a/src/python/pybind11/core.cc b/src/python/pybind11/core.cc index 41eeed200..57fcb94cb 100644 --- a/src/python/pybind11/core.cc +++ b/src/python/pybind11/core.cc @@ -245,7 +245,11 @@ pybind_init_core(py::module &m_native) .def("seedRandom", [](uint64_t seed) { random_mt.init(seed); }) + .def("fixClockFrequency", &fixClockFrequency) + .def("clockFrequencyFixed", &clockFrequencyFixed) + .def("setClockFrequency", &setClockFrequency) + .def("getClockFrequency", &getClockFrequency) .def("curTick", curTick) ; |