16

story · 2020年07月22日

工艺库(功耗模型)和EDA工具(功耗计算)对功耗分析优化的支持

芯片中的功耗分为两大类:

•静态功耗 •动态功耗

静态功耗是指逻辑门在不切换时消耗的功耗,其主要由源极到漏极亚阈值泄漏电流引起的,即逻辑门未完全关闭。因此,静态功耗通常称为泄漏功耗。

动态功耗是电路进行切换时消耗的功耗,其主要是由于电路切换过程中需要对内部电容(短路电流,内部功耗)和外部负载电容(开关功耗)进行充放电。所以,动态功耗也会随着外部负载电容的增加而增加。

EDA工具使用工艺库中建模的功耗信息来计算设计的功耗。

Leakage Power Calculation

EDA工具通过计算设计中所有Cell的泄露功耗的总和作为设计的泄露功耗,如以下公式所示:

工艺库通过default\_cell\_leakage\_power为库中的所有Cell提供同样大小的泄漏功耗属性,也可以通过cell\_leakage\_power每个Cell提供各自的泄漏功耗属性。

如果缺失cell\_leakage\_power属性,则该Cell的泄漏功耗属性设置为

default\_cell\_leakage\_power。

对于仿真时间600,假设Cell处于A&B状态占33%,其它状态占67%。则总泄露功耗为

(.33* .2nW) + (.67*.5nW)=.4nW

静态功耗与阈值电压呈指数关系。为了解决低功耗设计问题,很多Foundry提供了多阈值电压工艺库。每种逻辑门都有两个或更多不同的阈值电压(Vth)。设计者根据设计需求选用不用阈值电压的Cell,取得性能和功耗的折中。

对于多阈值电压工艺库,也会有更多的属性(Attributes)支持。

Internal Power Calculation

在计算短路电流引起的内部功耗时,EDA工具需要索引工艺库中的二维查找表,其中的input transition time替换为加权平均input transition time

Internal Power的状态/路径依赖性

内部功耗通常取决于Cell的状态(state)和路径(path)。

上面的设计具有多个输入引脚

输入A和输入D均可导致Z处的输出翻转。但是,输入D仅影响Z处的翻转,而输入A会影响所有3个Cell输出的翻转,即由A处的输入翻转产生的内部功耗要比由输入D产生的内部功耗大。

也就是说,针对不同的输入翻转,Cell可能就有不同的内部功耗二维查找表。这在工艺库建模时,需要增加related\_pin属性以解决这个问题。这样EDA工具就可以基于不同输入信号翻转的百分比贡献,访问各自的内部功耗二维查找表来计算设计总的内部功耗。

还有一个展示内部功耗状态依赖性的示例是RAM。 RAM的内部功耗取决于它是处于读取还是写入状态。在工艺库中,针对读取和写入都会有各自的内部功耗模型。

和时序模型一样,内部功耗除了和状态和路径相关,还有信号翻转相关,即信号上升(rise)和下降(fall)也具有不同的内部功耗模型值。

Switching Power Calculation

下面是开关功耗的计算公式,其和电源电压、负载电容和翻转率相关。

最终的动态功耗为内部功耗和开关功耗之和,即

Power consumption 
= Static power+Dynamic power 
= Static power + Switching power + Internal power



本文转载自公众号:芯片数字实验室
原文链接:https://mp.weixin.qq.com/s/4TzyFawo8uAseDZkDgVUgw
未经作者同意,请勿转载!

推荐阅读

想了解更多内容,欢迎关注芯片数字实验室专栏
推荐阅读
关注数
12320
内容数
222
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息