使用ISE设计工具优化FPGA的功耗

2007-12-17 12:56:49来源: 电子产品世界

自从Xilinx公司推出FPGA二十多年来,研发工作大大提高了FPGA的速度和面积效率,缩小了FPGA与ASIC之间的差距,使FPGA成为实现数字电路的优选平台。今天,功耗日益成为FPGA供应商及其客户关注的问题。

降低FPGA功耗是降低封装和散热成本、提高器件可靠性以及打开移动电子设备等新兴
市场之门的关键。

Xilinx在提供低功耗FPGA解决方案方面较有经验。本文说明如何应用计算机辅助设计(CAD)技术,如Xilinx ISE(集成软件环境)9.2i版本软件使功能有效降低。

CMOS电路中的功耗由静态(漏电)功耗和动态功耗两部分组成。动态功耗是由电路信号
上的瞬变所致,由下式决定:

式中Ci表示信号i的电容;fi为"开关率",表示信号i上的瞬变率;V是电源电压。

静态功耗是电路在静止、空闲状态下的功耗。工艺尺寸缩小(如65纳米工艺)意味着更低的电源电压和更小的晶体管尺寸,致使导线长度缩短、电容量减小以及总动态功耗降低。较小的工艺几何尺寸还意味着较短的晶体管沟道和较薄的极氧化层,致使静态功耗随着工艺尺寸缩小而增加。

FPGA的功耗

对于实现给定的逻辑电路而言,FPGA的可编程性和灵活性使其功耗效率比定制ASIC要低。FPGA的配置电路和配置存储器要占用硅片面积,致使导线延长和互连电容增加。在FPGA中,预制金属导线段上附加的可编程布线开关产生互连,从而加重了信号产生的电容性负载。

FPGA中的动态功耗大部分消耗在可编程布线架构中。同理,静态功耗与晶体管总宽度成正比。FPGA的晶体管有相当一部分是互连架构,这是造成漏电流的主要因素。因此,互连架构应该是FPGA功耗优化的主要攻关目标。

当然,可以通过工艺技术、硬件架构或电路级修改来解决功耗问题。例如,Virtex-5FPGA含有"对角线"互连资源,允许用较少的布线导体构成连接,从而减少互连电容。在晶体管级,Virex-4和Virtex-5两种FPGA都是采用三氧化层工艺技术来抑制漏电流。根据其速度、功耗和可靠性要求,可以为每个晶体管使用三种氧化层厚度。与在标准FPGA架构中实现同样功能相比,扩大使用DSP和处理器等硬IP模块也可以降低功耗。

不必花费钱去更改硬件,也可以降低功耗。您可以通过新型的功率驱动的CAD算法和设计流程(如ISE9.2i软件中采纳的算法和设计流程)来解决功耗问题。

布局

Xilinx布局器的核心算法采用了解析(数学)技术。这种算法从有重叠的初始设计布局开始,然后使用强化抽象法从高度拥挤区去除逻辑块,最终形成可行的无重叠布局。一旦完成解析布局,便在已布局的设计上运行交换式局部优化,以进一步细化布局。本布局器使用的传统成本函数按下式考虑导线长度和时间:

总成本=a×w+bT

式中W和T分别是导线长度成本和时间成本,a和b是标量加权系数。a和b的值可以根据时间对导线长度的相对优先级设定。布局器的成本核算方案如图1所示。

因为进行布局时还没有实际线路,所以导线长度成本是依据导线长度估算。同理,时间成本是依据用户提供的限制条件和连接延迟的估算值。为了优化功耗,我们用为成本函数增加功耗成分的方法扩展了解析布局和局部优化,如图1右侧所示。修改后的成本函数如下:

总成本=a×W+b×T+c×Pdynamic

式中Pdynamic是估算的动态功耗,c是标量加权系数。可以从仿真中提取信号开关率数据,然后将其提供给工具。反之,如果不提供任何开关率数据,则工具根据逻辑功能为初始输入,为后续输出假定一个默认的开关率,并且将开关率推广到其余信号。为了获得最佳结果,需要有用户提供的开关率数据。

在布局过程中,信号的电容是未知的,因此必须估算。根据布局过程中已有的信号参数,我们建立一个电容估算经验模型:

式中f是普通数学函数;Ci是信号i的电容;FO是信号i的扇出数;XSi和Ysi分别是布局中信号i的X跨度和Y跨度。这些参数与架构无关,并且在布局过程中已经具备。

