【转载】FPGA设计中的功耗分析(xilinx)

原文转自请添加图片描述
FPGA设计中的功耗分析(xilinx)
笔者经历过一个项目,整个系统的功耗达到了100w,而单片FPGA的功耗估计得到为20w左右,有点过高了,功耗过高则会造成发热量增大,温度高最常见的问题就是系统重启,另外对FPGA内部的时序也不利,导致可靠性下降。其它硬件电路的功耗是固定的,只有FPGA的功耗有优化的余地,因此硬件团队则极力要求笔者所在的FPGA团队尽量多做些低功耗设计。笔者项目经历尚浅,还是第一次正视功耗这码事儿,由于项目时间比较紧,而且xilinx方面也比较重视这个项目,因此当时有xilinx的工程师过来对我们做了些培训,并且专门请了美国总部的专家过来与我们协同进行设计功耗估计,还是比较给力的。

以下是笔者在这比较短的时间内学习到的一些关于功耗估计和如何进行低功耗设计的知识:
请添加图片描述

功耗分析

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

l芯片静态功耗:FPGA在上电后还未配置时,主要由晶体管的泄露电流所消耗的功耗
l设计静态功耗:当FPGA配置完成后,当设计还未启动时,需要维持I/O的静态电流,时钟管理和其它部分电路的静态功耗
l设计动态功耗: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:热阻抗取决于芯片与环境的热传导效率,可通过加散热片或者风扇减小热阻抗

请添加图片描述

功耗估计

在讲解低功耗设计之前,介绍一下xilinx的功耗估计工具XPE(Xilinx Power Estimator),XPE主要是在项目初期,处于系统设计,RTL代码并未完善阶段功耗估计时使用。大家可以在xilinx官网上下载到:http://www.xilinx.com/power,它是一个基于EXCEL的工具,如图2所示,功能做的十分丰富,感叹EXCEL也未免太强大了吧。
请添加图片描述

在设计完成综合实现后,则可以使用vivado自带的功耗分析工具进行精确计算功耗。打开综合实现后的设计,点击report power即可得到功耗分析的结果,如图3,4所示。

请添加图片描述请添加图片描述

低功耗设计

关于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的动态功耗。

请添加图片描述

下面介绍一下优化BRAM功耗的方法:
(1) 使用“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,效果能更加明显。
请添加图片描述

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

请添加图片描述

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

请添加图片描述

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

请添加图片描述
请添加图片描述

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Xilinx 7系列FPGA功耗计算器是一款用于估算FPGA芯片功耗的工具。它可以帮助开发者在设计阶段提前预估FPGA芯片的功耗,并指导他们进行功耗优化,以达到更高的性能和更低的功耗。 在使用7系列FPGA功耗计算器时,用户首先需要输入所选FPGA芯片的型号和工作频率等参数,随后可以根据实际设计情况进一步输入和调整各种电路模块的功耗信息。例如,输入IO接口模块的编号和使用数量后,可以根据IO模块的电压和频率参数计算出IO模块的功耗。同样,可以输入逻辑单元的数量和使用率,计算出逻辑单元的功耗,依此类推。 除了单个模块的功耗计算外,7系列FPGA功耗计算器还提供了总功耗的估算。用户可以随时查看FPGA芯片的总功耗和各模块的功耗分布情况,以帮助他们改进设计并优化功耗。 总之,Xilinx 7系列FPGA功耗计算器是一款强大的工具,可以有效地估算FPGA芯片的功耗,为开发者提供更好的设计和优化方案。 ### 回答2: Xilinx 7系列FPGA功耗计算器是一款能够帮助用户估计FPGA功耗的工具。在FPGA设计,一个关键的考虑因素就是功耗,而功耗的准确估计对于设计的成功至关重要。Xilinx 7系列FPGA功耗计算器利用用户提供的一些关键参数(如频率、电压、温度和器件规格等)来计算FPGA的静态和动态功耗。该计算器还可以调整的一些数字,如开关速度和软硬件的重复使用。通过输入这些数字,计算器可以估算出FPGA的总功耗,并提供详细的报告,包括功耗风险和优化建议。使用Xilinx 7系列FPGA功耗计算器,FPGA设计者可以更好地管理功耗和优化设计,从而增强FPGA的可靠性和性能。 ### 回答3: Xilinx 7系列FPGA功耗计算器是一种用于估算FPGA芯片功耗的工具。通过该工具,用户可输入所选FPGA芯片的多种参数(如温度、时钟速率、负载电容、逻辑单元数量等等),并获得该芯片的预计功耗值。 特别是在进行高性能FPGA设计时,准确估算芯片功耗十分关键,因为功耗直接决定了芯片的热特性和最终的可靠性。通过使用Xilinx 7系列FPGA功耗计算器,用户可以有针对性地调整FPGA芯片的设计参数,从而最大限度地降低功耗、提高性能和稳定性。 Xilinx 7系列FPGA功耗计算器的使用非常简单,用户只需按照指导输入相应参数并点击计算即可。此外,在使用过程,该工具还提供了许多实用的技巧和建议,以帮助用户更好地理解和控制FPGA芯片的功耗特性。 总之,Xilinx 7系列FPGA功耗计算器是一种十分实用的工具,它可以帮助FPGA设计人员更好地估算和控制芯片的功耗,从而提高FPGA设计的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值