A Power_Manager can be updated via the Power Table directly, or through the use of RegEx expressions that will manually alter the same Power Table entries. A Power_Manager Table references the devices included in the power domain, including specific state names, speed (Mhz), t_OnOff (time), and operating voltages. The power domain may be a single centralized or decentralized power manager. A Power_Manager Table can be used to implement specific state/power levels that take voltage, speed, and possibly temperature (new col) into account. These may reflect a specific process point for the chip, such as 7 nm.
The Power_Manager contains a Delay_to_Change_State param where one can define specific state to state t_OnOff times, whereas t_OnOff applies to remaining states. There is also an Expression_List param that acts as expressions for device entries; where expressions are executed sequentially.
RegEx expressions are itemized in Power Modeling section:
newPowerLevel – Dynamically modify the power level of a particular state of a device.
powerCumulative – Gets the cumulative power consumed for a device.
powerCurrent – Gets the instantaneous power as a double value for the device.
powerManager – Gets the complete power table as a data structure.
powerUpdate – Updates the current power state of the block; RHS value is the new power state of the block.
powerUpdateN – Updates the current power state of a particular Queue, such as Smart_Timed_Resource.
These functions allow a user to modify the Power Table after a simulation has started executing, and possibly implementing a more complex centralized controller. While the Delay_to_Change_State and Expression_List parameters overlap the above RegEx functions somewhat, it provides more flexibility for the user in implementing the desired operation.