在FPGA 设计中,功耗分析是成功设计的重要环节。针对 FPGA 设计中的功耗分析,Xilinx 公司推出了简单的速查表格和专用的功耗分析工具——XPower。对于开发初期的 FPGA 功耗估算,设计者一般使用 Xilinx公司提供的简单图表和公式。例如,XC9500 系列器件的简单功耗分析可以在其数据手册中找到估算公式。Virtex-E 和 Virtex-Ⅱ系列器件的简单功耗分析可以通过 Xilinx公司提供的功耗估算表格完成。对于基本完成逻辑设 计 的 FPGA 功 耗 估 算,设计者可以使用XPower进行详细的功耗分析。
在 XPower功耗分析过程中,其功耗估算的基本方法是:(1)计算每个设计单元的功耗。(2)累加各个设计单元的功耗。由于CMOS电路的动态功耗很大程度上取决于电路的翻转频率,所以XPower采用如下公式计算单个设计单元的功耗[M]:
-
XPower用户界面
XPower的启动方法有两种:一种是单独启动XPower,直接点击“开始” “程序” “Xilinx ISE 9.1i” “Accessories” “Xpower”即可启动;另一种是在工程经过布局布线后,在过程管理区双击“Implementation” “Place and Router” “Analyze Power (XPower)”,则打开XPower,并自动加载当前工程。在例M的工程中,采用后一种方法打开XPower,其用户界面如图4-54所示。
图4-54 XPower的启动
XPower的用户界面由菜单栏、工具栏、功耗结果显示窗口、表格分析窗口、浏览窗口、信息显示窗口以及状态栏等部分组成。
在ISE过程管理区,双击“Generate Power Data”命令将自动生成设计的功耗分析报告,再双击“View XPower Report”命令来阅读报告。典型的分析报告(例M的功耗分析报告)如图M所示。报告会给出各个电压相应的电流大小以及功耗,便于设计人员设计相应的电源模块。
图4-55 典型的Xpower分析报告
-
XPower的操作流程
要准确利用XPower来分析功耗,关键是确定信号的工作频率、信号翻转率以及输出负载等参数。XPower允许设计人员任意修改工作频率、信号翻转以及负载等参数,以便观察某一参数对功耗的影响。此外,XPower支持VCD文件格式,可得到最全面的信号翻转信息,减少手工输入信号翻转信息的繁琐操作,提高功耗分析的效率和正确性。典型的XPower使用流程如下:
<1> 打开XPower软件,选择“File”菜单下的“Open”命令,则会弹出如图M的对话框。其中“Design File”栏用于输入设计文件,其后缀为.ncd;“Physical Constraints File”栏用于输入物理约束文件,其后缀为.pcf;“Setting File”栏用于输入设置文件,其后缀为.xml;“Simulation File”栏用于输入仿真后的输出文件,其后缀为.vcd。显示类型(View Types)分为Types类型(分类视窗)和Hierarchical类型(分层视窗)两类视窗模式。
图4-56 XPower打开文件对话框
<2> 选中图M中的“Launch New Design Wizard”参数,点击“OK”按键,启动设计向导,弹出如图M所示的对话框。
图4-57 设计向导对话框
单击图M中的“下一步(N)”按键,进入参数配置窗口,整体分为4个步骤。第1个步骤的界面如图M所示。
图4-58 XPower向导第1步
其中,“Voltage Source”用于设置FPGA芯片的电源参数,包括核电压、辅助电压以及IO端口参考电压,根据所选的器件输入相应的数值,一般选用默认值即可;“Battery Capacity and Battery Life”栏用于设定电池的容量和寿命,如输入电池容量为1000mAH,则会自动给出电池的使用寿命为3.02小时;“Thermal”栏用于设定温度参数,“Ambient”用于设定环境温度,“Air”设定空气对流强度。
<3> 点击图M的“下一步(N)”按键,进入设计向导第2步,设置各个信号的工作频率,包括同步信号和异步信号,其界面如图M所示。选中相应的信号,在“Frequency”文本框中输入大小,并选择合适的单位,单击“Apply”按键确认,也可点击“Reset”按键复位到初始值。
图4-59 XPower向导第2步
<4>点击图M的“下一步(N)”按键,进入设计向导第3步,设置信号的输出负载电容,其界面如图M所示。选择信号后,输入电容大小,单击“Apply”按键确认,也可以单击“Reset”按键复位到初始值。
图4- 60XPower向导第3步
<5> 点击图M的“下一步(N)”按键,进入设计向导第4步,设置信号的直流电流负载,其界面如图M所示。选择信号后,输入电流大小,单击“Apply”按键确认,也可以单击“Reset”按键复位到初始值。此时,确认无误后,可点击“Finish”按键完成设计向导,如有错误,可单击“上一步(B)”返回到先前界面进行修改。
图4-61 XPower向导第4步
<6> 单击XPower软件的“File”菜单下的“Open Setting File…”命令,可加入设置文件;再选择“Open Simulation File…”命令,加入仿真工具生成的.vcd文件。选择相应的约束文件后,XPower会在信息提示窗口给出加载成功的指示信息。
等加载完约束文件后,可点击浏览器窗口的“Report Views” “Power Report(HTML)”,察看设计功耗分析结果,其界面如图M所示。
图4-62 XPower输出结果
- VCD文件
在 XPower功耗分析过程中,为保证功耗分析报告基本符合实际情况,应该准确设置功耗分析参数。在XPower中,用户可以手工设置功耗分析参数,也可以通过读入VCD文件自动设置功耗分析参数。利用 VCD文件设置功耗分析参数可以使当前设计的信号翻转频率、输出负载等参数更符合实际情况。在使用ModelSim进行仿真时,VCD文件不是默认的输出文件,用户需要在仿真过程中指定输出相应的VCD文件。其中,仿真Verilog HDL 设计文件时,需要在Testbench文件中加入适当语句,如下所示:
initial begin
// design.VCD表示将要生成的VCD文件名
$dumpfile("design.VCD");
//testbench表示测试名称,uut表示待测试的模块名称
$dumpvars(1, testbench.uut);
end
仿真VHDL设计文件时,需要在DO文件中加入适当语句,如下所示:
--design.VCD表示将要生成的VCD文件名;
.VCD file design.VCD
-- testbench表示测试名称,uut表示待测试的模块名称
.VCD add testbench /uut/*
3.简易的功耗分析方法
Xilinx提供了两种基于电子数据表和基于网站的简易功耗估计工具:一种叫做Web Power Tools,另一种是XPower估计器。Web Power Tools和XPower估计器可通过http://china.xilinx.com/products/design_resources/power_central/获得,二者都提供了根据逻辑利用率大概估计做出的功耗估算,其区别在于:Web Power Tools基于网站,用于早期芯片的功耗评估,支持Virtex-II Pro、Virtex-II以及Virtex/Virtex-E系列芯片;XPower估计器基于电子数据表格,支持Virtex5、Virtex-4、Spartan-3A DSP、Spartan-3A/3AN、Spartan-3E以及Spartan-3等较新系列芯片。
Xilinx会自动更新各个系列芯片的电子数据表格,用户下载相应的电子数据表格时,可看到最后一次更新的时间。这两种简易功耗评估工具可以仅凭设计利用率估计就能获得初步的功耗评估,而无需实际设计文件,是在设计流程的早期获得器件功耗情况的最快捷和最方便的方法。此外简易功耗评估工具不需要安装,只需要拥有互联网连接和Web浏览器,将电子表格下载到本地即可。
1)XPower估计器的用户界面
每款型号所对应的XPower估计器的电子数据表格是不同的,下面以Virtex-4系列芯片的电子表格为例进行介绍。将网站上相应的电子数据表格下载到本地后,用OFFICE系列的Excel工具打开后,其界面如图4-63所示。
图4-63 Virtex系列芯片的XPower估计器
从图4-63中可以看出,XPower评估器可分为不同的页面,包括Summary页面、CLOCK页面、LOGIC页面、IO页面、BRAM页面、DCM页面、PMCD页面、DSP页面、PPC页面、MGT页面、EMAC页面、Graphic页面以及Release页面。其中,主界面处输出最终结果,可分为芯片栏、热量信息栏、热量总结栏、注释栏、块总结栏、功率总结栏、电压源总结栏以及交互操作区域组成。其中,不同的颜色表明了用户可进行的操作,详细说明如表4-2所列。
表4-2 电子表格颜色说明
在Release页面可以查看电子表格的更新版本记录,如本书所用的电子表格版本为9.1.02,更新时间为2007-04-23,其相关信息如图4-64所示。
图4-64 Virtex系列芯片的XPower估计器
2)XPower估计器的使用流程
XPower估计器的使用方法非常简单,设计人员直接在各个分页面输入相应的资源利用率和时钟频率,然后回到Summary页面,就可以看到各个电压的电流值,并得到FPGA的工作功率和工作温度。下面以XC4VSX35-12芯片的设计为例,介绍XPower估计器的使用方法。
例4-4 使用XPower估计器预算XC4VSX35-12应用的功耗。
1. 双击打开XPower估计器,在Summaty页面的Device栏的Part选项的下拉框中选择“XC4VSX35”、Package选项选择“FF668”、Grade选项选择“industrial”、Process选项选择“Typical”、Steeping选项选择“Steeping1”,如图4-65所示。同时,将Thermal Information栏选择默认值。
图4-65 XPower估计器的芯片配置界面
2. 由于Virtex-4族的SX系列芯片没有PowerPC、MGT(吉比特收发器)以及EMAC(以太网接口)控制器,所以只需要设定时钟、逻辑、IO、BRAM、DSP以及DCM即可。XPower估计器只是粗略预算,所以在输入以上指标,应预留15%的裕量,即所有值按照真实值的115%输入。在时钟栏输入所有可能用到的时钟,并给出其扇出(Fanout)大小(一般设定为10即可),本例中,输入了270MHz、120MHz以及60MHz这3个频率的全局时钟,如图4-66所示。
图4-66 XPower估计器的时钟配置界面
在逻辑页面,输入a、b、c三个模块,分别工作于不同的频率,并给出了其大致的逻辑资源和平均扇出,如图4-67所示。
图4-67 XPower估计器的逻辑配置界面
在IO页面,输入各个模块的端口数(注意:这里的端口是直接引到顶层模块,和芯片管脚所对应的端口数),选择工作电平标准以及工作频率等参数,本例的配置如图4-68所示。
图4-68 XPower估计器的IO配置界面
接下来配置BRAM页面,需要输入BRAM各个端口的位宽、速率、数量以及应用类型(包括BRAM、FIFO以及ECC等类型),本例的BRAM使用状况如图4-69所示。
图4-69 XPower估计器的BRAM配置界面
在DCM的配置页面中,填入所使用的DCM时钟的频率即可,本例用到了270MHz、120MHz以及60MHz这3个DCM输出,如图4-70所示。
图4-70 XPower估计器的DCM配置界面
最后需要配置的是DSP模块,本例只在a模块中使用了48个DSP模块,工作在270MHz,因此配置界面如图4-71所示。
图4-71 XPower估计器的DSP配置界面
配置完后,点击Graphic页面,可以看到功耗随设计的逻辑功能、电压、电压过程温度以及工作环境温度的变化曲线,如图4-72所示。可以看到,本设计的逻辑所占功耗非常高,而大量的BRAM和DSP的功耗相对比较低。因此在设计中,应尽量使用芯片内部的硬核组件以降低功耗。
图4-72 XPower估计器的图形化分析结果
完成上述过程后,返回到Summary页面,可以得到所有的功耗汇总结果,以及不同电压的电流大小,为系统的电源模块设计提供大致的参考范围,如图4-72所示。总的功耗为3.193W,1.2V核电压的工作电流大致为2.5A(1.941A+2.028A)。
式中,P 表示功耗,单位是mW;C表示电容,单位是F;V表示电压,单位是V;E表示翻转频率,指每个时钟周期的翻转次数;f表示工作频率,单位是Hz。在XPower中,翻转频率既可以采用全局默认的翻转频率,也可以通过VCD文件获得。另外,XPower允许手工输入各个设计单元的翻转频率。
在XPower功耗分析过程中,主要涉及NCD文件、CTX文件、PCF文件、VCD文件和PWR文件。其中,NCD文件是经过实现的FPGA设计文件;CTX文件是经过物理实现(FIT)的CPLD设计文件;PCF文件是物理设计约束文件,该文件包含当前设计的时钟频率、电压等特性参数;PW R文件是XPower的功耗分析报告;VCD文件是对当前设计进行仿真后生成的文件,该文件包含了每个设计单元的翻转频率。
2.XPower的用户界面以及使用流程
XPower是一种设计后工具,用于分析实际器件利用率,并结合实际的适配后(post-fit)仿真数据(VCD文件格式),给出实际功耗数据。利用Xpower,您可以在完全不接触芯片的情况下分析设计改变对总功耗的影响。
转自:http://bbs.eccn.com/viewthread.php?tid=93673&extra=&page=2