ic基础|功耗篇04:门级低功耗技术

news2024/7/30 9:23:21

大家好,我是数字小熊饼干,一个练习时长两年半的IC打工人。我在两年前通过自学跨行社招加入了IC行业。现在我打算将这两年的工作经验和当初面试时最常问的一些问题进行总结,并通过汇总成文章的形式进行输出,相信无论你是在职的还是已经还准备入行,看过之后都会有有一些收获,如果看完后喜欢的话就请关注我吧~谢谢~

在之前的文章中,我们主要介绍了系统级、RTL级低功耗技术,这些低功耗方法主要依靠架构人员、软件人员和数字前端人员实现。本期文章让我们来聊聊门级低功耗优化方法,与之前介绍过的低功耗方法不同的是,门级低功耗方法主要依靠的是EDA工具实现。

一、路径平衡

芯片中存在大量的组合逻辑,当来自不同路径的信号输入至同一个逻辑门时,不同路径上的信号传输延迟导致了不必要的翻转,这就会导致大量的动态功耗的产生,因此,可以通过插入buffer的方法将不同路径的输入信号延迟修正至一致,使不同路径上的信号同时到达,这样就不会产生不必要的翻转。这种方法就是所谓的路径平衡,如下图所示:

在这里插入图片描述
如上图所示,通过插入buffer的方式增加了信号B的延迟,使得信号A与B同时到达与门,进而减少了由之前的“毛刺”所带来的动态功耗。

二、逻辑级优化

逻辑级优化是通过减少冗余逻辑、调整门的大小、重排序操作、引脚的交换/重新分配、重新映射、使用低功耗的标准单元进行设计等方法实现的门级低功耗方法。下面让我们开始对这些内容进行介绍:

2.1 逻辑门尺寸优化

简单来说,所谓的逻辑门尺寸优化就是在不同路径使用不同尺寸的逻辑门。

例如:在时序比较宽裕的非关键路径上可以使用一些较小尺寸的逻辑门,这样可以减小输入电容,从而减小前驱的翻转电流,进而降低了翻转功耗。但是这样也会增大信号的转换时间,对其时序造成一定的影响,因此可以对非关键路径上的逻辑门进行优化,以降低动态功耗。

2.2 引脚重分配

对于逻辑单元库的标准单元来说,其不同引脚的逻辑功能相同,但其负载电容与信号延时参数可能是不同的,因此可以使用负载电容低的引脚去连接翻转频率高的输入信号,这样就可以减少翻转频率高的信号的负载电容,减少充放电导致的动态功耗。
在这里插入图片描述
如上图所示,从上往下的引脚负载电容依次增大,输入信号a到d的翻转频率依次增大,因此,通过将信号按照d-a的顺序分配至各个引脚,可以实现降低功耗的目的,这种方法叫引脚重分配。

2.3 重排序

对于逻辑门来说,其各个输入信号的翻转率可能并不相同,因此可以将翻转频率大的输入信号分配至靠近输出的位置,以减少翻转率高的输入信号驱动的逻辑门数量,这种低功耗方法叫做重排序。下面让我们举个例子:
在这里插入图片描述
图中的输入信号b为翻转频率较高的信号,因此对信号b进行重排序操作,在排序前,信号b会驱动4个逻辑门(如左图所示),而排序后,只会驱动2个逻辑门(如右图所示),这就减少了内部电路的翻转,从而降低了动态功耗。

2.4 重映射

重映射相当于对逻辑进行优化,将冗余的逻辑门优化为具有相同功能且数量更少的逻辑门。
在这里插入图片描述
如上图所示,在重映射前f=((a & b) & ~(c & d)),使用了两级的与非门,这显然是可以优化的,在重映射后,只使用了一级的逻辑门OAI就可以实现相同的功能,显然降低了系统的动态功耗。

三、 物理级优化

所谓的物理级优化是在布局布线之类的物理实现时,通过降低翻转和减少负载电容来降低系统的功耗,物理级优化主要有以下几种方法:

  • 使用低功耗的库;
  • 设计低功耗的布局规划;
  • 基于功耗优化的布局规划;
  • 通过布局布线来减少毛刺;
  • 在优化布局的试试调整buffer和连线的大小;
  • 调整晶体管的大小来减少负载电容;

