您的位置 首页 被动

聊一聊FPGA低功耗规划的那些事儿

聊一聊FPGA低功耗设计的那些事儿-以下是笔者一些关于FPGA功耗估计和如何进行低功耗设计的知识。

  以下是笔者一些关于FPGA功耗估量和怎么进行低功耗规划的常识:

  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. 功耗估量

  在解说低功耗规划之前,介绍一下xilinx的功耗估量东西XPE(Xilinx Power Estimator),XPE首要是在项目初期,处于体系规划,RTL代码并未完善阶段功耗估量时运用,它是一个根据EXCEL的东西,如图2所示,功用做的非常丰厚。

  

  图2

  在规划完结归纳完成后,则能够运用vivado自带的功耗剖析东西进行准确核算功耗。翻开归纳完成后的规划,点击report power即可得到功耗剖析的成果,如图3,4所示。

  

  图3

  

  图4

  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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/173471.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部