数字IC设计——功耗分析

news/2025/1/8 20:23:01/

一、概述

芯片的整体功耗很难通过简单的电流,电压或者电阻值的的相乘来计算。其原因在于,由于芯片作为具有复杂功能的器件,其功耗会根据其不同时段的不同行为,不同的外部条件而发生很大的变化。

1.1 功耗的分类

数字IC芯片的功耗分为静态功耗动态功耗。现代数字IC基本采用CMOS晶体管,它在稳定工作状态时几乎没有功耗,即静态功耗几乎为0,因此对CMOS电路功耗起支配作用的是由充电和放电电容引起的动态功耗。

peak power
average power

1.2 芯片的翻转率

参考文章:SOC设计中一种提取翻转率用于IR-drop分析的方法
翻转率表示单位时间里信号(包括时钟,数据等信号)的翻转次数。通常由前端工程师在pre-layout阶段释放给后端工程师用来进行PG网络,IR-drop分析的输入值。
DUT中模块翻转率情况:
在这里插入图片描述

可使用PTPX提取设计的翻转率,详细参见下文4.1节。

二、 芯片的动态功耗

2.1 功耗来源

芯片在工作工程中,晶体管处于跳变状态所产生的功耗,包括动态开关电流引起的动态开关功耗(或跳变功耗),以及短路电流引起的短路功耗两部分。因此对于动态功耗,所占最大比例的就是clock信号。

动态功耗由于和芯片的功能息息相关,因此在计算的时候会引入翻转率(toggle rate)的概念。翻转率是衡量单位时间内device上信号翻转时间所占的比率。在实际计算dynamic功耗的时候,又会分成两个部分。
一部分为标准单元内部的dynamic功耗,又名Internal Power,这部分的计算是嵌入liberty库文件内部,通过标准单元的input transition和output load来查表得到的;
另一部分为互连线(net)上的开关功耗,这部分的计算通过将所有net上每个翻转周期的功耗乘以其翻转率并相加得到。翻转率通过某种固定格式的文件传入EDA工具,比较常用的格式有SAIF(Switching Activity Interchange Format)、VCD(Value Change Dump)以及FSDB(Fast Signal Database)文件。

2.1.1 开关功耗

输出电压在跳变过程中,对负载电容充放电时会有一部分能量被损耗在PMOS和NMOS管中,该部分损耗即为开关功耗。

如下式为计算一个CMOS的开关功耗公式
f为开关频率,P为开关因子,即该门的输出段引起0 -> 1跳变事件的概率。
P d y n = C L V D D 2 f P P_{dyn} = C_L V_{DD}^2 f P Pdyn=CLVDD2fP

2.1.2 internal Power

贡献internal power的因素应该分为两个因素:
一是信号翻转时由于NMOS和PMOS同时导通而产生的短暂但巨大的贯穿电流,在开关的一小段时间内,PMOS和NMOS存在都导通的状态,导致VDD直接与GND相连并产生短路电流和功耗。
二是给内部和外部负载充放电所消耗的能量。

参考链接:低功耗设计基础:深入理解Internal Power

三、 芯片的静态功耗

四、EDA工具进行功耗分析

4.1 基于VCS+power compiler的功耗分析

参考文章:低功耗设计入门(二)——功耗的分析

  • 功耗分析与流程概述
  • 无向量分析法
  • SAIF–RTL BACK分析法
  • SAIF–GATE分析法
  • VCD转SAIF分析法
  • 功耗分析报告

PrimeTime PX

PrimeTime是synopsys开发的一款专门的静态时序分析软件,PrimeTime PX是集成在软件中的一个工具,可以用来对Design Compilier(DC)综合后的V文件进行功耗分析。PrimeTime的一个特点就是它对功耗的分析比DC给出的功耗信息要精确得多,所以一般采用PTPX进行功耗分析。

输入文件

  1. 网表文件
  2. 静态时序分析的sdc文件
  3. 带功耗信息的db文件
  4. RTL仿真过程vcd文件

Prime Time PX的翻转率提取

在这里插入图片描述

运行模式

  • average mode
    开发早期可使用,无需波形等数据
  • Time based mode
    后期可用,可载入波形,形成功耗趋势图,反应峰值功耗和平均功耗,数据更加准确

report

在这里插入图片描述

功耗曲线

在这里插入图片描述

结果分析

PrimeTime PX(Power Analysis) userguide阅读笔记

primepower RTL

在RTL阶段进行功耗分析。
相比于DC,可通过fast synthesis进行综合,获取时序信息。时间上可减小5倍左右,精度损失大致位15%

primepower

在网表阶段进行功耗分析
由PrimeTime PX更新而来


http://www.ppmy.cn/news/734042.html

相关文章

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

本文总结工具中进行leakage功耗计算的一般方法。 背景 leakage power在深亚微米下占比越来越高。在很多情况下,leakage power可能会占到芯片总功耗的30~50%。 即使在standby模式之下,leakage power也无法减少。 最有效的方法是关闭电源,但是…

FPGA功耗优化

1、设计前功耗评估,使用xilinix 的XPE工具评估 2、然后前期芯片选型,硬件电路设计电压 3、设计中分为算法优化和逻辑资源优化 算法优化:程序结构 逻辑资源优化:A 时钟,使用使能或门控(bufgce&#xf…

静态功耗 计算

大概在遥远的90nm之前,leakage power在library里确实是被描述成一个常值的。但从90nm开始,为了更加精确,library里的leakage power不再是个常值了,而是被模拟成一个输入状态的函数。所以基础还是library,在一个library里跟leakage相关的变量大致有: library(my_lib) {lea…

Bluetooth 最大传输速率与功耗计算

低功耗蓝牙版本包括BLE 4.0/4.1, 4.2 以及5.0/5.1/5.2&#xff0c;其中BLE 4.0/4.1, 4.2 只有1Mbps PHY&#xff0c;BLE 5 也可以选择2Mbps的PHY&#xff0c;但在实际使用中&#xff0c;BLE速率受限因素很多&#xff0c;可以参考 <BLE 传输速率/数据吞吐量(Data Throughpu…

【FPGA教程案例73】基础操作3——基于FPGA的Vivado功耗估计

FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------------------------------------------------------- 目录 1.软件版本 2.FPGA工程的功耗分析步骤 2.1 verilog分析程序

从电容充放电公式推导到MOSFET驱动电阻功耗计算

在之前的文章中写到过电容充放电表达式&#xff0c;式中R表示串联电阻&#xff0c;C表示电容容值&#xff0c;V1表示电源电压&#xff0c;V0表示电容两端初始电压&#xff0c;Vt代表在t时刻电容两端电压。本篇将研究该公式的推导过程及延伸计算。 一.充电公式推导 推导过程中主…

ZigBee功耗计算

如何从理论上计算电池使用时间: 休眠时间一天的功耗&#xff1a;1.5微安*240.036mah&#xff1b; 发送数据一天的功耗:10ma*24*1/2012mah(以20分钟发送一次数据为例&#xff0c;暂且定每次发送数据为1s&#xff0c;其实应 该远远小于1s级别) 那么一天的总功耗为&#xff1a;12.…

LoRa开发--lora cad模式下待机功耗计算

一、CAD功耗计算 计算只是LoRa设备不包括MCU的功耗 500ms间隔CAD待机功耗 电流/mA时间/mS小时换算为mS消耗能量/mAhCAD101036000002.77778E-05休眠0.00150036000001.38889E-07             单周期2.79167E-05   平均功耗0.201   年耗电1760.76 1s间隔CAD…