在一个设计开始前,做原理图的时候,怎么确定FPGA的电源管理芯片应该选择什么型号呢?

这就要看FPGA的功耗了,因为FPGA是可编程芯片,它的功耗和被使用的资源大小有关,例如你不能说3C120的功耗是多少多少,你只能说你的设计需要怎样的功耗。

因此在原理图设计时有必要对功耗进行估计,以便于能够选择适合的型号的电源芯片。

1、功耗分析

整个FPGA设计的总功耗由三部分功耗组成:1. 芯片静态功耗;2. 设计静态功耗;3. 设计动态功耗。

芯片静态功耗:FPGA在上电后还未配置时,主要由晶体管的泄露电流所消耗的功耗

设计静态功耗:当FPGA配置完成后,当设计还未启动时,需要维持I/O的静态电流,时钟管理和其它部分电路的静态功耗

设计动态功耗:FPGA内设计正常启动后,设计的功耗;这部分功耗的多少主要取决于芯片所用电平,以及FPGA内部逻辑和布线资源的占用

显而易见,前两部分的功耗取决于FPGA芯片及硬件设计本身,很难有较大的改善。可以优化是第3部分功耗:设计动态功耗,而且这部分功耗占总功耗的90%左右,因此所以降低设计动态功耗是降低整个系统功耗的关键因素。上面也提到过功耗较大会使FPGA发热量升高,那有没有一个定量的分析呢?答案当然是有,如下式:

Tjmax > θJA * PD + TA

其中Tjmax表示FPGA芯片的最高结温(maximum junction temperature);θJA表示FPGA与周围大气环境的结区热阻抗(Junction to ambient thermal resistance),单位是°C/W;PD表示FPGA总功耗(power dissipation),单位是W;TA表示周围环境温度。

以XC7K410T-2FFG900I系列芯片为例,θJA = 8.2°C/W,在TA = 55°C的环境中,想要结温Tjmax不超过100°C的情况下,可以推算FPGA的总功耗:PD < (Tjmax – TA)/θJA=(100 - 55)/8.2=5.488W,之前估算的20W与之相差太远,因此优化是必不可少的:

1)      降低θJA:热阻抗取决于芯片与环境的热传导效率,可通过加散热片或者风扇减小热阻抗

图1

2)      减小PD:通过优化FPGA设计,降低总功耗

2、功耗估计

altera提供了两种功耗估计的方法:

1)提供了一个设计早期功耗估计软件(EPE),是EXCEL的格式,使用说明文档的标题为“powerplay early power estimator user guide ”

http://www.altera.com/support/devices/estimator/pow-powerplay.jsp

在这个地址可以下载到软件及使用说明,如果不能正常使用,可以尝试在EXCEL软件中点“工具”-“宏”-“安全性”将其设为最低。通过这个软件,可以在设计前期,设计中期对你的FPGA功耗进行估计。

2)当代码设计完成后,使用Quartus中“processing”中“powerplay power analyzer tool”可更加准确地计算功耗。

依据这个可确定电源芯片的选型。留一定余量即可。

3、低功耗设计

关于FPGA低功耗设计,可从两方面着手:1). 算法优化;2). FPGA资源使用效率优化。

1)      算法优化

算法优化可分为两个层次说明:实现结构和实现方法

首先肯定需要设计一种最优化的算法实现结构,设计一种最优化的结构,使资源占用达到最少,当然功耗也能降到最低,但是还需要保证性能,是FPGA设计在面积和速度上都能兼顾。比如在选择采用流水线结构还是状态机结构时,流水线结构同一时间所有的状态都在持续工作,而状态机结构只有一个状态是使能的,显而易见流水线结构的功耗更多,但其数据吞吐率和系统性能更优,因此需要合理选其一,使系统能在面积和速度之间得到平衡;

