目录
5.1功耗源
浪涌、静态功耗和动态功耗是主要的功耗源。
1)浪涌电流指的是上电后的初始化电流,一般是正常工作电流的数倍;
2)静态功耗指在关断主电源或进入待机模式下的产生的电流,其中包括晶体管漏电流功耗;
3)动态功耗:指门电路进行切换时,由逻辑转换产生的功耗;
动态功耗由下面等式定义:
Pdynamic = S CL Vdd fclk
其中CL指寄生电容,fclk指时钟频率,S指每个时钟通过整个电路的翻转次数,Vdd为供电电压
4)ASIC总功耗为:
Ptotal = Pdynamic + Pstatic
动态功耗在大规模IC设计中占主要地位,一般在总功耗的80%左右。
5.3降低功耗的各设计层次
主要分为系统级、体系结构级、RTL级、门级、晶体管级。层次越高降低功耗效果可能就越好。
5.4系统级低功耗技术
5.4.1片上系统方法
暂提一个名字
5.4.2软硬件功能划分
当出现高度递归的任务时,可以用硬件实现,以加快运行速度与大幅降低功耗。
5.4.3低功耗软件
如合并同类型指令,避免同指令重复调用。如下;
5.4.4处理器选择
处理器的选择对功耗会产生明显的影响。
1.采用适合所要求的数据位宽的处理器;(比如处理16位数据尽量使用16位处理器,如果采用8位处理器,将会大量增加排序)
2.可以使用微控制器和协同处理器协同处理数据
5.5体系结构级降低功耗技术
5.5.1高级门控时钟
同步数字系统中,时钟树消耗了大量的功耗,可以通过门控时钟能将大部分不使用的电路关闭。
使用门控时钟的重点在于:如何识别出"多余的"或"不关心"的状态,一旦完成,可降低15%~25%的开关次数。
5.5.2动态电压频率调节(DVFS)
DFVS:指在对频率不敏感的应用阶段中降低时钟速率和供电电压,可以在性能适度损失的情况下大幅降低功耗。
主要是分为几种工作模式,如:高性能、正常、睡眠等等不同运行模式。
在实际使用中,使用高性能模式时间只占极少数比例,其余大多时间均是低性能模式运行。
动态电压调节(DVFS)依赖特殊的硬件,使用一个可编程的DC-DC开关电压调节器,一个可编程的时钟产生器和宽操作域的高性能处理器提供一个两全的方式。
自动根据数据处理的需求,进行模式切换。
5.5.3 基于缓存的系统体系结构
在存储器或RAM与处理器之间添加缓存,预先将相关数据从主存取到缓存中,以此提高FFT效能,并使得计算能效大幅降低。
5.5.4对数FFT体系结构
在大规模运算中,使用对数系统比线性系统更好用。 负面影响——加减法器的宽度会增加,需要指数级的查找表。
5.5.5异步设计
异步设计能取代同步设计中的庞大时钟树,并且不用考虑时钟偏移的问题。
异步电路依赖延迟不敏感编码的信号交换接口,最流行的是双轨道编码。
5.5.6电源门控
类似时钟门控,是对不使用模块的电源进行关闭操作。
有两种方式:
1.细粒度电源门控
在每个门与地之间存在一个开关晶体管:
2.粗粒度电源门控
在每个模块加入电源门控:
粗粒度门控电源技术能极大减少功耗。
在现今复杂ASIC设计中,一般会同时采用两种方式。
5.5.7多阈值电压
使用多单元库有助于漏电和动态功耗的问题。
在单元库中最少包含两组功能相同和不同阈值电压的单元。
高阈值电压单元较慢但漏电流较少;
低阈值电压单元较快但漏电流较多;
1.若设计的目的是为了满足性能,则最好第一遍综合中使用低阈值电压库;
2.若设计的目的是为了满足功耗,则最好第一遍综合中使用高阈值电压库;
5.5.8多电压供电(MSV)
设计独立的“电压岛”,对不同模块进行不用电压的供电;
对于时序要求严格的模块按标准电压供电,对于时序要求不严格的模块,可按照较低电压进行供电;
可使动态功耗明显下降。
5.5.9 存储器门控电源
Soc中的SRAM消耗了总功耗的近1/3,其余由时钟树和随机逻辑消耗掉。故存储器架构是低能耗设计的重点;
有几种方法:
1.用门控电路对不使用的存储器模块进行关闭,需要将存储器分为多个存储器,一般只使用所需的存储量即可;
2.使用多模式给存储器供电,类似多电压供电;
3.使用堆叠式存储器。
5.6 RTL级降低功耗
5.6.1 状态机编码和解码
1.在状态机编码中,格雷码是最适合低功耗设计的,有效的降低了翻转频率。
2.将有限状态机(FSM)拆分,以达到低功耗的目的。因为当子FSM没有转换发生,只需给一个子FSM供给时钟。
5.6.2二进制苏表示法
补码表示:负数为反码加1
有符号数表示:负数首位为1
5.6.3 门控时钟
在时钟线上加入门控逻辑
5.6.4独热码
独热码:一位数据对应一个寄存器
不使用独热码,在多位总线时,会产生明显的开关翻转,产生功耗,如下:
当使用独热码后,能在初期就将总线掩藏(即斜杠处),降低了功耗:
5.6.5去除多余的转换
在没有默认状态下,总线数据常会发生没有意义的翻转,若数据未被采样,那就是多余的。
如下图,在为去除多余翻转前,input_data的总线每次都要产生数据切换,二去除多余翻转后,总线便只会在选中的目标中切换数据。
5.6.6 资源共享
当有同样的操作在多处使用,必须避免相应的运算逻辑在多个位置重复出现,这将会增大面积,增加功耗。
可以将相同功能的资源共同调用,示例如下:
5..6.7使用行波技术器来降低功耗
最大的好处是不使用时钟树,节省了大量的功耗;劣势是会产生较严重的相位延迟,影响数据的正确传输。
可以使用一些方法来处理行波计数器的相位延迟问题:
只有时钟为0时,才读入4位数据的值,一旦时钟为1,则停止接受数据。
行波计数器你哪个有效降低功耗与减少漏电流,但是使用时必须非常小心,而且其对可测性和缺陷覆盖率会有影响。
5.6.8 总线反转
这是一种常见的编码解码方式,能有效降低功耗,比如HDMI传输中的TMDS编码即是如此。
目的是使数据传输过程中的0和1的数量保持一致,减少翻转次数,其中需要加入反转标志位,以标记数据是否反转;
此方式可大幅度降低数据传输过程中的翻转次数。
5.6.9 高度活跃网络与低活跃网络区分
将活跃度较高的网络和活跃度较低的网络分开,避免调用高活跃网络时,同时启动低活跃网络,如下;
5.6.10启用和禁用逻辑云
在操作大规模逻辑云时,往往在需要时才将其打开。
最好给逻辑云添加使能信号,如下:
5.7 寄存器低功耗技术(工艺)
1.制程工艺
2.版图优化
3.衬底偏压
4.减少氧化层厚度(注意电子隧穿效应在1.2nm附近)
5.多氧化层器件
6.定制设计减小电容