# Patent

## Title
Power management architecture, method and configuration system

## Abstract

Power management architectures, methods and systems for programmable integrated circuit are disclosed. One embodiment of the present invention pertains to a power management software architecture which comprises power management modules each associated with a respective driver. Each driver is associated with a component of a programmable integrated circuit and displayable as a graphic image within an on-screen display of an integrated circuit design tool for programming the programmable integrated circuit. In addition, each power management module is operable to report power consumption data customized to its respective driver. The power management software architecture also comprises a power source module associated with a power source for the programmable integrated circuit for reporting power supply characteristics. Furthermore, the power management software architecture comprises a global power management module operable to control a power state of the programmable integrated circuit based on communication with the power management modules and the power source module.

## Background
RELATED APPLICATIONS
This application claims the benefit and priority of Provisional Application No. 60/926,096 entitled “Novel Features for a Design Tool” filed on Apr. 25, 2007, which is incorporated herein by this reference. This application is also related to U.S. Pat. No. 6,971,004, application Ser. No. 9/989,817, filed Nov. 19, 2001 entitled “System and Method of Dynamically Reconfiguring a Programmable System on a Chip” and patent application Ser. No. 10/256,829, filed Sep. 27, 2002 entitled “Graphical User Interface for Dynamically Reconfiguring a Programmable Device” which are hereby incorporated by this reference.


FIELD OF TECHNOLOGY
Embodiments of the present invention relate to the field of integrated circuit design. More particularly, embodiments of the present invention relate to a power management architecture, method and system for programmable integrated circuit.
BACKGROUND
A power management system manages power consumption of various components of a device by putting the device through different power states. For example, it turns off the power or switches the device to a low-power state after a period of inactivity. The power management system for a portable or embedded system is desired for many reasons, particularly to prolong battery life and reduce heat dissipation in the device. Low heat dissipation resulting from the lower power consumption increases stability of the device as well.
The power states may include an active state, a standby state, a sleep state or a deep sleep state. For instance, deep sleep state may imply that no power or very minimal power is supplied to the device which is inactive for the most part. The standby state may be imposed when a battery for the device is plugged in and the clock is powered. The standby state may be imposed between active states of the device. When a power up request from various components of the device is made, the device makes a transition from the standby state to the active state. For the active state, the battery power is fully supplied and the clocks are completely turned on.
When the device is partially active for prolonged period time, it may be put to the sleep state. During the sleep state, both the battery voltage and one or more clocks to some components of the device may be available, but the clock to other parts of the device may be gated. Accordingly, longer battery life as well as improved performance of the device may be achieved by effectively performing power management of the device.
Currently, in order to design a power management system in a device or circuit, an engineer first determines the power management requirements and handwrites the requirements into code. Accordingly, the manual coding process may be time consuming and tedious. Furthermore, once it is completed, the code may not be readily susceptible to debugging or revision. The engineer or designer may have to go through arduous steps for these tasks especially when the engineer is not the same person who performed the coding. Furthermore, the manual coding may not be an option for those who do not have the required technical expertise in programming.
SUMMARY
Accordingly, what is needed is a software architecture or method which enables a user to design and implement a power management system in a user friendly way. Embodiments of the present invention provide these advantages.
One embodiment of the present invention pertains to a power management software architecture which comprises power management modules each associated with a respective driver usage within an electronic design tool. Each driver is associated with a component of a programmable integrated circuit design and displayable as a graphic image within an on-screen display of the integrated circuit design tool for debugging the design and programming the programmable integrated circuit.
Within the power management, each power management module is operable to report power consumption data customized to its respective driver. The power management software architecture also comprises a power source module associated with a power source for the programmable integrated circuit for reporting power supply characteristics of the power source. Furthermore, the power management software architecture comprises a global power management module for communicating with the power management modules and the power source module and, based thereon, operable to control a power state of the programmable integrated circuit design. Power management functionality can be introduced into an integrated circuit design by the user placing a graphical representation of the global power management module into the on-screen display.
Another embodiment of the present invention pertains to a power management method which comprises accessing power consumption data of components in a programmable integrated circuit design. For the method, respective drivers for the components are displayable as graphic images within an on-screen display of an integrated circuit design tool for programming the programmable integrated circuit. The respective drivers are also operable to add a function of collecting and reporting the power consumption data of the components. The method also comprises accessing power supply data of one or more power sources associated with the programmable integrated circuit and determining a power state of the programmable integrated circuit by assessing the power consumption data and the power supply data. Each driver has the ability to customize its own internal functionality for each defined power state. Each driver also reports its own customized power usage based on its current power state.
Yet another embodiment of the present invention pertains to a power management configuration system which comprises an integrated circuit design tool for enabling power management of a programmable integrated circuit design, where steps of the power management are according to the method stated above. For the power management configuration system, the integrated circuit design tool is operable to display respective drivers for components of the programmable integrated circuit within an on-screen display, and wherein respective drivers corresponding to the components are operable to add one or more power management characteristics to the programmable integrated circuit design. In addition, the power management configuration system also comprises a code generator module for automatically generating application firmware used for the power management based on the steps of the power management and the power management characteristics.
By using the embodiments of the present invention, a designer can add a power management framework to an integrated circuit design by interacting with on-screen graphical user interfaces (GUIs) that are associated with each power module, including a high level global power module that coordinates the power management functionality of the driver modules.