另一个层面是具体的实现方法,设计中所有吸收功耗的信号当中,时钟是罪魁祸首。虽然时钟可能运行在 100 MHz,但从该时钟派生出的信号却通常运行在主时钟频率的较小分量(通常为 12%~15%)。此外,时钟的扇出一般也比较高。这两个因素显示,为了降低功耗,应当认真研究时钟。 首先,如果设计的某个部分可以处于非活动状态,则可以考虑禁止时钟树翻转,而不是使用时钟使能。时钟使能将阻止寄存器不必要的翻转,但时钟树仍然会翻转,消耗功率。其次,隔离时钟以使用最少数量的信号区。不使用的时钟树信号区不会翻转,从而减轻该时钟网络的负载。

2)      资源使用效率优化

资源使用效率优化是介绍一些在使用FPGA内部的一些资源如BRAM,DSP48E1时,可以优化功耗的方法。FPGA动态功耗主要体现为存储器、内部逻辑、时钟、I/O消耗的功耗。

其中存储器是功耗大户,如xilinx FPGA中的存储器单元Block RAM,因此在这边主要介绍对BRAM的一些功耗优化方法。

如图5中实例,虽然BRAM只使用了7%,但是其功耗0.601W占了总设计的42%,因此优化BRAM的功耗能有效地减小FPGA的动态功耗。

图5

下面介绍一下优化BRAM功耗的方法:

a)       使用“NO CHANGE”模式:在BRAM配置成True Dual Port时,需要选择端口的操作模式:“Write First”,“Read First” or “NO CHANGE”,避免读操作和写操作产生冲突,如图6所示;其中“NO CHANGE”表示BRAM不添加额外的逻辑防止读写冲突,因此能减少功耗,但是设计者需要保证程序运行时不会发生读写冲突。

图6

图5中的功耗是设置成“Write First”时的,图7中是设置成“NO CHANGE”后的功耗,BRAM的功耗从0.614W降到了0.599W,因为只使用了7%的BRAM,如果设计中使用了大量的BRAM,效果能更加明显。

图7

b)      控制“EN”信号:BRAM的端口中有clock enable信号,如图8所示,在端口设置中可以将其使能,模块例化时将其与读/写信号连接在一起,如此优化可以使BRAM在没有读/写操作时停止工作,节省不必要的功耗。

图8

如图9所示为控制“EN”信号优化后的功耗情况,BRAM功耗降到了0.589W

图9

c)       拼深度:当设计中使用了大量的存储器时,需要多块BRAM拼接而成,如需要深度32K,宽度32-bit,32K*32Bit的存储量,但是单块BRAM如何配置是个问题?7 series FPGA中是36Kb 的BRAM,其中一般使用32Kb容量,因此可以配置成32K*1-bit或者1K*32-bit,多块BRAM拼接时,前者是“拼宽度”(见图10),后者是“拼深度”(见图11)。两种结构在工作时,“拼宽度”结构所有的BRAM需要同时进行读写操作;而“拼深度”结构只需要其中一块BRAM进行读写,因此在需要低功耗的情况下采用“拼深度”结构,

注:“拼深度”结构需要额外的数据选择逻辑,增加了逻辑层数,为了降低功耗即牺牲了面积又牺牲了性能。

图10

图11

