0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

降低电路漏电功耗的低功耗设计方法

电子工程师 来源:集成电路设计及EDA教程 作者:Horizon00 2020-09-16 16:04 次阅读

概念:

Power/Ground Gating是集成电路中通过关掉那些不使用的模块的电源或者地来降低电路漏电功耗的低功耗设计方法。该方法能降低电路在空闲状态下的静态功耗,还能测试Iddq。

理论:

在电路中的某些模块进入休眠或者空闲模式时,我们可以使用之前讲过的Clock Gating技术来降低它们的动态功耗,但是无法降低它们的静态功耗。而Power/Ground Gating技术可以在它们休眠的时候完全关掉它们的电源从而消除它们的静态功耗。

理想情况下,Power gating可以完全消除电路的静态功耗,可实际电路中Power gating只能完全关掉dynamic的power消耗,而leakage却只会减少,不会消失,因为power gating技术仍需要加入一些Always On的Cell(比如switching cell、isolate cell和retention cell,它们都是一直开启的,它们的电源不能被关断,会带来leakage)。

如下图所示为采用了Power gating的电路动态功耗与静态功耗在active模式以及sleep模式下功耗的变化曲线。

Power gating中用到的几种Cell

接下来将对几种Cell分别介绍。

由于内容非常多,非常详细,所以本推文先介绍第一个--Power Switching Cell。

Power Switching Cell

Power Gating或者Ground Gating相应Switching Cell的选取:

Power Gating -> Header -> PMOS

Ground Gating -> Footer -> NMOS

由于Power Switching Cell是Always On Cell,因此为了降低它上面的功耗,一般采用高阈值MOS管实现。下面的图中MOS管上面黑线加粗表示高阈值器件。

下面给出两种方案各自的特点,优缺点以及两种门控方案在SLEEP模式下哪种功耗更低。

下图是Power Gating方案:

特点:

用PMOS实现的Header,用来控制电源的接通与否。

优点:

比Footer实现的Ground Gating功耗更低,因为Header下方的PMOS(在实际电路中会有很多)体端接Virtual VDD,在SLEEP模式下约为0V,不存在PN节反偏注入电流

缺点:

PMOS驱动能力弱,与Footer相比需要占用更大的面积。

注意:该缺点在先进工艺下已经不存在,由于锗硅工艺的引入,PMOS可能比NMOS驱动还要强一些。由于该缺点已经不存在,因此先进工艺下更多采用Header,也就是Power Gating。

Ground Gating方案:

特点:

用NMOS实现的Footer,用来控制GND的接通与否。

优点:

在之前的老工艺中,相同尺寸的NMOS驱动能力比PMOS要强,因此与Header相比采用Footer的Ground Gating更省面积。

但是在先进工艺中,该优点也逐渐丧失了,原因前面已经解释过了。

缺点:

在SLEEP模式下,漏电功耗比较大。

因为如下:Footer上方的NMOS(在实际电路中会有很多)体端是P衬底,在单阱工艺下只能接GND,在SLEEP模式下NMOS源漏两端的电位都差不多是VDD,此时NMOS存在很大的PN节反偏注入电流。

Power Switching Cell的启动与关闭

Power Switching Cell的个数、分布以及启动、关闭上都有讲究。

这对IR-drop、Timing、漏电流、启动及关闭的速度等都有影响。

另外,所有的Header或者Footer也不能同时一起打开或者关闭,因为这样在电源或者地上会有很大的开关噪声,如下图所示:

为了避免这种现象,目前的集成电路设计中广泛采用如下图所示的Daisy Chain结构,多个Footer或者Header之间插入Buffer,每隔一段时间开启/关闭一组,再隔一段时间开启/关闭另外一组……直到最后所有的Switching Cell开启/关闭为止。

Power Switching Cell的种类与分布

前面我们根据Power或者Ground Gating来将Switching Cell分为两种:Header和Footer。

另外,我们还可以根据Switching Cell控制Cell的形式将它分为两种:Coarse Grain Power Switch Cell和Fine Grain Power Switch Cell。

后者是专门在一些逻辑单元内设计的电源控制逻辑,控制简单,但是面积比较大,如下图所示:

而前者是分立的Switching Cell,可以在版图中控制它们的分布,设计复杂度大一点,但是面积开销比较小,现在广泛采用这种形式。

根据前面讲述的内容,Power Switching Cell在物理版图中的分布有一定的要求。

有列状分布:

