长期以来,下降功耗一直是芯片规划中的重要需求。跟着更大、更快的集成电路运用于便携式产品中,这个需求变得日益重要。因而,贯穿整个规划流程的功率办理技能也在不断改进,以确保产品的各个部分均得到恰当、高效的功率供给,一起确保产品的可靠性。比如多电压岛,以及时钟频率和阈值电压的动态调整等技能,均有助于在供给高功用的一起,节约便携产品中的电池能量。
更为重要的是,SOC在尺度和速度方面的添加现已给很多的规划带来了功耗方面的应战,而这些应战并不归于传统的受供电约束的领域。在这些规划中,热耗散和可靠性方面的问题,例如电搬迁和电压降现已变得极为要害。深亚微米规划中的功率问题或许会约束规划的功用或功用,并严峻影响到芯片的可制作性和良率。较高的功耗会形成结点区温度上升,导致晶体管动作速度变慢,并添加互连电阻。假如不考虑功率问题,会导致器材功用低于预期,然后使得器材良率下降。此外,较高的功耗会要求在温度办理方面采纳更多的系统级办法。总而言之,这些功率问题正在形成SoC和系统本钱的添加。在SoC规划流程中进行功耗办理,能够有用操控这些本钱。
SoC中的功耗
芯片的总功率等于动态功率加上静态功率。动态功率是指在开关逻辑状况转化进程中所耗费的功率,包含单元内部(内部功率)和驱动芯片节点及外部负载的功率(开关功率)。动态功率 = CV2F其间,C为负载,V为电压摆幅,F为逻辑状况转化的频率。跟着半导体器材结构日趋小型化,器材和互连电容下降,芯片取得了更高的功用和更低的功耗。而更大规划的规划以及更高的开关速率将会导致功率添加。静态功率(走漏功率)是指在晶体管不进行开关动作时耗费的功率。
静态功率=VISTAT虽然在晶体管漏极和衬底之间的一些反向偏置二极管中存在着漏电流,但大部分走漏功率来自晶体管关断时的亚阈值电流。因为亚阈值漏电流跟着晶体管阈值电压(Vth)的下降而增大,然后带来了必定的费事。跟着工艺技能向130nm及以下不断发展,走漏功率或许会占到芯片总功率的50%(见图1)。走漏功率的添加,会使得芯片中与可靠性相关的毛病(即使是在待机状况下)呈指数添加。
跟着CMOS工艺尺度的减小,下降功率的首要办法转为下降供电电压VDD。因为功率和电压的平方成正比,所以下降电压关于操控芯片的动态功率极为有用。可是,因为开关推迟时刻与负载电容和Vth/VDD成正比,因而,仅下降供电电压会导致电路速度下降。为了确保快速开关所需的满足的驱动才能,Vth有必要与VDD成正比下降,这又会导致走漏功率的添加。较好的办法是选用考虑了功率办理的规划流程,在时序要求和各类功耗方针之间取得平衡。
功率解决方案
规划笼统层次越高,对功耗的影响也就越大。例如,在系统级和算法级上,选用并行完结而非串行完结能够下降时钟频率,然后显着下降功耗。但并行办法的低功率或许要以面积添加或功用下降为价值。
以一个用于串行接纳数据样本的芯片为例,来阐明并行架构与串行架构的不同作用。将数据样本并行处理,可将芯片逻辑电路的时钟从80MHz下降至10MHz,供电电压也可从1.8V下降至1.25V。并行处理逻辑电路要比相同的串行处理电路的面积大得多,但较低的电压和作业频率可将功耗下降75%。在其它一些规划中,占用面积上支付的价值较小,而功率节约作用却很显着,所以这是值得探究的一种折衷方案。图2中介绍了几种功率优化和剖析的技能,这些技能在SoC的整个规划流程中均可得到运用。本文所触及的功率解决方案如下:(1)模块门控时钟(2)多供电电压;(3)多阈值电压;(4)归纳进程中的功率优化,包含RTL级门控时钟。
功率估量和剖析
规划进程中,在如表1所示的4个阶段内进行功耗估量对错常有用的。每个阶段所估量的功耗精确度随补充规划和可运用的库信息的添加而进步。
RTL级功率剖析
在规划流程前期,功率剖析可对规划的功耗进行大略估量。此刻或许没有挑选库,所以库数据有限,这时,电子数据表(spreadsheet)剖析能够用于找出最佳的重视功率的库和规划架构。在选定库之后,即可用Design Compiler和Power Compiler来替代电子数据表,或向电子数据表供给数据。
功率剖析的电子数据表中包含了大致的门数和每个模块的活动值、mW/MHz数据以及相关的功率估量。这时进行的剖析也有助于承认一项规划的功耗是否过大而不现实,然后可防止花费数周时刻来完结一个底子无法制作的规划方案。
为了运用电子数据表剖析办法,有必要对每一模块的门数(每一种类型的库单元数量)和活动水平进行估量。一起还需知道每种类型的单元在开关时所耗费的能量,库供给商手册中的数据可用于确认正确的功率速度比(mW/MHz)。一个模块内每种类型的单元的内部功耗可由下式核算:功耗=门数×mW/MHz×活动×频率。将一个模块内一切不同类型的单元的功率加在一起,就可得出这一模块总的内部动态功率的估量值。在归纳前,可依据所挑选的系统结构和对规划自身的了解来对门数进行估量。例如,从总线宽度、字长、操控层和存储器深度等可得出大致的门数。在挑选了库今后,模块的门数就能够运用Design Compiler的report-reference指令在初期归纳后进行估量,这项功用将陈述规划中每个例化规划的数量。功率核算的一个要害方面是指定活动水平。规划中的门电路都具有不同的活动水平,在对规划进行仿真提取开关动作或不进行仿真的状况下进行估量均可。但在挑选了库之后,引荐进行功用仿真来确认开关动作。
开关动作以翻转率(TR)衡量。翻转率是指在单位时刻内,一个规划方针(如节点、引脚或端口)从逻辑0至逻辑1以及从逻辑1至逻辑0进行转化的次数。关于一个节点来说,假如它在100ns的时刻距离内有50次从逻辑1至逻辑0的转化,以及50次从逻辑0至逻辑1的转化,则其翻转率为1,标明每ns有1次动作转化。功率与转化率之间的联系能够了解为,在状况改动的时刻距离内,为了完结内部电路的状况转化,就有必要供给必定的能量,因而,每次转化都会耗费功率。
重要的是,只要在开关动作代表了芯片的实践作业状况的状况下,在任何笼统层次上的功率估量才有含义。常见的过错是在企图确认活动时,运用一个向量来仿真系统启动序列。此项活动很少能够代表实在的作业状况,因而会导致不精确的功率估量。选用RTL级仿真能够主动生成一个SAIF(Switching Activity Interchange Format)文件,可是活动值只要在此向量现实时才是精确的。现在的东西尚不能主动生成这样的向量,因为它需要对电路的本质有清晰的了解。
图3所示为能够在VCS内运用的编程言语接口(PLI)系统使命,用于在仿真期间生成SAIF文件。Power Compiler供给了一项power_estimate功用,这项功用运用SAIF文件来界说库和约束条件,以及对规划进行注释,以用于功率估量。Power Compiler针对未注释端口的默许开关动作是,每个上升沿有1/4的概率翻转,此数值在整个模块内运用和传送。
表2和表3所示为选用上述办法的估量成果。核算出内部功率之后,开关功率能够按内部功率的30%进行估量。因为没有精确的负载和开关数据,此数值仅为大略的估量值。这样的估量首要用于对不同规划方案的功耗进行比较,而非用于猜测芯片的实践功耗。可是,正如前文所述,RTL级的近似估量确实能够在前期对芯片规划的可完结性供给参阅定见。
走漏功率能够依据每种单元类型的走漏数据进行预算。因为高态和低态下的走漏不同,所以走漏功率剖析有必要在信号处于必定逻辑状况的静态概率的基础上进行。静态概率标明为0至1之间的一个数,该数值能够依据信号的功用进行估量。例如,一般状况下,一个低态有用的复位信号的逻辑“1”静态概率(SP1)等于或挨近1.0(100%)。关于一个数据总线信号而言,除非某些架构特性主张有其它概率,其SP1一般能够 假设为0.5(50%)。在选定了库之后,静态概率可在仿真期间,经过将信号处于某一特定逻辑状况下的时刻和总仿真时刻进行比较来核算得到。
门电路级功率剖析
在归纳完结后,有或许依据实践门数和仿真得到的活动来从Power Compiler中取得适当精确的功率估量值。这时估量的不精确性来自活动以及布局前的线负载值。经过从门级仿真中生成SAIF文件,精确性能够得到改进。在VCS中,与图3中相同的指令可用于生成SAIF文件,仅仅其间的第一条指令应当改为:
$set_gate_level_monitoring (on);
这儿有必要再次着重,只要在仿真向量代表了实在的运用行为时,活动值才是精确的。Physical Compiler东西在物理优化后运用write_parasitics -distributed指令用于改进负载的精确性,这项指令能够发生注释了Steiner途径和寄生电阻、%&&&&&%估量值的SPEF文件。
布局完结后,门级仿真能够生成VCD(Value Change Dump)文件,用于PrimePower剖析。VCD文件的记载在仿真进程中变为一个信号值,并供给了规划的节点活动、结构数据系统衔接性、途径推迟、时序和事情方面的信息。
假如芯片的I/O数量很多、在高速下切换开关并驱动很长的线路,那它将有或许成为形成估量不精确的重要因素。假如规划方针要求得到精确而非最坏状况下的功率估量时,I/O的集总负载模型或许会发生过火失望的估量成果。要想取得更为精确的成果,能够在要害的I/O单元类型中运用精确的散布阻抗模型进行HSPICE仿真。然后,I/O单元的功率即可选用确认每次上升/下降沿的电荷和能量的数值性办法来进行核算。在得到HSPICE的电流和时刻输出后,每个瞬态的内部功率就能够运用梯形积分法(如在Matlab软件中)来进行核算。在PrimePower剖析中记载的I/O活动能够用于对I/O功率按份额进行调整,一起总的I/O功率可与中心功率相结合,用于全体功率估量。为了标明在选用本文所述的不同规划阶段和施行循环中的估量办法所取得的功率估量值的不同,图4列举了在DSP规划中的一个高速FIR滤波器模块的实例。这一实例验证了,依据所供给的信息精确度的不同,功率估量值会有所差异。此图也标明晰典范模块在规划流程中的4个不同阶段下功率估量值的改变状况:
(1)示例1-选用最坏状况下的开关动作和线负载估量值所得到的功率估量值;
(2)示例2-选用较为精确的线负载估量值和最坏状况下的开关动作所得到的功率估量值;
(3)示例3-选用精确的线负载估量值和实践活动所得到的功率估量值;
(4)示例4-选用精确的线负载(提取后)和根据SP%&&&&&%E精确仿真的实践活动所得到的功率估量值。