新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 芯片设计中的功耗估计与优化技术

芯片设计中的功耗估计与优化技术

作者:时间:2016-09-12来源:网络收藏

3.2估算的流程

因为指令与行为级估算的精确度太差,电路级估算的耗时过多,所以在业界的实践中采用较少。RTL与gate级估算是常用的选择。实际分析的执行必须借助工具的辅助,目前业界通常的选择是在RTL级采用power compiler,在门级采用primepower。

门级

图2

下面以power compiler为例,说明门级估算的步骤。

在dc compile前,设置下面的变量:

power_preserve_rtl_hier_names = false/true

编译

写出ddc文件

仿真生成vcd 文件

vcd2saif转化为.saif文件 (注意vcd2saif由csh调用,而不是在dc_shell界面调用)

读入ddc网表

read_saif

report_power

4 的优化

4.1优化的原则

图3是几个典型设计中分布数据:

功耗分布

(数据来自“International Solid-State Circuits Conference”)

图3

我们的目标是减少时钟树、标准单元和存储器的功耗。功耗与性能通常是充满矛盾的:

1)使时钟变慢(更少的转换),但我们想要更快的处理速度。

2)减小Vdd,但Vdd变小会限制时钟速度。

3)更少的电路,但更多的晶体管可以做更多的工作。

简言之,我们想用最少的能量完成最大量的任务。实现方式是对电路动作的控制精细化,仅让恰好需要的电路,在需要的时间内动作,而不浪费分毫。完成这一任务,需要设计者有效率地管理电路的动作。

现代系统是如此复杂,以致设计者必须切分为若干层次,分步前行才能把握:

软件 -> 架构 -> 逻辑 -> 电路

每一层次中,设计者对电路动作的控制范围和手段都是不同的。软件是硬件动作的总调度师,设计者可以根据特定应用,关掉整个模块或减少无效的动作。进入架构层,视角转为怎样将设定任务合理分配到各个模块,协调动作最有效率,如pipeline、分布式计算、并行计算等。在逻辑层,则考虑怎样实现一步动作仅使需要的电路动作。电路层的视角更为精细,通过调节平衡信号到达时间,驱动单元大小等手段,使电路的动作耗能最小。这里存在一个重要规律,称作效率递减率:

在高的抽象层次减少功耗的效率会比低的层次更高。

所以,降低功耗是一个系统工程,需要软件、硬件、电路、工艺等人员的共同努力。这里,我们将采用架构与逻辑的视角进行下面的讨论。

4.2 架构考虑

1)切分工作模式,硬件要可以提供一个接口,以使软件可以控制电路模块的动作与否。不工作的模块挂起。

2)分布式计算:将整个任务切分到不同模块,在内部处理高活动性信号。

虽然总计算量没有改变,但对单个模块,时间要求降低,可以降频或降压。

3)并行计算:相同时间内计算量相同,但可降频/压。

(计算量=开关的次数,开关次数没变,但每次开关的功耗成本降了)

4)pipeline

每步的计算量减少,可以在性能相同的情况下,降低工作频率。

5)可编程性与hard-wire的权衡

可编程性越强,完成相同的任务耗电越多。

门级

(见参考文献[7])

图4

4.3 RAM的功耗优化

很明显,大的RAM比小的RAM耗电要多,将整块的RAM分成小块可以降低存取功耗。

图5

值得注意的一点是,多数设计者认为片选信号无效,RAM即进入最小功耗。实际上,若此时其数据/地址端口信号有翻转,会耗费相当的电力(约占激活功耗的20%)。在不存取时,最佳的方式是,保持片选无效,地址、数据是恒定值。

4.4时钟树单元/连线

4.4.1 时钟门控的原理

在典型的数字芯片中,时钟网络的功耗可以占到总量的50%,这是一个庞大的数字。一个行之有效的方案是使用时钟门控,将当前未工作逻辑的时钟树关闭。比如下面的逻辑,在EN是0时,可以将右侧的register bank的时钟关闭。

功耗

图6

时钟门控逻辑加入的方式有两种:手动和自动。

a) 手动方式

在每个IP模块的时钟根节点加入,EN信号可以由程序设定产生。

b) 自动方式

dc_shell > set_clock_gating_style (options) 选择时钟门控的方式和条件

dc_shell > analyze -f design.v 读入设计

dc_shell > elaborate MY_DESIGN 构造设计

dc_shell > insert_clock_gating 将符合条件的逻辑门控

dc_shell > create_clock -period 10 -name CLK 创建时钟

dc_shell > propagate_constraints -gate_clock 加入时钟门控单元的时序约束

手动和自动结合的方式可以达到最好的效率。

4.4.2 gating 单元的选择

a)latch-based(图7)

门级

图7

b)latch-free(图8)

luoji

关键词: 功耗 IC设计

评论


相关推荐

技术专区

关闭