功耗问题 在电池供电的嵌入式系统中,节能是最重要的考虑因素。功耗可以被分成三大类:启动功耗、静态功耗和动态功耗。设计人员无法控制启动功耗,而启动功耗在决定电源选型中扮演着重要的角色。大多数最大电流值指的就是这个阶段所达到的值。但静态功耗和动态功耗是两个不同的领域,通过合理的规划和以下正确的指导原则,使用FPGA的嵌入式设计人员可以在功耗优化方面作出显著改进。 静态功耗是指系统不工作时仍有电流流过元件时产生的功耗,一般由器件偏置电流和漏电流引起。静态功耗也取决于工作电压,降低工作电压可以降低静态功耗,但这个策略并不总是掌握在设计人员手中。设计人员能做的是定义合理的架构,在这种架构下需要使用的资源最少,同时尽可能使用资源共享,并以最高效的方式使用FPGA模块。 减少静态功耗的另外一种技术是在设计周期早期进行功耗预估,改变拓扑或使用不同的IP模块。例如,赛灵思的xPower Estimator工具这时就非常有用,它能很早知道设计是否满足功耗预算。早期阶段的功耗预估也许不完全准确,但作为指导工具确实很有帮助。 动态功耗是由于FPGA门的一些行为(比如信号开关)引起的,当两个门暂时导通时,将产生电流流动和电容。信号开关的速度决定了功耗的大小。影响动态功耗的另外一个因素是电路内部结构中形成的固有电容。动态功耗是时钟频率、正在开关的门数量和这些门开关速率的函数。门扇出和走线上的电容负载会增加动态功耗,并且功耗值正比于电容、电压和频率平方的乘积。 设计人员对这种功耗具有最大的控制能力,他们可以利用许多技术实现动态功耗的最大改善。降低信号开关频率可以使功耗呈指数式下降。正如图1所示,用于UART的控制逻辑、奇偶校验或帧超限错误都发生在速度较低的时钟域。即使门数没有减少,功耗也会下降。设计人员还可以通过降低整体工作频率(如果可行的话)来减小动态功耗。例如,在完成可行性和性能分析后,设计人员决定上述设计不仅能工作在133MHz,也能工作在66MHz。DSP支持这两种速率,而减小电压也有助于降低功耗。 另外一种技术是减少处于工作模式的有效门数。有时某部分逻辑虽然在开机时被打开和配置,但实际上不要求做任何事情。例如,模拟音频捕获单元处于工作状态,设备却不在执行任何数字SPDIF音频捕获。在这种情况下,一般的数字SPDIF音频捕获电路仍将执行数据采样、双相解码等工作,因而无谓地浪费功率。如果禁用整个数字SPDIF音频捕获电路,使电路中不发生任何信号开关动作,那么动态功耗将会显著降低。 设计人员可以禁用传送到这部分电路的时钟来达到这个目的。一种简单的做法是将时钟信号与使能信号相“与(AND)”,如图2所示。如果使能信号是低电平,那么与门的输出将保持低电平。如果使能信号为高电平,与门将输出时钟信号。
图2:一种简单的时钟选通机制。 |