high power consumption affects circuit reliability and can cause runtime errors or shorten circuit lifetime .
many power estimation methods have been developed ; they can mainly be divided into two main categories .
first , there are simulation - based methods which rely on simulating the circuit with an appropriate set of inputs to obtain the power consumption , , , , , .
second , there are non - simulation based methods which depend on probabilistic measures for the inputs and the switching activities to find the power consumption , , , , , , .
the simulation - based methods are input pattern - dependent and suffer from the enormous time and memory needed for the simulation of large circuits .
spice , as an example , is a circuit - level simulator that is used to accurately estimate the power ; its main disadvantage is the large time consumed which makes it inapplicable for large circuits .
another level of simulation is the switch - level simulator , irsim , which is a switch - level simulator for mos transistors .
the switch - level simulator is not as accurate as the circuit - level simulator but it is faster and requires a smaller memory space . in gate - level simulation ,
the main unit is the logic gates and the power consumption at the circuit nodes can be estimated by calculating toggle rates and capacitances at these nodes .
the gate - level simulation is up to four orders of magnitude faster than circuit - level simulation .
the average power consumption of the circuit is the sum of the average power values at the circuit nodes .
a monte carlo approach can be used to statistically estimate the power by applying a randomly - generated input pattern to the circuit and re - simulating it until the estimate of the consumed power converged .
the non simulative - based methods are fast , but the calculated power is not accurate and only an estimate .
they can be divided into behavioral - based approaches and gate - level approaches . for the behavioral - based approaches ,
not much information is available about the gate level and the technique depends on the description of the boolean function , . for the gate - level based approaches , , , , ,
the signal probability and the transition probability are the key functions in estimating the power .
the average fraction of clock cycles during which the steady state of a certain node is high is defined as the signal probability of this node .
the transition probability is the average fraction of clock cycles where the node value is different from its initial value . in this paper ,
a deterministic method to calculate the average power consumption for digital cmos circuits is described at the gate level .
the method uses a real - delay model , where different gate types have different delays ; this may lead to inevitable glitches and in turn increases the power consumption .
the results section shows the experimental results compared to exhaustive and monte carlo simulations and the conclusion section summarizes this work .
a logic picture ( lp ) consists of the steady state values of all gate outputs ( nodes ) for a certain input combination .
the maximum possible number of lps for an n - input circuit is 2 lps , but experimentally their actual number is much smaller than 2 
 .
