数字IC低功耗设计总结

如题所述

第1个回答  2022-06-17
1、功耗分类:

低功耗按照类型分类,主要有动态功耗、静态功耗、浪涌功耗三种。

(1)动态功耗包括:

开关功耗(翻转功耗):电平翻转对负载电容进行充放电时消耗的功耗。

短路功耗(内部功耗):信号翻转时不可能瞬时完成,PMOS和NMOS存在同时导通构成通路,形成短路电流。

(2)静态功耗:

主要是漏电流引起的功耗

2、系统与架构级低功耗设计

(1)多电压设计技术:

不同的模块区域有不同的电压。(各模块电压可固定、可通过软件选择、可自适应改变)

(2)系统时钟分频:

时钟是系统中频率最高的信号,其功耗功之高不容置疑。可在不同的工作模式下选用不同频率的时钟,并且将一些不需要的模块时钟关闭。

(3)算法和IP选择

(4)异步设计:

同步系统中通过时钟树综合、插入缓冲器减少时钟的偏移。这种方法在时钟网络上添加了大量的缓冲器,时钟网络消耗的功耗也增加。

在异步设计里面,不需要全局时钟,两个模块通过握手信号进行交互,这时候就可以减少功耗。可以把一个系统使用多个时钟,每个时钟控制的区域内部都设计成一个同步的子系统。

3、RTL级低功耗设计

(1)门控时钟法:

通常情况下,时钟树由大量的缓冲器和反相器组成,时钟信号为设计中翻转率最高的信号,时钟树的功耗可能高达整个设计功耗30%。加入门控时钟电路后,由于减少了时钟树的开关行为,节省了开关功耗。同时,由于减少了时钟引脚的开关行为,寄存器的内部功耗也减少了。

门控时钟有两种方案:一种直接针对寄存器的时钟进行门控,一种对模块级别的时钟进行门控。

(2)操作数隔离技术:

当某段时间不需要运算器的结果时,把运算器的输入用与门隔离掉,停止其反转。

(3)资源共享与状态编码:

对于设计比较多算术运算的设计,如果有同样的操作在多处使用,那我们可以避免相应的运算逻辑在多个位置重复出现。

此外,对于一些变化非常频繁的信号,我们利用数据编码来降低开关活动(例如,用格雷码比用二进制码翻转更少,功耗更低)。

(4)并行与流水的选择:

采用并行处理,可以降低系统工作频率,从而可能降低功耗。

流水线技术可以将一个较长的组合路径分成M级流水线。路径长度缩短为原始路径长度的1 /M。这样,一个时钟周期内充/放电电容变为C/M。在相同的速度要求下,可以采用较低的电源电压来驱动系统。这样,系统的整体功耗可能会降低。

(5)DVFS技术

DVFS(Dynamic Voltage and Frequency Scaling)动态电压频率调节本质上是一种低功耗技术,目的是根据的芯片当时的实际功耗需要设定工作电压和时钟频率,这样可以保证提供的功率既满足要求又不会过剩,从而可以降低功耗。比如数字芯片中,CPU模块(比如8核cpu),在需要跑分的时候,将给cpu供电的电压通过软件调节到更高的电压(overdrive),获得一个更高的频率。在实际某个应用场景下,可能cpu只需要一个较低的频率时,可以将电压调节成一个较低的电压(underdrive)来实现..

一味的降频降压当然是不能降低功耗的,因为低频下运行可能使系统处理任务的时长增加,从而整体上可能反而增加了功耗。所以DVFS的核心是动态调整的策略,其目的是根据当时的系统负载实时调整,从而提供满足当时性能要求的最低功率,也就达到了最低功耗。制定调整策略前,先找出系统中的耗电大户即CPU GPU这些模块。需要统计出这些模块的负载情况,基本的策略当然是工作负载增加则升频升压,工作负载降低则降频降压.

原文链接:https://blog.csdn.net/weixin_43274923/article/details/107742772