Hi Ken et al:
Just a couple more points on power equations. As some posters have indicated, the kCV^2f equations give you the right shape, and simple power models are tuned to make it work. One thing that works for the developers of power models is what goes up must come down -- the number of 0->1 and
1->0 transitions are equal. So if we can get one constant that represents the total switching current from supply to ground for a pair of transitions, we can then multiply that by the frequency of transition and the supply voltage to come up with a good stab at dynamic power over a set of transitions.
It is worth noting that there are many factors that go into the current drawn during switching. In addition to the charging & discharging of capacitance, you also have the crow-bar or short-circuit current of CMOS logic. This current will depend on whether you have a rising or falling edge due to different rise- and fall-delays (and input slew rates) which depends on the exact ratioing of the logic and upstream drivers. But again, if you measure the power over a rising + falling edge and average it to get power per transition, this will work out.
Provided the assumption that switching current is linear in activity holds, you can lump the short-circuit current in with the charge/discharge current. Really you're just making an equation P = kf -- there is no physical capacitance in the equation anymore. One ramification is that such a model for a driver + wire cannot be scaled with wirelength to obtain a power estimate for a different wire -- the short circuit component does not scale the same way as the capacitive component.
At some point this P = kf model breaks down since rapidly switching nodes may not fully charge/discharge caps (or equivalently hit full rail-to-rail swing) since there is not enough time to do so. So "k" values obtained at low switching rates will tend to be pessimistic at high frequencies -- but that's probably good enough. You can make things arbitrarily complicated by considering crazy things like as power draw increases so too does voltage droop, so dynamic power per transition can actually drop... but these effects are subtle and the reality is that the biggest source of power error is lack of good estimates of switching activity per node!
Another fun part of things is that there must be enough constants k for all the various resources and situations of interest. For example, the switching power of a gate can depend on the logic values seen at the various inputs (beyond just affecting whether the gate toggles). This "state-dependent" dynamic power is a detail that could be ignored by taking an average or representative case and hoping that no design repeatedly hits a corner case, or it can be modeled if it is deemed important.
As discussed in some postings, you usually do not care where power is burned provided it is burnt on-chip -- view the circuit as a black box and you get Power = Current Drawn * Voltage. But if you take terminated I/O standards as an example, there is some complication since current supplied by on-chip rails is partially dissipated off chip. If you are designing your power supply, you want to know the current. If you are designing your cooling solution, you want to know the on-chip power dissipation. If you are looking at your system thermal management, total power dissipation is what you want.
The bottom line is 1/2CV^2F just begins to scratch the surface of the wonderful world of power!
Regards,
Paul Leventis Altera Corp.