【数字IC基础】低功耗设计

news2024/11/17 11:22:34

低功耗技术

  • 功耗构成
    • 静态功耗(漏电功耗)
    • 动态功耗
      • 翻转功耗(Switch Power)
      • 短路功耗(Internal Power)
    • 不同类型的标准单元的功耗
  • 低功耗设计方法
    • 降低芯片工作电压
    • 多阈值工艺方法
    • 电源门控(Power Gating)
    • 多电压域(Multi-Voltage Domain)
    • 体偏置
    • 门控时钟
      • 一个简单的门控时钟
      • 基于锁存器的门控时钟
      • 基于触发器的门控时钟
      • 门控时钟的可测试性设计
      • 门控时钟的时钟树设计
  • 部分参考资料

功耗构成

在这里插入图片描述

静态功耗(漏电功耗)

CMOS电路中静态功耗主要是由漏电流引起的功耗。漏电流主要由以下几部分组成:

在这里插入图片描述

  1. PN结反向电流 (PN-junction Reverse Current),由少数载流子漂移和在耗尽区产生电子/空穴对引起。

  2. 源极和漏极之间的亚阈值漏电流(Sub-threshold Current),亚阈值泄漏电流是晶体管应当截止时流过的电流。

  3. 栅极漏电流,包括栅极和漏极之间的感应漏电流(Gate Induced Drain Leakage),

  4. 栅极和衬底之间的隧道漏电流 (Gate Tunneling ),由于栅极氧化物隧穿和热载流子注入,从栅极直接通过氧化物流到衬底的电流,

在这里插入图片描述

随着工艺先进,晶体管阈值电压降低,漏电流增大,静态功耗增大。

静态功耗的计算公式:

在这里插入图片描述

动态功耗

在这里插入图片描述

动态功耗 = 翻转功耗 + 短路功耗

翻转功耗(Switch Power)

翻转功耗又称为开关功耗,是电路在开关过程中对输出节点的负载电容充放电所消耗的功耗

当电容Cload通过PMOS 管充电时它的电压从0升至VDD,此时从电源上吸取了一定的能量。该能量的一部分消耗在 PMOS 器件上,而其余的则存放在负载电容上。在由高至低的翻转期间,这一电容被放电,于是存放的能量被消耗在NMOS 管中。

翻转功耗的计算公式:

在这里插入图片描述

从上述公式中可以看出,如果想要减少功耗,可以:①降低电压;②降低反转率;③减少负载电容

短路功耗(Internal Power)

短路功耗又可以称为内部功耗,主要原因是直接通路电流引起的功耗,即短路造成的。短路功耗是因为在输入信号进行翻转时,信号的翻转不可能瞬时完成,因此PMOS和NMOS不可能总是一个截止另外一个导通,总有那么一段时间是使PMOS和NMOS同时导通,那么从电源VDD到地VSS之间在短期内出现了一条直流通路,就形成了短路电流,

在这里插入图片描述

不同类型的标准单元的功耗

低功耗设计基础:深入理解Internal Power

低功耗设计方法

在这里插入图片描述

在设计一个系统的时候,必须清楚功耗和性能的关系。也就是说,在开始设计时必须清楚地知道你的系统应用需要在得到尽可能高性能的基础上降低功耗,还是需要在尽可能低的功耗基础上提高性能,这对采用什么样的低功耗设计技术非常关键。

下图所示为基于低功耗反馈的前向设计方法。从图中可以看出,可以在五个层次上对系统的功耗进行优化,自顶向下分别是系统级优化,行为级优化,RTL级优化,逻辑级优化和物理级优化。

在这里插入图片描述

各层次优化的具体方法及优化效果如下图所示。

在这里插入图片描述

可以看到,层次越高的优化方法优化效果越明显
体系结构级优化:多电压供电、多阈值电压、添加缓存
RTL级优化:门控时钟(对应是的降低反转率f)、减少毛刺
物理级优化:减少电容、衬底偏压

降低芯片工作电压

按照中学物理的计算公式,功率与电压和电流的乘积正相关。在芯片上计算功耗虽然没有这么简单,但是从原理上降低芯片电压仍然是降低功耗最直观最有效的方法。也正因为如此,当前大多数芯片的工作电压从最初的5V、3V一路下降,目前基本都在1V以下甚至0.5V以下。而随之而来的困难在于,随着电压的下降,标准单元的速度也会随之变慢,但是电子设备对处理速度亦即芯片频率的要求却越来越高。以移动设备为例,最初的芯片频率不过几十上百兆赫兹,而现今最快的手机SoC频率峰值已经超过2GHz。这方面也是每一代芯片升级背后所需要解决的技术难题之一。

(静态功耗和动态功耗的计算中都涉及到电压)

多阈值工艺方法