为建立此模型,我们提取了从Xilinx客户那里收集的一组设计中每个信号的电容、扇出数、X跨度和Y跨度。然后,我们用最小平方回归分析法,将电容整理成模型参数的一个二次函数。就各种设计平均而言,该解析公式的误差为30%。

布线

一旦将逻辑块分配到FPGA上的物理位置,我们就必须为各块之间的连接进行布线。布线器采用一种协商拥挤布线算法,该算法在初始迭代中允许信号间短路。在后续迭代中,对短路的产生逐渐加大处罚,直到仅剩一个信号使用布线导体。对时间关键型连接布线的方式,应尽量缩短其延迟,这涉及密集型的RC延时计算。不过,大多数连接并非时间关键型。 在功耗监控型布线器中,我们选择优化这类非关键型连接的电容。为达到这一目的,我们针对非时间关键型连接修改了布线器的成本函数,以便考虑电容,这与上述根据其他因素(如估算的延迟或不足)的方法截然相反。为了解这种算法,请看图2中的布线图。


该布线图中的每个节点表示一个布线导体或逻辑块引脚,每条边线表示一个可编程布线开关。布线器必须在源引脚和目标引脚之间选择一条路径。图中各节点内部所示为该节点的原始成本和电容成本。若要尽量降低原始成本,源引脚和目标引脚之间的布线就应采纳蓝色路径。然而,在功耗监控型流程中,布线器会使用绿色路径,因为这条路径的总体电容较低。

功耗监控型布局与布线的结果

我们使用传统布局布线流程和上述功耗型流程两种方法,对一组工业设计进行了布局布线。这些设计的初始输入附加一个基于线性反馈移位寄存器(LFSR-based)的伪随机矢量生成器,从而增加了内置的自动输入矢量生成功能。这样,无需大量使用外部波形就能完成动态功耗的板级测量。

我们把这些工业设计映射到了Spartan-3、Viitex-4和Viltex-5器件中。结果显示,动态功耗降低率对于Spartan-3FPGA达14%,对于Virtex_4FPGA达11%,对于Virtex-5FPGA达12%。就所有设计平均而言,动态功耗降低率对于Spartan-3FPGA为12%,对于Virtex-4FPGA为5%,对于Virtex-5FPGA为7%。就所有系列平均而言,速度性能下降在3%和4%之间。我们队为,这样小的性能损失在注重功耗的设计中是可以接受的。考虑到这些仅仅是软件修改的初始结果,我们认为所取得的功耗效益是令人振奋的。

降低逻辑块内部功耗

本文讨论的布局和布线优化旨在降低互连架构中的功耗。我们还设计了一种降低逻辑块内部功耗的方法,尤其是在未使用全部查找表(LUT)时,降低LUT中的功耗。K个输入的LUT是小存储器,只用几个K输入即可实现任意逻辑功能。图3所示为用一个假设的三输入LUT(输入A1、A2和A3)实现二输入逻辑"与"功能的过程。多路复用器树左侧的LUTSRAM所示内容为逻辑"与"的真值表。

请注意,图3中的输入A3未使用。通常,未使用的输入作为"无关项"处理,假设为0或1。所以,为了在图3所示的情况下说明这一点,Xilinx软件在LUTSRAM存储器内容的上下两半部分中重复了该逻辑功能。客户设计中经常出现未使用的LUT输入,特别是Virtex-5设计,它的LUT有六个输入。


为了评价在工业设计上进行的这一优化,我们进行了板级功耗测量,发现动态功耗节省了几个百分点。这些结果说明大有前途,因为可以在布线后进行优化,不会造成面积或性能损失,从这种意义上讲,这种优化是"免费"的。

结语

结果显示,在通过Xilinx ISE设计工具降低功耗方面已经取得长足的进步。在使用软件进一步降低功耗方面,我们认为前景一片光明。注重降低功耗的解决方案由功耗监控型CAD算法和功耗优化器件(如Virrex-5FPGA)组成,这一成功事例令人鼓舞。低功耗软硬件的不断进步将为Xilinx FPGA打开进入新兴功耗敏感型市场的大门。

关键字:辅助  静态  信号  工艺

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/fpgaandcpld/200712/17371.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
辅助
静态
信号
工艺

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved