text: 新一代FPGA的速度变得越来越快，密度变得越来越高，逻辑资源也越来越多。那么如何才能确保功耗不随这些一起增加呢?很多设计抉择可以影响系统的功耗，这些抉择包括从显见的器件选择到细小的基于使用频率的状态机值的选择等。
  功耗包含两个因素：动态功耗和静态功耗。动态功耗是指对器件内的容性负载充放电所需的功耗。它很大程度上取决于频率、电压和负载。这三个变量中的每个变量均在您的某种控制之下。
  静态功耗是指由器件中所有晶体管的泄漏电流(源极到漏极以及栅极泄漏，常常集中为静止电流)引起的功耗，以及任何其他恒定功耗需求之和。泄漏电流很大程度上取决于结温和晶体管尺寸。
  恒定功耗需求包括因终接(如上拉电阻)而造成的电流泄漏。没有多少措施可以采用来影响泄漏，但恒定功耗可以得到控制。
  您在设计的早期阶段做出的功耗决定影响最大。决定采用什么元件对功耗具有重大意义，而在时钟上插入一个BUFGMUX则影响甚微。对功耗的考虑越早越好。
  并不是所有元件都具有相同的静止功耗。根据普遍规则，器件工艺技术尺寸越小，泄漏功耗越大。但并不是所有工艺技术都一样。例如，对于90nm技术来说，Virtex-4器件与其他90nmFPGA技术之间在静止功耗方面存在显着差异，然而，在静止功耗随工艺技术缩小而增加的同时，动态功耗却随之减小，这是由于较小的工艺有着更低的电压和电容。考虑好哪种功耗对你的设计影响更大——待机(静止)功耗还是动态功耗。
  除通用切片逻辑单元外，所有Xilinx器件都具有专门逻辑。其形式有块RAM、18×18乘法器、DSP48块、SRL16s，以及其他逻辑。这不仅在于专门逻辑具有更高的性能，还在于它们具有更低的密度，因而对于相同的操作可以消耗较少的功率。评估您的器件选项时，请考虑专门逻辑的类型和数量。
  选择适当的I/O标准也可以节省功耗。这些都是简单的决定，如选择最低的驱动强度或较低的电压标准。当系统速度要求使用高功率I/O标准时，计划一个缺省状态以降低功耗。有的I/O标准(如GTL/+)需要使用一个上拉电阻才能正常工作。因此如果该I/O的缺省状态为高电平而不是低电平，就可以节省通过该终接电阻的直流功耗。对于GTL+，将50Ω终接电阻的适当缺省状态设置为1.5V，可使每个I/O节省功耗30mA。
  当总线上的数据与寄存器相关时，经常使用片选或时钟使能逻辑来控制寄存器的使能。进一步来说，尽早对该逻辑进行“数据使能”，以阻止数据总线与时钟使能寄存器组合逻辑之间不必要的转换，如图所示。红色波形表示原设计;绿色波形表示修改后的设计。
  另一种选择是在电路板上而不是在芯片上进行这种“数据使能”。以尽可能减小处理器时钟周期。此概念是使用CPLD从处理器卸载简单任务，以便使其更长时间地处于待机模式。
  在一个设计的所有吸收功耗的信号当中，时钟是罪魁祸首。虽然一个时钟可能运行在100MHz，但从该时钟派生出的信号却通常运行在主时钟频率的较小分量(通常为12%~15%)。此外，时钟的扇出一般也比较高——这两个因素显示，为了降低功耗，应当认真研究时钟。
  如果设计的某个部分可以处于非活动状态，则可以考虑使用一个BUFG-MUX来禁止时钟树翻转，而不是使用时钟使能。时钟使能将阻止寄存器进行不必要的翻转，但时钟树仍然会翻转，消耗功率。不过采用时钟使能总比什么措施也没有强。
  隔离时钟以使用最少数量的信号区。不使用的时钟树信号区不会翻转，从而降低该时钟网络的负载。仔细布局可以在不影响实际设计的情况下达到此目标。
  对FPGA显然也可以使用同一概念。虽然FPGA不一定拥有待机模式，但使用一个CPLD中途栏截总线数据并有选择地将数据馈送到FPGA也可以省去不必要的输入转换。
  CoolRunner-IICPLD包含一种称为“数据门控”的功能，可以禁止引脚上的逻辑转换到达CPLD的内部逻辑。该数据门控使能可通过片上逻辑或引脚来控制。
  为什么深度学习仍未取代传统的计算机视觉技术？
  ASIC、FPGA、GPU，三种深度学习硬鉴方案哪种更被看好？
  21点电子工程师常犯错误大全，你中招了吗？
  中国会是全球制造业迁移的最后一站吗？
  北京航空航天大学教授，国内最早从事复杂数字逻辑和嵌入式系统设计的专家。