数字IC设计——功耗分析

news2024/12/25 0:15:47

一、概述

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

1.1 功耗的分类

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

1.2 芯片的翻转率

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

可使用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 PrimeTime PX

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

输入文件

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

Prime Time PX的翻转率提取

在这里插入图片描述

report

在这里插入图片描述

功耗曲线

在这里插入图片描述

结果分析

PrimeTime PX(Power Analysis) userguide阅读笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/442311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Three.js+TypeScript+Webpack学习记录(二)

使用环境参考 Node.js v16.19.1 正文 跟着文档画个线 看看 Three 的官方文档,起步 -> 画线 -> 没了?!! 不管怎么说,先画个线吧。 import * as THREE from threeconst scene new THREE.Scene() const camer…

HummerRisk V1.0 开发手册(微服务版)

HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生环境的安全和治理问题。核心能力包括混合云的安全治理和容器云安全检测。 本文将介绍HummerRisk 1.0以后的开发准备工作。 v1.0.0 以后的版本,代码在 dev 分支。欢迎大家在 dev 开发分支提…

多通道振弦传感器无线采集仪 数字传感器起始通道分配

多通道振弦传感器无线采集仪 数字传感器起始通道分配 寄存器 DS_CHNUM(299)用于设置读取到的数字传感器数据从哪个通道开始占用,默认为 1。 单个数字传感器占用的通道数量与具体的传感器类型有关,例如:每个激光测距仪会占用 1 个通道&#xf…

Linux Shell 实现一键部署二进制go+caddy+filebrowser

filebrowser filebrowser 是一个使用go语言编写的软件,功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件,或者是添加删除文件,甚至可以分享文件,是一个很棒的文件管理器,你甚至可以当成一个网盘来使用。…

HCIE Datacom认证学什么内容

什么HCIE 什么是HCIE?HCIE的全称是Huawei Certified ICT Expert(华为认证ICT技术专家)。 华为认证是行业中最严谨的认证,含金量与行业认可度都较高。在众多的IT行业认证中,HCIE被誉为“网络界的博士”。 华为认证HCI…

深度学习 - 41.Word2vec、EGES 负采样实现 By Keras

目录 一.引言 二.实现思路 1.样本构建 2.Word2vec 架构 3.EGES 架构 4.基于 NEG 的 Word2vec 架构 三.Keras 实现 Word2vec 1.样本构建 2.模型构建 3.向量获取 四.keras 实现 EGES 1.样本构建 2.模型构建 3.Dot Layer 详解 3.1 init 方法 3.2 call 方法 3.3 完…

4月18号软件更新资讯合集

ModStartCMS v6.2.0,VIP 权益配置功能、界面 UI 优化升级 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.…

4月19号软件更新资讯合集....

JavaWeb 微服务前后端分离 EurekaEleVue 版 v1.5.0 发布 v1.5.0 更新如下: 1、解决 token 过期无法跳转至登录页的问题; 2、授权服务进行重构与优化; 一款 Java 语言基于 SpringCloud、SpringSecurity、OAuth2、Eureka、Vue、ElementUI、…

Docker实战笔记1-基础

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/130181636 本文出自【赵彦军的博客】 文章目录 官网下载安装安装Docker 镜像镜像分层存储 容器常用命令docker infodocker imagesdocker versiondocker ps :查看容器docker ps -a查看容…

如何检查设置的IP是否有效?Storm proxies动态代理IP好用吗?

检查设置的IP是否有效可以通过以下几种方式: 发起网络请求:可以使用HTTP客户端库(例如Python的Requests库)或者命令行工具(例如curl)来发起网络请求,使用设置的IP作为代理IP,然后查看…

读SQL进阶教程笔记12_地址与三值逻辑

1. SQL和数据库都在极力提升数据在表现层的抽象度,以及对用户隐藏物理层的概念 2. 关系模型是为摆脱地址而生的 2.1. “地址”不仅包括指针操作的地址,还包括数组下标等 3. 一个优雅的数据结构胜过一百行杂耍般的代码 3.1. 精巧的数据结构搭配笨拙的…

数据结构入门——顺序表(保姆级教程,增,删,改,查)

1.什么是顺序表 1.顺序表:可动态增长的数组,要求数据是连续存储的 2.顺序表的定义: 静态顺序表:使用定长数组存储元素(缺点:小了不够用,大了还浪费) 动态顺序表:可根…

744. 寻找比目标字母大的最小字母

给你一个字符数组 letters,该数组按非递减顺序排序,以及一个字符 target。letters 里至少有两个不同的字符。 返回 letters 中大于 target 的最小的字符。如果不存在这样的字符,则返回 letters 的第一个字符。 示例 1: 输入: le…

3. VBA术语

在本章中,将介绍常用的Excel VBA术语。这些术语将在很多的模块中使用,因此理解其中的每一个术语都很重要。 3.1 模块 模块是编写代码的区域。如下图中,这是一个新的工作簿,因此没有任何模块。 要插入模块,请导航到插…

Cell--瘤内微生物将开辟新疗法

2023年4月13日,弗雷德哈钦森癌症中心的微生物学家Susan Bullman教授在《Cell》杂志发表了关于肿瘤内微生物群的评论。 微生物群是肿瘤微环境的一个组成部分 在患者的肿瘤内部,恶性细胞处在一个复杂的生态系统中,周围是正常细胞的网络&#xf…

socks5与http代理如何转化?stormproxies怎么解决?

Socks5和HTTP代理之间可以通过一些工具或软件进行转化,具体的方法如下: 使用ProxyCap:ProxyCap是一款常用的代理工具,可以将Socks5代理转化为HTTP代理。在ProxyCap中设置Socks5代理的服务器地址和端口,然后在本地设置H…

Java应用高性能的方法和思路

Java应用高性能的方法和思路 目录概述需求: 设计思路实现思路分析 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge …

软件测试基础概念

1.软件测试的生命周期 需求分析-》测试计划-》测试设计-》测试开发-》测试执行-》测试评估 需求分析:分析需求是否合理和正确 计划:确定软件由谁测试? 什么时候开始测试,什么时候结束测试 测试那些模块 测试设计和测试开发阶段:…

4.19~20(总结)

项目越到后面,推进越难,已经到了发送消息这里了,这个做完,基本上也就完成得七七八八了,后面只需要优化了,但是现在卡在这里就还是有点难搞。 首先,我的界面已经成这样了。 我的打算是这样可以搜…

C++基础知识-2

本期我们接着来讲C的基础知识,没有看过的朋友可以先看看上一期 (16条消息) C基础知识-----命名空间_KLZUQ的博客-CSDN博客 目录 4.缺省参数 5.函数重载 6.引用 7.内联函数 8.auto关键字(C11) 9. 基于范围的for循环(C11) 10.指针空值nul…