功耗是我们关注的设计焦点之一,优秀的器件设计往往具备低功耗特点。在前两篇文章中,小编对基于 Freez 技术的低功耗设计以及 FPGA 低功耗设计有所介绍。为增进大家对低功耗的了解,以及方便大家更好的实现低功耗设计,本文将对 FPGA 具备的功耗加以详细阐述。
FPGA 器件的一个比较特别的现象是其上电瞬间的电流比较大,有的时候甚至大于芯片正常工作的电流,这是因为 FPGA 内部的逻辑和互连线资源(SRAM 工艺)在上电的瞬间处于不确定状态,发生电流冲突的结果。
如果用户在设计的时候没有考虑到这个上电瞬间的打电流,电源模块不能够提供这么大的电流,芯片在上电过程中就会出现上电曲线不单调的问题,导致器件上电失败,以至于芯片无法正常工作。一般在器件手册中会给出这个上电电流值。
FPGA 在正常工作中,其消耗的总功耗由器件的静态功耗、动态功耗和 IO 功耗构成。静态功耗也叫待机功耗(standbypower),是芯片处于上电状态,但是内部电路没有工作(也就是内部电路没有翻转)时消耗的功耗;而所谓动态功耗是指由于内部电路翻转所消耗的功耗;IO 功耗是 IO 翻转时,对外部负载电容进行充放电所消耗的功耗。
如下式:
总功耗=静态功耗+动态功耗+IO 功耗
芯片的静态功耗是芯片处于待机状态下所消耗的功耗,它主要由芯片内部的漏电流产生。在高速的 40nm 器件中(如 straticIV),芯片的漏电流相对来说较大,因此静态功耗成为主要的电源功耗,也叫漏电功耗(leakagepower)。
静态功耗有一个显著的特点,就是它随着器件结温(junctiontemperature,TJ)的变化而变化较大。TJ 越大,功耗越大;TJ 越小,功耗越小,如下图所示。因此,控制芯片的结温可以有效的控制芯片的静态功耗。
FPGA 设计的总功耗包括静态功耗和动态功耗两个部分。其中,静态功耗是指逻辑门没有开关活动时的功率消耗,主要由泄漏电流造成的,随温度和工艺的不同而不同。静态功耗主要取决于所选的 FPGA 产品。
动态功耗是指逻辑门开关活动时的功率消耗,在这段时间内,电路的输入输出电容完成充电和放电,形成瞬间的轨到地的直通通路。与静态功耗相比,通常有许多方法可降低动态功耗。
采用正确的结构对于设计是非常重要的,最新的 FPGA 是 90nm 的 1.2 V 器件,与先前产品相比可降低静态和动态功耗,且 FPGA 制造商采用不同的设计技术进一步降低了功耗,平衡了成本和性能。这些 90nm 器件都改变了门和扩散长度,优化了所需晶体管的开关速率,采用低 K 值电介质工艺,不仅提高了性能还降低了寄生电容。结构的改变,如增强的逻辑单元内部互连,可实现更强大的功能,而无需更多的功耗。StraTIx II 更大的改变是采用了六输入查找表(LUT)架构,能够通过更有效的资源利用,实现更快速、低功耗的设计。
除常规的可重配置逻辑外,FPGA 正不断集成更多的专用电路。最先进的 PLD 就集成了专门的乘法器、DSP 模块、可变容量 RAM 模块以及闪存等,这些专用电路为 FPGA 提供了更加高效的功能。总体上看,采用这些模块节约了常规逻辑资源并增加了系统执行的速度,同时可以减少系统功耗。因此更高的逻辑效率也意味着能够实现更小的器件设计,并进一步降低静态功耗和系统成本。
不同供应商所提供的 IP 内核对于低功耗所起的作用各有侧重。选择正确的内核对高效设计至关重要,有的产品将注意力集中在空间、性能和功耗的平衡上。某些供应商提供的 IP 内核具有多种配置(如 Altera 的 Nios II 嵌入式处理器内核采用快速、标准和经济等三种版本),用户可根据自己的设计进行选择。例如,如果一个处理器在同一个存储分区中进行多个不同调用,则采用带板载缓存的 Nios II/f 就比从片外存储器访问数据的解决方案节约更多功耗。
如果用户能够从多种 I/O 标准中进行选择,则低压和无端接(non-terminated)标准通常利于降低功耗,任何电压的降低都会对功耗产生平方的效果。静态功耗对于接口标准特别重要,当 I/O 缓冲器驱动一个高电平信号时,该 I/O 为外部端接电阻提供电压源;而当其驱动低电平信号时,芯片所消耗的功率则来自外部电压。差分 I/O 标准(如典型值为 350 mV 的低开关电压 LVDS)可提供更低的功耗、更佳的噪声边缘、更小的电磁干扰以及更佳的整体性能。