基于ISE设计提供低功耗FPGA解决方案
布线
一旦将逻辑块分配到FPGA上的物理位置,我们就必须为各块之间的连接进行布线。布线器采用一种协商拥挤布线算法,该算法在初始迭代中允许信号间短路。在后续迭代中,对短路的产生逐渐加大处罚,直到仅剩一个信号使用布线导体。对时间关键型连接布线的方式,应尽量缩短其延迟,这涉及密集型的RC延时计算。不过,大多数连接并非时间关键型。 在功耗监控型布线器中,我们选择优化这类非关键型连接的电容。为达到这一目的,我们针对非时间关键型连接修改了布线器的成本函数,以便考虑电容,这与上述根据其他因素(如估算的延迟或不足)的方法截然相反。
该布线图中的每个节点表示一个布线导体或逻辑块引脚,每条边线表示一个可编程布线开关。布线器必须在源引脚和目标引脚之间选择一条路径。图中各节点内部所示为该节点的原始成本和电容成本。若要尽量降低原始成本,源引脚和目标引脚之间的布线就应采纳蓝色路径。然而,在功耗监控型流程中,布线器会使用绿色路径,因为这条路径的总体电容较低。
功耗监控型布局与布线的结果
我们使用传统布局布线流程和上述功耗型流程两种方法,对一组工业设计进行了布局布线。这些设计的初始输入附加一个基于线性反馈移位寄存器(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所示内容为逻辑与的真值表。
通常,未使用的输入作为无关项处理,假设为0或1。所以,为了在图3所示的情况下说明这一点,Xilinx软件在LUTSRAM存储器内容的上下两半部分中重复了该逻辑功能。客户设计中经常出现未使用的LUT输入,特别是Virtex-5设计,它的LUT有六个输入。
为了评价在工业设计上进行的这一优化,我们进行了板级功耗测量,发现动态功耗节省了几个百分点。这些结果说明大有前途,因为可以在布线后进行优化,不会造成面积或性能损失,从这种意义上讲,这种优化是免费的。
结语
结果显示,在通过Xilinx ISE设计工具降低功耗方面已经取得长足的进步。在使用软件进一步降低功耗方面,我们认为前景一片光明。注重降低功耗的解决方案由功耗监控型CAD算法和功耗优化器件(如Virrex-5FPGA)组成,这一成功事例令人鼓舞。低功耗软硬件的不断进步将为Xilinx FPGA打开进入新兴功耗敏感型市场的大门。
评论