四、 总结

本篇文章主要讨论了芯片设计中的门级低功耗优化技术,与之前的文章里提到的系统级、RTL级低功耗技术相比,门级低功耗优化技术在低功耗设计中的层次较低,对功耗优化的占比也没有那么的大。不过我们仍需要了解并应用这些低功耗方法,并在不同的芯片设计阶段采用这些低功耗优化技术,旨在从多个角度降低芯片的功耗,提高能效比。

以下是该系列的往期链接:

ic基础|功耗篇01:影响芯片实际表现的重要指标——功耗的分类
ic基础|功耗篇02:系统级低功耗技术
ic基础|时钟篇03:低功耗技术之——门控时钟clock gating及锁存器latch的避免
ic基础|功耗篇03:ic设计人员如何在代码中降低功耗?一文带你了解行为级以及RTL级低功耗技术

如果你喜欢这篇文章的话,请关注我的公众号-熊熊的ic车间,里面还有ic设计和ic验证的学习资料和书籍等着你呢~欢迎您的关注!
在这里插入图片描述

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

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

相关文章

pdf合并,pdf合并成一个pdf,pdf合并在线网页版

在处理pdf文件的过程中,有时我们需要将多个pdf文件合并成一个pdf文件。作为一名有着丰富计算机应用经验的技术博主,我将为您详细介绍如何将多个pdf文件合并成一个pdf文件。 pdf合并方法:使用, “轻云处理pdf官网” 打开 “轻云处…

mysql_config 命令, 可以查看mysqlclient库的位置在/usr/lib64/mysql下

好吧,其实我是从这里知道了 -l 后面加的库名和so文件这种名不一样,因为库文件实际叫下面这个名(前面有lib)。

昇思MindSpore学习笔记1--基本介绍

昇思MindSpore是一个全场景深度学习框架。 一、框架组成 1. 模型库ModelZoo 提供深度学习算法网络。 2. 扩展库MindSpore Extend 拓展领域场景,如GNN/深度概率编程/强化学习等。 3. 科学计算MindSpore Science 科学计算套件。 包含数据集、基础模型、预置高精度模…

Mybatis从源码分析——启动到解析配置文件再到执行SQL语句过程

