config: Add an Energy param type.
authorGabe Black <gabeblack@google.com>
Fri, 10 Nov 2017 11:37:37 +0000 (03:37 -0800)
committerGabe Black <gabeblack@google.com>
Mon, 13 Nov 2017 17:13:09 +0000 (17:13 +0000)
This type expects values in joules (J).

Change-Id: I77a3a4f1c19443f573d5fe7a84d5abd954ce1603
Reviewed-on: https://gem5-review.googlesource.com/5625
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

src/python/m5/params.py

index c241b054d05c158585e4344392c6db350c7f7773..11a55e55885fc867182b5e8463aa582b78cd707e 100644 (file)
@@ -1563,6 +1563,17 @@ class Current(Float):
         value = convert.toCurrent(value)
         super(Current, self).__init__(value)
 
+class Energy(Float):
+    ex_str = "1pJ"
+
+    def __new__(cls, value):
+        value = convert.toEnergy(value)
+        return super(cls, Energy).__new__(cls, value)
+
+    def __init__(self, value):
+        value = convert.toEnergy(value)
+        super(Energy, self).__init__(value)
+
 class NetworkBandwidth(float,ParamValue):
     cxx_type = 'float'
     ex_str = "1Gbps"
@@ -2035,7 +2046,7 @@ __all__ = ['Param', 'VectorParam',
            'TcpPort', 'UdpPort', 'EthernetAddr',
            'IpAddress', 'IpNetmask', 'IpWithPort',
            'MemorySize', 'MemorySize32',
-           'Latency', 'Frequency', 'Clock', 'Voltage', 'Current',
+           'Latency', 'Frequency', 'Clock', 'Voltage', 'Current', 'Energy',
            'NetworkBandwidth', 'MemoryBandwidth',
            'AddrRange',
            'MaxAddr', 'MaxTick', 'AllMemory',