FPGA 学习小组
直播中

沈艳丽

7年用户 151经验值
私信 关注

为什么要优化FPGA功耗?

无论从微观到宏观、从延长电池寿命到减少全球变暖的温室效应等等,各种不同因素都在迅速推动系统设计人员关注节能问题。一项有关设计优先考虑事项的最新调查指出,大部分工程师已把功耗排在首位,或者是将其紧跟在性能、密度和成本之后。

在功耗方面,FPGA带来了独特的挑战。为什么要设计优化FPGA功耗?


回帖(2)

欧丽娜

2019-8-8 16:44:41
因为系统设计人员只要能够透彻充分的了解这些挑战,以及应对挑战所需的新技术、新方法和新工具,就能够发挥基于FPGA的便携式系统的部署优势。随着业界越来越多地采用FPGA,为更广泛的应用产品提供灵活性并加快其上市速度,这点便显得愈加重要。

评估某个FPGA架构是否适用于现今的功率敏感应用,必须深入研究功率方程。要做到这一点,我们可以在投入可行设计解决方案(划分、时钟和功率门控、电压分轨等等)前, 对FPGA的功率特性及其影响进行分析,并使用优化工具来实现。

实现低功耗设计

根据所选FPGA技术类型的不同,电源可以看成是由静态、动态、上电(或浪涌)、配置以及不同低功耗模式等成分组成。

静态和动态电源是所有IC设计人员都熟知的问题。静态电源源于以下几种形式的泄漏电流:亚阈值泄漏、结泄漏、栅致漏极泄漏(GIDL)和栅极泄漏。动态电源则指器件工作期间的电源,与所用功能性资源(逻辑区块、时钟树、嵌入式RAM、PLL等) 、I/O上的负载和阻抗终端、时钟频率、数据模式以及到达动态特性、信号活动或触发率,以及信号静态概率等因素有关。

在设计易失性SRAM FPGA解决方案时,除静态和动态电源之外,设计人员还必须考虑到其它三种电源成分。在系统与器件功能性上电期间,浪涌电源和配置电源可能会意义重大,就如同睡眠(静态)模式下所需的电源一般。除此之外,由于SRAM FPGA是易失性的,它们必须通过一个外部设备驱动程序(通常保存在PROM中)来启动,这增加了系统的额外功耗和启动延时。

虽然SRAM FPGA供应商不断努力降低产品功耗,但市面上的这些器件仍然耗能过高,从而极大增加了总体的系统功耗,尤其是将几个FPGA安装于单个电路板上,或者是不同电路板的FPGA共用一个电源时。对于需要频繁开/关的系统,这种影响则更大,所以估算电池寿命时必须将之考虑在内。因此,在为基于SRAM的可编程器件确定电源大小或选择电池时,系统设计人员务必要考虑到配置和浪涌电源。另一方面,真正的FLASH FPGA是非易失性的,不会产生浪涌或配置电流,而且总体静态功耗较低,这样一来,设计任务就比较简单,功耗亦大大减小(图1)。



图1:易失性SRAM FPGA与非易失性真正 FLASH FPGA的电流曲线比较

1. 电流

2. 时间(或频率)

3. 易失性FPGA

4. 非易失性FPGA

5. 易失性FPGA的上电浪涌电流

6. 系统供电电压

7. 静态

8. 与频率相关的动态电源

9. 易失性FGPA的配置电源

在处理晶体管电流泄漏方面,FPGA厂商采取的另一个措施是建立两级阈值电压(VT) 单元。这种被称为多VT(Multi-VT)的技术旨在尽可能少地采用大泄漏低VT器件,并尽可能多地采用低泄漏高VT器件,以便减少总体设计泄漏。过去,多VT 技术用于ASIC 和 ASSP产品,现在则开始为FPGA供应商所采用。

尺寸至关重要

在IC设计领域,鉴于成本和众多其它原因,尽可能地减小芯片尺寸一直是业界关注的焦点;现在功耗又成为另一个目标。芯片越小,静态电源消耗越低。在满足应用的功能性及其它要求的前提下,选择尽可能小的芯片便更易于达到功耗目标。

