At Cadence, there is a big focus on low power design. In the mobile world, power has become the primary design constraint. Everybody knows that dead batteries are no fun. When Cadence IT sent me a new laptop last year, I was very happy to get a machine which was faster, had more memory, and a bigger hard drive, but was sad to learn that the battery lasted about 2 hours vs. a 4 hour battery on the old machine. This is the difference between enough battery to fly to San Jose and not enough battery to fly to San Jose. There are many technologies available from Cadence that contribute to the low power solution. The Power Forward Initiative has been around for a few years now,and low power continues to be an increasingly popular topic. Low power will also be a big topic at DAC.
Many of the power saving features in a chip are controlled by software. This has lead to the need to verify the various power modes of a device by running software. Verifying power transitions is a good problem to be solved by a Metric Driven Verification flow including ISX (Incisive Software Extensions).
Even with all of the focus on designing low power chips with all of the available techniques (see the one minute power manager primer for an introduction) all of the efforts of the chip design and low level power control software will be nullified if the application software is not optimized for power. Even the best device with the best operating system will be a flop in the market if the battery life does not match user expectations.
One of the biggest challenges today is that the software environment in today's mobile devices is open. This means users can add applications that were not developed by the manufacturer and combinations of applications will run together that may not have been tested together. This years Google Developer Conference contained an interesting session on low power titled "Coding for Life -- Battery Life, That is". There is a video of the talk, and for those that don't have a hour to spend watching it, the slides are also available. Software engineers are talking about milliamperes and milliamp hours. Understanding where all the power goes and having tools to analyze which parts of the software are using battery is a crucial topic that software developers need to pay attention to and many users will want to understand so they can find a misbehaving application that may be draining all of the device power. I love the future feature that will automatically uninstalling an application that drains too much power (slide 31). It's clear from the talk that the software engineers knowledge about power usage can make a huge difference in the battery life of a mobile device and doing it well is much more complex than just starting an application, letting the device sit idle, and making sure the battery doesn't run out because some task is using the CPU when it should not be.
It seems the topic of power management must be addressed at all levels of system design and verification, including the application level software. Having a good understanding of power at many levels will result in successful products that exceed user expectations when it comes to battery life.
Good luck in all your efforts to make the battery last longer, and let us know some of the techniques you use to address the problem.