文章目录 前言解析配置文件解析源码Mapper文件解析过程二级缓存解析过程SQL的解析 SQL执行流程openSession()流程Executor执行器二级缓存查询数据流程 插件使用原理 前言 mybatis的体系结构: public class App {public static void main(String[] args) {String re…

【Java】解决Java报错:UnsupportedOperationException in Collections

文章目录 引言一、UnsupportedOperationException的定义与概述1. 什么是UnsupportedOperationException?2. UnsupportedOperationException的常见触发场景3. 示例代码 二、解决方案1. 使用适当的集合类型2. 创建可变副本3. 使用合适的集合工厂方法4. 使用不可变集合…

win11 (将星x17promax) 安装WSL 子系统

最初只是想着在win11系统下挂载ext4盘符,方便使用。 目录 0. 简介1.安装WSL子系统1.1 环境确认1.1.1 虚拟化设置1.1.2 系统设置1.1.3 开启开发者模式(此项有必要?)1.1.4 安装WSL子系统 2.WSL操作指令2.0 WSL相关命令2.1 WSL重置2.…

《概率论与数理统计》期末复习笔记_上

目录 第1章 随机事件与概率 1.1 随机事件 1.2 事件的关系与运算 1.3 概率的定义与性质 1.4 古典概型_重点 1.5 几何概型 1.6 条件概率与乘法公式 1.7 全概率公式与贝叶斯公式_重点 1.8 事件的独立性_重点 1.9 伯努利概型_重难点 第2章 随机变量及其分布 2.1 随机变…

MySQL之可扩展性(三)

可扩展性 向外扩展 可以把向外扩展(有时也称为横向扩展或水平扩展)策略划分为三个部分:复制、拆分以及数据分片(sharding).最简单也最常见的向外扩展的方法是通过复制将数据分发到多个服务器上,然后将备库用于读查询。这种技术对于以读为主的应用很有效。它也有一…

【乐吾乐2D可视化组态编辑器】自定义图形库

乐吾乐2D可视化组态软件图形库是一种可扩展、开放性的图形库,可根据不同的需求定制各种酷炫的组件效果和场景。 常用的方式有:①原生代码图形库、②字体图形库、③svg 图形库、④图片、⑤组合图形,以下主要从性能和开发成本维度考量&#xf…

内网渗透:端口转发(SSH隧道)

SSH:两台设备之间进行远程登录的协议(SSH本身就是一个隧道协议) 远程文件传输scp命令(scp是基于SSH的) 拓扑: SSH隧道搭建的条件 1.获取到跳板机权限 2.跳板机中SSH服务启动 SSH端口转发分类&#xff1…

锁机制 -- 概述篇

锁机制 1、概述 ​  加锁是为了解决并发场景下,多个线程对同一资源同时进行操作,而导致同一线程多次操作出现结果不唯一的情况(一次操作包含多条指令)。结果不唯一发生的原因在于指令的错乱,前提条件是多线程环境及…

模版总结小全

BFS 最短步数问题 #include<iostream> #include<queue> #include<cstring> using namespace std;const int N 50; char g[N][N],d[N][N]; int dx[] {-1,0,1,0}; int dy[] {0,1,0,-1}; int n,m;int bfs(int x,int y){queue<pair<int,int> > q…

ardupilot开发 --- 坐标变换 篇

Good Morning, and in case I dont see you, good afternoon, good evening, and good night! 0. 一些概念1. 坐标系的旋转1.1 轴角法1.2 四元素1.3 基于欧拉角的旋转矩阵1.3.1 单轴旋转矩阵1.3.2 多轴旋转矩阵1.3.3 其他 2. 齐次变换矩阵3. visp实践 0. 一些概念 相关概念&am…

“论模型驱动架构设计方法及其应用”,软考高级论文,系统架构设计师论文

论文真题 模型驱动架构设计是一种用于应用系统开发的软件设计方法&#xff0c;以模型构造、模型转换和精化为核心&#xff0c;提供了一套软件设计的指导规范。在模型驱动架构环境下&#xff0c;通过创建出机器可读和高度抽象的模型实现对不同问题域的描述&#xff0c;这些模型…

自定义指令directive

一、在src目录下创建一个directive文件夹 test.ts文件存放创建的自定义指令&#xff0c;index.ts用于接收所有指令进行统一处理 二、编写自定义指令 // test.ts文件 export default {// 写个自定义指令mounted(el: any, binding: any) {console.log(el, binding, "&qu…

CC1利用链分析

分析版本 Commons Collections 3.1 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 我的Github主页Java反序列化学习同步更新&#xff0c;有简单的利用链图 首先看下CC1利用链的RCE利用点&#xff0c;在接口Transformer 接下来查看此接口的实现类&#xf…

将json对象转为xml进行操作属性

将json对象转为xml进行操作属性 文章目录 将json对象转为xml进行操作属性前端发送json数据格式写入数据库格式-content字段存储&#xff08;varchar(2000)&#xff09;Question实体类-接口映射对象QuestionContent 接收参数对象DAO持久层Mapper层Service层Controller控制层接收…

谈一下MySQL的两阶段提交机制

文章目录 为什么需要两阶段提交&#xff1f;两阶段提交流程&#xff1f;两阶段提交缺点&#xff1f; 为什么需要两阶段提交&#xff1f; 为了保证事务的持久性和一致性&#xff0c;MySQL需要确保redo log和binlog的同步持久化。MySQL通过“两阶段提交”的机制来实现在事务提交…

MyBatis第一节

目录 1. 简介2. 配置3. doing3.1 创建一个表3.2 打开IDEA&#xff0c;创建一个maven项目3.3 导入依赖的jar包3.4 创建entity3.5 编写mapper映射文件(编写SQL)3.6 编写主配置文件3.7 编写接口3.8 测试 参考链接 1. 简介 它是一款半自动的ORM持久层框架&#xff0c;具有较高的SQ…

【Kubernetes】搭建工具Kubeadm环境配置

架构&#xff1a;服务器采用Master-nodes&#xff08;3台&#xff09; Worker-nodes(2台) 一&#xff0c;服务准备工作 &#xff08;1&#xff09;在所有&#xff08;5台&#xff09;机器配置 主机名绑定&#xff0c;如下&#xff1a; cat /etc/hosts192.168.0.100 k8s-m…