EDA工具里的功耗分析方法(上)

在当下的芯片设计中,工艺越先进,芯片规模越大,功耗就越发敏感,降低功耗的诉求越来越紧迫。在小编过往的文章中,有过低功耗设计实现的一些讨论,具体猛戳如下链接:

浅谈芯片低功耗的设计实现(上)
浅谈芯片低功耗的设计实现(下)
优化一定是建立在计算和数据的基础上的,那么对于EDA而言,功耗是怎么算出来的呢?今天,就让小编带领大家一起从EDA的视角,来洞察功耗计算的零零总总。
在这里插入图片描述

开篇之前,先复习一下功耗的计算公式:

Total Power
Dymanic PowerLeakage Power
Switching PowerInternal Power
Pswithing=12V2 ×Cload ×Tr Pinternal=V×Tr ×Qx Pleakage=V×Ileakage

注解

  • V :器件电压
  • C l o a d C_{load} Cload :器件有效负载电容
  • T r T_{r} Tr : 翻转率
  • Q x Q_{x} Qx:一次翻转过程中从电源流到地的电荷量
  • l l e a k a g e l_{leakage} lleakage:漏电电流

EDA对功耗评估的分类

基于上述功耗的计算理论,为了方便计算,EDA工具对与功耗的评估分为如下几类

基于library非功耗的信息,计算功耗

switching power可以结合设计状态,通过演算获取功耗

  • V:用户定义,和library保持一致
  • C l o a d C_{load} Cload: 负载输入input pin的电容(来自于负载器件的pin的library信息)和绕线寄生电容(RC回路模型)
  • T r T_{r} Tr:频率变化信息,由设计里的信号翻转的信息决断

input pin的cap描述

基于SDPD的功耗查看

leakage power可以基于SDPD,直接查看library获取功耗

  • 基于器件输入状态进行功耗查看:器件状态决断SDPD (Status Dependency Path Dependency)
  • library同时提供默认的leakage power的功耗信息
    leakage power的lib描述

基于SDPD和pin的属性查找表

internal power可以基于SDPD和input/outputl 的RC属性查找表来获取

  • 基于SDPD的数据查询
  • input pin:基于input transiton的查找表
  • output pin:基于input transiton和output cap的查找表
  • cel的internal power是所有pin在SDPD下的总和

在这里插入图片描述

在这里插入图片描述

注释:SDPD是一种瞬态值。在芯片常规的工作中,某一时刻,芯片是某一种固定的SDPD,所以一个芯片的实际工作状态(功耗)是由各种SDPD按照出现的比率描述的一个完备值(各种SDPD出现概率总和是100%)
据上,器件的功耗的相关性可以用如下的表格来归类

功耗分类设计lib对象类别SDPD比率合并
switching power电压、信号频率,绕线RC负载器件负载输入pin的capnetNA
leakage power信号频率基于SDPD和和input_trans的查找表cellstate probability
internal power信号频率基于SDPD和 input_tran 后者 input_tran和output_cap的查找表pintoggle rate

EDA的功耗计算示例

EDA工具提供了相应的信息和抽取方式来拟合library的描述。以常用的DC工具里的report_power命令为例,工具会罗列出下面的功耗信息:
在这里插入图片描述
表头解析:

cellCell Internal PowerDriven net Switching powerTot Dynamic Power (% Cell/Tot)Cell Leakage Power
器件name来自于internal power的查找表基于负载pin的cap,主要被电压(V)和 T r T_r Tr所决断 所以,工具在此处将driven net 和switching power做了合并dynamic power 总和(switching+internal),后面的百分比表述了,switching power占整个dynamic power的比率,即cell的功耗贡献比率来自于leakage power的查找表

DC也会把器件分类进行功耗报告打印:

在这里插入图片描述
对于器件的分类方法见下表:
在这里插入图片描述

通常,report_power默认行为是打印类似上述的芯片功耗的总和结果,这些都是每一个器件单独功耗的合计值,当然,也可以使用一些选项打印出某一个cell或者net或的功耗细节。
但是通常不太会这么做,因为去看每一个cell或者net的功耗意义并不很大,反而是找到芯片里边的最差功耗的cell或者net会比较有趣(设计里的功耗大户)。
譬如关心cell的动态功耗,这时可以使用下列命令来罗列:
在这里插入图片描述
如果用户对功耗最大的cell比较感兴趣,可以使用-verbose的选项
罗列出更多的细节:
在这里插入图片描述
类似的也可以针对net类型进行sort、verbose的报告。
在这里插入图片描述
在这里插入图片描述