BRIEF DESCRIPTION OF THE DRAWINGS
Example embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
FIG. 1 is a block diagram of exemplary power management software architecture, according to one embodiment,
FIG. 2 is a block diagram of exemplary power management software architecture showing individual modules, according to one embodiment.
FIG. 3 is a block diagram of an exemplary power management configuration system, according to one embodiment.
FIG. 4 is an exemplary on-screen graphical user interface of the power management configuration system of FIG. 3, according to one embodiment.
FIG. 5 is an exemplary graphical user interface of the power management configuration system of FIG. 3 for illustrating power management characteristics, according to one embodiment.
FIG. 6 is a process flow chart of an exemplary power management method, according to one embodiment.
FIG. 7 is an interactive diagram illustrating exchanges between the modules in an exemplary power management system, according to one embodiment.



Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.
DETAILED DESCRIPTION
Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the present invention.
Some portions of the detailed descriptions which follow are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means generally used by those skilled in data processing arts to effectively convey the substance of their work to others skilled in the art. A procedure, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, optical, or quantum signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present application, discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, “displaying” or the like, refer to the action and processes of a computer system, or similar processing device (e.g., an electrical, optical, or quantum, computing device), that manipulates and transforms data represented as physical (e.g., electronic) quantities. The terms refer to actions and processes of the processing devices that manipulate or transform physical quantities within a computer system's component (e.g., registers, memories, other such information storage, transmission or display devices, etc.) into other data similarly represented as physical quantities within other components.
FIG. 1 is a block diagram of exemplary power management software architecture 100, according to one embodiment. In one embodiment, the power management software architecture 100 includes power management modules 102, one or more power source modules 104 and a global power management module 106.
In one embodiment, the power management modules 102 are associated with their respective drivers, where each driver is associated with a component of a programmable integrated circuit design accessible via a computer controlled design tool (e.g., a programmable electronic device, microcontroller, system on chip, etc.). As will be illustrated in detail in FIG. 4, each driver can be displayed as a graphic image (e.g., icon, text, etc.) within an on-screen display of the integrated circuit design tool for designing the integrated circuit design and programming the programmable integrated circuit with the design. The drivers are associated with components that are introduced into the overall design by placing graphic images of the components into the on-screen display. Each of the power management modules 102 can be configured to report power consumption data and wake-up events through interacting with its respective driver. In one embodiment, each of the power management modules 102 can be configured to communicate its respective component's readiness to engage in a particular power state to the global power management module 106.
In one embodiment, the power source module 104 is associated with a power source for the programmable integrated circuit. In one exemplary implementation, the power source may be a type of battery, such as alkaline battery, coin cell battery, etc. Alternatively, the power source may be a constant power source such as AC power. In one embodiment, the power source module 104 can report power supply characteristics of the power source.
In one embodiment, the global power management module 106 can communicate with the driver based power management modules 102 and the power source module 104 and is operable to control a power state of the programmable integrated circuit design and/or power states of respective components associated with the power management modules 102. In one embodiment, the communication between the power management modules 102 and the global power management module 106 may be performed through one or more channels which process information in a common format. In one exemplary implementation, the global power management module 106 is associated with a state machine.
In one embodiment, the global power management module 106 can impose the power state on the power management modules 102. In one exemplary implementation, the global power management module 106 performs power management functions by computing and assessing an aggregate power consumption of the power management modules 102 based on the power consumption data it receives from the modules as the circuit is operational.
In one embodiment, by utilizing the integrated circuit design tool, the power management for the programmable integrated circuit can be activated if a user places a graphical representation of the global power management module 106 or one of the power management modules 102 within the on-screen display of the integrated circuit design tool. In one embodiment, each of the power management modules 102 can be used to define power consumption characteristics for a respective component of the programmable integrated circuit. In one exemplary implementation, the power management characteristics include a power priority of the respective component and power consumption rates for specified functionalities of the respective component.
In one embodiment, each of the power management modules 102 is set to configure one or more wakeup events for generating an interrupt signal directed to the global power management module 106. In one embodiment, each of the power management modules 102 includes an associated graphical user interface (GUI) that can be displayed within the on-screen display of the integrated design tool. In addition, the associated GUI can be operated to control the power management characteristics of the power management module. In this fashion, power management can be introduced into an integrated circuit design by a designer interfacing with select GUIs associated with the various modules as described herein.
FIG. 2 is a block diagram of exemplary power management software architecture 200, according to one embodiment. It is appreciated that the power management software architecture 200 is an exemplary embodiment of the power management software architecture 100. In one embodiment, the power management software architecture 200 comprises multiple driver specific power management modules 202, one or more channel specific power management modules 210 and a global power management module 216. The driver specific power management modules are each associated with a driver of the integrated circuit design.
In one embodiment, a power management (PM) driver (e.g., 204, 206, 208, etc.) is an exemplary implementation of the individual driver specific power management module 202. The PM driver is a high level design element visible to the user in a catalogue that can be manipulated or configured by the user in an integrated circuit design environment. The PM driver can correspond to a graphical icon or widget on the design screen of the integrated circuit design environment. The graphical icon can be linked with other icons or drivers or it can be configured. In the integrated circuit design environment, the graphical icon represents not only the hardware characteristics but also the presentation of data associated with a respective component of the programmable integrated circuit. Various design specific characteristics can be selected by the user interfacing with the GUI associated with the driver specific module.
In one embodiment, the PM driver can be used to perform power management of a power source or a power consuming component. In one exemplary implementation, the PM driver for the power source is operable to track how well power is delivered to the programmable integrated circuit or its respective components over time. In one exemplary implementation, certain battery characteristics or types (e.g., alkaline battery that can supply battery well over time or coin cell battery which needs time to recharge it) can be configured by selecting a respective PM driver. In one embodiment, some of the inherent characteristics of the power supplies can be incorporated into the definition of PM driver itself.
For consumption standpoint, the PM driver for its respective component can determine how much power or current the component needs for certain power state imposed upon the component for a period of time, according to one embodiment. This determination can be also resolved if the power source has enough power to supply the current needs of the design based on power requirements of the design. These would be communicated to the global power management module 216 which compares with the amount of power supplied by the power source. Then, the global power management module 216 can determine whether the programmable integrated circuit can continue to operate or needs to go to sleep for the power source to recover.
In one embodiment, the channel specific power management modules 210 comprise one or more power management (PM) channels (e.g., a PM channel 212, a PM channel 214, etc.). In one exemplary implementation, the number of PM channels is less than the number of PM drivers. In one embodiment, the PM channel is a low level construct which presents information communicated in a known common format while the PM driver translates that information to a format specific to its respective component.
In one embodiment, the global power management module 216 is an inherent state machine 218. In one exemplary implementation, an interrupt from a pin, an interrupt from a PM driver or a periodic wake up can trigger the global power management module 216 to check the status of the programmable integrated circuit (e.g., device, system, etc.). In one embodiment, the global power management module 216 receives data from individual PM drivers and dictates the power state of the system.
In one embodiment, the global power management module 216 oversees an interaction between the PM drivers for consumption and a PM driver for power resource, where the interaction is transparent to the user. In one exemplary implementation, a change in the state of a pin controlling power to a certain external device, which is managed by a respective PM driver, can be communicated to the global power management module 216 via the PM channel(s).
FIG. 3 is a block diagram of an exemplary power management configuration system 300, according to one embodiment. In one embodiment, the power management configuration system 300 comprises an integrated circuit design tool 302 and a code generator module 304. In one embodiment, the integrated circuit design tool 302 is operable to implement power management software architecture 306 to a programmable integrated circuit, device or system. It is appreciated that the power management software architecture 306 is one exemplary embodiment of the power management software architecture 100 of FIG. 1.
In one embodiment, the power management software architecture 306 is based on a power management method which comprises accessing power consumption data of components in the programmable integrated circuit, accessing power supply data of one or more power sources associated with the programmable integrated circuit, and determining a power state of the programmable integrated circuit by assessing the power consumption data and the power supply data.
In one embodiment, the integrated circuit design tool 302 can direct to display respective drivers 310 for the components of the programmable integrated circuit within an on-screen display 308 using one or more graphical user interfaces (GUIs). In one embodiment, one or more power management characteristics 312 represented as widgets or graphical icons can be added to the drivers 310, thus adding the power management characteristics to the programmable integrated circuit or its components. It is appreciated that the power management characteristics 312 can be implemented using the power management modules 102 of FIG. 1 or the PM drivers of FIG. 2.
In one embodiment, the code generator module 302 can automatically generate application firmware used for the power management based on the power management software architecture 306 or corresponding power management method and the power management characteristics 312 added to the programmable integrated circuit or its components.
FIG. 4 is an exemplary on-screen view 400 of the power management configuration system 300 of FIG. 3, according to one embodiment. In one embodiment, the on-screen view 400 includes an editor pane 402, a resource pane 404 and a power status pane 406. In one embodiment, the editor pane 402 enables power management if a user places a graphical representation (e.g., PM widget 416A through PM widget 416I or more) having one or more power management characteristics within the on-screen view 400. In one embodiment, the power management characteristics can be modified or configured.
In one embodiment, the resource pane 404 displays all the resources (e.g., PM widgets associate with power consumption and/or PM widgets associated with power source) available. In one embodiment, the power status pane 406 displays the present status of total power supplied 418, total power consumed 420 and/or power ratings of individual components (e.g., a timer power 422, signal generator power 424, transceiver power 426, clock power 428, etc.).
In one embodiment, the editor pane 402 is used to configure certain power management features or characteristics at the driver level. In the power management software architecture of FIG. 1 or 2, the global power management module retrieves all these data from the PM drivers or power management modules represented as PM widgets, and add them up. If the power being consumed exceeds the power being supplied, the system or device may be put to sleep depending on the global power management module, until the battery regenerates itself, or it may be prohibited from performing certain operations. In one embodiment, channels associated with the drivers can be configured to be on or off. In one embodiment, the global power management module can disable one or more driver module until the power source is able to supply sustained power. In one embodiment, the global power management module can turn itself off. In one embodiment, drivers that are not participating in the power management are transparent to and/or coexist with those ones that are participating in the power management.
As illustrated in FIG. 4, in one exemplary implementation, the user can select and connect appropriate drivers (e.g., drivers for their respective components in general) for a number of components which make up a subsystem of a programmable integrated circuit using the editor pane 402. The drivers include a timer driver 408, a signal generator driver 410, a transceiver driver 412 and a clock driver 414. Once the drivers are selected and connected, the user can introduce power management to the circuit by dragging and dropping one of the PM widgets available on the resource pane 404 to one or more of the component drivers. Each of the PM widgets may be a power management module or PM driver for its respective component. Alternatively, the PM widgets may represent a power source module. Furthermore, the PM widgets can include power management modules for channels or a global power management module.
In one exemplary embodiment, when the user brings a cursor to a component driver, the user is notified of one or more PM widgets (e.g., which may be highlighted) that can be loaded to the component for power management. Then the user can drag and drop one of the candidate PM widgets to the component driver and/or click the PM widget for further modification as illustrated in FIG. 5. Once the PM widget is dropped to the component driver, the power status pane 406 updates the current or expected power consumption of the circuit based on the new addition. In FIG. 5, with the addition of four new components to the circuit, 145 mW of additional power is needed. However, the total power consumed 420 which is 225 mW is still lower than the total power supplied 418 which is 300 mV. By utilizing the power status pane 406, the user can design the circuit within the means of available power.
FIG. 5 is an exemplary graphical user interface view 500 of the power management configuration system of FIG. 3 for illustrating power management characteristics of a driver power module, according to one embodiment. In one embodiment, the graphical user interface view 500 includes panes for power priority 502, power consumption rate 510, power setting 524 and wakeup event 526. The driver power module is able to define its own power consumption characteristics 524 for the various power states.
In one exemplary implementation, the GUI for the power priority 502 can be used by the user to set power priorities of the components in a programmable integrated circuit which define power states for various components of the design. For example, if component ‘A’ and component ‘B’ were to compete for power being supplied, one with the higher priority would win over the other with the lower priority within an environment of limited power. In one exemplary implementation, the GUI for the power consumption rate 510 can be used to set power consumption rates for specified functionalities of each component. Accordingly, the user can select consumption rates for different functionalities. As illustrated in FIG. 5, for the transceiver 412 of FIG. 4, the transmission mode (e.g., transmit 512) is set for high power consumption (e.g., high 518) than the reception mode (e.g., receive 514) which is set for medium power consumption. This power consumption data is communicated to the graphical power management module for aggregation.
In one exemplary implementation, the GUI for the power setting 524 can be used to adjust values for the different power levels used to set the power consumption rate 510. The PM widget or power management module is written to know that the respective component has a certain power setting (e.g., high, medium or low). In addition, the user can select and/or adjust to a particular power setting. In one exemplary implementation, the GUI for the wakeup event 526 can be used to set one or more wakeup events which trigger the respective power management module to forward a wakeup signal to the global power management module. In FIG. 5, “on receiving incoming signal” is set as a wakeup event. It is appreciated that the fields of FIG. 5 can be altered in accordance with the custom design of the driver associated with the GUI of FIG. 5.
FIG. 6 is a process flow chart of an exemplary power management method 600, according to one embodiment. In operation 602, power consumption data of components in a programmable integrated circuit is accessed. In one embodiment, respective drivers for the components are displayable as graphic images within an on-screen display of an integrated circuit design tool for programming the programmable integrated circuit. In one embodiment, the respective drivers are operable to add a function of collecting and reporting the power consumption data of the components.
In operation 604, power supply data of one or more power sources associated with the programmable integrated circuit are accessed. In one embodiment, the accessing the power consumption data or the power supply data is performed by a polling. Furthermore, a command imposing the power state is forwarded to each of the components in the programmable integrated circuit.
In operation 606, a power state of the programmable integrated circuit is determined by assessing the power consumption data and the power supply data. In one embodiment, the assessing the power consumption data and the power supply data comprises comparing an aggregate of the power consumption data of the components and the power supply data.
FIG. 7 is an interactive diagram illustrating exchanges between the modules in an exemplary power management system 700, according to one embodiment. In one embodiment, the power management system 700 comprises a global power management module702, a power source module 704 and a number of power management modules (e.g., which includes a PM module 706). It is appreciated that the power management system 700 is an exemplary embodiment of the power management system 100 of FIG. 1 or the power management system 200 of FIG. 2. It is also appreciated that the modules are associated with their corresponding components. In one exemplary implementation, the global power management module 702 is associated with a state machine, the power source module 704 with a power supply device and the power source modules with corresponding components in the circuit or system.
In one embodiment, the global power management module 702 forwards a polling signal 708 to the power source module 704 to inquire the power status of the power source module 704. Upon receiving the signal, the power source module 704 may send power supply data 710 back to the global power management module 702. In addition, the power source module 704 may forward an interrupt signal 712 to the global power management module 702 to report an event at the power source module, such as critical power state of the power supply device.
In one embodiment, the global power management module 702 forwards a polling signal 714 to each of the power management (PM) modules. For example, the PM module 706 may be polled by the global power management module 702 inquiring its power status. Upon receiving the signal, the PM module 706 may transmit power consumption data 716 back to the global power management module 702. In one embodiment, the PM module 706 may forward an interrupt signal 718 to the global power management module 702. In one exemplary implementation, the interrupt signal 718 can be a request for changing the current power state of a particular PM module (e.g., the PM module 706) and/or of the entire device or system. For example, if the PM module 706 is assigned to a transceiver of the system, the PM module 706 may transmit the interrupt signal 718 to the global power management module 702 to wake the system up for data transmission or reception. Alternatively, the PM module 706 can inform the global power management module 702 of its idle state.
In one embodiment, the global power management module 702 can aggregate the power supply data 710 and the power consumption data 716 and impose a certain power state to the system as well as to the individual PM modules. In one exemplary implementation, the global power management module 702 put the system in sleep mode or deep sleep mode if the power source module 704 reports that the battery is running low. The global power management module 702 can also put the system in sleep mode or deep sleep mode if majority of the PM modules 706 are idle. It is appreciated that the interactive diagram illustrated in FIG. 7 is one exemplary implementation of the power management system 700. Accordingly, similar or different exchanges utilizing the power management can takes place among the modules.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

