0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA的低功耗设计方法总结

e9Zb_gh_8734352 来源:FPGA技术联盟 作者:FPGA技术联盟 2022-11-24 15:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

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

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

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

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

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

静态功耗分析

322b2958-6bcb-11ed-8abf-dac502259ad0.png

以下公式定义了环境温度、芯片恒温、功耗和电阻之间的关系: 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

3252a4d8-6bcb-11ed-8abf-dac502259ad0.png

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

326f5808-6bcb-11ed-8abf-dac502259ad0.png

对于整个热分析而言,最重要就是正确地建立热模型。从表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= (Ocax 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内部的一些资源如BRAMDSP48E1时,可以优化功耗的方法。FPGA动态功耗主要体现为存储器、内部逻辑、时钟、I/O消耗的功耗。 其中存储器是功耗大户,如xilinx FPGA中的存储器单元Block RAM,因此在这边主要介绍对BRAM的一些功耗优化方法。 如图5中实例,虽然BRAM只使用了7%,但是其功耗0.601W占了总设计的42%,因此优化BRAM的功耗能有效地减小FPGA的动态功耗。

3295d3a2-6bcb-11ed-8abf-dac502259ad0.jpg

32ab8076-6bcb-11ed-8abf-dac502259ad0.jpg


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

32c00712-6bcb-11ed-8abf-dac502259ad0.jpg


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

32db158e-6bcb-11ed-8abf-dac502259ad0.jpg


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

32f40c10-6bcb-11ed-8abf-dac502259ad0.jpg


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

33105b22-6bcb-11ed-8abf-dac502259ad0.jpg


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

332dc554-6bcb-11ed-8abf-dac502259ad0.png


图10

3341bf50-6bcb-11ed-8abf-dac502259ad0.png


图11 审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA设计
    +关注

    关注

    9

    文章

    429

    浏览量

    27992
  • 低功耗
    +关注

    关注

    12

    文章

    2990

    浏览量

    106235
  • 焊盘
    +关注

    关注

    6

    文章

    597

    浏览量

    39562
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU芯片想实现低功耗如何做到?

    1、关闭非必要外设时钟 逐一检查MCU的外设,仅保留工作中必须的模块时钟,关闭未使用的外设时钟,以此减少不必要的功耗。 2、避免时钟倍频 在进入低功耗模式前,禁用PLL(相位锁定环)和FLL(频率
    发表于 12-01 08:01

    L083最低功耗是多少,应该如何进行低功耗设计?有哪些注意事项?

    L083最低功耗是多少,应该如何进行低功耗设计?有哪些注意事项?
    发表于 11-12 07:29

    RTT支持低功耗应用吗?

    RTT支持低功耗应用吗?哪个版本更适合用来做低功耗的项目?选标准版,nano,还是smart好?谢谢
    发表于 10-13 07:59

    STM32L433使用LCD控制器驱动段码屏,请问有什么LCD降低功耗方法吗?

    STM32L433 使用LCD控制器驱动段码屏,有什么LCD降低功耗方法吗?
    发表于 06-23 07:12

    低功耗低功耗前端模块,适用于蓝牙®范围扩展应用 skyworksinc

    电子发烧友网为你提供()低功耗低功耗前端模块,适用于蓝牙®范围扩展应用相关产品参数、数据手册,更有低功耗低功耗前端模块,适用于蓝牙®范围扩展应用的引脚图、接线图、封装手册、中文资料
    发表于 06-06 18:30
    <b class='flag-5'>低功耗</b>、<b class='flag-5'>低功耗</b>前端模块,适用于蓝牙®范围扩展应用 skyworksinc

    低功耗低功耗前端模块,适用于蓝牙®信号范围扩展应用 skyworksinc

    电子发烧友网为你提供()低功耗低功耗前端模块,适用于蓝牙®信号范围扩展应用相关产品参数、数据手册,更有低功耗低功耗前端模块,适用于蓝牙®信号范围扩展应用的引脚图、接线图、封装手册、
    发表于 06-06 18:30
    <b class='flag-5'>低功耗</b>、<b class='flag-5'>低功耗</b>前端模块,适用于蓝牙®信号范围扩展应用 skyworksinc

    DA16600MOD超低功耗Wi-Fi低功耗蓝牙组合模块数据手册

    DA16600 模块为您的设备添加低功耗 Wi-Fi 和低功耗蓝牙™ (LE) 功能提供了便捷的方式。 低功耗 Wi-Fi DA16200 片上系统(SoC) 和低功耗蓝牙 LE DA
    的头像 发表于 05-25 16:10 705次阅读
    DA16600MOD超<b class='flag-5'>低功耗</b>Wi-Fi<b class='flag-5'>低功耗</b>蓝牙组合模块数据手册

    蓝牙低功耗模块的原理和应用介绍

    随着物联网技术的快速发展,蓝牙低功耗模块在连接各种设备和传输数据方面发挥着重要作用。今天将为您介绍蓝牙低功耗模块的工作原理以及其广泛的应用领域。 蓝牙低功耗模块的原理 蓝牙低功耗模块是
    的头像 发表于 05-21 15:56 896次阅读

    关于低功耗蓝牙连接功耗的评估

    关于低功耗蓝牙连接状态下的功耗评估,推荐一个好用的工具: 对于做低功耗蓝牙开发的小伙伴来说,功耗的评估与测试是绕不开的一个环节,如何快速的评估自己所选用的方案平台,
    发表于 04-26 17:10

    低功耗MCU软件设计技巧与选型

    低功耗MCU(微控制器)凭借其极低的功耗和高效的能量管理能力,正在快速渗透到多个新兴领域,尤其在物联网(IoT)、可穿戴设备、智能家居和医疗电子等领域展现出巨大的应用潜力,国内超低功耗MCU的崛起
    的头像 发表于 04-12 17:19 1479次阅读
    超<b class='flag-5'>低功耗</b>MCU软件设计技巧与选型

    蜂窝物联网的超低功耗特性

    针对低功耗进行优化的蜂窝物联网 革命性的蜂窝解决方案: 无与伦比的电源效率 要打造卓越的蜂窝物联网产品,低功耗是一个不可或缺的因素。凭借我们在制造屡获殊荣的超低功耗设备方面的丰富专业知识和经验,我们
    的头像 发表于 04-07 14:57 837次阅读

    DA14531-00000FX2 超低功耗蓝牙5.1 SOC芯片介绍

    的设备 5. 开发支持 开发工具:提供 SDK、开发板、调试工具 软件支持:支持多种操作系统和协议栈 6. 总结DA14531-00000FX2 是一款高性能、低功耗的蓝牙 SoC,适用于多种物联网和可穿戴设备,具备高集成度和丰富的外设接口,开发支持完善。
    发表于 03-10 16:47

    低成本的低功耗MCU

    内置24位ADC的MCU,需要低功耗,怎么找不到低于5元的呢?大家有吗?
    发表于 02-13 22:13

    低功耗处理器的优势分析

    随着科技的飞速发展,电子设备的种类和数量不断增加,人们对设备的能效要求也越来越高。低功耗处理器因其在节能、环保和成本效益方面的优势而受到广泛关注。 低功耗处理器的定义 低功耗处理器是指在设计时
    的头像 发表于 02-07 09:14 1773次阅读

    如何实现EEPROM的低功耗模式

    内容进行擦除和重写。在许多应用中,尤其是在电池供电的设备中,低功耗模式对于延长设备的使用寿命至关重要。以下是实现EEPROM低功耗模式的一些方法: 1. 选择合适的EEPROM类型 选择功耗
    的头像 发表于 12-16 16:54 1409次阅读