(数字IC)低功耗设计入门(一)

  低功耗设计这个专题整理了好久,有一个月了,有图有证据:

  然而最近一直有些烦心事、郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧。下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次性发完,我整理之后再发上去。当然,这里的低功耗设计基本上是入门阶段,也就是大部分从理论角度进行阐述,你也可以说是从书本上说的,但是呢,我可以先给大家剧透一下:不仅仅是从理论上说,我还结合EDA工具进行说明如何进行低功耗设计。废话不多说,下面就来看看这个专题的主要内容:

  ·低功耗设计的目的

  ·功耗的构成/类型

  ·功耗分析与流程——使用EDA工具

  ·低功耗设计与优化

一、低功耗设计的目的

1.便携性设备等需求

  电子产品在我们生活中扮演了极其重要的作用,便携性的电子设备便是其中一种。便携性设备需要电池供电、需要消耗电池的能量。在同等电能提供下,低功耗设计的产品就能够工作更长的时间。时间的就是生命,因此低功耗设计是很重要的。便携性的设备需要低功耗设备,比如说手机,如果充电两小时,通话5分钟,这谁还买你的手机...

2.可靠性与性能的影响

  设备消耗电能,会产生热量;消耗的能量越多,产生的热量越多。发热越严重,热噪声越大,就会影响器件的正常工作,导致电路不能正常工作。发热量的增加,可能会使工作在1G下的电路,只能工作在500M,这就影响了速度,这最常见的就是手机的发热了,手机发热之后,便感觉卡卡的。

3.成本的影响

  如果不注意进行低功耗设计,那就可能导致后期的成本增加,从而导致整个系统的成本增加。例如,不进行低功耗设计,发热量就可能增加,在封装的时候,就需要考虑怎么给你这个芯片进行散热,从而增加了封装的散热成本。再比如,在进行系统组装的时候,如果那你的芯片功耗过大,就需要考虑在系统外给你进行散热,比如说添加一个风扇,发热很严重的甚至可以给你进行液体降温。这样子就在系统组装上面增加了组装成本。因此在设计初始进行低功耗设计是很重要的。

  ······

  当然,除了上面那三点之外,还有许多要进行低功耗设计原因,这里列出三点,主要是为了说明低功耗设计是以后的数字IC发展趋势之一,我们要注重低功耗设计。

二、功耗的构成/类型

  本小节主要一方面介绍一下功耗的构成,一方面介绍一下工艺库中的功耗模型。功耗的构成可以从两个角度来描述,一个是从功耗种类方面,另一个是从系统结构方面。我们在设计过程中,讨论比较多的往往是从功耗角度方面;工艺库中的功耗模型主要是结合工艺库来对功耗种类进行一些具体的、补充式的讲解。下面我们就来看看功耗的工程吧。

1.功耗的构成——按类型分

  低功耗按照类型分类呢,其构成主要有动态功耗、静态功耗、浪涌功耗这三种。在这第一小点我主要做一些简要的介绍,在后面的第三小点我将结合工艺库进行介绍。

  (1)动态功耗

  动态功耗包括:开关功耗或者称为翻转功耗、短路功耗或者称为内部功耗。

①开关功耗

  在数字CMOS电路中,对负载电容进行充放电时消耗的功耗,比如对于下面的CMOS非门中:

                

当Vin = 0时,上面的PMOS导通,下面的NMOS截止;VDD对负载电容Cload进行充电,充电完成后,Vout的电平为高电平。

当Vin = 1时,上面的PMOS截止,下面的NMOS导通,负载电容通过NMOS进行放电,放电完成后,Vout的电平为低电平。

这样一开一闭的变化,电源的充放电,就形成了开关功耗,开关功耗Psitch的计算公式如下所示:

                

  在上式中,VDD为供电电压,Cload为后级电路等效的电容负载大小,Tr为输入信号的翻转率(关于翻转率,我们在后面第三小点会进行介绍)。我们不必追究这个公式怎么得来,我知道这个功耗在这么计算就可以了,有兴趣的话,也可以深入探讨。

②短路功耗

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

      

短路功耗Pshort的计算公式如下所示:

              

上式中,Vdd为供电电压,Tr为翻转率,Qx为一次翻转过程中从电源流到地的电荷量。

  由此我们可以找到,动态功耗主要有开关功耗和短路功耗;其中开关功耗在动态功耗中占大部分比例;从上面的两个式子中我们可以看到,动态功耗主要跟电源的供电电压、翻转率、负载电容有关。

  (2)静态功耗

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

            

漏电流有下面几个部分组成:

  ·PN结反向电流I1(PN-junction Reverse Current)

  ·源极和漏极之间的亚阈值漏电流I2(Sub-threshold Current)

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

  ·栅极和衬底之间的隧道漏电流I4(Gate Tunneling)

一般情况下,漏电流主要是指栅极泄漏电流和亚阈值电流(进入超深亚微米工艺之后,隧道漏电流成为主要电流之一),因此下面就简单介绍一下这两种电流。

栅极泄漏功耗:在栅极上加信号后(即栅压),从栅到衬底之间存在电容,因此在栅衬之间就会存在有电流,由此就会存在功耗。

