如何利用FPGA降低手持设备MPU的功耗
消费类手持设备市场正呈跳跃式发展。便携式产品处理能力不断增加,所支持的应用越来越多;产品更新换代速度加快,新产品必须满足上市时间要求,以便获得最大的市场机会;产品生命周期的缩短要求缩短开发周期,同时更加强调可复用性和可重复编程能力。新兴手持设备市场还有一个有趣的趋势,即一个系列中的每种设备的出货量越来越少,但系列设备间的定制功能却越来越多,进而有效提升了产品的总出货量。这样,关键挑战就变成了如何开发一个可广泛复用同时又可定制的系统。
为应对上述挑战,越来越多的设计人员开始使用FPGA进行手持产品的开发。FPGA的功能日益强大和丰富,而门数、面积和频率也在不断增加。FPGA的开发和周转时间要比定制ASIC短得多,可重复编程的额外优势使得FPGA成为手持嵌入式系统领域中颇具吸引力的解决方案。在基于ASIC或FPGA的设计中,设计人员必须认真考虑某些性能标准,他们面临的挑战主要体现在面积、速度和功耗方面。
与ASIC一样,供应商在FPGA设计中也需要应对面积和速度的挑战。随着门数不断增加,FPGA需要更大的面积和尺寸来适应更多的应用,设计工具需要采用更好的算法以便更有效地利用面积。不断演进的FPGA技术也给设计人员带来一系列新的挑战,电源利用率就是其中之一,这对于为手持或便携式设备设计基于FPGA的嵌入式系统来说是急需解决的问题。
嵌入式系统中的FPGA
典型的嵌入式系统由处理器、存储器、包括USB、SPI、I2C在内的标准接口以及液晶显示器、音频输出等外设组成。设备的核心仍是处理器和处理器接口,它们通过板载连线连接到各个外设。系统性能主要取决于处理器性能,而处理器通常具有非常标准的架构,因而不容易定制。
有时处理器可能忙于处理来自低速外设的信息,虽然在这种情况下处理器使用率可能达到100%,但并不是在做以微处理器为中心的事务,而是工作在特别低的性能水平。不管其内核频率是多少,微处理器必须等待来自低速时钟的数据。这也会导致较高的功耗,因为处理器的利用率是100%。其结果将缩短电池寿命,并且需要更大的散热器或风扇进行冷却,最终影响整个系统的可靠性。
于是,FPGA在这方面开始发挥重要作用,因为它们能从处理器卸载许多外设交互任务。如图1所示,利用标准千兆TCP/IP网络实现的未压缩音视频数据流的嵌入式分布系统。它有一个专用DSP处理器,这个处理器通过一个标准总线接口与赛灵思的FPGA相接,FPGA再连接到各个低速外设。
图1:用于音频/视频分布系统的FPGA架构。
作为启动开发套件,这个FPGA通过I2S接口连接12位的PCM音频输入和12位的PCM音频输出;它还连接视频编码器和解码器,并与I2C从器件和RS232器件进行通信;连接到FPGA的通用I/O很少。与处理器相连的标准总线工作在高速的66MHz,而音频外设工作在低速的1.182MHz;UART和I2C串行接口分别工作在56.6kHz和100kHz。由于数据传输发生在多个时钟域,因而只有处理器能配置数据流。
在这种情况下,处理器不再与低速外设交互,而由FPGA从低速的PCM ADC音频器件读取数据,并将数据存放在FPGA的内部缓存中。处理器可以周期性地从这个缓存读取数据,或者当缓存中有足够数据时,由FPGA向处理器发送一个中断。这样,处理器就有更多的时间执行以处理器为中心的必要工作,在空闲时则进入睡眠模式。
功耗问题
在电池供电的嵌入式系统中,节能是最重要的考虑因素。功耗可以被分成三大类:启动功耗、静态功耗和动态功耗。设计人员无法控制启动功耗,而启动功耗在决定电源选型中扮演着重要的角色。大多数最大电流值指的就是这个阶段所达到的值。但静态功耗和动态功耗是两个不同的领域,通过合理的规划和以下正确的指导原则,使用FPGA的嵌入式设计人员可以在功耗优化方面作出显著改进。
静态功耗是指系统不工作时仍有电流流过元件时产生的功耗,一般由器件偏置电流和漏电流引起。静态功耗也取决于工作电压,降低工作电压可以降低静态功耗,但这个策略并不总是掌握在设计人员手中。设计人员能做的是定义合理的架构,在这种架构下需要使用的资源最少,同时尽可能使用资源共享,并以最高效的方式使用FPGA模块。
减少静态功耗的另外一种技术是在设计周期早期进行功耗预估,改变拓扑或使用不同的IP模块。例如,赛灵思的xPower Estimator工具这时就非常有用,它能很早知道设计是否满足功耗预算。早期阶段的功耗预估也许不完全准确,但作为指导工具确实很有帮助。
动态功耗是由于FPGA门的一些行为(比如信号开关)引起的,当两个门暂时导通时,将产生电流流动和电容。信号开关的
- 利用FPGA和新技术,使LCD进入HDTV市场(08-27)
- 基于DSP和FPGA的电视观瞄系统设计(09-02)
- FPGA与SRAM相结合完成大容量数据存储(09-03)
- HDTV接收机中Viterbi译码器的FPGA实现(09-09)
- 基于FPGA的液晶显示接口设计 (09-26)
- 解决硬盘驱动器能耗难题(10-13)