使用多阈值工艺可以在时序和漏电流之间进行一些折中。如下图所示,低阈值的标准逻辑单元具有速度快、漏电流大的特点,高阈值的标准逻辑单元具有速度慢、漏电流小的特点。所以在设计中可以在关键路径上使用低阈值的标准逻辑单元来优化时序,在非关键路径上使用高阈值的标准逻辑单元来优化漏电流。所以使用多阈值工艺可以大大减少系统的静态功耗.

在这里插入图片描述

这是当前芯片行业最常用也是最容易使用的设计方法之一。所谓Vth,指的是逻辑门的阈值电压。而阈值电压和功耗与速度存在如下关系:阈值电压越高,cell速度越慢,功耗越小;反之阈值电压越低,cell速度越快,功耗越高。

在实际应用中,一般采用的策略为:对于性能要求高的模块,或者频率比较高的部分,采用Vth比较低的cell,让setup更容易收敛;对于性能要求较低的模块,或者频率较低的部分,多采用Vth比较高的cell,让功耗更低。通过这种方法,可以实现在同一块芯片上,根据性能和功耗的不同要求而调整cell的使用,从而避免在不太重要的功能上浪费过多的功耗。

电源门控(Power Gating)

一颗SoC中可能包含很多功能模块如视频处理(DSP),音频处理(AUDIO),定位(GPS),游戏(GPU),存储(Memory)等,但大多数功能并不会同时开启,因此为了降低不用模块在等待状态下消耗的功耗,干脆就设计成在不用的时候把它们关闭。这就是Power Gating最初的想法。

最有效的降低功耗的手段莫过于电源关断了。其原因在于不论多低的电压,多小的电流,多慢的速度抑或多小的leakage,都不如将电源完全关闭来的彻底。

在这里插入图片描述

在正常工作状态,Sleep信号为低电平,高阈值MOS管处于导通状态;当处于睡眠状态时,Sleep信号为高电平,切断电源,并且由于采用了高阈值MOS管作为开关,可以有效地减少漏电流。

值得注意的是,一方面,由于模块的输入输出信号是与其他模块相连接的,很多情况下需要在处于睡眠状态的模块与非睡眠状态的模块之间的信号接口上添加隔离单元(Isolation Cell),这样在输出信号的模块断电情况下,没有断电的接收模块的输入信号仍然具有特定的驱动。另一方面,需要添加保持寄存器 (Retention Register)来保持一些特殊存储器件上的值,以保证电源开通时的正常功能。例如,当模块电源处于断电状态时,需要保存其中存储器中的值,就需要添加保持寄存器。

多电压域(Multi-Voltage Domain)

在Power Gating的基础上,还做如下考虑:
对于性能要求较高的CPU,GPU等模块,由于需求频率较高,在设计上可能采用较高的电压,而一些不太核心的模块如AUDIO,GPS等,可以采用相对低的电压来设计。这样一来,整颗芯片可能就会变成下面的样子:

在这里插入图片描述

在当前的设计流程中,一般使用基于模块的设计,这就使多电压设计成为可能。但电压的降低将使 MOS 管的翻转速度降低。可以根据应用场景让不同的模块在不同的电压下以不同的频率运行。

体偏置

将衬底电压偏置,提高晶体管阈值。但阈值电压的升高会影响性能,使用动态偏置的方法,在工作模式下保持较小的偏置电压,在保持模式下加强偏置电压。

值得注意的是,由于MOS 管的体偏转需要时间,电路由等待模式转为工作模式的时间较长。

参考链接:
低功耗基础:Body Bias

门控时钟

随着如今芯片的规模和功耗越来越大,门控时钟被大量地用在芯片设计中,这是在 RTL级的低功耗优化技术

门控时钟即用逻辑门控制电路模块时钟信号的通断,从而控制该模块的工作情况。

当芯片上的某一模块的功能不需要工作时,如芯片上的 USB 模块或 SPI 接口模块没有使用时,通常会将通往这些模块的时钟停下来。通过关闭空闲电路的时钟,可以大量减少消耗在时钟树上的和不工作的触发器上的功耗。

一个简单的门控时钟

下图所示为一种简单的门控时钟电路结构,它由一个与门或者是或门组成。(“与”门或“或”门使用哪个取决于触发器的活跃沿)

在这里插入图片描述

不含有锁存器的门控时钟电路,虽然实现比较简单,但是我们无法确定EN的持续时间,如果EN的持续时间小于T/2(T位CLK的周期),那么就会产生门控无效的问题。

在这里插入图片描述

此外,还会引起时钟毛刺的产生:

在这里插入图片描述

当源时钟 CLK 为高电平时,如果CLK_EN为低电平,GCLK 将立刻变为低电平,结果一个时钟的下降沿提前出现,即产生一个类似于毛刺的不完整时钟信号,这会影响一些使用下降沿触发器的电路。同样的,当源时钟CLK为高电平时,如果 CLK_EN 变为高电平,GCLK将立刻变为高电平,造成一个时钟的上升沿提前出现,这会影响一些使用上升沿触发器的电路。总之,这类在门控时钟上出现的毛刺,对同步电路来说是非常致命的。