FPGA功耗估计(一)相关推荐

  1. FPGA功耗估计(二)

    针对于Altera的Cyclone III ,做出了静态功耗. 对于Altera,其提供了一个功耗早期估计工具.可以在官网上下到.首先需要将宏设置为安全,在excel选型中选择文件-> 之后便可 ...

  2. 关于Intel FPGA的功耗估计问题

    关于Intel FPGA功耗估计问题的解决方法------以Cyclone V系列为例 一.PowerPlay Early Power Estimator下载 二.对.xls文件的处理 三.生成.cs ...

  3. FPGA功耗那些事儿(转载)

    在项目设计初期,基于硬件电源模块的设计考虑,对FPGA设计中的功耗估计是必不可少的.笔者经历过一个项目,整个系统的功耗达到了100w,而单片FPGA的功耗估计得到为20w左右,有点过高了,功耗过高则会 ...

  4. 【转载】FPGA功耗的那些事儿

    [转载]FPGA功耗的那些事儿 在项目设计初期,基于硬件电源模块的设计考虑,对FPGA设计中的功耗估计是必不可少的. 笔者经历过一个项目,整个系统的功耗达到了100w,而单片FPGA的功耗估计得到为2 ...

  5. FPGA功耗的那些事儿

    在项目设计初期,基于硬件电源模块的设计考虑,对FPGA设计中的功耗估计是必不可少的.笔者经历过一个项目,整个系统的功耗达到了100w,而单片FPGA的功耗估计得到为20w左右,有点过高了,功耗过高则会 ...

  6. vivado如何评估_在Vivado下进行功耗估计和优化

    资源.速度和功耗是FPGA设计中的三大关键因素.随着工艺水平的发展和系统性能的提升,低功耗成为一些产品的目标之一.功耗也随之受到越来越多的系统工程师和FPGA工程师的关注.Xilinx新一代开发工具V ...

  7. 【FPGA教程案例73】基础操作3——基于FPGA的Vivado功耗估计

    FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...

  8. 赛灵思FPGA功耗实测与XPE模拟计算对比分析

    FPGA选型的时候,除了考虑其性能,硬件上还需要额外关注其功耗,因为这涉及到相应的DCDC的选型,但是如何评估FPGA的功耗呢?今天这里就以一款赛灵思Kintex-7系列的XC7K160T-FFG67 ...

  9. 使用QII中的PowerPlay Power Analyzer估算FPGA功耗

    概述 Altera提供了早期FPGA设计功耗估算工具-EPE,当设计基本完成时候,Altera的设计软件QuartusII提供PowerPlay Power Analyzer工具给设计者进行功耗估算. ...

最新文章

  1. [SDOI2009]HH的项链
  2. CENTOS7 高性能Linux集群 通过yum进行 haproxy配置 !安装 !使用!HAProxy配置文件详解
  3. unsigned int vs. size_t
  4. 关于企业管理信息系统
  5. d3.js 教程 模仿echarts柱状图
  6. 软件测试笔试Linux题,linux基础面试题
  7. 华为云原生数据仓库GaussDB(DWS)深度技术解读:融、快、大、稳、易
  8. 【Spark】Spark基本概念
  9. 目前最流行的前端开发框架
  10. 笔记-delphi7高效数据库程序设计
  11. Spring实现数据库读写分离
  12. linux内核安全模块,对Linux内核的修改 - Linux 安全模块(LSM)简介_Linux安全_Linux公社-Linux系统门户网站...
  13. 免费分享20套PHP源码
  14. Python安全攻防-从入门到入狱
  15. 消息称微软Windows暂停接受华为新订单;2019 Q1 亚太区公有云IaaS、PaaS服务收入排名现已揭晓……...
  16. 微会动微营销引擎:SEM效果提升的2大方向+5种能力+7个策略
  17. Illustrator CS2入门与实战视频教程
  18. 学习andriod开发之 异步加载图片(二)--- 使用其他进度条
  19. 如何在自己行业内放大和增加收入
  20. 《FLUENT 14.0超级学习手册》——第1章 流体力学与计算流体力学基础1.1 流体力学基础...

热门文章

  1. 124.数据流(DataOutputStream、DataInputStream)
  2. com导航_设计师的导航网站
  3. iOS-几种常用的 crash log 崩溃信息调试方法
  4. 禁止粘贴的解决方法,容易操作
  5. Android设置box-shadow
  6. java jdom 读取xml文件_jdom学习:读取xml文件
  7. 计算机英语要多少级,职称英语各等级需要多少词汇量
  8. VBA窗体最大化、最小化、调整大小
  9. 鸿蒙应用开发-可穿戴设备
  10. 管理类联考——数学——记忆篇——公式=文字编码=联想