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

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

3天内不再提示

芯片设计降低功耗的方法

我快闭嘴 来源:知芯情报局 作者:know_IC 2022-08-17 11:04 次阅读

功耗是芯片中比较重要的一个性能指标,有时甚至可以决定一个芯片的成败。众所周知,前段时间闹得沸沸扬扬的“骁龙火龙”事件,就大大影响了这款芯片的市占率。对于工业级和车规级的芯片,功耗的高低体现的不是很明显。对于消费级芯片(如手机CPUIoT芯片等),由于往往应用在小型移动设备中,低功耗设计就显得尤为重要。

有业内专家曾经指出,在不同的设计层次,进行功耗优化的效果也不同。下表显示了在一个产品的不同周期,可以减少功耗的百分比。

设计层次 降低功耗百分比
版图级 <5%
晶体管 5%
门级 10%
RTL级 20%
系统级 >50%
从芯片层级,降低功耗的方法可以从工艺和设计两方面入手。其中,工艺的优化是fab厂的工程师需要考虑的,作为一名芯片码农,主要考虑的就是设计层次。从设计层面,降低功耗的方法主要有下面两点:做门控时钟,做模块并行。

门控时钟介绍



一般来讲,时钟树贯穿于整个芯片内部,由大量的buffer和反相器组成。时钟信号作为芯片中toggle率最高的信号,功耗可高达整个芯片功耗的30%,甚至更高。加入门控时钟(clock gating,cg)电路,可大大降低时钟树的toggle行为,从而降低开关功耗。此外,时钟引脚开关行为的减少,寄存器的内部功耗也会减少。门控时钟是减少功耗的有力手段,在时钟被门控关闭后,该时钟网络和其中的寄存器都会停止翻转,因此功耗会显著减低。一个典型的门控时钟设计如下图所示:

296b9b2a-1dcb-11ed-ba43-dac502259ad0.png

对于时钟源clk_source经过一个额外的与门U2A,当clk_en为高时,clk_source能过通过到达U1A触发器,当clk_en为低时clk_source无法到达触发器。当clk_en为低时,触发器及其时钟网络中的所有组合逻辑停止翻转,out端保持不变。由于clk_source经过了U2A与门,所有会产生一定的时钟偏移。在波形分析上,下面这个图可以比较好的理解门控时钟的概念,只有当clk_en为高的时候,clk_out=clk_in,否则,clk_out=0。

2988770e-1dcb-11ed-ba43-dac502259ad0.png

cg方法1:使用与逻辑



这个也是最简单的方法,直接将时钟使能控制(门控)信号与时钟做"与"逻辑。这个办法简单粗暴,但是也有一个严重的缺点:会有毛刺。当clk为低的时候,clk_en可任意变化,gclk都是低。但当clk为高的时候,clk_en必须保持不变,才能保证没有毛刺,那什么东西能让clk_en保持不变呢?答案就是:锁存器

29a78cca-1dcb-11ed-ba43-dac502259ad0.png

cg方法2:加入锁存器



在clk为低时锁存器连通、clk为高时锁存器锁住,如下图:29c6da62-1dcb-11ed-ba43-dac502259ad0.png

波形图如下,可见当clk为低的时候gclk为低没跑,但clk为高的时候,gclk的值可看作是clk上升沿采样的clk_en的值。所以使用Latch可以有效地锁存clk_en值,同时不影响clk的周期性。Latch门控时钟的本质是clk上升沿锁住了clk_en值,让clk为高时clk_temp不会翻转,所以消除了毛刺。

29d3cf9c-1dcb-11ed-ba43-dac502259ad0.png

其RTL代码如下:

always@(*) begin  if(clk)    clk_temp = clk_en;  else    clk_temp = clk_en;endassign gclk = clk & clk_temp;

cg方法3:使用标准单元库



虽然使用 latch 可以解决门控时钟毛刺的出现,但是时序也需要严格的约束。FPGAIC 设计时,综合库中往往会有集成门控逻辑单元。此类门控逻辑单元经过了大量的更新迭代和验证,使用起来更加的方便、安全。因此一般情况下,门控时钟的设计也都会直接调用专用的集成门控逻辑单元。调用方式和基本的与门、缓冲器等基本单元类似,直接例化即可。

审核编辑:汤梓红


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

    关注

    447

    文章

    47788

    浏览量

    409096
  • 低功耗
    +关注

    关注

    9

    文章

    2227

    浏览量

    102657
  • 门控时钟
    +关注

    关注

    0

    文章

    27

    浏览量

    8895

原文标题:数字芯片中的低功耗设计

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    概念: Power/Ground Gating是集成电路中通过关掉那些不使用的模块的电源或者地来降低电路漏电功耗低功耗设计方法。该方法
    的头像 发表于 09-16 16:04 1.1w次阅读
    <b class='flag-5'>降低</b>电路漏电<b class='flag-5'>功耗</b>的<b class='flag-5'>低功耗</b>设计<b class='flag-5'>方法</b>

    cogobuy降低功耗的措施

    cogobuy降低功耗的措施  每个厂商对于降低功耗都有不同的处理方式。虽然每个MCU都有休眠状态或都有可能实现很低的工作耗电量,但是有的芯片在处于很低功耗的时候,基本功能也所剩无几了
    发表于 03-23 11:18

    降低低功耗蓝牙的功耗

    来说是巨大的挑战。但是,就算向所有的制造商解释特有的技术并且采用单一的标准,低功耗蓝牙芯片也不会完全一致。有些将会消耗更小能量,正如低功耗是Bluetooth low energy的核心点,这个差别
    发表于 03-29 09:36

    CC2530 如何降低ZC发现网络的频次以降低功耗

    CC2530芯片 ZED 和ZC,在组网正常的情况下,ZED可以进入低功耗模式,电流在uA级别。当关闭ZC后,ZED会持续的进行网络发现,无法进入低功耗模式。电流达28mA;求教,如何降低
    发表于 04-07 14:19

    vs1053如何降低功耗

    本人用了一块vs1053作为解码芯片,这个芯片在待机的时候电流为2.3ma左右,有没方法降低功耗,数据手册上也没怎么写,要是能降到1ma以内就好了。
    发表于 08-10 19:40

    IC芯片功耗有哪些降低方法? 

    功耗作为芯片设计的关键参数,贯穿整个IC芯片设计处理过程,甚至会影响时序与芯片的运行。我们IC芯片设计师整理了一套有效的
    发表于 06-29 16:46

    请问stm32不进入低功耗模式怎么降低功耗

    stm32进入低功耗模式,必须用中断来唤醒,现在就是不用这种模式,如何通过程序来降低功耗
    发表于 05-06 18:43

    如何利用FPGA满足电信应用中的降低功耗要求?

    引言针对中心机房功耗越来越大的问题,某些电信运营商制定了采购设备功耗每年降低20%的目标。半导体是功耗问题的关键所在,其解决方法是重新设计
    发表于 07-31 07:13

    如何降低ZC发现网络的频次以降低功耗

    ZED 和ZC,在组网正常的情况下,ZED可以进入低功耗模式,电流在uA级别。CC2530芯片当关闭ZC后,ZED会持续的进行网络发现,无法进入低功耗模式。电流达28mA;求教TI工程师,如何
    发表于 08-07 07:03

    提高功率降低功耗方法

    降低功耗不光能够大大的节约电能还能简化电源部分的设计,甚至可以用于手持设备上面使用,这些都已经越来越成为未来产品的设计方向。
    发表于 02-26 07:27

    寄存器传输级低功耗设计方法

    寄存器传输级的低功耗设计对降低整个芯片功耗作用非常显著,本文讨论的三种寄存器传输级低功耗设计方法
    发表于 02-16 18:12 1350次阅读
    寄存器传输级<b class='flag-5'>低功耗</b>设计<b class='flag-5'>方法</b>

    低功耗蓝牙芯片的应用可显著降低功耗和成本

    低功耗蓝牙是蓝牙技术联盟设计和销售的一种个人局域网技术,相较经典蓝牙,低功耗蓝牙旨在保持同等通信范围的同时显著降低功耗和成本。 在设计初始阶段,优化低功耗蓝牙
    发表于 03-05 15:31 1030次阅读

    华润微CS88M312芯片降低功耗方法与使用注意事项

      芯片运行时的瞬时功耗主要与MCU使用模块的数量和MCU的主频相关。CS88M312芯片内置了16M/8M/4M/910K 4个高速振荡器,选用合适的振荡器会降低瞬时
    发表于 10-12 10:21 529次阅读

    FreeRTOS如何降低功耗

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

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

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