低功耗设计入门

低功耗设计入门(一)——功耗的构成/类型

本小节主要一方面介绍一下功耗的构成,一方面介绍一下工艺库中的功耗模型。功耗的构成可以从两个角度来描述,一个是从功耗种类方面,另一个是从系统结构方面。我们在设计过程中,讨论比较多的往往是从功耗角度方面;工艺库中的功耗模型主要是结合工艺库来对功耗种类进行一些具体的、补充式的讲解。下面我们就来看看功耗的工程吧。
1.功耗的构成——按类型分
  低功耗按照类型分类呢,其构成主要有动态功耗、静态功耗、浪涌功耗这三种。在这第一小点我主要做一些简要的介绍,在后面的第三小点我将结合工艺库进行介绍。
  (1)动态功耗
  动态功耗包括:开关功耗或者称为翻转功耗、短路功耗或者称为内部功耗。
①开关功耗
  在数字CMOS电路中,对负载电容进行充放电时消耗的功耗,比如对于下面的CMOS非门中:

一般情况下,信 在一个周期内平均翻转两次,即上升沿一次、下降沿一次,也就是说,Tr = 2f,因此,平均功耗就是:

Pdynamic = VddVddCL*f

我们不必追究这个公式怎么得来,我知道这个功耗在这么计算就可以了,有兴趣的话,也可以深入探讨。
②短路功耗

短路功耗也称为内部功耗,短路功耗是因为在输入信 进行翻转时,信 的翻转不可能瞬时完成,因此PMOS和NMOS不可能总是一个截止另外一个导通,总有那么一段时间是使PMOS和NMOS同时导通,那么从电源VDD到地VSS之间就有了通路,就形成了短路电流,如下面的反相器电路图所示:
  

在CMOS电路中,静态功耗主要是漏电流引起的功耗,如下图所示:

浪涌功耗是浪涌电流引起的功耗。浪涌电流是指开机或者唤醒的时候,器件流过的最大电流,因此浪涌电流也称为启动电流。一般情况下,浪涌功耗不是我们关注的地方,因此这里只是说明有这个功耗存在。
  2.功耗的构成——按结构分

前面按照类型进行功耗分类,这里使用结构进行分类,也就是根据设备的结构或者设备的构成进行分类。(以SoC为例)主要分为:时钟树功耗、处理器功耗、存储器功耗、其他逻辑和IP核功耗、输入输出pad功耗。在不同的应用、设备中,这些功耗的比例不一样,但是时钟树、处理器、存储器占了绝大部分功耗,这是需要说明的。

(二)低功耗设计入门(二)——功耗的分析

前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析。由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具;更精确的功耗分析可以采用PT,关于PT的功耗分析可以查阅其他资料,这里不涉及使用PT的进行功耗分析。

(1)功耗分析与流程概述

上一个小节中讲解了功耗的构成,并且结合工艺库进行简要地介绍了功耗的计算。但是实际上,我们根本不可能人工地计算实际的大规模集成电路的功耗,我们往往借助EDA工具帮我们分析电路的功耗。这里我们就介绍一下EDA工具分析功耗的(普遍)流程,然后下一小节我们将介绍低功耗电路的设计和优化。

①功耗分析流程的输入输出

功耗分析的流程(从输入输出关系看)如下所示:

·翻转率:前面也有相关介绍,这里重提一下,翻转率是单位时间内信 (包括时钟、数据等等信 )的翻转次数。上图中翻转率为3/6 = 0.5(6个时间间隔内,翻转了3次)

·T1,T0:(节点)信 的逻辑值为1和0的持续时间,上图中T1为4,T0为2。

·静态概率(static probability ,SP):(节点)信 逻辑值为1的概率,上图中的SP为4/6=2/3。

低功耗设计入门(三)——系统与架构级低功耗设计

前面讲解了使用EDA工具(主要是power compiler)进行功耗分析的流程,这里我们将介绍在数字IC中进行低功耗设计的方法,同时也结合EDA工具(主要是Design Compiler)如何实现。我们的讲解的低功耗设计主要是自顶向下的设计,也就是说,我们首先介绍在系统架构层面上如何进行低功耗设计(或者可以从哪些方面进行低功耗设计);然后我们在RTL层面和门级层面上介绍低功耗设计的方法,这两个种方法主要是依靠RTL代码和Design Compiler实现的,这是我们前端设计人员进行低功耗设计与优化所需要知道的,我们会着重介绍;最后我们简单介绍在物理设计层次上面降低功耗的方法。今天我们记录系统与架构级的低功耗设计。
1.系统与架构级低功耗设计
  系统与架构层次的低功耗设计,可以节省70%以上的功耗。这个层次上的设计往往是由系统和架构设计人员进行的,这些人员往往是有着丰富经验的设计人员。他们制定了低功耗设计方案,由下一级的设计人员(比如做前端设计、做Flow的人员)进行具体实现。下面就来介绍一下在系统架构方面,可以从哪些方面进行低功耗设计,由于我只是只菜鸟,因此这些内容只是我在前人的经验中进行总结学习的笔记,仅供参考。
  (1)多电压设计技术(Multi-VDD)
