FPGA低功耗设计的那些事 - FPGA/ASIC技术 -
以下是笔者一些关于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
查看评论 回复