优化FPGA功耗的设计技术
扫描二维码
随时随地手机看文章
无论从微观到宏观、从延长电池寿命到减少全球变暖的温室效应等等,各种不同因素都在迅速推动系统设计人员关注节能问题。一项有关设计优先考虑事项的最新调查指出,大部分工程师已把功耗排在首位,或者是将其紧跟在性能、密度和成本之后。
在功耗方面,FPGA带来了独特的挑战。系统设计人员只要能够透彻充分的了解这些挑战,以及应对挑战所需的新技术、新方法和新工具,就能够发挥基于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%或更多的总体动态功耗(实际数字取决于设计中的时钟和网络数目)。