【数字IC设计】低功耗设计概述

1. 数字IC设计中的低功耗处理方式概述

低功耗处理方式在数字IC设计中至关重要,在芯片设计中可以从系统层面、处理器层面、模块单元层面、寄存器层面、锁存器层面、SRAM层面和组合逻辑层面来考虑。

1.1 系统层面低功耗

系统层面的低功耗技术可以涉及板级硬件系统和芯片内的SoC系统,其原理基本一直。以SoC系统为例,常见的低功耗技术如下:
(1)SoC系统中划分不同的电源域,能够支持将SoC中的大部分硬件关闭电源;
(2)SoC系统中划分不同的时钟域,能够支持小部分电路以低速低功耗的方式运行;
(3)通过不同的电源域与时钟域的组合,划分不同的低功耗模式。SoC配备PMU控制进入或退出不同的低功耗模式;
(4)软件可以通过使用PMU的功能,在不同的场景下进入和退出不同的低功耗模式。

1.2 处理器层面低功耗

处理器层面的常见低功耗技术如下:
(1)处理器指令集中定义一种休眠指令,运行该指令后处理器便进入休眠状态;
(2)休眠状态可分为浅度休眠和深度休眠:浅度休眠状态往往将处理器核的整个时钟关闭,但仍然保持电源供电,因此可以节省动态功耗,但是静态漏电功耗仍然有消耗;深度休眠状态不仅关闭处理器核的时钟,甚至将电源也关闭,因此可以同时节省掉动态和静态功耗;
(3)处理器核深度休眠断电后,需要考虑内部上下文状态的保存和恢复问题;
(4)在处理器结构上可以采用异构的方式节省功耗;

1.3 单元层面低功耗

模块和单元层面的低功耗技术已经进入了IC设计微架构的范畴,其常见的技术与SoC系统层面基本一致,常见如下:
(1)一个功能完整的单元往往需要单独配备独立的时钟门控(Clock Gate),当该模块后者单元空闲时,可以使用时钟门控将其时钟关闭,节省动态功耗;
(2)某些比较独立和规模较大的模块甚至可以划分独立的电源域来支持关闭电源,以进一步节省静态功耗。

1.4 寄存器层面低功耗

寄存器层面的低功耗技术已经进入了IC设计编码风格的范畴,主要从3个方面减少寄存器层面的功耗:
(1)时钟门控
主流逻辑综合工具已经可以从代码风格中直接推断出Integrated Clock Gating的能力,因此只要遵循一定的编码风格,便能够将一组寄存器的时钟自动推断出ICG,以节省动态功耗。在逻辑综合完成后,工具可以生成整个电路的时钟门控率,开发者可以通过此时钟门控率数据的高低来判断设计电路是否自动推断出了足够的ICG。好的电路一般有超过90%的时钟门控率,否则可能是电路中数据通路较少或者编码风格有问题。
(2)减少数据通路翻转
为了见识不必要的动态功耗,应该尽量减少寄存器的翻转,比如FIFO设计中采用读写指针的方式,可以保持表项寄存器中的值静止不动,从而大幅度减少动态功耗。
(3)数据通路不复位
对于数据通路部分的寄存器,甚至可以使用不带复位信号的寄存器,不带复位信号的寄存器面积更小,时序更优,功耗更低。比如对于某些缓存器(buffer)、FIFO和Regfile的寄存器部分,经常使用不带复位的寄存器,但是在使用不带复位的寄存器时必须小心谨慎,保证其没有作为任何其他控制信号,以免造成不定态的传播。在前仿真阶段,必须有完善的不定态捕捉机制来发现这些问题,否则可能造成芯片出现严重bug。

1.5 锁存器层面低功耗

锁存器相比于寄存器面积更小,功耗更低。在某些特定的场合使用可以降低芯片功耗,但是锁存器会给数字ASIC流程带来极大困扰,因此应该谨慎使用。

1.6 SRAM层面低功耗

SRAM在芯片设计中经常使用到,可以从3个方面减少SRAM的功耗。
(1)选择合适的SRAM
从功耗与面积角度考虑,单口SRAM最小,一读一写Regfile其次,双口SRAM最大,应该优先选择功耗与面积小者,尽量避免使用高功耗的SRAM类型。SRAM的数据宽度也会影响面积,以同等大小的SRAM为例,假设总容量为16KB,如果SRAM的数据宽度为32位,则深度为4096,如果SRAM的数据宽度为64位,则深度为2048.不同的宽度深度比可能会产生面积迥异的SRAM,因此也需要综合权衡。
(2)尽量减少SRAM读写
SRAM的读写动态功耗相当可观,因此应该尽量减少读写SRAM,比如处理器取指,由于处理器多数按照顺序取指,因此应该尽量一次从SRAM中多读回一些指令,而不是反复多次读取SRAM,从而节省SRAM的动态功耗。
(3)空闲时关闭SRAM
与单元门控时钟相同原理,在空闲时应关闭SRAM的时钟,以节省动态功耗,SRAM的漏电功耗相当可观,因此在省电模式下,可以将SRAM的电源关闭,以防止漏电。

1.7 组合逻辑层面低功耗

组合逻辑是芯片中的基本逻辑,可以从两个方面减少组合逻辑的功耗。
(1)减少面积
通过使用尽量少的组合逻辑面积减少静态功耗,此为数字逻辑设计的基本认知,因此从设计思路和代码风格上,应该尽量将大的数据通路或运算单元进行复用,从而减少面积,另外应该避免使用除法、乘法等大面积的运算单元,尽量将其转化为加减法运算。
(2)减少翻转率
可以通过逻辑门控的方式,在数据通路上加入一级与门,使没有用到的组合逻辑在空闲时不翻转,从而达到减少动态功耗的效果。额外加入一级与门,在时序非常紧张的场合也许无法接受,需要谨慎使用。

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值