降低FPGA功耗的设计技巧

目录

1.FPGA功耗模型

2.降低FPGA功耗的方法

2.1 电源电压管理

2.2 时钟门控

2.3 动态电压和频率调整 (DVFS)

2.4 寄存器传输级优化 (RTL)

2.5 器件选择


      为了降低FPGA(Field-Programmable Gate Array)的功耗并提高其能效,我们需要深入理解FPGA的工作原理和功耗模型。FPGA的功耗主要由静态功耗和动态功耗组成。静态功耗是指电路处于非活动状态时的功耗,而动态功耗则是在电路工作时产生的功耗。

1.FPGA功耗模型

FPGA功耗模型通常可以分为以下几种:

静态功耗:由于漏电流引起的功耗,在FPGA不工作时仍然存在。

动态功荷:包括开关功耗和电容充放电功耗。

       静态功耗是指由器件中所有晶体管的泄漏电流(源极到漏极以及栅极泄漏,常常集中为静止电流)引起的功耗,以及任何其他恒定功耗需求之和。泄漏电流很大程度上取决于结温和晶体管尺寸。

      动态功耗主要由开关功耗组成,可以用下面的公式表示:

其中,

Pdyn​ 是动态功耗;

α 是活动因子,表示每周期翻转的信号比例;

Cload​ 是负载电容;

Vdd​ 是电源电压;

f 是时钟频率。

2.降低FPGA功耗的方法

2.1 电源电压管理

       降低电源电压是最直接的降低功耗的方法。动态功耗与电源电压的平方成正比,因此即使是小幅度的电压降低也能带来显著的功耗下降。

2.2 时钟门控

       时钟门控是一种常见的技术,通过在不需要的模块中禁用时钟信号来减少不必要的翻转,从而降低动态功耗。时钟门控可以使用D触发器和额外的控制逻辑实现,基本原理是:

2.3 动态电压和频率调整 (DVFS)

      动态电压和频率调整(DVFS)可以根据系统的实时需求动态地调整电源电压和时钟频率,从而在满足性能要求的同时最小化功耗。

2.4 寄存器传输级优化 (RTL)

在寄存器传输级(RTL)代码设计阶段进行优化可以显著降低功耗。一些常用的技术包括:

数据编码:通过改变数据表示方式来减少信号翻转次数。

逻辑重写:通过逻辑重写减少电路复杂度。

流水线优化:增加流水线级数,降低时钟频率,从而减少功耗。

例如,考虑一个简单的加法器电路,可以通过重新组织逻辑门来减少关键路径上的延迟,进而降低功耗。

以数据使能使用为例:

      当总线上的数据与寄存器相关时,经常使用片选或时钟使能逻辑来控制寄存器的使能。进一步来说,尽早对该逻辑进行“数据使能”,以阻止数据总线与时钟使能寄存器组合逻辑之间不必要的转换,如图 1 所示。红色波形表示原设计;绿色波形表示修改后的设计。 

时钟管理为例:

   在一个设计的所有吸收功耗的信号当中,时钟是罪魁祸首。虽然一个时钟可能运行在 100 MHz,但从该时钟派生出的信号却通常运行在主时钟频率的较小分量(通常为 12% ~ 15%)。此外,时钟的扇出一般也比较高——这两个因素显示,为了降低功耗,应当认真研究时钟。 
   如果设计的某个部分可以处于非活动状态,则可以考虑使用一个 BUFG-MUX 来禁止时钟树翻转,而不是使用时钟使能。时钟使能将阻止寄存器进行不必要的翻转,但时钟树仍然会翻转,消耗功率。不过采用时钟使能总比什么措施也没有强。 
   隔离时钟以使用最少数量的信号区。不使用的时钟树信号区不会翻转,从而降低该时钟网络的负载。仔细布局可以在不影响实际设计的情况下达到此目标。 

2.5 器件选择

   并不是所有元件都具有相同的静止功耗。根据普遍规则,器件工艺技术尺寸越小,泄漏功耗越大。但并不是所有工艺技术都一样。例如,对于 90 nm 技术来说,Virtex-4 器件与其他 90 nm FPGA 技术之间在静止功耗方面存在显著差异, 
   然而,在静止功耗随工艺技术缩小而增加的同时,动态功耗却随之减小,这是由于较小的工艺有着更低的电压和电容。考虑好哪种功耗对你的设计影响更大——待机(静止)功耗还是动态功耗。 
   除通用切片逻辑单元外,所有Xilinx器件都具有专门逻辑。其形式有块 RAM、18×18 乘法器、DSP48 块、SRL16s,以及其他逻辑。这不仅在于专门逻辑具有更高的性能,还在于它们具有更低的密度,因而对于相同的操作可以消耗较少的功率。评估您的器件选项时,请考虑专门逻辑的类型和数量。
   选择适当的 I/O 标准也可以节省功耗。这些都是简单的决定,如选择最低的驱动强度或较低的电压标准。当系统速度要求使用高功率 I/O 标准时,计划一个缺省状态以降低功耗。有的 I/O 标准(如 GTL/+)需要使用一个上拉电阻才能正常工作。因此如果该 I/O 的缺省状态为高电平而不是低电平,就可以节省通过该终接电阻的直流功耗。对于 GTL+,将50Ω终接电阻的适当缺省状态设置为 1.5V,可使每个 I/O 节省功耗 30 mA。 

       降低FPGA功耗是一项复杂的任务,需要从多个方面入手。通过电源电压管理、时钟门控、动态电压和频率调整、寄存器传输级优化以及静态功耗降低等方法,可以有效地减少FPGA的功耗。随着FPGA技术的发展,未来的FPGA设计将更加注重功耗优化,以适应更多便携式和嵌入式应用的需求。

  • 18
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值