打印
[Quartus]

利用FPGA解决手持设备MPU功耗难题

[复制链接]
1543|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kakio|  楼主 | 2011-10-18 07:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
消费类手持设备市场正呈跳跃式发展。便携式产品处理能力不断增加,所支持的应用越来越多;产品更新换代速度加快,新产品必须满足上市时间要求,以便获得最大的市场机会;产品生命周期的缩短要求缩短开发周期,同时更加强调可复用性和可重复编程能力。新兴手持设备市场还有一个有趣的趋势,即一个系列中的每种设备的出货量越来越少,但系列设备间的定制功能却越来越多,进而有效提升了产品的总出货量。这样,关键挑战就变成了如何开发一个可广泛复用同时又可定制的系统。为应对上述挑战,越来越多的设计人员开始使用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门的一些行为(比如信号开关)引起的,当两个门暂时导通时,将产生电流流动和电容。信号开关的速度决定了功耗的大小。影响动态功耗的另外一个因素是电路内部结构中形成的固有电容。动态功耗是时钟频率、正在开关的门数量和这些门开关速率的函数。门扇出和走线上的电容负载会增加动态功耗,并且功耗值正比于电容、电压和频率平方的乘积。
设计人员对这种功耗具有最大的控制能力,他们可以利用许多技术实现动态功耗的最大改善。降低信号开关频率可以使功耗呈指数式下降。正如图1所示,用于UART的控制逻辑、奇偶校验或帧超限错误都发生在速度较低的时钟域。即使门数没有减少,功耗也会下降。设计人员还可以通过降低整体工作频率(如果可行的话)来减小动态功耗。例如,在完成可行性和性能分析后,设计人员决定上述设计不仅能工作在133MHz,也能工作在66MHz。DSP支持这两种速率,而减小电压也有助于降低功耗。
另外一种技术是减少处于工作模式的有效门数。有时某部分逻辑虽然在开机时被打开和配置,但实际上不要求做任何事情。例如,模拟音频捕获单元处于工作状态,设备却不在执行任何数字SPDIF音频捕获。在这种情况下,一般的数字SPDIF音频捕获电路仍将执行数据采样、双相解码等工作,因而无谓地浪费功率。如果禁用整个数字SPDIF音频捕获电路,使电路中不发生任何信号开关动作,那么动态功耗将会显著降低。
设计人员可以禁用传送到这部分电路的时钟来达到这个目的。一种简单的做法是将时钟信号与使能信号相“与(AND)”,如图2所示。如果使能信号是低电平,那么与门的输出将保持低电平。如果使能信号为高电平,与门将输出时钟信号。

图2:一种简单的时钟选通机制。
还可以使用其它方法。如果可能并且拓扑又支持的话,可以通过复接地址和数据线来减少信号线数量。在我们这个例子中,到视频编码器的输出是16位数据,我们可以把它复接成8位,然后分别在时钟的两个沿(上升沿和下降沿)发送出去。这样做也能节省动态功耗。此外,选择串行接口代替并行接口也能降低功耗。使用带较低电容负载的LVTTL或LVCMOS I/O也很有用。
嵌入式处理器
将处理器嵌入到FPGA中是手持设备设计人员可以采用的又一种策略,它可以带来很多好处。首先,减少了定制处理器带来的上述挑战。其次,外设和处理器之间的交互发生在FPGA内部,因而可以减少I/O数量。由于I/O会消耗相当多的功率,此举也能达到一定程度的节能效果。赛灵思的Virtex-5版本支持PowerPC 440处理器、硬处理器和MicroBlaze软处理器,所有这些处理器都可以被设计人员用来创建高端或低端应用系统。
随着90m和65nm半导体技术的发明,门的尺寸在不断缩小,导致静态功耗问题越来越突出,在对功耗指标越来越敏感的今天,这是一个极具挑战性的现象。由于功耗问题获得了众多FPGA供应商的重视,在这个领域中已出现许多令人兴奋的新技术。低功耗设计将决定一个系统的集成能力有多强,业界也迫切需要将注重功耗的设计技术标准化

相关帖子

沙发
AutoESL| | 2011-10-18 09:40 | 只看该作者
学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

826

帖子

1

粉丝