EDA365电子工程师网
标题:
【赛灵思中国通讯54期】通过实时改变使用率 研究FPGA功耗行为
[打印本页]
作者:
admin
时间:
2019-9-27 15:10
标题:
【赛灵思中国通讯54期】通过实时改变使用率 研究FPGA功耗行为
现代的FPGA 芯片能够开发高性能应用,但在这些设计中电源管理通常是一大限制因素。FPGA 器件的资源使用最能决定设计的容量和处理速度,但是增加资源就会提高功耗。更高的功耗会提高运行成本、面积要求和结温,而设计人员必须用更多的气流和冷却 系统来解决结温问题。
3 b9 Z t: r- E) |" l
由于开发板或系统的总功耗极其重要,因此设计人员必须设置一个功耗预算,在资源使用和功耗问题方面兼顾平衡。所以,事先预测系统潜在功耗的能力可帮助设计人员获得先发优势。
) I, [: |, p5 D/ b- {
对于实现前的功耗评估,赛灵思可提供一些工具根据用户输入内容或综合报告进行功耗估计。其中一款工具就是赛灵思功耗估计器(Power Estimator,XPE)电子数据表。这款基于Excel 的功耗估计工具能让您输入资源使用、翻转率和时钟频率等设计属性,并根据器件信息计算估计的功耗值。另一款常用的工具是赛灵思功耗分析器(Power Analyzer,XPA)。在布局和布线后,XPA 会导入已生成的NCD 文件,并利用实现详细信息和仿真结果(而非用户输入)来更加准确地估计功耗。
l, i' O+ P3 N* L2 N4 i# X
作为备选方案,我们设计出一种新方法来测量真实器件上FPGA 设计的功耗估计值。为模拟不同的实现方案,我们创建了一个独立于器件的通用VHDL 设计,其有可能实现在FPGA 运行时通过串行通道改变激活的资源(即DSP slice、Block RAM 和slice 寄存器)的数量及相应的运行条件(结温、时钟频率和翻转率)。 我们的这种技术可以同时监控电源的电流和电压大小,便于我们轻松观察器件在不同资源使用和环境条件下的动态功耗特性。
+ u* T0 |. B: i. Y h- _
我们已在赛灵思KC702 评估板上实现了该设计。不过,只要您的FPGA 器件支持设计中所使用的IP核,您只需做轻微修改也可在任何其它器件上实现该设计。
) l6 b4 ^% o, k. o
另一种使用该技术的方法可能是作为面向FPGA 板的VHDL 测试设计。我们假设最近设计了一个通用型Kintex?-7 开发板。客户可在不断变化的环境条件下利用未知的资源容量在开发板上实现任何设计。为了确保开发板的稳定性和稳健性,我们需要在最高和最低所需的环境温度 下强加器件的工作极限,并验证FPGA 能够支持不同的资源使用情况。然而,测试每种资源使用方案需要从头开始开发一款全新的VHDL 设计,这会耗费太多时间。我们推荐的方法可帮助设计人员灵活地根据需要对测试设计进行实时控制。
- X! b2 U' [' B0 S S
LogiCORETM 模块存储器生成器创建作为单端口RAM 的Block RAM。将一个数位持续翻转的16 位字不停写入激活BRAM 的随机地址中,从而使它们保持被占用状态。图1b 是单个BRAM 组件的方框图。同样,我们使用DSP slice 将一个25位被乘数与一个18 位乘数相乘,得到一个43 位输出, 这就是单个DSP48E1 可以处理的最大字宽。所有DSP 组件的被乘数会被定期修改,从而使DSP 消耗动态功耗,如图1c 所示。然而,综合工具试图在综合过程中删除资源,因为这些模块的输出未与任何输出引脚连接。您可以使用以下属性使资源保持不变:
, n" _. Z- F0 M
同样,您可在时钟选择(Clock Select)面板中改变MMCM 的输出并扫描时钟频率。在下一栏的Vccint 面板中可测量和连续绘制出FPGA 芯片的电源电压。同时,内核温度(Core Temperature)面板显示并绘制出内核温度。用户可在提供的对话框中输入参考温度以改变结温。
+ k* d2 @( K6 P0 A9 u
您可利用集成在KC702 开发板上的德州仪器(Texas Instruments)UCD9248 数字PWM 系统控制器测量电源的电压和电流电平。这种用于电源转换器的多轨和多相位PWM 控制器支持电源管理总线(PMBus)通信协议。其PWM 信号可驱动用于调节Vccint 电源电压的UCD7242 集成电路。一组PMBus 命令可用于配置IC功能。UCD7242 包含片上电压与电流感应电路,并与UCD9248 进行通信。我们的GUI 软件不断向该器件发送相应的PMBus 命令,同时接收标准PMBus 数据格式的DC/DC 转换器的电压和电流值。然后,我们将收到的字节转换为实际数值,并获得电源的电压和电流电平。
: o, Z8 Y# _& `7 [. }& E/ X
在高温下运行复杂、拥塞的设计可能会扰乱电源电压电平。不幸的是,FPGA 芯片对于输入电压的容差范围较小。超过该电平范围会导致芯片上的功能失效或者永久损坏。因此,您在设计完开发板后,还需要测试严苛工作条件下电压电平的稳 定性。Vccint 面板可用来观察和验证设计开发板的电源系统是否能够承受高温下进行高速处理时的电压变化。
1 T* V0 }9 `' r( B l
设计人员需要始终谨记的重要一点是:由于制造工艺变化,每个器件都会有不同的功耗。例如,在Virtex-7 FPGA 芯片制造完成后,会在测试阶段确定足够让芯片正确运行的最小电压源电平并写入电熔丝。将稳压器输出调节至这个最小电压电平可以改变静态功耗。因此,静态功 耗的偏移会导致XPE 与我们的设计在结果上出现差异。例如,XPE 中估计的Kintex-7 芯片的静态功耗在典型情况与最差情况时计算相差0.7 瓦。
: k: }+ U5 c+ k/ G: c% w0 Y R% q! ^
完美匹配XPE
4 c4 `& [! w9 h5 n1 y" r" [# g, B8 S% U
我们在很多具有可变因素的不同设计方案中对我们的设计进行了测试,以确保其精确性和可靠性。同时,还在测量值的示意图中绘出XPE 的估计结果,从而将功耗估计值与实际测量值进行比较。
# a" t2 @" C+ z/ z8 p3 \- b. d
通过最初将资源使用率从零至设计最大值扫描的设计实现可观察Kintex-7 器件的功耗行为。图3 给出了扫描一种资源类型的使用率过程中功耗的变化情况。直线和虚线分别代表实际功耗测量值和XPE 的估计值。我们可以看到即使在使用率和功耗处于高值时两条曲线依然靠得非常紧密。
4 y% [% R2 w# X; t" M$ X
这些结果表明赛灵思功耗估计器计算值与实际测量值一致,可以准确地预测功耗。此外,我们还可以断定我们推荐的方法能够起到预期效果,并且可以作为 XPE 的替代方案。更好的选择是将两种方法结合使用。同时采用XPE 和我们的方法来测试设计可对结果进行双重检查,确保您在XPE中修改数字时不会犯任何错误。例如,如果您没有在XPE 中正确输入时钟的平均扇出数字,或者误解了一个概念并错误填写对话框,那么得到的示意图就无法重合,即表明有错误存在,这样您就可以校正输入值,防止出现 误导性的估算结果。
9 h6 @2 {5 E6 v u/ X0 Y T
FPGA 开发板的额定规范,例如最大功耗或允许的内核温度范围,总是包含在开发板的数据手册中。不过,具有较高资源使用率和时钟频率的设计会超出这些额定值。因 此,必须确认功率调节器能为器件提供足够的电流,而且散热系统足以将温度保持在FPGA 设计的临界值以内。我们的方法可通过增加资源使用和时钟频率来测试开发板的可靠性能否满足高性能要求。这种测试有助于确定开发板上实现的设计所具备的最高 信号处理速率。此外,我们还可以了解是否需要升级开发板的功能和系统的冷却机制。
7 a7 T2 m+ X% u4 i
测试结果表明了我们的方法能够可靠地控制资源使用和评估功耗,因此工程师在设计前期阶段就多了一种电源管理选项。在采取进一步功能改进后,例如增加JTAG 接口、完全独立于器件的VHDL 代码以及通用的电流感应系统,这项设计将会成为FPGA 项目的关键工具。
欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/)
Powered by Discuz! X3.2