前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你可能不知道的leakage功耗计算

你可能不知道的leakage功耗计算

作者头像
白山头
发布2020-06-28 16:38:16
1.2K0
发布2020-06-28 16:38:16
举报
文章被收录于专栏:白山头讲IC白山头讲IC

本文总结工具中进行leakage功耗计算的一般方法。

背景

leakage power在深亚微米下占比越来越高。在很多情况下,leakage power可能会占到芯片总功耗的30~50%。

即使在standby模式之下,leakage power也无法减少。

最有效的方法是关闭电源,但是并非所有应用场合都适用,因为启动的时间相对较长,也需要额外的面积来放置power switch。

之前我曾写过文章介绍leakage power的重要性。

这里稍作回顾。

动态功耗可以通过降频来调整。例如系统中主控芯片如果发现温度过高,可以降低频率,来减少散热压力。

而且动态功耗与温度无关,而是与频率,负载,电压相关。

但是leakage则相反,和频率无关,而与温度成指数关系。

Leakage power depends exponentially on temperature

想象一下,如果芯片中leakage占比较高的话,一旦某种原因,温度升高,可能leakage增大数倍。

而leakage的增大,进一步导致芯片温度的升高。

从而形成一个"温度-功耗-温度"的正反馈,导致芯片因过热而无法工作,甚至烧毁芯片。

leakage的计算

言归正传。

我们获得芯片的leakage power非常容易,可能只是一个命令。但是原理,可能并不是你想的那么简单。

以标准单元为例,leakage和标准单元本身的状态相关。

当stdcell有多个输入的时候,可能产生几十种状态,而每种状态leakage也是不同的。

stdcell lib中的leakage

这就涉及到了当我们进行leakage计算的时候,如何选择这些值。

以ICC2为例,

leakage power的计算方式分为三种

  • average
  • unconditional
  • state

当以average模式进行计算时,工具会将所有状态的leakage取平均值。

当以unconditional模式进行计算时,工具会在lib中找到一个跟cell的状态无关的leakage值来进行功耗计算。

mark

当以state模式进行计算时,则需要工具来判断cell所处的状态。某些状态可以通过set_case_analysis来推断。如果没有case语句,则按照每种状态出现的可能性相同来加权平均,最终值可能与average相同。

那么如果lib中没有leakage值怎么办?

你可以看一下lib的开头部分,还有个default_cell_leakage_power

如果用这个值产生的report,你有什么感想?

end

leakage计算中有很多假设和trade off,但这并不妨碍我们用这些值进行参考。

如果了解char-lib过程,你会发现,仅仅如何把total power分为dynamic power和leakage power,也并不是件容易的事情。

工程中,完成比完美更重要,何况完美并不存在。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 白山头讲IC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • leakage的计算
  • end
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档