在选择FPGA时,还有一个因素也十分重要,就是必须尽可能对 RAM、PLL和I/O 技术等资源的使用进行优化。在FPGA架构的选择中,还应该考虑到FPGA的所有低功耗模式,以及其它动态资源(如PLL、RC 振荡器和 I/O组)的节能能力。例如,假设较低的参考电压可节省系统功率,则选择同时支持1.2V LVCMOS 和/或 1.5V LVCMOS标准的I/O产品,就可以既节省功耗又在必要时获得更高的I/O电压。

时钟

FPGA的动态电源主要消耗在逻辑资源和互连结构等电容性元件的充放电活动。某个资源元件i的动态功耗可以利用下式建模:这里fi为开关频率, Ci为电容性负载,Vi为该资源的电压摆幅。充分考虑动态功率方程中的每一项,便可以降低功耗。例如,在时钟域可以决定设计的哪些部分需要快速时钟或较慢时钟。开关频率fi是动态功率方程的成分之一。由快速时钟驱动的逻辑相比由慢速时钟驱动的逻辑,开关更频繁。设计人员知道逻辑的哪些部分需要快速时钟,而哪些部分又可以运行在较慢速度之下,因此可以按照时钟所控制的功能予以划分,从而节省功率。

一项设计的动态功耗还随布局布线而有很大变化。例如,如果两个相连的功能性实体彼此靠得很近,两者间的布线长度可能缩短,因此会减小网络的电容性负载,致使功率降低。如今的FPGA开发软件通常支持功率驱动布线 (Power Driven Layout),可以自动实现这项功能,并能够降低25%或更多的总体动态功耗(实际数字取决于设计中的时钟和网络数目)。

举报

袁飞

2019-8-8 16:44:45
架构改进

在架构层级上,通过对设计的时钟方案进行分析,来为时钟树寻求合适的时钟门控的方法是很有益的。如果设计已上电,但部分系统没有加载时钟,设计人员可以让时钟树不与设计的该部分连接,从而降低动态功耗。例如,如果一个时钟服务于一项必须功能和另一个非必须功能,设计人员则可执行一个逻辑信号,根据控制变量的状态,选择性地控制什么功能加载时钟,以及何时加载。不过,利用逻辑信号来实现时钟门控有可能导致时钟偏差(clock skew),必须予以管理。

另一个实现节能的方法是利用FPGA架构内部可用的所有节能模式,一般包括活动模式、待机模式,或睡眠模式。在活动模式下,FPGA会根据应用需求执行其预设功能,但在空闲时,则可进入待机或睡眠模式以节能。某些FPGA还能够切换到超低节能模式,关断空闲电路的时钟,同时保存器件状态。在该模式下,由于时钟关断,动态功耗不存在,静态功耗可忽略,这种技术一直用于ASIC器件,但最近开始出现在FPGA中。Actel的FLASH*Freeze技术就是这种超低功耗模式示例。FLASH*Freeze模式能够在1μs内进入和退出超低功耗模式,实际功耗低于2μW。手机就是利用多种节能模式的典型例子,它只在用户通话时才进入活动模式,其余时间均处于待机状态以节省能量,延长电池寿命。其它节能设计技术

选择性掉电(Selective power-down) 简单说是指关断芯片的某些部分或电路板上的某些芯片。为实现选择性关断,可采取多电源策略,割断某些模块的供电网络间的关联性。FPGA 架构中的掉电或睡眠模式还可用于空闲模块的选择性掉电。

宏模块优化(Macro optimization) 也能够节能,某些逻辑元件备有多种版本,分别针对高性能、高密度或低功耗而优化。高性能宏模块(high-performance macro)的功耗一般比其它版本更高,因此,仅在必须时才采用高性能宏模块,便可以实现节能。例如,快速加法器的功耗就大于较慢的逐位进位加法器。对二者间的差异进行分析,可以看出后者的动态功耗只有快速加法器的约十分之一。按照设计和目标功能所需的速度,低功耗选择可能完全足够。这适用于几乎所有类型的宏模块,包括乘法器、FIFO、RAM等。