## Claims

1. A power management software architecture, comprising:
a plurality of power management modules each associated with a respective driver, wherein each driver is associated with a component of a programmable integrated circuit and displayable as a graphic image within an on-screen display of an integrated circuit design tool for programming the programmable integrated circuit, and wherein each power management module is operable to report power consumption data customized to its respective driver;
a power source module associated with a power source for the programmable integrated circuit for reporting power supply characteristics of the power source; and
a global power management module for communicating with the plurality of power management modules and the power source module and, based thereon, operable to control a power state of the programmable integrated circuit.

2. The power management software architecture of claim 1, wherein the power management is activated in response to a user placing a graphical representation of the global power management module within the on-screen display.

3. The power management software architecture of claim 1, wherein the power management is activated in response to a user placing a graphical representation of one of the plurality of power management modules within the on-screen display.

4. The power management software architecture of claim 1, wherein the each power management module is operable to define power consumption characteristics for a respective component of the programmable integrated circuit.

5. The power management software architecture of claim 1, wherein the each power management module comprises an associated graphical user interface (GUI) operable to be displayed within the on-screen display and wherein the associated GUI is operable to control power management characteristics of the each power management module.

6. The power management software architecture of claim 5, wherein the power management characteristics comprise a power priority of a respective component; and power consumption rates for specified functionalities of the respective component.

