题记:《四月清和雨乍晴,静态功耗乱伊心》根据library中静态功耗的描述方式阐述了静态功耗的计算,今天再来看动态功耗。
- CMOS管功耗 = 动态功耗 + 静态功耗
通常,动态功耗有两种表述,两种表述的区别之处在于:把对管子内部电容充放电消耗的功耗归于谁,第一种表述常见于理论分析,第二种表述常见于EDA工具功耗计算。
表述一:
- 动态功耗 = 开关功耗 + 短路功耗
开关功耗:指管子在翻转过程中对『相关电容』进行充放电消耗的功耗,此处『相关电容』包含管子内部结点电容和负载电容。
短路功耗:指管子在翻转过程中,PMOS和NMOS同时导通,从电源VDD到地VSS之间短路通路消耗的功耗。
表述二:
- 动态功耗 = 负载功耗 + 内部功耗
负载功耗:指管子在翻转过程中对『负载电容』进行充放电消耗的功耗。
内部功耗:指管子在翻转过程中,对内部结点电容进行充放电消耗的功耗及短路电流消耗的功耗。
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的电容,其计算公式为:
- CL 是负载电容 = sum(capacitances of the net, input pins driven by the net). 在genus里可以通过attribute pin\_capacitance 和wire\_capacitance 得到对应的值。
- V 是工作电压。
- TR 是toggle rate.
跋:本文到此为止,前段时间有人在驴群里问到在什么情况下library中的功耗值会是负的?有大神已答,由于驴的寡闻也是第一次见到,后续会去查找一些资料,作文一篇。另,最近这段时间时有论及动态功耗的优化,后续会独作一文论述,也欢迎众驴友一起探讨。
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/rpPRw0DgURLp7t4Oiejjyg
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。