(使能信号的到来时间和离开时间是不确定的,导致)

基于锁存器的门控时钟

对于简单使用与门的情况,在时钟信号位高电平的时候,使能端的变化会可能会导致毛刺的产生(因为高电平是与门的非控制值,低电平时控制值)。

为了避免过早截断时钟脉冲或误产生多个时钟脉冲(或时钟上的毛刺),正确的操作强制要求使能信号(EN)从时钟活跃沿(本例为上升沿)起持续到时钟不活跃沿(本例为时钟下降沿)止为一个常量。

基于锁存器的门控时钟的思想是设计中加入了一个电平敏感的锁存器,以在时钟活跃沿和不活跃沿之间保持使能信号不变,这样就无须依靠门控电路本身来满足这一要求了。如下图所示:

在这里插入图片描述

基于触发器的门控时钟

虽然基于 Latch 的门控时钟保证门控时钟周期完整、避免产生毛刺。但会产生亚稳态,避免产生亚稳态就把锁存器换成触发器。

在这里插入图片描述

(使用触发器就可以同伙时序约束来避免亚稳态的产生。)

集成时钟门控单元(Integrated Clock Gating Cell

门控时钟的可测试性设计

在进行可测性设计的时候,如果要进行全扫描设计,则希望所有的触发器在扫描模式时都由个统一的同步时钟驱动。如果电路中存在门控时钟单元,则会使得产生的时钟 GCLK 不可控制。最简单的解决方法是在门控电路结构前加入一个或门,其输入为扫描测试模式的使能信号和门控时钟使能信号,如图10所示。在测试模式下,时钟的门控时钟单元将被旁路。
在这里插入图片描述

门控时钟的时钟树设计

在时钟树的设计中,门控时钟单元应尽量摆放在时钟源附近,即防止在门控时钟单元的前面摆放大量的时钟缓冲器(Buffer)。这样,在利用门控时钟电路时钟时不仅能将该模块中的时钟停掉,也能将时钟树上的时钟缓冲器停止反转,有效地控制了时钟树上的功耗。如下图所示,在布局时将门控时钟电路的部件摆放在一起,并摆放在时钟源 GCLK 附近,停掉时钟后,整个时钟树上的缓冲器(CTS)和时钟树驱动的模块都停止了翻转。通常的 SOC 设计中,门控时钟单元会被做成一个硬核或标准单元,称之为集成时钟门控单元(Integrated Clock Gating Cell),也就是 ICG 技术。

在这里插入图片描述

部分参考资料

低功耗设计方法

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

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

相关文章

AWS Amplify 部署node版本18报错修复

Amplify env:Amazon Linux:2 Build Error : Specified Node 18 but GLIBC_2.27 or GLIBC_2.28 not found on build 一、原因 报错原因是因为默认情况下,AWS Amplify 使用 Amazon Linux:2 作为其构建镜像,并自带 GLIBC 2.26。不过,…

【M波段2D双树(希尔伯特)小波多分量图像去噪】基于定向M波段双树(希尔伯特)小波对多分量/彩色图像进行降噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

使用 OpenCV 和 Python 卡通化图像-附源码

介绍 在本文中,我们将构建一个有趣的应用程序,它将卡通化提供给它的图像。为了构建这个卡通化器应用程序,我们将使用 python 和 OpenCV。这是机器学习令人兴奋的应用之一。在构建此应用程序时,我们还将了解如何使用 easygui、Tkinter 等库。在这里,您必须选择图像,然后应…

二叉树的遍历(先序遍历,中序遍历,后序遍历)递归与非递归算法

目录 一、先序遍历题目链接1.递归2.非递归 二、中序遍历题目链接1.递归2.非递归 三、后序遍历题目链接1.递归2.非递归 一、先序遍历 先序遍历:先遍历一颗树的根节点,后遍历左子树,最后遍历右子树 先序遍历序列: 1 -> 2 -> 4…

20.4 HTML 表单

1. form表单 <form>标签: 用于创建一个表单, 通过表单, 用户可以向网站提交数据. 表单可以包含文本输入字段, 复选框, 单选按钮, 下拉列表, 提交按钮等等. 当用户提交表单时, 表单数据会发送到服务器进行处理.action属性: 应指向一个能够处理表单数据的服务器端脚本或UR…

vue使用拖拽功能实现仓库存放货物的需求

效果&#xff1a; 代码 <template><div><div class"bigTitle">xxxxxxxxxxxxxx仓库拖拽系统</div><div class"container2 flex-j-space-between"><div class"product-list"><div class"leftTree h…

Python入门【​try和except结构、常见异常、with上下文管理 、traceback模块和生成异常日志、自定义异常类】(十八)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

【C++】STL——stack和queue的模拟实现、空间适配器、deque的介绍、增删查改函数的简单实现

文章目录 1.deque的简单介绍2.模拟实现stack3.模拟实现queue 1.deque的简单介绍 deque的介绍文档 deque(双端队列)&#xff1a;是一种双开口的"连续"空间的数据结构&#xff0c;双开口的含义是&#xff1a;可以在头尾两端进行插入和删除操作&#xff0c;且时间复杂度…

实现多线程的三种方式

1. 继承Thread 类实现多线程 想要实现多线程&#xff0c;第一种方法就是通过继承Thread类实现多线程&#xff0c;有以下几步 &#xff08;1&#xff09;我们要先自定义一个类然后继承Thread类&#xff1b; &#xff08;2&#xff09;在继承Trread的类中重写 run 方法&#x…

成功了!|| Poetry安装pytorch || 整理自github项目Poetry下的issue

在使用Poetry安装pytorch的时候&#xff0c;常常会遇到各种问题&#xff1a;首先是使用add添加时&#xff0c;会说只有torch没有什么pytorch&#xff0c;很显然&#xff0c;它是直接针对包的&#xff0c;第二点是&#xff0c;如果是一台没有nvidia显卡的机器&#xff0c;由于po…

CISA《网络安全事件和漏洞响应手册》提到的SSVC是什么?

2021年11月16日&#xff0c;美国网络安全和基础设施安全局(CISA)根据行政命令EO 14028的要求发布了《网络安全事件和漏洞响应手册》。手册规定的漏洞响应过程包括识别、评估、修复、报告通知4个步骤&#xff0c;其中评估部分的第一句话提到“使用特定相关者漏洞分类法(Stakehol…

C++ 动态内存分配

在C中动态内存的分配技术可以保证程序在允许过程中按照实际需要申请适量的内存&#xff0c;使用结束后还可以释放&#xff0c;这种在程序运行过程中申请和释放的存储单元也称为堆。 申请和释放过程一般称为建立和删除。 在C程序中&#xff0c;建立和删除堆对象使用两个运算符&…

html页面input设置日期和时分秒组件方法

html <input class"form-control" type"datetime-local" step"01">效果图

Java根据坐标经纬度计算两点距离(5种方法)、校验经纬度是否在圆/多边形区域内的算法推荐

目录 前言 一、根据坐标经纬度计算两点距离&#xff08;5种方法&#xff09; 1.方法一 2.方法二 3.方法三 4.方法四 5.方法五 5.1 POM引入第三方依赖 5.2 代码 6.测试结果对比 二、校验经纬度是否在制定区域内 1.判断一个坐标是否在圆形区域内 2.判断一个坐标是否…

安防监控国标GB28181平台EasyGBS视频快照无法显示是什么原因?如何解决?

安防视频监控国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入&#xff0c;并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强&#xff0c;支持将接入的视频流进行全终端、全平台分发&#xff…

【Leetcode刷题】模拟

本篇文章为 LeetCode 模拟模块的刷题笔记&#xff0c;仅供参考。 目录 一. 字符串Leetcode43.字符串相乘Leetcode592.分数加减运算Leetcode68.文本左右对齐 二. 矩阵Leetcode54.螺旋矩阵Leetcode885.螺旋矩阵 IIILeetcode498.对角线遍历Leetcode874.模拟行走机器人 三. 数组Lee…

Aligning Large Language Models with Human: A Survey

本文也是LLM相关的综述文章&#xff0c;针对《Aligning Large Language Models with Human: A Survey》的翻译。 对齐人类与大语言模型&#xff1a;综述 摘要1 引言2 对齐数据收集2.1 来自人类的指令2.1.1 NLP基准2.1.2 人工构造指令 2.2 来自强大LLM的指令2.2.1 自指令2.2.2 …

JavaSE【抽象类和接口】(抽象类、接口、实现多个接口、接口的继承)

一、抽象类 在 Java 中&#xff0c;一个类如果被 abstract 修饰称为抽象类&#xff0c;抽象类中被 abstract 修饰的方法称为抽象方法&#xff0c;抽象方法不用 给出具体的实现体。 1.语法 // 抽象类&#xff1a;被 abstract 修饰的类 public abstract class Shape { …

AI.com的命运之战:马斯克如何从OpenAI手中夺走这个价值千万的域名

一、AI.COM AI.com是一个极具价值的域名&#xff0c;它于1993年5月注册&#xff0c;距今已有近30年的历史。2021年2月&#xff0c;人工智能研究机构OpenAI以至少1100万美元&#xff08;约合人民币7535万元&#xff09;的高价&#xff0c;拿下了这个域名。OpenAI是马斯克在2015…