在时钟频率和门数不断增长的背景下,很多包含高性能FPGA(现场可编程门阵列)的系统通常都需要一个作彻底分析的热模型。我在做一个包含FPGA的项目时,发现自己没有足够的数据来准确判定FPGA的功耗,而我的机械工程同行需要用功耗数据来构建一个系统模型,供Flomerics的Flotherm软件作热分析。

虽然我们建立了完整功能的硬件,但我们没有测量FPGA准确功耗的方法,并且要为电路板上的额外电路提供多种电源电压,使这个问题更加复杂化。尽管我们可以用制造商的 FPGA 功耗计算表估算电路的总瓦数,但计算的值只涉及其内部功耗,而没有考虑芯片外耗散的功率,即驱动其它器件的I/O功耗。另外,我们缺乏有关FPGA封装热特性的信息,这使问题更加混乱。
我的机械工程同事和我共同决定建立一个受控的实验,将一个工作中的PCB(印制电路板)放入一个临时的温室内,即一个硬纸板箱中。我们只给FPGA加一个精确量值的功率,测量其封装的外表温度,并用FPGA的片上温度检测二极管测出它的内部温度。然后,我们用Flotherm为实验建模,并调整封装的热特性,直到仿真结果与测量结果相匹配。
接下来,我
这个过程中唯一不清楚的部分是如何在FPGA中消耗受控量的功率。我脑子灵光一闪,于是将一个不工作的PCB连接到电源上,并将FPGA内核电压的两个极性反接。这样,我就给FPGA内部连接在电源与地和器件I/O之间的寄生二极管和保护二极管施加了正向偏压(图1)。正常情况下,这些二极管是保持反偏,不耗散功率。电源极性的反转使这些二极管正偏,因此消耗功率,并使 FPGA的内核升温。
为了获得精确的电压测量结果,我在 FPGA电源脚上添加了开尔文检测线。我将电源配置为恒流模式,调整其输出,通过FPGA电源脚的电流与电压的乘积,提供精确的2W功率。我的同事负责测试探头的放置,并完成温度测量。我们的实验结束后,Flotherm模型预测的温度与我们系统最终配置(包括散热片)测得的结果误差在3℃ ~ 4℃以内。


