微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 现代FPGA设计的能源优化方案

现代FPGA设计的能源优化方案

时间:09-11 来源:互联网 点击:

I/O标准方案

不同I/O标准的功耗水平相差悬殊。在牺牲速度或逻辑利用率的情况下,选择低功耗I/O标准可显着降低功耗。例如,LVDS是功耗大户,其每对输入的电流为3mA,每对输出的电流为9mA。因此,从功耗角度来看,应该仅在系统技术规范要求或需要最高性能时才使用LVDS。

替代LVDS的一种功耗较低而性能较高的方案是HSTL或SSTL,但这二者仍要每输入消耗3mA。如果可能,推荐换用LVCMOS输入。此外,DCI标准是功耗大户。当连接到RLDRAM等存储器件时,请考虑在存储器上使用ODT,而在FPGA上使用LVDCI,以减少功耗。

3.5 嵌入式模块

嵌入式模块是定制设计的,因此其体积和开关电容都比可编程逻辑的小。这些模块的功耗是等效可编程逻辑的1/5~1/12。

用嵌入式模块替代可编程架构可显着降低功耗。如果设计缩小并可装入较小的器件,则使用嵌入式模块可以降低静态功耗。一个潜在的缺点是,使用大型嵌入式模块可能无法更有效地实现非常简单的功能。

3.6 时钟生成器

在时钟生成中考虑功耗因素可以减少功耗。数字时钟管理器广泛用于生成不同频率或相位的时钟。然而,DCM消耗的功率占VCCAUX不可小觑的一部分;因此,应尽可能限制使用DCM。通过使用多种输出(如CLK2X、CLKDV 和CLKFX),一个DCM常常可生成多种时钟。与为同一功能使用多个DCM相比,这是一种功耗较低的解决方案。

3.7 Block RAM的构建

多个Block RAM常常可以组合起来构成一个大型RAM。组合的方式可以对功耗意义重大。时序驱动的方法是并行访问所有RAM。例如,可以用4个2k×9 RAM构成一个2k×36 RAM。这个较大RAM的访问时间与单个Block RAM相同;然而,其每次访问的功耗却相当于4个Block RAM的功耗之和。

一种低功耗的解决方案是用4个512×36b RAM 构成同样的2k×36b RAM。每次访问都会预先解码,以选择访问4个Block RAM之一。尽管预解码延长了访问时间,但较大RAM每次访问的功耗却与单个Block RAM大致相同。

4 低功耗研究

4.1 降低电压

降低电压是减少功耗的最有效方式之一,而且随之而来的性能下降对许多并不要求最高性能的设计来说是可以接受的。不过,目前FPGA的工作电压范围很小,在某些电压敏感型电路上还不能使用。

在Xilinx研究实验室,CLB电路被重新设计成能在降低许多的电压下工作,以便在较低功耗情况下提供宽裕的性能权衡余地。例如,对于90nm工艺,电压下降200mV可降低功耗40%,最高性能损失25%;电压下降400mV可降低功耗70%,最高性能损失55%。

4.2 细粒度电源开关

可编程逻辑设计特有的开销之一是并非所有片上资源都用于给定的设计。可是,未使用的资源保持供电状态,并以漏电功耗的形式增加了总功耗。模块级电源开关可分别关掉未使用模块的供电。每个模块通过一个电源开关耦接到电源。开关闭合时,该模块工作。开关断开时,该模块从电源有效断开,从而使漏电功耗降到1/50~1/100。电源开关的粒度可以小到单个CLB和Block RAM。在设计中,这些电源开关可以通过配置比特流进行编程,也可由用户直接控制或通过访问端口控制。实际设计的基准测试结果表明,细粒度电源开关可减少漏电功耗30%。

4.3 深睡眠模式

便携电子产品的主要要求之一是器件空闲时功耗极低或无功耗。以Xilinx Spartan-3A FPGA为例,该芯片可通过进入休眠模式来达到此目的,这需要外部控制,苏醒缓慢,且不能恢复FPGA状态。设计动态控制上述细粒度电源开关,令其关闭所有内部模块供电,仅保留配置和电路状态存储组件为供电状态。这样形成的状态是一种深睡眠模式,其漏电功耗为额定功耗的1%~2%,保存FPGA状态,退出此模式仅需数微秒。

4.4 异构架构

电路的最高时钟频率取决于其时序关键型路径的延迟。非关键型路径的速度可以较慢而不影响整体芯片性能。在大型系统中,可以有几个速度关键型模块(如处理器中的数据通路),其他模块可以是非关键型(如缓存)。

当今的FPGA就功耗和速度而言是相同的;每个CLB 均有同样的功耗和速度特性。异构架构可降低功耗,这种架构包含一些低功耗(同时也较慢)的模块,方法是在低功耗模块中实现非关键型模块。这样做不影响整体芯片性能,因为时序关键型模块并未损失性能。

创建异构架构的一种方法是,分配两条核心供电轨,即一条高电压轨(VDDH)和一条低电压轨(VDDL)。FPGA的每个器件用嵌入式电源开关选择这二者之一,并相应采用高速度或低功耗特性。设计的详细时序确定之后,电压选择便告完成,所以只有非关键型模块才应以VDDL供电。

创建异构架构的另一种方法是,将FPGA分成不同的区,并将这些区分别预制为具有高

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top