1 FPGA功耗估算工具
1.1 XPower介绍
Xilinx公司的ISE Design Suite工具套件中提供了功耗仿真器XPower Analyzer,它可以对可编程逻辑器件的功耗进行分析[3]。功耗来源分静态功耗和动态功耗两部分[1]。静态功耗主要由晶体管的泄漏电流和FPGA偏置电流引起,它与工艺技术、晶体管特性、晶体管个数、采用的绝缘介质等因素有关,这些是由FPGA本身决定的,与电路活动无关。晶体管的泄漏电流主要由三部分组成:亚阈值漏电流、栅极漏电流和源漏极反偏漏电流,已经有文献对它们的值进行精确建模[4]。动态功耗是器件核心或I/O在开关状态切换中消耗的能量[1]。
其中Dynamic Power为动态功耗;C为电容量;V为工作电压;D为每个节点每秒翻转次数,f为系统时钟频率。 XPower给每个开关元件建立一个电容模型,根据输入文件中的信息和特定器件的电容、静态功耗等来估算FPGA的功耗。在输入文件中,设计文件NCD(native circuit description)提供FPGA布局布线信息;物理约束文件PCF(physical constraint file)提供了设计的时钟频率、工作电压等信息; 用户设置文件XML用于保存XPower的设置,在下次打开同一设计时不必重复这些设置;仿真输出文件VCD(Value Change Dump)提供了线网翻转率情况,它记录了仿真时的信号变化情况,可以使功耗估算更接近实际情况[3]。NCD文件 、PCF文件和XML文件都根据FPGA逻辑设计代码由ISE工具综合实现后生成,VCD文件由ModelSim进行时序仿真时生成。 XPower的主要输出文件为PWR文件,即功耗报告文件,它分为静态功耗和动态功耗两部分。从不同的逻辑设计的功耗报告文件可以看出,对同一款芯片,静态功耗值比较固定,FPGA的逻辑和工作频率对它影响较小;动态功耗与FPGA逻辑使用的资源,如I/O、DCM、DSP模块等相关,同时也与工作频率以及寄存器和线网翻转率相关。对静态功耗与动态功耗都有影响的因素是电压和环境温度。所有可以影响到动态功耗的参数设置得越接近实际情况,XPower估算结果就越精确。所以XPower的参数设置很重要,特别是决定线网翻转率的VCD文件,它记录的仿真情况需要真实准确。
FPGA设计流程如图1所示,可以看出其中XPower估算功耗环节的重要性,在功耗要求严格时,为了节约功耗常常需要修改设计文件。 |