功耗来源=动态功耗+静态功耗
低功耗设计技术:时钟门控、电源关断、多电压供电、多电压阈值、动态调压调频/自适应调压
一、Clock Gating时钟门控:
1、模块级时钟门控
对模块整体进行门控,通过例化门控单元,将空闲模块的时钟关断或者降低时钟工作的频率
2、电路级门控
工具根据rtl自动综合出时钟门控电路
always @ (posedge clk or negedge rst_n) begin
if(!rst_n)
q <= 32'b0;
else
if(en)
q <= data_in;
else
q <= q;
end
1)如果一个信号的值是Don't care的,那么保持它最后的动态值,而不是强制的使它为1或0
2)如果使能信号的产生逻辑太过复杂,产生逻辑代价大的话加入门控反而会使功耗增加,比如复杂的产生使能信号的逻辑,控制了1bit信号翻转
3)对于大块memory,可以将memory分成多块,用高位地址线进行片选译码,来降低访问功耗;对于支持Power Gating和 Power retention特性的memory,面积会稍大,因根据应用场景和面积成本进行选择
4)操作数隔离
在不进行算术运算的时候,使这些模块的输入保持不变,使得输出结果不会翻转。
5)状态机编码
对于频发切换的相邻状态,尽量采用相邻编码状态机编码,如格雷码,避免频繁迁移的状态间有大量bit翻转
6)降低频繁开关信号的逻辑深度
7)减少毛刺,如:缩短组合逻辑深度
8)无复位寄存器的面积和功耗小于带复位的寄存器
9)在时序允许的前提下,减少寄存器打拍
10)将移位打拍改为乒乓或fifo寄存
二、Power Gating电源关断
芯片中按照功能划分为多个电源域,分别控制断电,从而消除整个被关断模块的功耗。
注意:
Power Gating需要专门的上下电顺序设计,保证系统上电之后能够正常恢复工作;在各模块下电前,需要先用Isolation Cell对输出信号进行隔离,确保供电关闭区域输出信号不被悬空,从而避免了不定态的传播。
三、Multi Add 多电压技术
其基本思想基于系统性能等级要求,可同时节省动态功耗和静态功耗。跨电压域路径时序收到影响,在设计需要考虑时序余量。
这里需要使用特殊的cell:level shifter
它可以在较宽的电压范围内提供可靠的voltage level shift,从而使信号的占空比和延迟受到的影响最小
四、Multi-Vt多电压域技术
在时序紧张的路径上使用Low-Vt或者Normal-Vt的cell,在时序宽松的路径上使用High-V的cell,可以节省功耗
Low-Vt的cell delay小leakage大,High-Vt的cell delay大leakage小