芯片功耗如何定义(一文带你读懂芯片功耗如何分析)
芯片功耗如何定义(一文带你读懂芯片功耗如何分析)03. 翻转功耗 -- 晶体管负载充放电带来的功耗内部功耗由两部分组成:01. 漏电功耗 -- 非理想漏电流产生的功耗漏电功耗由三个部分组成:02. 内部功耗 -- 寄生参数充放电产生的功耗
降低芯片功耗的必要性
- 芯片封装一般较小,功耗过大将导致能量密度增加,芯片温度升高,时序跑不快。
- 功耗对芯片内部及外部的电源网络架构设计有影响。
功耗组成
芯片功耗分为静态功耗和动态功耗。
其中,静态功耗包括漏电功耗,动态功耗包括内部功耗和翻转功耗。
01. 漏电功耗 -- 非理想漏电流产生的功耗
漏电功耗由三个部分组成:
- 亚阈值电流:CMOS的G级为0时,管子处于截至状态,S和D之间存在微量漏电流。
- 栅极隧穿电流:CMOS的工艺越来越小后,G极的SIO2越来越薄,当薄至和电子,空穴的德布罗意波的波长近似时,电子会击穿栅极,产生栅漏电流。
- 反偏PN节电流:扩散层与衬底之间的漏电电流(非目前主流因素)
02. 内部功耗 -- 寄生参数充放电产生的功耗
内部功耗由两部分组成:
- 短路电流:CMOS管翻转过程中,pMOS和nMOS同时导通产生的电流,大小与输入信号slew和晶体管负载有关。
- 输入端口电流:晶体管输入发生翻转,但是输出来改变,但此时输入信号翻转仍会导致内部产生功耗。
03. 翻转功耗 -- 晶体管负载充放电带来的功耗
作为最常见的功耗,信号翻转功耗和互联寄生参数以及晶体管输入寄生参数息息相关。
电路功耗计算模型
本文以二输入与非门为例进行总功耗计算演示,输入输出参数如下所示。
VDD = 1.0V
Output Load = 20fF
Static probability (pin A1) = 0.6
Static probability (pin A2) = 0.55
Toggle rate (pin A1) = 5 million transitions/sec
Toggle rate (pin A2) = 6 million transitions/sec
Static probability (pin ZN) = 0.67
Toggle rate (pin ZN) = 7.7 million transitions/sec
01. 漏电功耗计算
标准单元、宏单元的漏电功耗需根据状态从时序库(Timing library)查表得到leakage power并结合duty进行计算。
漏电功耗与input的duty有关,和output的toggle rate无关。
查表得相关数据如下:
leakage_power(){
value: 42.2;
}
leakage_power(){
value: 26.1;
when: "!A1 !A2";
}
leakage_power(){
value: 33.0;
when: "!A1 A2";
}
leakage_power(){
value: 27.0;
when: "A1 !A2";
}
leakage_power(){
value: 82.7;
when: "A1 A2";
}
漏电功耗计算公式如下:
Cell Leakage Power =
26.1*(1-0.6)*(1-0.55)
33*(1-0.6)*0.55
27*0.6*(1-0.55)
82.7*0.5*0.55
= 41.99nW
02. 内部功耗计算
根据timing library中cell的internal_power查表结合duty和toggle rate进行计算。
内部功耗与input信号slew和output的load强相关,与toggle rate有关。
查表得相关数据如下:
pin(A1){
direction: input;
internal_power(){
when: "!A2&ZN"; /*Transition at A1 does not cause an output transition.*/
rise_power(scalar){
values("0.004");}
fall_power(scalar){
values("0.006");}
}
}
pin(A2){
direction: input;
internal_power(){
when: "!A1&ZN"; /*Transition at A2 does not cause an output transition.*/
rise_power(scalar){
values("0.006");}
fall_power(scalar){
values("0.008");}
}
}
pin(out){
direction: output;
internal_power(){ /*A1 causes output transition */
related_pin: "A1";
rise_power(scalar){
values("0.043");}
fall_power(scalar){
values("0.016");}
}
internal_power(){ /*A2 causes output transition */
related_pin: "A2";
rise_power(scalar){
values("0.036");}
fall_power(scalar){
values("0.021");}
}
}
A1内部功耗计算公式如下:
Internal Power A1
= 1.5 million*(0.004 0.006)/2
= 7.5nW
A2内部功耗计算公式如下:
Internal Power A2
= 1.8 million*(0.006 0.008)/2
=12.6nW
A1对ZN作用的内部功耗计算公式如下:
Internal Power A1->ZN
= 3.5 million*(0.043 0.016)/2
=103.25nW
A2对ZN作用的内部功耗计算公式如下:
Internal Power A2->ZN
=4.2 million*(0.036 0.021)/2
=119.7nW
03. 翻转功耗计算
翻转功耗计算公式如下:
Switching Power
= 0.5*C*VDD^2*f
= 0.5*20*1*1*7.7
= 7.7nW
04. 具体分析
总功耗计算公式如下:
总功耗
= Leakage Internal Switching
= 41.99 (7.5 103.25) (12.6 119.7) 7.7
= 366.589nW