亚阈值电流:使栅极电压低于导通阈值,仍会产生从FET漏极到源极的泄漏电流。此电流称为亚阈值泄漏电流。在较狭窄的晶体管中,漏极和源极距离较近的情况下会产生亚阈值泄漏电流。晶体管越窄,泄漏电流越大。要降低亚阈值电流,可以使用高阈值的器件,还可以通过衬底偏置进行增加阈值电压,这些属于低功耗设计,我们在后面的低功耗设计中会进行讲解。

静态功耗的计算公式如下所示,Ipeak为泄漏电流:

                

静态功耗往往与工艺有关,我们在第三小节中将进一步进行讨论。

  (3)浪涌功耗

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

2.功耗的构成——按结构分

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

3.工艺库中的功耗模型

前面介绍了功耗的构成,在这一小点中,将结合工艺库进行阐述功耗(的构成),同时结合工艺库举例说明功耗的计算。

  (1)工艺库中的功耗信息与计算

①开关功耗计算与相关库信息

  我们从前面知道,开关功耗主要就是对输出电容的充放电引起的,工艺库中有开关功耗有关的信息,如下所示:

      

  开关功耗可以用开关能量和翻转率来表示:P=E·Tr=C·v^2·T2,即开关能量E=CV^2。翻转率我们后面会进行说明,至于放在后面介绍翻转率,一个是即介绍即用,另外一个就是帮大家功耗的组成。

②内部功耗/短路功耗与相关库信息

  内部功耗前面我们也介绍了一些,这里再啰嗦一下,短路功耗/内部功耗是单元(比如说反相器单元)的输入从0到1或者从1到0的转换过程中,单元内部P管和N管同时导通那个瞬间的功耗,这不是因为单元损坏而产生的短路功耗 。工艺库中包含了单元的短路功耗,短路功耗由特性描述工具预先处理,存放在工艺库的功耗查找表里。也就是说,我们可以通过工艺库中内部功耗的相关参数,从而得到内部功耗。工艺库中内部功耗信息如下所示:

        

单元的内部功耗与其转换时间和输出电容负载有关,根据输入转换时间和输出电容的大小,在工艺库中进行查表,得到上升功耗和下降功耗,然后再根据下面的公式进行计算得到总的内部功耗:

Pi=(上升功耗+下降功耗)·0.5·Tr

需要补充一下,工艺库中比较精确的功耗模型,功耗与状态有关,与路径也有关,即state dependent path dependent,SDPD。

③静态功耗/漏电功耗与相关库信息

  静态功耗/漏电功耗也是由特性工具预先处理,存放在工艺库里面。工艺库中的静态功耗信息如下所示:

      

静态功耗跟单元的状态有关,也就是输入(或者说单元)在不同的状态下,对于的功耗不一样,通过状态进行查表,就可以得到相应的静态功耗了。

  (2)计算举例

①翻转率

  前面我们一直说翻转率,那么翻转率到底是什么呢?这里我们就来给大家介绍一下。

翻转率(Toggle rate,Tr):单位时间内信号(包括时钟、数据等等信号)的翻转次数。如下图所示:

              

信号在40ns时间内跳转了4次,翻转率为:Tr = 4/4ns = 0.1GHz

②动态功耗计算举例

  从前面中我们知道,在计算动态功耗的时候,我们才用到翻转率。其中开关功耗的表达式为:

                

内部功耗的表达式为:

        Pi=(上升功耗+下降功耗)·0.5·Tr

现在我们使用翻转率和工艺库的功耗信息来计算一下电路的动态功耗,电路如下图所示:

                      

工艺库信息如下所示:

          

·动态功耗中的开关功耗计算:

            

根据公式,我们可以直接计算出开关功耗为:29.403uw

·动态功耗中的短路功耗/内部功耗:

              Pi=(上升功耗+下降功耗)·0.5·Tr

根据公式,我们先要查找工艺库得到上升(沿)功耗和下降(沿)功耗。输入转换时间为1.20000,输出电容负载为0.270000,因此对于的上升功耗和下降功耗分别为:0.214947和0.094129。因此总的内部功耗为:

            

·于是得到总的动态功耗为:

            

③其他事项

·单元的功耗可能与状态和路径有关,下图中:

          

左图是RAM单元,在读状态和写状态时,功率是不同的。此外,单元的功耗在不同的操作模式下也有不同的值。

右图表示了输入到输出的不同路径,路径不一样,功耗也是不一样的。

·工艺库有状态和路径不同时的功耗描述,即SDPD描述,如下图所示:

          

我们也可以在EDA工具中使用report_lib  slow  -power 命令列出库中的功耗信息:

              

      第一讲先整理到这里。

时间: 2024-07-30 04:36:41

(数字IC)低功耗设计入门(一)的相关文章

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

前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关于PT的功耗分析可以查阅其他资料,这里不涉及使用PT的进行功耗分析. (1)功耗分析与流程概述 上一个小节中讲解了功耗的构成,并且结合工艺库进行简要地介绍了功耗的计算.但是实际上,我们根本不可能人工地计算实际的大规模集成电路的功耗,我们往往借助EDA工具帮我们分析电路的功耗.这里我们就介绍一下EDA

