FPGA知识汇集-FPGA的低功耗设计方法总结

news2024/9/25 1:23:12

精确的热分析在很多电子产品设计中都有着举足轻重的作用,在高端的PCB设计中尤为突出。热分析的结果常常会影响PCB的机械层设计和产品的外壳设计:是否需要安装散热片、散热风扇等。如果安装散热风扇,往往需要降低其噪音,这将使得机械层设计变得更加复杂。

热分析的最终目标是要使得整个系统能够稳定地运行,特别是保证芯片的结温不能超过安全阈值。如果无法保证这一点,那么FPGA芯片在性能指标、可靠性、使用寿命等方面将会大打折扣,比如系统不断的重启,FPGA的时序无法满足要求,甚至无法保证其功能的正确运行。热分析必须考虑到FPGA运行的各种实际环境:从恒温实验室的理想环境到外太空极寒/极热的恶劣环境。在后续介绍的功耗分析,实际上和热分析有紧密的关系。

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

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

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

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

       所以,前两部分的功耗取决于FPGA芯片及硬件设计本身,很难有较大的改善。可以优化是第3部分功耗:设计动态功耗,而且这部分功耗占总功耗的90%左右,因此所以降低设计动态功耗是降低整个系统功耗的关键因素

图1显示了对FPGA芯片导热性能产生重要影响的机械元件:顶层和底层的散热片、焊盘和过孔。除此之外,焊盘本身的尺寸和质量,是否使用导热硅脂,空气对流的大小,PCB的尺寸和层数,这些因素都会影响到最终的导热性能指标。

以下公式定义了环境温度、芯片恒温、功耗和电阻之间的关系:

Tj=(θja·Pd)+Ta

Tj代表芯片的结温,反映了半导体器件能够承受的最高温度,每个芯片的器件手册都有该指标。比如Virtex-6芯片的最高Tj为125℃,但是FPGA工具在做静态时序分析和功耗计算时,其默认值通常设定为85℃。不同FPGA芯片的结温指标,包括其工作范围、最大最小值、默认值,在DC and Switching Characteristics数据手册上都会有详细的介绍。

在上述公式中,Ta代表环境温度,PD代表功耗。而Oja是“内核-外环境”之间的热阻,它代表了材料导热的能力,其物理单位是"℃/W”。

在各种热分析中经常使用图2中的模型和参数。

θjc是“内核-外壳"之间的热阻,不同的器件的值一般也不同。对于Virtex-6的封装来说,其典型值一般小于0.20 ℃/W。

θca是“外壳-外环境”之间的热阻,它等效于FPGA芯片之上的散热片+散热风扇+导热硅脂+其他材料的所有热阻之和,空气对流所带来的影响也要算在其中。

从图2可以看出,整个散热途径有2条:“内核-外壳-外环境"和“内核- PCB -外环境”。由于这2条路径是并行的,因此

总的热阻θja可以表达为

θOja = (θcA x θjba)/(θjca + θjba)

其中Ojca是封装顶层到外环境的热阻,它等效于

θjca = θjc + θca

其中θjba是PCB到外环境的热阻,它等效于

θjba=θjb+θba

在热分析的建模过程中,还需要将PCB本身的热阻计算在内。对于层数较少的小PCB来说,整个θja值约等于θjca。因为当θjba足够大的时候,该分量对于整个热阻的贡献将变得非常小,甚至可以忽略。PCB越大,层数越多,对应的θjba值也就越大。表1说明了PCB的尺寸和层数对于导热性能的影响。

 

对于整个热分析而言,最重要就是正确地建立热模型。从表2可以看出,如果没有将PCB的热阻考虑进去,那么最后的结果将变的极不准确。

静态功耗散热方法

空气散热

对于低端、小封装、功托大概在1-6W左右的FPGA芯片而言,一般使用空气对流或者加装散热片的方式即可散热。

散热片的作用在于将芯片表面的热迅速带走,因此通常使用铝或者铜这样的高导热金属作为散热片的材料。散热片通常具有较大的表面积,这样能够更加快速地进行散热。散热片和芯片之间的接触面积对于散热来说非常重要,因此使用导热硅脂将散热片和芯片表面紧紧相连,则能够更进一步地加快热的传导。

