低功耗设计:
1.功耗类型:
式中,C为结点电容,Nsw为单时钟内翻转晶体管数目,f为系统工作时钟频率,VDD为供电电压,Qsc为翻转过程中的短路电量,Ileak为漏电流。
芯片的功耗主要由静态功耗(static leakage power)和动态功耗(dynamic power)构成。静态功耗主要是指电路处于等待或者不激活状态时的泄漏电流所产生的功耗,主要是有反偏二极管泄漏电流,门栅感应漏极泄漏电流,亚阈值泄漏电流和门栅泄漏电流。动态功耗是指晶体管处于跳变状态所产生的功耗,主要由动态开关电流引起的动态开关功耗以及短路电流产生的短路功耗两部分组成。
- 动态功耗
动态功耗 = 翻转功耗 + 短路功耗
翻转功耗:当电容Cload通过PMOS 管充电时它的电压从0升至VDD,此时从电源上吸取了一定的能量。该能量的一部分消耗在 PMOS 器件上,而其余的则存放在负载电容上。在由高至低的翻转期间,这一电容被放电,于是存放的能量被消耗在NMOS 管中
短路功耗:在实际的电路设计中,输入信号跳转时会存在延迟,输入信号变化的斜率造成了开关过程中 VDD和VSS之间在短期内出现了一条直流通路,此时NMOS管和PMOS管同时导通,产生短路电流。
- 静态功耗
CMOS电路中静态功耗主要是由漏电流引起的功耗。由图可知,漏电流主要由以下几部分组成:
- PN结反向电流 (PN-junction Reverse Current)
- 源极和漏极之间的亚阈值漏电流(Sub-threshold Current)
- 栅极漏电流,包括栅极和漏极之间的感应漏电流(Gate Induced Drain Leakage):
- 栅极和衬底之间的隧道漏电流 (Gate Tunneling )。
2.低功耗设计方法:
总体而言,低功耗设计被分为三个阶段:
(1)RTL阶段:主要是通过门控时钟方法,不是最关键的;
(2)综合阶段:通常用DC对面积、功耗自动优化,可能影响也较小;
(3)P&R:这个阶段应该是对功耗影响最大的部分,多阈值电压、多电源多电压、电源关断技术、动态电压与频率调节技术
- 门控时钟:直接关闭寄存器的时钟,可以在部分模块使能信号为低时,所有信号停止变化,以此降低翻转功耗;
- 多阈值电压:在时序路径上使用不同阈值电压的器件来降低泄露功耗,高阈值器件泄露功耗低但速度慢,低阈值器件正好相反。所以可以在关键路径上放低阈值器件,非关键路径上放高阈值器件;
- 多电源多电压:对不同的模块可以使用不同的电压域,可以有效降低动态功耗,但是在不同的电压域之间需要电平转换单元(level shifter);
- 电源关断技术:直接切断模块的供电,这是最有效的降低泄露功耗的办法,但是需要在关断区和非关断区之间加如隔离单元(isolation cell),防止相互影响;
- 动态电压与频率调节技术:通过对系统的信号负载采样,用算法预测电路性能,当预测到电路频率降低时,先降低频率再降低电压;反之,先升高电压再升高频率。
3.RTL级低功耗技术:
1)并行结构
并行结构的原理是通过牺牲面积来降低功耗,将一个功能模块复制为n(n≥2)个相同的模块,这些模块并行计算后通过数据选择器选择输出,可以降低系统工作频率,降低工作电压,从而可能降低功耗(此次可以联想到兵乓操作中低速模块处理高速数据流的特征)
下图采用二分频的并行结构:
并行设计后,由于有多个模块同时工作,提高了吞吐能力,可以把每个模块的速度降低为原来的1/n。根据延时和工作电压的线性关系,工作电压可以相应降低为原来的1/n,电容增大为原来的n倍,工作频率降低为原来的1/n
例如:若原模块的功耗为P=a×CL×V2dd×f,采用二分频结构,由于增加了一个模块和数据选择器,整个电容负载为2.2CL,工作频率为f/2,工作电压可以降为0.6 V,则其功耗为:
由此可见,二分频并行结构在保持原有电路性能的同时降低了60%的功耗
2)流水线结构
流水线技术本质上也是一种并行。把某一功能模块分成n个阶段进行流水作业,每个阶段由一个子模块来完成,在子模块之间插入寄存器。
若工作频率不变,对某个模块的速度要求仅为原来的1/n,则工作电压可以降低为原来的1/n,电容的变化不大(寄存器面积占的比例很小),功耗可降低为原来的 1/n2,面积基本不变,但增加了控制的复杂度