1 ) A method of creating models for power estimation of a circuit comprising: a) generating an input space for the circuit; b) separating the input space into multiple power modes corresponding to regions that display similar power behavior; c) generating separate power models for each of said multiple power modes; and d) creating a power mode identification function that selects an appropriate power model from the separate power models based on the present and past values of inputs to the circuit.