
新闻中心 NEWS CENTER
利用库中信息手算功耗
利用库中信息手算功耗
2010年8月12日
比较两种电路的功耗,一种常用的做法是STA跑出sdf文件,vcs跑出后仿波形,再分别用primepower工具进行功耗分析。对于简单的门级电路,这样的流程显得复杂低效,这时手算功耗可能会更加有用。
手算功耗方法
1. internal power。对于每个pin,根据跳变的transition time在库文件中找到每次跳变消耗的能量。对于输出pin,还要求有其output_load 。同时计算其跳变次数,累加得到跳变消耗的短路能量。
2. switch power。对于每个输入pin,计算其跳变次数,每次跳变消耗能量为:C×V×V,C = fanout_load ×C_wire_load + Cpin
其中: |
fanout_load为该pin的等效输入fanout |
C_wire_load为线负载模型电容系数 |
Cpin为该pin的输入电容 |
3. 前两者的能量累加除以总时间即为动态功耗;除以transition time则可估算峰值功耗。
4. leakage功耗等于每个cell的leakage功耗累加,需要注意的是cell的输入输出不同,leakage功耗也会略有差别。
手算功耗示例
下面是一个常见电路的例子:
假设En与输入保持不变 ClkSrc频率为1MHz。
5. Internal power
电平跳变的点只有Reg的CP端,查lib文件知一个周期CP端消耗的internal能量为0.015+0.022pJ 。(这里会因为没有准确的transition time而有很小的误差)。因此,internal功耗为0.037pJ/1uS = 37nW 。
6. Switch power
同样电平跳变的点只有Reg的CP端,CP端电容为0.002594pf,fanout为1,对应线负载电容为0.0061pf 。库电压为0.9V 。因此switch能量为(0.002594+0.0061 )×0.9 ×0.9 = 0.007pJ,除以周期功率为7nW 。
注意:switch power只在管脚的上跳沿计算,持续时间也为transition time 。
7. 峰值功耗
本电路transition time约为0.6ns,因此下跳沿峰值功耗为 0.022pJ/0.6ns = 36.8uW 。上跳沿的峰值功耗为(0.015+0.007 )/0.6ns = 36.8uW 。
8. Leakage power
MUX器件的leakage加上Reg的leakage:0.03738+0.09871 = 0.136nW 。
与PrimePower结果对比
序号 | 分类 | 总功耗 | internal | switch | 上跳沿 | 下跳沿 | 泄漏功耗 |
1 | pp工具 | 37.66 | 37.51 | 0 | 25.2 | 37.3 | 0.1477 |
2 | 手算结果 | 44 | 37 | 7.042 | 36.8 | 36.8 | 0.136 |
计算结果与PP跑出来结果基本相同,除了两处区别:
1、结果中没有包含输入port的switch power。因此导致总功耗、switch功耗、上跳沿功耗均比手算结果小了 7nW 。这是因为此switch行为源自前级输入,对工具理解该switch功耗实际为前级消耗,故没有算在此电路中,报的total power也不会包含此处功耗。如果需要评估此类功耗,可以用report_power ‐input_net来单独报出。
结果如上,可见7.042nW与估算的7nW也十分接近。
2、泄漏功耗略有区别,这是因为估算时没有考虑MUX和Reg的输入输出状态。