summaryrefslogtreecommitdiff
path: root/src/sim/voltage_domain.hh
diff options
context:
space:
mode:
authorStephan Diestelhorst <stephan.diestelhorst@arm.com>2014-08-12 19:00:44 +0100
committerStephan Diestelhorst <stephan.diestelhorst@arm.com>2014-08-12 19:00:44 +0100
commit16351ba8d6b98e4dc0012cfc4083fe93ec6d76ce (patch)
tree59c73b35dd747121f962e03f7d43a45a824ced9a /src/sim/voltage_domain.hh
parent65aaf62714f783073b994f89fddf8558332607e8 (diff)
downloadgem5-16351ba8d6b98e4dc0012cfc4083fe93ec6d76ce.tar.xz
energy: Tighter checking of levels for DFS systems
There are cases where users might by accident / intention specify less voltage operating points thatn frequency points. We consider one of these cases special: giving only a single voltage to a voltage domain effectively renders it as a static domain. This patch adds additional logic in the auxiliary parts of the functionality to handle these cases properly (simple driver asking for N>1 operating levels, we should return the same voltage for all of them) and adds error checking code in the voltage domain.
Diffstat (limited to 'src/sim/voltage_domain.hh')
-rw-r--r--src/sim/voltage_domain.hh4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sim/voltage_domain.hh b/src/sim/voltage_domain.hh
index 9ffbe7bbc..ab96abad8 100644
--- a/src/sim/voltage_domain.hh
+++ b/src/sim/voltage_domain.hh
@@ -77,6 +77,10 @@ class VoltageDomain : public SimObject
*/
double voltage(PerfLevel perf_level) const
{
+ chatty_assert(perf_level < numVoltages(), "VoltageDomain %s "\
+ "request for voltage perf level %u is outside "\
+ "of numVoltages %u", name(), perf_level,
+ numVoltages());
return voltageOpPoints[perf_level];
}