分时复用(Time multiplexing)和最小I/O数设计划分二者是有助于I/O组开关的技术。尽量避免同时使用不同类型I/O技术,确保使用即适用,以及减小I/O驱动能力和压摆率,也行之有效。



图2:功率驱动布局布线设计流程

动态电压调节 (Dynamic voltage scaling) 是另一种节能设计技术,由于功率大小与电压的平方成正比,意味着降低电源电压即可显著影响功效。如果系统要求的性能高于低压I/O所能提供的,则可以在非关键性能引脚上使用低压I/O,并在关键信号引脚上使用较高电压I/O,以提供出色的替代方案。目前,市场上某些低功耗FPGA完全可以由单个1.2 v电源为内核和I/O供电。Actel的 IGLOO 和 nano器件就是例子。

功率监控设计工具

市场上涌现了许多以功耗为导向的FPGA设计工具,旨在帮助设计人员在更短的设计周期内实现能效更高的产品。这类EDA工具有两大功能,包括功率驱动布线和功率分析。

功率驱动布线 有助于最大限度地降低动态功耗。功率驱动布线工具对功能性实体之间的互连进行分析,并重点优化那些具有很大有效电容乘积(C.f)的网络。同时,这些工具还特别重视时钟网络的横纵时钟源数目,因为这些网络通常是最大且最活跃的。

布线后的仿真一般会生成一个VCD文件,用作驱动功率驱动布线的源文件。因为VCD文件报告了设计内部实际的网络开关活动,所以可提供比使用默认普通功率估算更精确的功率分析。为此,首先应该进行时序驱动布局布线,然后反向标注(back annotate),再运行仿真生成VCD文件并导入VCD文件,最后在功率驱动模式下重新运行布局布线。

功率分析 此类工具可用于从功率的角度对设计进行层次化分析,并进一步优化功率。这类工具分析设计层次中的每一个子元素,尤其是功耗排序,一般把功耗最高的功能性实体排在首位。这类信息的仔细分析以及后续设计处理,可以大幅节能。在顶层或所选实体内部,分别标注出由网络、门电路、存储器、I/O、时钟域,或电源轨等因素产生的功耗,这样就可以确定设计内部的功耗热点,设计人员因此能够采取相应措施来降低设计的功耗。

如上所述,设计可能工作在组合模式下。某些功率分析工具能够报告基于功率曲线的平均功耗。在功率曲线中,设计人员规定了设计的工作时间,即活动模式下的时间比例(x%),待机模式下的时间比例(y%),以及FLASH*Freeze模式下的时间比例(z%)。分析工具将报告这种组合下的加权平均功耗。在为应用产品选择电池时,这种功能很有用,因为若在节能模式下频繁运作(进入活动模式),电池寿命会大大缩短。

最后,在某些工具中,仿真生成的VCD文件可按时钟周期或时间增量来报告和显示峰值功率。这种功能可帮助用户准确了解什么时间,或哪些时钟周期内功率较高,为设计人员提供另一条应对并可能降低设计功耗的途径(图3)。



图3:FPGA设计中按照时钟周期统计的峰值功率

总结

功耗是基于FPGA系统(尤其是便携式应用)设计人员的主要关注问题。业界领先的FPGA企业相继推出低功耗FPGA架构。EDA工具逐步发展,拥有更复杂完善的架构及功率分析工具,可帮助用户在设计周期的不同阶段*估功耗,并提供具功率监控(power-aware)的综合和布局布线功能。

低功耗设计的第一步是正确选择合适的FPGA技术和器件。良好的设计实践,比如使用门控时钟控制时钟网络、利用FPGA的节能能力,以及对设计进行布图规划,都为具功率意识的设计提供一个框架。功率监控设计工具可通过优化布局布线、功率分析自动化来精细识别功耗热点,让设计人员得以采取纠正措施。通过这些策略、技术和工具,FPGA设计人员就能够降低功耗,最终在节省电池能量或摆脱能源依赖等以后更多的相关课题中发挥重要的作用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分