低功耗设计

前面的帖子提到过,CMOS电路中的功耗分为两部分:静态功耗和动态功耗;

静态功耗是由漏电流引起的功耗;动态功耗分为翻转功耗和短路功耗,翻转功耗也就是0与1翻转所引发的功耗,而短路功耗则是由于PMOS和NMOS都导通时所引起的功耗;

低功耗设计方法

在设计一个系统时必须清楚性能和功耗的关系,也就是说需要明白你的系统是需要在尽可能低功耗的条件下提高性能,还是在尽可能高性能的条件下降低功耗,这对于采用什么样的低功耗技术十分关键;

下图所示为基于低功耗反馈的前向设计法,从图中可以看出,可以在五个层次下对系统的功耗进行优化,自顶向下分别对应系统级、行为级、RTL级、逻辑级和物理级;

低功耗设计_第1张图片

下图说明了各层次的具体优化方法和优化效果,可以看到层次越高的优化方法,优化效果越明显:

低功耗设计_第2张图片

低功耗技术

静态低功耗技术

(1)多阈值工艺

如下图所示,低阈值的标准逻辑单元具有速度快、漏电流大的特点,高阈值的标准逻辑单元具有速度慢、漏电流小的特点;

低功耗设计_第3张图片 

所以在关键路径上可以使用低阈值的逻辑单元来优化时序,在非关键路径上可以使用高阈值的逻辑单元来降低漏电流;

下图所示为一种典型的使用多阈值的工艺库进行综合的流程:首先使用低阈值的单元库进行综合,然后使用高阈值的逻辑单元去替代那些时间裕量过大路径上的低阈值逻辑单元

低功耗设计_第4张图片

使用多阈值工艺设计的另一个优点是没有任何面积开销,工艺库设计时将两种阈值的逻辑单元面积设计成一样,这样可以方便替换;

(2)电源门控方法

也称为多电源方法,其思想是芯片上的一些模块可以根据需求采用不同的电源网络供电,这样当一个模块不需要工作时,这个模块可以断开电源,如手机处于待机状态时的多媒体处理单元,从而做到零功耗;

动态低功耗技术

(1)多电压域技术

对于SOC系统,可以让不同的模块使用不同的电压并以不同的频率运行,如下图所示:

低功耗设计_第5张图片

对于多电压域设计,需要在不同的电压域之间使用一些电平转换单元,将输入电压转换成输出所需的电压范围;

(2)门控时钟

 芯片工作时,很大一部分功耗是由于时钟网络的翻转消耗的,对于一个设计中的寄存器组由于时钟信号CLK的翻转,寄存器组会持续在CLK的上升沿来临时读取数据输入端的数据,而这时读取的数据是不变的,这就消耗了额外的功耗。如果时钟网络较大,这部分引起的功耗损失会很大。门控技术基本原理就是通过关闭芯片上暂时用不到的功能和它的时钟,从而实现节省电流消耗的目的,门控时钟对翻转功耗和内部功耗的抑制作用最强,是低功耗设计中的一种最有效的方法。通过一个时能信号控制时钟的开关。当系统不工作时可以关闭时钟,整个系统处于非激活状态,这样就能够在某种程度上降低系统功耗。

     “通常情况下,时钟树由大量的缓冲器和反相器组成,时钟信号为设计中翻转率最高的信号,时钟树的功耗可能高达整个设计功耗30%。加入门控时钟电路后,由于减少了时钟树的开关行为,节省了开关功耗。同时,由于减少了时钟引脚的开关行为,寄存器的内部功耗也减少了。采用门控时钟,可以非常有效地降低设计的功耗,一般情况下能够节省20%~60%的功耗。”

      使用门控时钟并不符合同步设计的思想。ASIC中使用较多,FPGA中不推荐使用;

(3)动态电压和动态频率调节

将不同模块的工作电压和工作频率尽量调低到刚好满足SOC系统的最低要求来实现降低系统的功耗,这种方法最为复杂;

UPF及低功耗设计的实现

统一功耗格式(UPF,uniform power format)是被业界广泛采用的低功耗设计和验证的描述文件格式;UPF是为了在相对高的层次上描述功耗设计示意图,例如采用多电压域技术就需要定义:两个不同的电压域之间如何转换?

基于UPF的设计流程

UPF支持不同供应商的EDA工具,下图为一个典型的基于UPF从设计到验证以及后端实现的流程:

低功耗设计_第6张图片

在RTL代码中插入UPF指令,通常要做的是定义电压域、定义电源状态、定义对特殊信号的隔离及保持寄存器等.在RTL+UPF仿真的这一步中就可以验证电压域、隔离单元、保持寄存器等逻辑的正确性;

UPF功耗描述文件的举例

下面给出一个设计中UPF电源描述文件的实例,更多内容请参考UPF标准文档:

低功耗设计_第7张图片

低功耗设计_第8张图片

你可能感兴趣的:(IC设计相关)