还有环状分布:

考虑到前面讲的Daisy Chain结构以及IR-drop等因素,目前广泛采用列状排布。

Power Switching Cell的lib描述

前面讲到,Power Switching Cell有两种,分别为Coarse Grain Power Switch Cell和Fine Grain Power Switch Cell。

下面是一个Coarse Grain Power Switch Cell的Liberty格式描述:

library(《coarse_grain_library_name》) { #library 描述开始

lu_table _template ( template_name ) #电压状态template描述,dc_current组中会使用

variable_1 : input_voltage;

variable_2 : output_voltage;

index_1 ( 《float》, … );

index_2 ( 《float》, … );

}

cell(《cell_name》) { #某个Power Switching Cell描述开始

switch_cell_type : coarse_grain; #Switching Cell类型是coarse_grain,暂时只支持该类型

pg_pin ( 《VDD/VSS pin name》 ) { #声明电源和地的pg_pin格式

pg_type : primary_power | primary_ground; #他们是主电源和主地

direction : input ; #方向是输入

}

/* Virtual power and ground pins use “switch_function” to describe the logic to

shut off the attached design partition */

pg_pin ( 《virtual VDD/VSS pin name》) { #声明内部电源和地,这就是输出电源/地的端口

pg_type : internal_power | internal_ground;

direction: output; #方向是输出

switch_function : “《function_string》”; #定义开断控制功能,例如SLEEP

pg_function : “《function_string》”; #内部电源或地功能与输入的pg_pin一致,对于header switch来说就是premary_power的Pin Name,对于Footer Switch来说就是primary_ground的Pin Name

}

dc_current ( 《dc_current_name》 ) { #定义不同条件下输出Pin的稳定电流值,EDA工具利用该数据计算IR Drop,并进行Switch的优化。

related_switch_pin : 《input_pin_name》; #定义控制开断的Pin

related_pg_pin : 《VDD pin name》; #定义可以被控制开断的电源Pin,如果是Footer Switch则是地Pin

related_internal_pg_pin : 《Virtual VDD》; #定义不会被关闭的内部电源Pin,Footer Switch则是地Pin

values(”《float》, …”); #定义不同状态下的该Cell输出的电流值

}

pin (SLEEP) { #Pin SLEEP定义开始,SLEEP只是举例

direction : input;

switch_pin : true; #表示该输入Pin是switch pin,控制电源/地的开断

/* The acknowledge output pin uses “function” to represent the propagated switching signal

*/

pin(《acknowledge_output_pin_name》) { #定义应答输出Pin开始,完成开断后,与switch pin状态一致,有的Switch Cell可能没有该pin

function : “《function_string》”; #功能定义,应该与SLEEP状态一致

power_down_function : “function_string”; #定义关断后电源状态,如对于Header switch来说可以是!VDD+VSS,而Footer Switch来说可以是!VSS+VDD

direction : output;

} /* end pin group */

} /* end cell group */

Fine Grain Power Switch Cell的Liberty格式描述:

cell(《cell_name》) { #Fine Grain Power Switch Cell都是某个Cell内的一部分,不单独出现

is_macro_cell : true; #定义是不是macro cell

switch_cell_type : coarse_grain | fine_grain; #多数设置为fine_grain

pg_pin ( 《power/ground pin name》 ) { #定义电源信号,primary_是可以断开的,backup_是不会断开的。

pg_type : primary_power | primary_ground | backup_power | backup_ground;

direction: input | inout | output;

}

/* This is a special pg pin that uses “switch_function” to describe the logic to shut

off the attached design partition */

pg_pin ( 《internal power/ground pin name》) { #定义内部电源/地

direction: internal | input | output | inout;

pg_type : internal_power | internal_ground;

switch_function : “《function_string》”;

pg_function : “《function_string》”;

}

pin (《input_pin_name》) {

direction : input | inout;

switch_pin : true | false; #如果是switch pin就是true

}

pin(《output_pin_name》) {s

direction : output | inout;

power_down_function : 《function_string》;

} /* end pin group */

} /* end cell group */

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 集成电路
    +关注

    关注

    5321

    文章

    10746

    浏览量

    353460
  • 静态功耗
    +关注

    关注

    0

    文章

    16

    浏览量

    8876
  • PMOS
    +关注

    关注

    4

    文章

    228

    浏览量

    28729
  • 低功耗设计
    +关注

    关注

    0

    文章

    78

    浏览量

    16107
收藏 人收藏

    评论

    相关推荐

    stm32g070怎么调试才能降低功耗

    stm32g070,单芯片的最小系统板使用官方例程进入standy 模式后电量70ua左右,和手册的1,2个ua不符,已经确定是芯片的功耗的,不知道该怎么调试才能降低功耗
    发表于 03-28 06:46

    如何降低LoRa模块的功耗以延长电池寿命?

    一些方法,例如睡眠模式和低功耗设置,但我不确定是否有任何其他方法或技巧可以进一步降低功耗。有人有经验可以分享吗?我需要知道如何在保持通信稳定的同时最大限度地
    发表于 03-01 07:38

    一种使用fifo节约资源降低功耗的设计方法

    本案例中,我们讲解一种使用fifo节约资源,降低功耗的设计。
    的头像 发表于 12-15 16:34 274次阅读
    一种使用fifo节约资源<b class='flag-5'>降低功耗</b>的设计<b class='flag-5'>方法</b>

    芯片功耗从28mW降到0.28mW 功耗降低98.9%!

    低功耗设计后,功耗为0.285mW,功耗降低98.9%!
    的头像 发表于 11-29 10:19 267次阅读
    芯片<b class='flag-5'>功耗</b>从28mW降到0.28mW <b class='flag-5'>功耗</b><b class='flag-5'>降低</b>98.9%!

    如何让音频功率降低功耗

    随着车载电子设备越来越多,功耗问题变得日趋严重。例如,如果音频功率放大器的静态电流达到200ma,则采用12v电源时静态功耗就高达2.4w。有没有一种方法能开机但不需要扬声器发出声音的时候,关闭放大器来
    发表于 11-29 08:14

    怎么降低STM32的运行功耗

    可以做哪些措施来降低功耗
    发表于 10-23 07:51

    使用SIM7600如何降低功耗?

    项目使用SIM7600每2.5秒发送2.5KB的数据,要求降低功耗。有什么措施可以试试?
    发表于 10-18 07:48

    FSMs低功耗设计

    低功耗设计是当下的需要!这篇文章:低功耗设计方法论的必要性让我们深入了解了现代设计的意图和对功耗感知的需求。在低功耗
    的头像 发表于 10-17 10:41 344次阅读
    FSMs<b class='flag-5'>低功耗</b>设计

    如何降低设备功耗降低采集设备功耗的几种方法

    如何降低设备功耗降低采集设备功耗的几种方法 工程监测传感器 以下是降低数采设备
    的头像 发表于 10-11 09:29 616次阅读

    低功耗数字IC设计方法及示例

    具有相当低的功耗漏电流可忽略不计。然而,近年来,随着晶体管密度和时钟频率的显著增加,功耗也极大地增加。同时,随着电源电压和晶体管阈值电压降低漏电
    发表于 09-21 07:38

    STM32Lx低功耗实战设计

    ST低功耗MCU产品介绍• STM32Lx 低功耗产品特性• STM32Lx 低功耗模式对比• 低功耗MCU ULPBench• 低功耗市场
    发表于 09-11 06:04

    几种常见的低功耗soc设计方法

    多阈值工艺(Multi-Vt Design)方法:这种方法是通过使用不同阈值电压的标准单元来降低静态功耗和动态功耗。对于性能要求高的模块,可
    的头像 发表于 08-20 11:20 944次阅读

    FreeRTOS如何降低功耗

    1、如何降低功耗? 一般的简单应用中处理器大量的时间都在处理空闲任务,所以我们就可以考虑当处理器处理空闲任务的时候就进入低功耗模式,当需要处理应用层代码的时候就将处理器从低功耗模式唤醒
    的头像 发表于 07-30 11:18 697次阅读

    低功耗系统在降低功耗的同时保持精度所涉及的时序因素和解决方案

    本文将介绍低功耗系统在降低功耗的同时保持精度所涉及的时序因素和解决方案,以满足测量和监控应用的要求。
    的头像 发表于 07-11 16:16 411次阅读
    <b class='flag-5'>低功耗</b>系统在<b class='flag-5'>降低功耗</b>的同时保持精度所涉及的时序因素和解决方案

    为什么降低功耗的原因?如何降低电路中的功耗

    如何降低电路中的功耗?我们知道,如果没有足够的电流和电压,电路就无法正常运行。但是,通过电路传递过多的电流或电压可能会损坏
    的头像 发表于 07-05 17:38 1198次阅读