finding the dynamic power using exhaustive testing requires 2 simulation cycles to cover all the circuit transitions , but obtaining lps for n - input circuits require only 2 simulation cycles .
this means that acquiring the dynamic power using lps has lower complexity than that of exhaustive testing .
since the lp count is small , lps were used in calculating the switching activity ; the nodes toggle rate and hence average dynamic power were obtained . as the regularity of the circuit increases , the ratio of the number of logic pictures compared to the size the truth table entries ( 2 ) decreases . though the methods were deterministic , the delay model for the gates
was assumed to be the zero - delay model where no gate delays were considered at all . to enhance the accuracy of the calculation of the nodes transition rates , another deterministic method that used lps
the method assumed that the gates propagation delays followed the unit - delay model where all gates have the same propagation delay .
however , the real - delay model is closer to reality and is expected to result in higher accuracy at the expense of higher memory requirements due to the extra lps generated by the glitches ( as will be shown later in the paper ) . in cmos digital circuits ,
the main sources of power consumption are : short - circuit power , leakage power and dynamic power .
both the leakage power and the short circuit power depend on the device fabrication and can be minimized by careful circuit design .
the main source of dynamic power dissipation is the charging and the discharging of the load capacitances , hence it depends on the circuit operation as well as the input patterns and this is the main focus of this paper .
the average dynamic power can be expressed as a function of the circuit parameters as follows : ( 1)pdynamic = vdd2i=1nici2twhere vdd is the source supply voltage , n is the total number of nodes , t is the clock cycle period , ci is the load capacitance of node i and i is the toggle rate of node i , i.e. , the rate of the transitions between zeros and ones occurring at node i. vdd and ci depend on the device fabrication and t depends on the circuit application specifications while i is the only parameter in the equation that depends on the circuit operation ; therefore , its value is a sufficient indicator of the average dynamic power of the circuit . to explain the proposed method , consider for example the circuit in fig .
1 . the inputs are assumed to have equal probabilities of being 0 or 1 .
as shown in table 1 , the circuit has 3 inputs a , b and c as well as 3 gates outputs d , e and f. the number of truth table entries is 8 .
the circuit has three different lps ( 000 , 011 and 110 ) that represent the status of circuit nodes for all input vectors .
logic groups ( lgs ) can be formed to combine the inputs that lead to the same lp resulting into three lgs .
the first group , lg1 , contains the inputs that lead to lp1 which are ( 000 , 010 and 100 ) .
lg2 contains ( 001 , 011 and 101 ) and lg3 contains ( 110 and 111 ) .
hence , lgs sizes are ||lg1||  =  3 , ||lg2||  =  3 and ||lg3||  =  2 . for the real - delay model ,
since there are three different gate types , there will be three different values for the gates propagation delays : 1 for the and gate , 2 for the or gate and 3 for the xor gate ( 7  ns , 8  ns , 11  ns from data sheets  cmos technology ) .
table 2 can be constructed in accordance . as shown in table 2 , starting from a certain initial state , the value of a circuit node changes at different time instants depending on the gate delays due to the applied input .
the initial states are the available different lps of the circuit . for the above mentioned delays ,
the transient intermediate states occur at time instants 1 , 2 , 1  +  2 , 1  +  3 and 2  +  3 while the final state is at 1  +  2  +  3 . those time instants cover all the changes that could appear because of the different delays . in the transient states , the node values result into new intermediate lps due to the glitches .
the notations of the lps in table 2 define different lps at different states . for example
, the second column in table 2 contains the initial 3 lps acquired from the truth table at the initial state ( time  =  0 ) .
the final column in table 2 is the merged lp of all intermediate lps through time and it represents the node status through time except the initial state .
for example , the transition between initial lp1,0 and merged lp1 is obtained as follows : the number of inputs that lead to lp1,0 is 3 ( ||lg1||  =  3 ) and from table 2 lp1 appeared after lp1,0 for 3 different inputs ; then , the different input combinations that can lead from lp1,0 to lp1 is 3    3  =  9 .
lp2 and lp3 appear once after lp1,0 ; hence , the number of different combinations that lead to lp2 and lp3 is 3    1  =  3 combinations . for lp4 , lp5 , lp6 , lp7 and lp8
, they never appeared in the table after lp1,0 which means that there is no transition between them . to obtain the node transition
, a toggle occurs if the node changes its value from 0 to 1 or 1 to 0 .
the toggle is multiplied by the number of all the possible inputs that lead to this toggle .
for example , lp1,0 is  000 ; due to the applied input , the nodes value changes to lp2,1 which is 
all the possible transitions that may occur from lp1,0 to lp2,1 can be obtained from table 3 ; since lp2,1 is a part of the merged lp2 then the number of transitions is 6 .
toggles can also be found in this node for the transition between lp2,0 to lp4 , 1 and lp3,0 to lp5,1 .
this results into 18 additional transitions . the total number of transitions that leads to a toggle in node 
the toggle rate is then calculated by dividing the total number of toggles for a certain node by the maximum number of toggles which is 2 .
to conclude , the following equation is used to get the toggle rate i of node i:(2)i=j=1sl=1k(tj)m=1k(tj+1)rj , l , mtrj(pl , pm)22nwhere s is the number of time instants ; it is equal to number of gates in the critical path which represents the maximum number of time instants to be accounted for , k(tj ) is the number of lps within time instant tj , k(tj+1 ) is the number of lps in the next time instant tj+1 , rj , l , m is the repetition of the lps pl and pm within time instant j , and trj(pl , pm )  =  1 if there is a node transition between pl and pm and equals 0 otherwise at time instant j. it is worthy to mention that lps pl and pm must be in two consecutive time instants tj , tj+1 .
the equation contains three summations , the outer most summation accounts for different time instances where a transition may occur .
these time instances are calculated using the gates real delay model where the whole circuit is scanned from its inputs to its outputs .
the two innermost summations account for subsequent time instances where each two consecutive time instances are considered for calculating possible transitions by using the transition function tr ( . , . )
if the unit - delay model for gates is used to calculate the transitions of the circuit shown in fig .
this results in a lower accuracy ( 20% ) for node f. experiments show that , as the number of stages for the circuit increases , the internal nodes transition will be less accurate .
a compromise between the accuracy and the complexity of the algorithm is needed in choosing the appropriate delay model .
in addition to obtaining the toggle rate for a specific circuit , the above method can be used to get appropriate gate delay combinations for obtaining the minimum toggle rate and hence , the minimum switching power .
. 2 has three different gates which means three different values of propagation delay ; 1 for the nand gate , 2 for the or gate and 3 for the and gate .
the circuit has 1 output e and 2 internal nodes c , d. there are six different combinations for the delays ( 1  <  2  <  3 , 1  <  3  <  2 , 2  <  1  <  3 , 2  <  3  <  1 , 3  <  2  <  1 and 3  < 
1  <  2 ) ; each combination may produce a different toggle rate .
the circuit is simulated for the different delay combinations and the results show that if 1  <  3 ( regardless of 2 ) , the transitions at nodes d , e and f will be 6 . while if 1  >  3 , nodes ( c , d and e ) transitions will be 6 , 6 and 0 respectively , which means less power consumption .
the delay of the gates can be modified by adjusting the layout to control the total gate delay and get the minimum power .
to validate the proposed method , it was applied to gate - level implementations of well - known commercial and academic benchmark digital circuits and the efficiency was measured in terms of the amount of memory saved as well as the processing time compared to exhaustive and monte carlo simulations . since the basic requirement of the simulation tool is the construction of table 2 which is used to get all possible transitions between the lps through time , its size is used to determine the memory saving ratio that the tool provides .
the memory saving here is defined as the ratio of the amount of memory required to store the lps in table 2 to the memory space needed for exhaustive simulations . for exhaustive simulations , the number of vectors that must be stored is(2n(2n-1))/2 . in the proposed method ,
the vectors required to be saved are the main truth table vectors used to calculate lps ( 2n vectors ) in addition to processing vectors .
processing vectors are those stored for each processing cycle where a vector is applied to other lgs that do not contain the vector ( all lgs except the lg that the vector belongs to ) , which means that the maximum number of vectors to be saved is ( 2n min ||lg|| ) in the worst case .
the maximum size of the required memory is the summation of the truth table vectors ( 2 ) and the value of the processing vectors which corresponds to a total of ( 2n+1  min ||lg|| ) vectors .
the method produces memory saving only if ||min|| lg > 2n-1(5 - 2n ) . as
min ||lg|| is a positive integer value , so if n is greater than 2 ( which is common in non - trivial circuits ) , the given formula is always true ; hence , memory saving is always greater than 1 .
the method is applied to a quad 2-input multiplexer , a look - ahead carry generator , a 4-bit binary full adder as well as 74 cmos ics ( ics 74hc157 , 74hc182 and 74hc83 respectively ) and a sample circuit from iscas85 benchmark circuits ( c17 ) .
the circuits characteristics as well as the memory saving ratio are included in table 4 .
the resulting power is compared to that obtained using the exhaustive simulations and it is found that the results are identical .
furthermore , it is found that the difference between the results obtained using the proposed method and the monte carlo approach   is negligible .
in addition , the memory size used by the proposed approach is always less than the memory needed by exhaustive simulations .
table 5 shows the processing time of the exhaustive approach compared to the proposed method as well as the monte carlo method . the time is measured for the worst case scenario where the building of the truth table is included in the calculation .
if the truth table is already available ( having been built during the design phase ) , the time required for the proposed method will be reduced .
the used machine is a 2.0 ghz intel core i3 processor with 3  gbyte memory running matlab 2009a tool , where the designer is only responsible of entering the circuit design and the rest of the process is fully automated .
it is observed that the processing time of the technique presented in this research is lower compared to the processing time of other techniques except when the number of logic pictures is relatively high .
column 5 in table 4 shows the ratio between the size of the truth table ( 2 ) and the number of lps .
this ratio is an indicator of the circuit regularity ; larger values of this ratio indicate more regular circuits and vice versa .
as shown in table 4 , column 5 , for the circuits where the ratio is lower than 3.2 , the time needed by the proposed method is greater than the exhaustive method due to circuit irregularity .
furthermore , this ratio has no relation to the size of the circuit ( represented by the number of nodes in table 4 , column 2 ) .
hence , the proposed technique is appropriate for small as well as large circuits as long as these circuits are regular .
the paper introduced a deterministic and fast method to calculate the nodes toggle rates and hence , estimate the circuit dynamic power .
the gates delay model is assumed to be the real - delay model which assumes different delay values for different gates .
the method is based on modifying the logic pictures ( lps ) concept that illustrates the circuit nodes status to include the intermediate states arising from the glitches that appear due to different gates propagation delays .
the method can also be used to redesign the circuit to obtain the minimum possible power by re - modifying the gate delays to obtain the minimum nodes toggle rate . to validate the results ,
the method was applied to some commercial combinational ics as well as some academic benchmark circuits and compared to the exhaustive as well as monte carlo simulations .
the results were found to be identical but with much lower complexity and much lower memory space requirements .
the memory space saving is up to 30.1% and the time saving is up to 96% for highly regular circuits .
 dynamic power estimation is essential in designing vlsi circuits where many parameters are involved but the only circuit parameter that is related to the circuit operation is the nodes toggle rate . 
 this paper discusses a deterministic and fast method to estimate the dynamic power consumption for cmos combinational logic circuits using gate - level descriptions based on the logic pictures concept to obtain the circuit nodes toggle rate . 
 the delay model for the logic gates is the real - delay model . to validate the results , 
 the method is applied to several circuits and compared against exhaustive , as well as monte carlo , simulations . 
 the proposed technique was shown to save up to 96% processing time compared to exhaustive simulation . 
Introduction
Methodology
Results and discussion
Conclusions
Conflict of interest
Compliance with Ethics Requirements