在较好的空气对流环境中,功耗在4-10 W左右的芯片,使用散热片将是非常好的选择。

主动散热

对于功耗在8-25W、采用离端大封装的芯片,使用散热片加风扇的组合能够更好地达到散热的效果。

举例

通过给定的结温和环境温度,计算出最大允许的功耗:

Tj= +85℃

Ta=+55℃

器件为Virtex-6芯片,其中热阻Ojc =0. 20℃/W。

散热片和风扇的热阻: Oca=1. 80℃/W, Ojb=0.40℃/W. Oba =2.60℃/W。

通过以下逐个公式的迭代,可以计算出功耗PD:

Tj=(OjaxOd)+Ta

Oja = (Oca x Ojba)/(Ojca + Ojba)

Ojca = Ojc+ Oca=0.2 + 1.8= 2.0℃/W

OjBA = Ojb +OBA =0.4 +2.6 = 3. 0℃/W

Oja=(2.0x3.0)/(2.0+3.0) = 1.2℃/W

Pd=(Tj- Ta)/Oja= (85 -55)/1.2 = 25 w

通过上述正公式可以看出,在给定芯片结温、环境温度及热阻的条件下,整个FPGA芯片的功耗不会超过25 w。

 动态功耗的优化设计方法

算法优化

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

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

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

资源使用效率优化

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

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

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

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

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

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

 

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

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

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

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

 

参考文献

[1] Xilinx XPower Estimator (XPE) tool for performing thermal and power analysis

http://www.xilinx.com/products/design _resources/power _central

[2] Considerations for heatsink selection, Xilinx White Paper WP258

www.xilinx.com/support/documentation/white _papers/wp258.pdf

[3] Virnex-6 Packaging and Pinout Specifications, Xilinx User Guide UG365

www.xilinx.com/support/documentation/user_guides/ug365.pdf

[4] National Semiconductor Application Note 2026

www.national .com/an/AN/AN-2026.pdf

更多有趣的话题请看链接:

FPGA知识汇集-FPGA项目开发包含那些任务?

FPGA知识汇集--FPGA结构(1)

FPGA的应用

FPGA知识汇集-在命令行模式下使用Xilinx工具

FPGA知识汇集-ISE的这些有用的工具您知道吗?

FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?

FPGA知识汇集-值得收藏的FPGA代码命名规范?

FPGA 知识汇集--Linux下ISE的环境变量设置

FPGA知识汇集-值得收藏的Verilog代码风格1

FPGA知识汇集-值得收藏的Verilog代码风格2

FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结

FPGA知识汇集-Verilog和VHDL的混合使用

FPGA知识汇集-关于Xilinx 工具报告

FPGA知识汇集-例化与推译

硬件仿真加速器与原型验证平台

  FPGA知识汇集-ASIC向FPGA的移植

  FPGA知识汇集-时钟系统的移植

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OpenAI】What Is ChatGPT

文章目录介绍注册介绍 OpenAI发布了一个全新的聊天机器人模型—— ChatGPT,同时这也是继GPT-3.5 系列的主力模型之一 ChatGPT 测试地址: https://chat.openai.com/auth/login https://gpt.chatapi.art/ ChatGPT官方说明: Optimizing Langua…

【自学Java】Java语言数组遍历

Java语言数组遍历 Java语言数组遍历教程 Java 语言 中如果我们定义好了数组,并且给数组设置了值,那么怎么样访问数组呢?怎么样获取数组里面的数据值呢?我们可以使用 for 来遍历数组,获取每个位置上的值。 Java语言数…

谷粒学院——第十四章、微信扫码登录

准备工作 注册开发者资质 官网:https://open.weixin.qq.com/ 尚硅谷分享 wx:open:# 微信开放平台 appidappid: wxed9954c01bb89b47# 微信开放平台 appsecretappsecret: a7482517235173ddb4083788de60b90e# 微信开放平台 重定向url(guli.shop需要在微…

腾讯云存储

文章目录一、开通腾讯云存储1.注册腾讯云账号,开通对象服务2. 创建存储桶3.获取SecretId 和 SecretKey提示:以下是本篇文章正文内容,下面案例可供参考 一、开通腾讯云存储 在项目钟的图片以及文件需要归档存储。如果归档文件只保存到服务器…

