本文首先与实测系统功耗进行对比,验证了xilinx公司ise软件包中fpga功耗估算工具xpower的准确性。然后对fpga设计中影响系统功耗的几个相互关联的参数进行取样,通过软件估算不同样点下的系统功耗,找到功耗最低的取样点,得到最佳设计参数,从而达到优化系统设计的目的。实验中通过这种方法,在一个fpga读写sram的系统中,在单位时间读写操作数固定的条件下,选取了读写频率与读写时间占空比这两个参数来优化系统功耗。最终测试数据证明了该方法的正确性。
fpga在各种电路设计中广泛应用,如何对fpga系统进行低功耗优化成为一个重要的现实问题。从最早的fpga功耗模型的建立[1],到较完善的fpga功耗估算模型[2],再到现在功耗估算工具的出现[3],fpga设计时对功耗的预估已经越来越准确,节约功耗的方法也越来越多样。本文基于fpga功耗的预估,提出将影响功耗的因素做为功耗函数的参数,根据参数取样并预估样点功耗找到功耗函数的最小值,从而得到最佳参数以优化系统设计并节约系统功耗的方法。设计了一个fpga读写常用存储器sram的系统,选取了读写频率与读写时间占空比这两个参数来优化系统功耗,通过对比预估值与实测值证明了该方法的正确性。
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估算功耗环节的重要性,在功耗要求严格时,为了节约功耗常常需要修改设计文件。
1.2 xpower可靠性验证
为了测出fpga工作时的实际功耗,设计了一个简单系统,直接用可调直流稳压电源对fpga各电平供电。由于系统功耗较小,需要考虑供电电源线上的分压损耗,应在尽量靠近fpga电源管脚处使用万用表测量电压,并尽可能将该电压调节到与设计中选用的供电标准一致(vcco为3.3 v,vccint为1.2 v,vccaux为2.5 v)。
将配置文件下载到fpga运行后,通过测量fpga运行时的电流和电源电压得到fpga实际功耗。在xpower中选择该配置文件相应的输入文件,并使生成vcd时序仿真文件的激励与实际外界激励一致,且设置xpower中温度、频率也与实测情况一致,可得fpga在同样的工作条件下的仿真功耗。
该实验选用的fpga为xilinx spartan 3e xc3s100eh,环境温度为25 ℃,驱动时钟频率为18.432 mhz。通过改变fpga逻辑的驱动时钟数目、逻辑使用量、i/o数、信号数等,得到不同的fpga逻辑配置文件。经过实际测量和xpower估算,分别得到这些配置文件下的功耗测量数据和估算数据。如图2所示,横坐标为fpga配置参数,纵坐标为功耗值。从结果看出,测量值曲线很好地符合了估算值曲线。
2 优化系统功耗的设计方法
影响fpga功耗的因素有温度、电压、翻转率等,把fpga的功耗p和影响它的因素x看成函数关系p(x),则减少功耗就是要寻找p(x)最小值。当x代表的物理量不同时,对应p(x)的单调性也不同:x代表翻转率时,从公式(1)得知,翻转率与动态功耗呈线性关系,p(x)是单调递增的,降低翻转率能有效减少动态功耗;x代表电压和温度时,根据文献[5]给出的实验结果表明,在一定x范围内,p(x)单调递增,降低温度和电压能显著减少漏电流。电源电压降低5%就可以降低静态功耗10%,不过fpga一般只能在标准电压的±5%幅度内调整。在实际设计中,不需要对p(x)精确建模,只要大致确定p(x)的单调区间和单调性,就能找到功耗最小点。
通常会遇到一些对功耗影响复杂交错的因素,它们对功耗的影响不容易判断。假设有2个相互关联的功耗影响因素x、y,p(x)、p(y)都是单调递增或单调递减的,但x和y不能同时向着p减少的方向变化,此时功耗p的最小值需要综合考虑x和y的取值。在p(x,y)没有建模的情况下,可以通过对(x,y)参数取样后样点的p值来简单判断p(x,y)最小值点,也就是选定(x1,y1)、(x2,y2)…(xn,yn)后,通过比较p(x1,y1)、p(x2,y2)…p(xn,yn)的大小得出最小值pmin(xmin,ymin)。然后将(xmin,ymin)反馈到系统设计中,便得到功耗最省的系统。
图3所示为一种系统功耗优化方法,在系统设计时,先确定对功耗有影响的2个关联参数x、y,在满足系统要求的前提下,选定一系列(x,y)组合,在每个(x,y)样点通过xpower估算fpga的功耗,再结合从数据手册或实验里得到的外围设备的功耗,可得到系统整体功耗值p(x,y),通过分析这些样点上的系统功耗值大小,确定功耗最小点pmin(xmin,ymin)。最后将这组参数(xmin,ymin)反馈到设计中,从而达到优化系统设计的目的。
3 系统功耗优化实例
3.1 fpga读写sram系统设计
fpga读写sram的简单系统如图4所示。
为了与理论值比较,要求该系统功耗为可测的。通过控制线rst和ce的电平高低来控制fpga和sram工作状态,通过测量电压和电流可得到此时系统的功耗:当rst为低时,fpga和sram都为空闲状态,测得的功耗为pfi+psi(pfi为fpga在idle状态的功耗,psi为sram在idle状态的功耗,pfw为fpga在work状态的功耗,psw为sram在work状态的功耗,下同);当rst为高,ce为高时,fpga为工作状态,sram为空闲状态,测得的功耗为pfw+psi;当rst为高,ce为低时,fpga和sram都为工作状态,测得的功耗为pfw+psw。由sram数据手册得知,psi在?滋w量级[6]时可忽略不计,所以控制线与所测得功耗关系如表1所示。
选取读写频率与读写时间占空比两个因素分别做为功耗影响因素x、y,当系统数据线位宽为8 bit时,在满足系统数据读写率为6 kb/s的前提下,只要x·y=6 k/s便能满足,如(6 khz,1)、(12 khz,0.5)、(1 mhz,0.006)等。在理想状态下,当整体翻转率一样时,功耗是一样的,与读写频率和读写时间占空比无关。但是实际中由于fpga逻辑实现的差异,所以功耗会有差别,需要考虑x和y的取值来选择一个功耗最小点。这里考虑的读写频率x的范围为0.5 mhz~9 mhz,故读写时间占空比y的范围为6.7·10-4~0.012。
3.2 功耗估算与功耗测量结果
图5(a)为pfw、pfi的估算值,图5(b)为测量值,其中黑线为pfw,灰线为pfi。图6为测得的psw值。由于y为读写时间占空比,所以(1-y)为系统空闲时间占空比,故系统平均功耗p为:
p=(pfw+psw)·y+pfi(1-y)(2)
又:y=6 khz/x mhz (3)
由(2)、(3)式和图5、图6中的数据,可得p关于x的曲线图,如图7所示。
通过对比估算值与实测值发现,估算值与实测值曲线基本吻合,它们的最小点都出现在x为9 mhz处。
由以上结果可知,当读写频率与读写时间占空比不同时,系统整体功耗是有差距的。系统采用(9 mhz,6.7×10-4)的参数是最省功耗的,即系统每秒钟以9 mhz频率工作6.7×10-4 s,其余时间空闲,比系统用其他读写频率和读写时间占空比的平均功耗要小。在所取样点中,最小功耗值比样点中的平均功耗值节约了10%左右的功耗,可见此方法在现实设计中可以很好地对系统功耗进行优化。
对电子系统来说,减少功耗可以带来很多好处,除了简化系统的散热处理及系统集成方面的工序、节约成本外,还能提高系统可靠性、降低热噪声干扰等。对便携式仪器、野外工作仪器等电池供电的系统来说,还能延长电池寿命,减少更换电池的麻烦。
九款迷你投影仪推荐,想要看高清电影,在家里就能办到
新一代国民手机,不来pick一下吗?
当前格局下,EDA产业该如何前行
小米6plus什么时候上市?小米6plus最新消息:小米6plus来了,尴尬了!小米6还没有预约到手小米6 Plus就来了
Maxim面向运动控制和工业应用推出最新收发器,数据速率提高两倍、传输距离延长50%
实现低功耗FPGA电子系统优化技巧与方法
全球5G射频前端发展趋势分析
威马电动车发生自燃,宣布召回1282辆隐患车型
高输入电压隔离型反激式DC/DC 控制器LT3748H
云计算撑起足球盛宴 阿里云CDN智能调度技术解读
超声波(Ultrasound,又称超声波雷达)定位
进口压力传感器的特点和技术参数
美国目光短浅 导致芯片专业人才向中国回流
MEMS麦克风红不让 未来三年跨足汽车市场
工业智能电子秤在农业信息化中的作用分析
新年时节 小米也发布红米Note4X回馈用户
利用什么来加速智慧城市的建设
TE Connectivity推出FullAXS Mini连接器
怎么让运行中的GRAPH程序暂停?
湖南移动在8月底将完成全省5G核心网的商用?