低功耗很重要,因为功耗越低越省电、延长电池使用时间、减少芯片发热。
Leakage Power是一种静态电源功耗。所谓静态,是指信号状态不发生改变的情况下所产生的功耗。MOS管即使是在稳定状态也是有
一个标准单元的Leakage Power在不同的输入状态下可能是不一样的。为了使计算值与实际值更接近,可以对各个输入状态的值按概率进行加权。
比如一个两输入的与非门(NAND)的Leakage Power可以计算如下:
Power = P(AB)*Power(AB) + P(A'B')*Power(A'B') + P(AB')*Power(AB') + P(A'B)*Power(A'B)
其中的P(AB)表示AB这种输入状态的发生概率。很显然各种状态的概率之和应该等于一。
在Synopsys的lib库文件中,或者显示地定义了某种状态对应的leakage power,或者使用默认值cell_leakage_power
cell(AND2) { cell_leakage_power : 0.00123456 ; leakage_power() { when : "!A1&!A2" ; value : "0.00654321" ; } leakage_power() { when : "!A1&A2" ; value : "0.00345678" ; } }
为了知道各个输入状态的发生概率,就需要用到文件SAIF(Switching Activity Interchange Format)文件或者VCD(Value Change Dump)文件。
动态功耗是由于信号的跳变过程中对相关电容进行了充放电引起的。
Dynamic Power = V2·f·C
显而易见,要想降低Dynamic Power,或者降低电压,或者降低频率,至于负载C则主要由芯片工艺决定了。
vcd2saif
可以转换VCD文件为SAIF文件