动态功耗计算

 

 

CMOS管功耗 = 动态功耗 + 静态功耗

动态功耗有两种表述,两种表述的区别之处在于:把对管子内部电容充放电消耗的功耗归于谁,第一种表述常见于理论分析,第二种表述常见于EDA工具功耗计算。

 

第一种表示:

  • 动态功耗 = 开关功耗 + 短路功耗

开关功耗:指管子在翻转过程中对『相关电容』进行充放电消耗的功耗,此处『相关电容』包含管子内部结点电容和负载电容。

 动态功耗计算_第1张图片

 

短路功耗:指管子在翻转过程中,PMOS和NMOS同时导通,从电源VDD到地VSS之间短路通路消耗的功耗。

动态功耗计算_第2张图片

 

 

 

动态功耗计算_第3张图片

 

 

 

第二种表示:

 动态功耗 =  负载功耗  +  内部功耗

负载功耗:指管子在翻转过程中对『负载电容』进行充放电消耗的功耗。

内部功耗:指管子在翻转过程中,对内部结点电容进行充放电消耗的功耗及短路电流消耗的功耗。

动态功耗计算_第4张图片

 

 

EDA工具计算动态功耗时,会分别计算内部功耗和负载功耗。

 

  • 内部功耗:当前方法学将内部功耗模拟成输入transition跟输出负载 (load capacitance) 的函数,foundry会将每个管子的内部功耗定义在library中,常见的是二维表格,index是(input transition, output load cap),偶尔也有三维表格,index是(input transition, output load cap, second output load cap)。

 

 

在library中会分别定义cell的rise_power 和fall_power。通常,在90nm之后对每个cell 会根据每个输入pin的状态和每条timing arc分别定义内部功耗,即所谓的:path dependencies internal power。库一定的情况下,每个EDA工具的计算公式应该大差不差,此处以Genus的计算公式为例:

 

 

  • TR 指一个arc 或pin上有效的toggle rate. arcij 的有效toggle rate取决于该arc被激活的概率 (probability) 和对应输入pin 的toggle rate

  • Φ 是从library中查表得到的internal power值。 

  • Si 是致输出发生翻转的输入pin的transition。 

  • Cj是输出pin的负载电容。

例:以2输入的与门为例,上述library片段中定义了A1 pin到Z pin的内部功耗,假设A1的transition是18ps, Z的load是0.336pf, A1的total rate 是0.5, probability是1,因为在library中transition index没有18ps,需要在12和24ps之间做插值,则该与门的内部功耗为:

toggle_rateA1 × probabilityA1 → Z × ΦA1 → Z(0.0018, 0.336) 

=0.5 × rise_power(0.0018, 0.336 ) + 0.5 × fall_power(0.0018, 0.336 ) 

= 0.5 × 0.0061 + 0.5 × 0.0059 

 

负载功耗:此处的负载包括这个cell 驱动的所有net 和所有sink cell输入pin的电容,其计算公式为:

 

动态功耗计算_第5张图片

 

 

 

  • CL 是负载电容 = sum(capacitances of the net,  input pins driven by the net). 在genus里可以通过attribute pin_capacitance 和 wire_capacitance 得到对应的值。

  • V 是工作电压。 

  • TR 是toggle rate.

 

 

3.单元功耗

 

动态功耗计算_第6张图片

动态功耗计算_第7张图片

 

转载于:https://www.cnblogs.com/lelin/p/11410087.html

你可能感兴趣的:(动态功耗计算)