很长一段时间,对leakage power的计算都有一个错误的认知,认为只要cell个数类型确定,leakage就是个固定值,同一个网表不论在哪个工具里report出来的leakage值都一样。直到一次被一个实际例子狠扇了两巴掌,深究后,各工具的行为终得解释清除。正好今天跟宠萌的萌萌说起这个东西,发出来,仅供参考。
大概在遥远的90nm之前,leakage power在library里确实是被描述成一个常值的。但从90nm开始,为了更加精确,library里的leakage power不再是个常值了,而是被模拟成一个输入状态的函数。所以基础还是library,在一个library里跟leakage相关的变量大致有:
library(my\_lib) {
leakage\_power\_unit :"1nW";
default\_leakage\_power\_density :0.0;
default\_cell\_leakage\_power :0.0;
\_cell\_leakage\_power :53057.365200; \_
leakage\_power(){
when :"!A & !B & !CI";
value: ...;
power\_level:"VDD";}
}
- Leakage\_power\_unit:标示leakage power的单位,如果所有库里都没有该变量的定义,每个工具都会有自己默认的单位,如Genus默认用nW。
- cell\_leakage\_power:标示固定的leakage power值,如果library里没有该变量的定义,或者该变量是个负值,工具会用default\_cell\_leakage\_power的值,如果default\_cell\_leakage\_power也没有指定,则用default\_leakage\_power\_density的值乘以该cell的面积来计算得出一个leakage值,如果这三个变量都没有定义,则leakage的值为0。
- leakage\_power(){}:这一部分就是用来定义跟输入状态相关的leakage power,其中"when"用于定义输入的状态,如果某种状态没有定义,则用cell\_leakage\_power定义的值来计算leakage;power\_level用于多电压cell中指定是跟哪个电压相关的leakage power。
搞清library中相关变量的定义后,剩下就是如何计算的问题了,其他情况好理解,分别看一下如何用default\_leakage\_power\_density计算leakage power,及如何计算跟输入状态相关的leakage power。
- 如果library里既没有定义cell\_leakage\_power也没有定义default\_cell\_leakage\_power而只定义了default\_leakage\_power\_density,则:
cell\_leakage\_power= area *default\_leakage\_power\_density
- 跟输入状态相关的leakge\_power计算,计算公式为
拿AND2X2这个cell为例,它的输入总共有四种组合状态,在lib中只定义了三种状态,同时还定义了cell\_leakage\_power,所以对于没定义的状态,在计算时用cell\_leakage\_power指定的值。假设,A处在状态"1"的概率是0.6,B处在状态"1"的概率是0.3,则该cell的leakge power为:
prob(!A) x prob(!B) x yy11+ prob(!A) x prob(B) x yy22 +prob(A) x prob(!B) x yy33 +prob(A) x prob(B) x YYYY=0.4 x 0.7 x yy11 +0.4 x 0.3 x yy22 + 0.6 x 0.7 x yy33 +0.6 x 0.3 x YYYY
在实际项目中,如果没有读入activity的文件,不同的工具都会有根据默认或指定的probability来计算每个cell输入pin的probability,不同工具也会有相应的命令来report出当前的probability是多少,如Genus可以用命令:report instance –power,也可以通过以下attribute得到相关信息:
lp\_probability\_type
lp\_default\_probability
lp\_computed\_probability
不成熟的小建议:找一个cell在不同的工具里分别去报它的leakage,再根据本文陈述的内容,去观摩工具的行为,这一点就会尽在你的掌握之中了。
参考文献:
genus\_library.pdf
genus\_lowpower\_legacy.pdf
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/iNEKyo2d4AZsRCdM2n4NHg
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。