利用这一事实——设计中的大部分电路都有一定的余度,不需要将所有逻辑置于高性能状态。以Stratix IV FPGA为例,它由逻辑阵列模块(LAB)、TriMatrix存储器和DSP模块构成,利用可编程功耗技术将少量的关键时序逻辑模块设置为高速模式。时序不重要的逻辑模块设置为低功耗模式,能够大大降低低功耗逻辑的泄漏功耗。而且,可编程功耗技术将没有使用的逻辑、TriMatrix存储器以及DSP模块设置为低功耗模式,进一步降低了功耗。
在任何设计中,Quartus II软件能够自动确定设计中每一通路的余量,通过调整晶体管反向偏置电压,把晶体管,同时把逻辑模块设置为合适的模式——高性能或者低功耗。例如,将Stratix IV FPGA内核的n-MOS晶体管设置为这两种模式。
● 低功耗模式,Quartus II软件减小反向偏置电压,使得晶体管很难接通。这降低了时序不重要电路的亚阈值漏电流和不需要的静态功耗。
● 高性能模式,Quartus II软件增大反向偏置电压,在几个关键时序通路上的晶体管更容易接通,以满足设计中规定的时序约束要求,提高性能。
采用同样的方法也能将p-MOS晶体管设置为合适的模式,从而设置LAB、TriMatrix存储器和DSP模块为高性能或者低功耗模式。这样,通过改变晶体管的电气特性,Stratix IV FPGA可编程功耗技术以高速逻辑和低功耗逻辑的最佳组合,实现了最好的性能和最低的功耗。例如,图3所示的Stratix IV EP4SE680 FPGA在85℃时的典型设计,和没有采用可编程功耗技术时相比,静态功耗降低了37%。
图3 可编程功耗技术降低了静态功耗
我们可以精确地控制一个设计达到其性能要求而需要的高速逻辑数量。在每一个逻辑块基础上控制高速和低功耗逻辑的设置(每个逻辑块包括两个LAB,或者一个LAB和DSP模块,或者一个TriMatrix存储器,都含有相关的走线)。例如,在Stratix IV FPGA中,可以分别对5000多个逻辑块进行控制,设置为高速或者低功耗模式,把设计功耗降到最低。Quartus II开发软件能够将逻辑块设置为高速或者低功耗模式,自动对设计进行优化,无须用户的干预。
Quartus II软件每次针对Stratix III FPGA进行设计编译时,自动对设计进行优化,达到规定的时序约束,同时实现最低功耗。得到的编程文件被装入FPGA,包括将每个逻辑块设置为高速或者低功耗配置的信息。在Quartus II软件中完全可以看到逻辑块高速或者低功耗模式的最终设置。