7. The power management software architecture of claim 1, wherein the global power management module is operable to impose the power state on the plurality of power management modules.

8. The power management software architecture of claim 1, wherein the global power management module is operable to compute an aggregate power consumption of the plurality of power management modules based on the power consumption data and based thereon operable to perform power management functions.

9. The power management software architecture of claim 1, wherein the each power management module is operable to communicate its respective component's readiness to engage in a particular one of the power state to the global power management module.

10. The power management software architecture of claim 9, wherein the each power management module is operable to configure at least one wakeup event for generating an interrupt signal directed to the global power management module.

11. The power management software architecture of claim 1, wherein the communicating and the control is performed through at least one channel which processes information in a common format.

12. The power management software architecture of claim 1, wherein the global power management module is associated with a state machine.

13. A power management method, comprising:
accessing power consumption data of a plurality of components in a programmable integrated circuit design, wherein respective drivers for the plurality of components are displayable as graphic images within an on-screen display of an integrated circuit design tool for developing the programmable integrated circuit design, and wherein the respective drivers are operable to add a function of collecting and reporting the power consumption data of the plurality of components;
accessing power supply data of at least one power source associated with the programmable integrated circuit design; and
determining a power state of the programmable integrated circuit design by assessing the power consumption data and the power supply data.

14. The power management method of claim 13, wherein the accessing the power consumption data or the power supply data is performed by a global power management unit performing polling.

