低功耗设计

[文章目录]

低功耗设计意义:

1.提高电池供电的电子产品的使用时间
2.提高设备可靠性:功耗越大,产生热量越快,不及时散热会影响芯片性能或导致芯片无法正常工作甚至损毁(功耗墙,dfs设计来降频)
3.降低成本:功耗越大,产生热量越快,对封装,散热系统等要求越高

芯片功耗来源:

静态功耗和动态功耗,静态功耗是漏电功耗,动态功耗包含内部功耗和翻转功耗。
漏电功耗是由于漏电流引起的,漏电功耗与温度可成指数关系。
内部功耗又可以称为短路功耗,主要是由于短路造成的,短路功耗是因为输入信号翻转时,信号的翻转不可能瞬时完成。以反向器inverter为例,短路功耗指的是电路跳变,nmos和pmos同时导通的瞬间所消耗的电流所消耗的电能。
翻转功耗是由于电路对负载的充放电引起。
静态功耗主要和工艺有关,动态功耗和翻转率有密切关系

系统级低功耗设计:

1.升级生产工艺,工艺升级可以降低功耗。
2.电压控制相关:
- 电源门控:
一些场景下不使用,但是漏电功耗又比较大的模块,可以插入mtcmos作为芯片内部掉电,在芯片内部做电源门控。
(片内电源门控代价:增加芯片面积,mtcmos大概会增加block 8%面积)
再比如单独电源域的ipu,客户在一些场景不用就可以片外关闭电源,减少leakage功耗
(片外门控代价:增加板级设计的复杂度)
- 降低工作电压:
有些系统功耗大,但不是所有场景下都需要这么高性能。性能需求比较低可以降低电压减小功耗。
多电压域设计:性能要求较高的模块由于需求频率较高,设计上采用较高电压,对于性能要求不高的模块,采用较低的电压。模块拆成多个电源域,sign off多个电压,可以升降压,满足不同性能功耗要求下,提供不同电压。
- 采用不同速度的标准单元:
阈值电压越高,cell速度越慢,漏电功耗越小。阈值电压越低,cell速度越高,漏电功耗越大。
SVT:阈值电压高,速度慢,漏电功耗小
LVT:阈值电压中,速度中,漏电功耗低
ULVT:阈值电压低,速度快,漏电功耗大(关键路径上meet时间)
对后端要求LVT ULVT的比例来控制功耗。

RTL级低功耗设计

和coding关系比较大
- 时钟门控:时钟功耗在整体功耗中占有很高的比例,时钟门控可以减少clock tree上cell消耗的功耗以及DFF内clock翻转时的功耗。
(X项目基本上每个模块时钟功耗会占据总功耗的40%~60%)
时钟门控ICG可以在coding的时候手动插入,也可以综合阶段由工具插入。
综合工具插入的ICG都紧挨着触发器,即在时钟树的末端,因此仍然有clock tree上功耗的浪费。
所以应该在时钟树更靠近root的点手动插入ICG。
将模块区别出独立功能的子模块,根据不同的业务/数据流等对不同子模块设计软件/硬件门控等低功耗设计。
硬件自动时钟门控的关键在于识别数据流上无用&多余的状态,在数据没有发生变化等情况下关闭时钟。
(由于软件门控对于软件人员要求比较高,并且软件配置也有延迟,需要软件人员理解硬件行为,所以效果一般。通常选用硬件自动门控,硬件响应的比较快,然后软件可以关闭自动门控功能,防止在一些场景下性能&功能的损失)
目前ICG的结构都是一个Latch+与门,在时钟为低电平的时候将EN传到与门,防止时钟有glitch
综合工具插入ICG需要比较好的编码风格,在时序逻辑里将使能信号放到if-else里,不额外写组合逻辑。
(一般策略4bit才会插,否则icg模块也有面积功耗)
- 状态机编码:
RTL编码方式有二进制编码,格雷码和独热码。
二进制和格雷码使用较少的DFF,较多的组合逻辑,独热码需要较多的DFF,较少的组合逻辑。
二进制在状态转换过程中多个DFF会翻转,格雷码和独热码在状态转换的过程中只有一个DFF会翻转。
所以格雷码适合低功耗设计。
- 删除多余的转换:
数据门控:数据常常会发生没有意义的转换,如果转换后的数据未被真正采样,那他就是多余的。
在不用的时候将DFF数据保持不变才能减少toggle,降低功耗。
在操作大规模逻辑云(宽加法器、乘法器)时,需要时再将其打开。
- 资源共享:设计较多算数运算的设计,如果有同样的操作在多处使用,必须避免相应运算逻辑在多个位置重复出现。使用重复逻辑会增大面积和功耗。
- 总线反转:在当前数据和下一个数据之间的汉明距离大于N/2时,将下一个数据取反后再传输,以减少翻转。
减少大容量总线上的转换次数很有效,但是需要额外加一个控制位,用来表示传输数据是否已经翻转。(HBM里DBI)
- 二进制表示法:补码比有符号数翻转的多,可以用有符号数表示,eg.10000001是-1
- 高活跃网络:将高度活跃的组合逻辑输入在组合逻辑的后面使用,这样会减少组合逻辑的翻转率。
- SRAM优化:SRAM时钟信号插入ICG,用CS片选信号作为SRAM ICG的enable信号,较少SRAM在非读写时因时钟的翻转造成的功耗。
拆分SRAM可以减少RAM的access,节省dynamic power,但是会增加面积和leakage power。
- 使用没有复位端的寄存器,对于非控制逻辑通路上的寄存器,可以使用不带复位端的寄存器,比如数据打拍。
根据手册,leakage power比较少。

功耗仿真工具:

PowerArtist(PA):基于RTL的功耗仿真工具
优点:在项目早期,rtl阶段即可获得功耗数据,提前识别功耗风险
缺点:功耗数据准确度较差,建议主要用于看功耗优化程度

PrimeTime(PTPX):基于PR netlist的功耗仿真工具
优点:功耗数据较准确(tiger项目看误差10%以内)
缺点:项目后期有PR netlist和netlist fsdb后才能获得功耗数据

PowerReplay:将rtl fsdb转成netlist fsdb的工具
优点:不需要等验证跑后仿,今早获得ptpx功耗数据

测例:典型工作场景,最大功耗场景。最大功耗用于后端IR drop分析和产品板电源和散热设计。

发表评论

邮箱地址不会被公开。 必填项已用*标注