WebRTC学习总结

WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流…

二十五、Docker (1)

🌻🌻 目录一、Docker的概述1.1 为什么要去学习Docker1.2 Docker 概述1.3 Docker的历史1.4 Docker 官网1.5 Docker能做什么1.6 DevOps(开发、运维)二、Docker安装启动(官网)2.1 Docker 架构2.1.1 镜像(image)2.1.2 容器…

DICOM 图像传输:使用 LeadTools 实现 C-Store SCP 服务

文章目录开发环境创建 Qt Widgets 程序设计界面配置 LeadTools 路径编写代码使用 LDicomNet 实现 SCP 的步骤日志输出编写 SCP Server 类编写 SCP Client 类启动 LDicomNet 及启动监听编译程序运行程序发布与部署测试程序界面美化参考开发环境 LeadTools 17Qt 5.15.2 MSVC2019…

【Linux】进程间通信(万字详解) —— 上篇

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…

谷粒学院——第九章、阿里云视频点播

阿里云视频点播 开通 地址: 上传测试 开通以后,点击控制台,然后选择音/视频: 注意:先点击启用存储地址再上传。 添加转码模版: 开发文档 官方地址:https://help.aliyun.com/p…

批量统计不同块的数量

CAD收集块的数量一般采用FI等命令,或者使用天正等软件,这些方法或多或少都存在某些问题。这时就可以编写插件满足不同场景的使用。已应用到实际工作中。 一、界面及其功能 采用c#制作cad插件,框选待统计范围,直接输出到表格中&…

数据库连接超时的处理

报错信息:Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)at com.zaxxer.hikari.pool.H…

Java高手速成 | 数据库实训:图书馆管理系统建模

图书馆管理系统是常见的管理信息系统,考虑到系统的推广性,本系统采用SQL SERVER2000作为数据库。并且采用PowerDesigner进行数据建模,从而自动生成sql脚本。 01、数据库概念设计 1. 数据库表设计 管理员表admin:管理员编号&am…

[JavaEE] volatile与wait和notify

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 一.volatile 关键字. 1.volatile 能保证内存可见性…

12个爆款 Java 开源项目

1JavaGuidehttps://github.com/Snailclimb/JavaGuide Star 10503【Java学习面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。2symphonyhttps://github.com/b3log/symphony Star 6664一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台…

17-Golang中的包

Golang中的包基本介绍包的三大作用相关说明包的注意事项和细节说明基本介绍 1.在实际的开发中,我们往往需要在不同的文件中,去调用其他文件的定义的幻术,比如main.go中,去使用utils.go文件中的函数2.包的本质就是创建不同的文件夹…

vue简单的数据传输

很久没有水文了,最近又得了新冠才好,学习也没什么进度,先复习下之前的组件的数据传输吧! props传值 这个很简单就是在组件标签上转递数据,值得注意的是如果不使用v-bind:(:),转递的…

任务二:Web隐藏信息获取

任务二:Web隐藏信息获取 任务环境说明: 服务器场景名:web20200604服务器场景用户名:未知通过本地PC中渗透测试平台Kali使用Nmap扫描目标靶机HTTP服务子目录,将扫描子目录命令所需参数及第四条扫描结果关键目录以&符号拼接,作为Flag提交(例:-p 22&/root/); …

【信息学CSP-J近16年历年真题64题】真题练习与解析 第11题之纪念品

纪念品 描述 小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品 的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。 每天,小伟可以进行以下两种交易无限次: 任选一个纪念品,若手上有足够金币,以当日价格购买该…

Android---DrawerLayout + NavigationView

现在 Android Studio 已经直接提供左滑菜单功能,只需要在创建新项目时选择 Navigation Drawer Activity 就可以直接创建一个有左滑菜单功能的 APP。 目录 DrawerLayout NavigationView android:src 与 app:srcCompat fitsSystemWindows DrawerLayout …

数据报告重要的是业务看得懂

一、前言上篇文章我们从指标库的角度梳理了指标是如何计算出来的,确保业务人员有数可寻,但对于业务人员而言,并不是所有的指标都看得懂,也不是所有的指标都需要理解,笔者见过太多不知所云的数据报告,各种模…