"Power" calculations in Sim-Panalyzer are essentially done in two steps.
First, the number of transitions are counted for each module, and this is
used to determine each module's effective capacitance (switching capacitance
and leakage capacitance are calculated separately). Next, this
effective capacitance, based on how much switching has happened in the current cycle,
is then used to calculate power using the well-known formulas:
E (per cycle) = (0.5 Ceff) * V2
and
P = E / cycle length = E * cycle frequency
(in sim-panalyzer, Ceff incorporates the 0.5, so
estimate_pdissipation() omits it).
Each cycle, this power value is "registered" at least two places: the
"total" and the "average" power dissipation.
The average dissipation is defined as the total dissipation / number of
simulation cycles. The average dissipation is actually average power,
in Watts, since capacitances, clock frequency, and voltage are all
translated to standard units before power is calculated.
The total dissipation, however, is the sum of individual power
dissipation sample values. It is *not*, therefore, the amount of Joules
consumed. The number of Joules consumed would instead be:
cycle length * total dissipation.
This is because:
E = (p_1 * t_1 + p_2 * t_2 + ... p_n * t_n) = t * (p_1 + p_2 + ... +
p_n)
where p_i is a power value sample and t_i is an interval length, and
all t_i's are equivalent.
Therefore,
*.pdissipation is in (Joules * cycles / second)
*.avgdissipation is in (Joules / second)
-- Thanks to Brett Meyer of Carnegie Mellon University for this write-up
--