(数字IC)低功耗设计入门(八)——物理级低功耗设计&to be continued?

前面学习了从系统级到门级的低功耗设计,现在简单地了解了一下物理级设计.由于物理级的低功耗设计与后端有关了,这里就不详细学习了.这里主要是学习了一些基本原则,在物理级,进行低功耗设计的基本原则是:   ·对于设计中翻转活动很频繁的节点,采用低电容的金属层进行布线; ·使高翻转率的节点尽可能地短;  ·对于高负载的节点与总线,采用低电容的金属层; ·对于特别宽的器件,采用特殊的版图技术,以得到更小的漏极结电容.  ·在有些布局布线工具中,可以将功耗作为优化目标来生成时钟树. 低功耗设计入门的学习到这

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

三.门级电路低功耗设计优化 (1)门级电路的功耗优化综述 门级电路的功耗优化(Gate Level Power Optimization,简称GLPO)是从已经映射的门级网表开始,对设计进行功耗的优化以满足功耗的约束,同时设计保持其性能,即满足设计规则和时序的要求.功耗优化前的设计是已经映射到工艺库的电路,如下图所示: 门级电路的功耗优化包括了设计总功耗,动态功耗以及漏电功耗的优化.对设计做优化时,优化的优先次序如下: 由此我们可以找到, 优化时,所产生的电路首先要满足设计规则的要求,然后满足延

从数字IC后端设计实现看先进工艺7nm实现的各种挑战

目前虽然号称拥有或将要研发7nm工艺的有多家工艺厂商,但是具有实际流片能力的可能只有TSMC和三星.随着GlobalFoundries最近宣布放弃7nm的进一步研发,以及尽管Intel的10nm和这几家的7nm差不多一个水准,但是要跳票到2019年,因此短期内应该就是双雄争霸的局面. 玩家越来越少,技术实现也没有太多选择,目前的方法无非两种:Multiple Pattern和EUV.前者沿用16nm/14nm等工艺的多重曝光技术,后者采用极紫外光刻机一次曝光.在工艺上的实现上,可能会有如下方案:

VerilogHDL概述与数字IC设计流程学习笔记

一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是描述硬件的语言,它用文本的形式来描述电子系统硬件结构和行为,是一种用形式化方法来描述数字电路和系统的语言.正是因为如此,硬件与软件不一样,他不像软件,你某天突发奇想,想实现某个的界面,搞搞代码就OK了.硬件它是由实实在在的物理器件搭载而成,用抽象的语言怎么可能弄出一个电路来呢? 一门语言,总有那么一

数字IC前后端设计中Setup违反的修复方法

本文转自:自己的微信公众号<集成电路设计及EDA教程> 数字IC设计中Setup的分析与优化贯穿前后端设计中,最好在开始后端设计之前就获得一个没有Setup违反的网表,下面按照从前到后的流程逐一讲解每个阶段如果出现Setup违反该如何解决.下面用到的命令,主要针对的是Synopsys公司的综合工具DC以及布局布线工具ICC.还有需要注意的是,Setup的修复和之后要讲解的Hold的修复有很大的不同,Setup的违反随着布局到布线阶段的推进,它是越来越恶化的,不像Hold,线延迟会有益于Hold

MCU低功耗设计(二)实践

MCU低功耗设计(二)实践 关键词: MCU低功耗, STM8L低功耗, 节能实践, IAR开发环境, 电流表测功耗 引言: 用电池供电的产品来说能耗是一个重大的问题,一旦电能耗尽设备将"罢工".在<MCU低功耗设计(一)理论>中,我们介绍了节能的原理,本文用万用表和MCU电路板,真刀真枪地测试功耗值.简单,但绝对真实的测试数据,看看官方宣称低功耗与实测结果有多大差距,Let's go! 说明: 博客的书写工具对于图片的编辑支持力度不够,喜欢本博文的读者可以从以下连接下载P

基于ARM的SoC设计入门[转]

原文:基于ARM的SoC设计入门 我们跳过所有对ARM介绍性的描述,直接进入工程师们最关心的问题.要设计一个基于ARM的SoC,我们首先要了解一个基于ARM的SoC的结构.图1是一个典型的SoC的结构: 图1从图1我们可以了解这个的SoC的基本构成: ARM core:ARM966E AMBA 总线:AHB+APB 外设IP(Peripheral IPs):VIC(Vector Interrupt Controller), DMA, UART, RTC, SSP, WDT…… Memory bl

MCU低功耗设计(三)产品

关键词: 低功耗设计, 无线通信产品, LoRa长距离, Contiki系统, 能耗实时跟踪 引言: 能耗对电池供电的产品来说是一个重大问题,一旦电能耗尽设备将"罢工".在<MCU低功耗设计(一)理论>中,我们介绍了节能的原理:在<MCU低功耗设计(二)实践>中,实测了STM8L151C8的低功耗值. 本文介绍无线通信产品的低功耗设计,首先实测MCU与射频芯片I/O设置的功耗,然后测试射频芯片不同模式下功耗,其次使用Contiki系统的energest模块实时跟