经常接到工程师的电话,问所选择的 FPGA 或 SOC 的功耗情况,有没有典型值。其实针对功耗设计,工程师可以在设计的各个阶段更加准确把握,以 xilinx FPGA 为例:

 

1. 项目设计初期

项目设计初期会选型,工程师根据资源、IO、硬核、IP 等选择对应型号的 FPGA。功耗部分 xilinx 提供了 XPE 表格(Xilinx PowerEsTImator),这个 XPE 支持 zynq、目前也有各个系列的器件列表,包括最新的 ultrascale + 。

 

图 1.XPE 的表格界面

 

这是比较容易使用的表格、图形化,包括器件、散热条件、PCB 层数、主要 IP 和硬核资源的占用情况。当然再设计的初期,工程师是很难精确把握资源占用率的。硬核和 IP 的占用情况比较好评估,比如是否使用 DDR 的 MIG 等。

 

2. 当完成设计的工程版本后,ISE 和 vivado 都支持比较准确的功耗评估工具。ISE 对应的 XPA 小插件,在完成布局布线的 bit 文件后打开 xilinx XPoweranalyzer ,能够看到 detail 的资源报告,注意修改环境参数,需要更新 power 结果。

 

图 2.XPA 的界面

 

相比 ISE,vivado 的 report power 更加准确,可以设置更多的环境条件。

 

图 3.vivado power setTIng

 

Vivado 中针对 power 的图形化分类更加准确和详细,动态功耗、静态功耗都有清晰描述。这也是工程师降低功耗的优化方向。

 

图 4.vivado report power 结果

 

3. 上板调试阶段

在完成工程后,很多工程师都希望实测 FPGA 的功耗;但实际上 FPGA 分为 vccint、VCCO、VCCAUX 等电压,PCB 板子上有很多器件,如 DSP、ADC、memory 等。比较难估算和测试单独 FPGA 的功耗。可以通过 FPGA JTAG 加载前后电流变化对比动态功耗的增加情况。

 

降低和评估功耗是 FPGA 硬件设计的工作之一,在设计初期的预估功耗、设计后期的降低功耗都是 FPGA 工程师的设计挑战和难点。这也是产品量产的关键因素之一,因为功耗影响产品的稳定性、可靠性和结构设计等。