15. The power management method of claim 13, wherein the assessing the power consumption data and the power supply data comprises comparing an aggregate of the power consumption data of the plurality of components and the power supply data.

16. The power management method of claim 13, further comprising forwarding a command imposing the power state to each of the plurality of components in the programmable integrated circuit design.

17. A design tool comprising instructions that when executed on a processor implement a method of power management of a programmable integrated circuit design, the method comprising:
accessing power consumption data of a plurality of components in the programmable integrated circuit design;
accessing power supply data of at least one power source associated with the programmable integrated circuit design;
determining a power state of the programmable integrated circuit design by assessing the power consumption data and the power supply data, wherein the integrated circuit design tool is operable to display respective drivers for the plurality of components within an on-screen display, wherein the respective drivers are operable to add at least one power management characteristic to the programmable integrated circuit design; and
automatically generating application firmware to implement the power management including the at least one power management characteristic.

18. The power management configuration system of claim 17, wherein the power management is activated in response to a user placing a graphical representation of one component of the plurality of components within the on-screen display.

19. The power management configuration system of claim 17, wherein the at least one power management characteristic comprises: a power priority of each of the plurality of components; and power consumption rates for specified functionalities of each of the plurality of components.

20. The power management configuration system of claim 17, wherein the at least one power management characteristic comprises a wakeup event for each of the plurality of components.