①多电压设计技术介绍
从前面的功耗方程中,我们可以知道,电压与功耗有着密切的联系。因此功耗的降低可以考虑使用低一点的电压。多电压设计技术有三种方式:

低功耗设计入门(四)——RTL级低功耗设计

二、RTL级低功耗设计  
  前面介绍了系统级的低功耗设计,换句话说就是在系统级降低功耗可以考虑的方面。系统级的低功耗设计,主要是由系统级设计、具有丰富经验的人员实现,虽然还轮不到我们设计,我们了解一下还是比较好的。我们前端设计人员的重点不在系统级设计上面,而是在RTL级(及综合)上面。下面我们就来介绍RTL编码与逻辑综合的低功耗设计,重点是门控时钟和操作数隔离技术。今天主要是讲解操作数和一些常见的方法;门控时钟由于内容比较多,所以写在后面。
  (1)并行与流水的选择
  对于某一个功能模块,我们可以通过并行的方式进行实现,也可以通过流水线的方式进行实现,这两种方法都是面积换速度,不过在一定的场合下可以降低功耗,需要灵活应用,下面就简要地介绍一下这两种方法(的使用)。
  ·并行处理常用于数字信 处理部分。采用并行处理,可以降低系统工作频率,从而可能降低功耗。例如下图中:
  

->不加流水线时,要达到此工作频率,工作电压应该为V。

->当采用流水线方式时,该路径被分成两部分。对于每一部分,整体电容变为C/2。这样,如果要达到原来的工作频率f,工作电压可以降为βV,这里β   

对于右下角的门控时钟形式的综合电路,假设一个门控逻辑的面积为10,一个门控时钟信 可以驱动8位寄存器,则在门控时钟电路中,对每8个寄存器需增加一个门控逻辑,增加的面积为10。由此可以看到,门控时钟的电路比普通综合结果的面积更小、功耗更低。

低功耗设计入门(六)——门级电路低功耗设计优化

三、门级电路低功耗设计优化

(1)门级电路的功耗优化综述

门级电路的功耗优化(Gate Level Power Optimization,简称GLPO)是从已经映射的门级 表开始,对设计进行功耗的优化以满足功耗的约束,同时设计保持其性能,即满足设计规则和时序的要求。功耗优化前的设计是已经映射到工艺库的电路,如下图所示:
  

低功耗设计入门
  下面来解释一下上面的设计:
  ·在睡眠模式,寄存器的电源Vdd2被切断,因此它的漏电功耗极小;这时候仅仅保持锁存器处于工作状态,寄存器的值保留在锁存器里。由于锁存器是用高阈值电压的晶体管组成,漏电功耗很低。
  ·当Restore信 被激活时,寄存器的电源Vdd2被加上,保留在锁存器里的值被载入到寄存器。寄存器在工作(活跃)状态时,它作为一般的寄存器工作。Save/Restore引脚也称为电源门控引脚(power gating pins),它们被用于把电路置于适当的模式。
  ·电源门控模块的输出端需要使用隔离单元(Isolation Cell)(我们在前面讲过),因为在睡眠模式时,模块的输出为不确定值。为了保证在睡眠模式时,下一级的输入不会悬空,插入隔离单元,提供一个”1”或”0”的输出,使下一级的输入为确定的逻辑值

低功耗设计入门(八)——物理级低功耗设计&to be continued/h2>

前面学习了从系统级到门级的低功耗设计,现在简单地了解了一下物理级设计。由于物理级的低功耗设计与后端有关了,这里就不详细学习了。这里主要是学习了一些基本原则,在物理级,进行低功耗设计的基本原则是:
   ·对于设计中翻转活动很频繁的节点,采用低电容的金属层进行布线;
  ·使高翻转率的节点尽可能地短;
   ·对于高负载的节点与总线,采用低电容的金属层;
  ·对于特别宽的器件,采用特殊的版图技术,以得到更小的漏极结电容。
   ·在有些布局布线工具中,可以将功耗作为优化目标来生成时钟树。
  低功耗设计入门的学习到这里就结束了,然而这只是入门。在低功耗设计这个专题里面,还有很多东西要学习。在后续的日子里(可能是几个月后,也可能是一两年后,也可能更久),我会深入学习一下低功耗设计,学习的方向主要是:
  ·结合一些具体的Design进行低功耗设计,熟悉低功耗的流程;
  ·使用PT进行低功耗的分析;
  ·更多的低功耗设计技巧;

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月21日
下一篇 2020年6月21日

相关推荐