cell、net和pin的功耗归一化:

从上文描述中可以看到,net会描述switching power,cell对标的则是internla power和leakage power。但是工具在产生报告的时候,无论是net还是cell都会把三类功耗打印完全,这里是使用output pin对应的net来做的cell、net归一化处理

在这里插入图片描述
对于internal power,其在在library里的描述是pin based的
在这里插入图片描述
report_power命令里边,internal power被整合为cell类型,但是本质上就是所有pin在SDPD下的总和表达。

为了方便表达,工具使用了上述三种对象对功耗进行了分拆,总结如下

功耗类别目标类别计算公式解释
内部功耗pin P l i n t e r n a l = ∑ 1 n A P i n i n t e r n a l P_{linternal}=\sum_1^nAPin_{internal} Plinternal=1nAPininternal基于所有pin上漏电功耗的总和
翻转功耗net P s w i t c h i n g = O N e t s w i t c h i n g P_{switching}=ONet_{switching} Pswitching=ONetswitching基于cell的output net 上的反转率和cap进行的核算
漏电功耗cell P l e a k a g e = C e l l l e a k a g e P_{leakage}=Cell_{leakage} Pleakage=Cellleakage基于对cell的自身的漏电的library查看

可以看出,EDA工具为了简化对功耗的核算,使用了归一化的操作,这样可以大大减少报告数量和歧义,这个对library的诉求也是得到了一致

限于篇幅。上文提到的SDPD、toggle rate和state probability等和功耗计算细节相关的属于,放在下一篇文章站看讨论,敬请期待。

本章词汇

词汇解释
动态功耗器件输入信号发生变化过程中产生的功耗
漏电功耗器件在空闲状态是由于漏电流带来的功耗
翻转功耗器件输入管脚翻转所产生的功耗
内部功耗器件输入管脚翻转过程中,所导致的PMOS、NMOS瞬时同导通时所产生的功耗 ,也叫短路功耗(short power)
SDPD基于状态和路径的分析方法:Status Dependency Path Dependency
toggle rate反转率:指在单位时间(unit time),信号的翻转次数
state probability状态概率:单位时间内逻辑1占用(高电平)所占的比率

【敲黑板划重点】

在这里插入图片描述
理解工具对于三类功耗的计算方法:pin、cell和net就可以在查验、优化功耗的地方做到有的放矢,疏而不漏。

参考资料

Rakesh Chadha • J. Bhasker An ASIC Low Power Primer
Michael Keating • David Flynn • Robert Aitken Alan Gibbons • Kaijian Shi Low Power Methodology Manual For System-on-Chip Design
沧海一升 (一)低功耗设计目的与功耗的类型

  • 6
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Cadence是一个广泛应用于电子设计自动化(EDA)领域的工具套件,其中包含了用于模拟和验证集成电路(IC)性能的软件,包括功耗分析。在Cadence中进行功耗测试通常涉及到以下几个步骤: 1. **选择合适的工具**:Cadence的工具如 Encounter 或 Innovus 集成了电源完整性(Power Integrity, PI)分析模块,如PI-RT(Power Integrity RealTime)或PI-Xcelerator,用于进行动态功耗分析。 2. **设置电路模型**:首先,你需要在设计文件中定义电路的电源和地网络,以及所有组件的静态电流模型。 3. **运行静态功耗分析**:使用PI工具进行静态功耗估算,这会基于电路的静态拓扑和每个单元的静态电流。 4. **设置激励**:为电路生成模拟波形,可以是静态的静态电源模式,也可以是动态的行为模式,以便观察在不同工作状态下的功耗。 5. **动态功率分析**:运行瞬态或行为级模拟,这将跟踪电路在时序活动下的功耗变化,包括负载驱动、开关活动等。 6. **热图和报告**:生成功率热图,显示芯片各部分的功耗分布,帮助优化功耗热点。同时,工具会输出详细的功率消耗报告。 7. **电源噪声和电磁干扰(EMI)分析**:有时还需考虑电源噪声对功耗的影响,以及电源路径是否符合电磁兼容性(EMC)标准。 **相关问题--:** 1. Cadence的哪个模块专门用于动态功耗分析? 2. 功率完整性分析如何影响整体的功耗评估? 3. 除了PI工具外,Cadence是否还提供其他方法来优化电源管理?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值