|
用作嵌入式处理器定制外围器件的FPGA |
FPGAs As Custom Peripherals For Embedded Processor
|
数字外围器件可以被定义为一块电路,将信号从外部(相对于处理器而言)脉冲源转换为一种可由处理器进行存取的形式。这种外部脉冲源有可能只是一个机械开关,也可能很复杂,比如一个运行高级通信协议的高速数据链路。
不管外部信号的形式如何,数据都必须以处理器能够接受的形式来提供。这可以通过一个简单的系统地址/数据总线接口来实现,也可以根据目标系统的所需数据带宽通过某些具有较高速度(或者是专用)的数据链路来实现。
现场可编程门阵列(FPGA)具有大量的逻辑电路、存储器和布线资源,已经被应用于ASIC原型设计和高端系统开发。此类器件包括多达80000个逻辑元件和容量达数Mbit的片上RAM。这些器件通常包含由可购置的知识产权(IP)内核以及用户定制逻辑器件所构成的复杂功能,旨在实现高速数据通路和数据处理功能。
在较为简单的系统里,FPGA常常被用作一种执行连接逻辑和系统控制功能等较为简单的逻辑功能的工具,为实现电路板上其他功能的集成提供帮助。这些器件具有较少的逻辑和存储器资源,而且总体性能较低。然而,对于某些目标应用来说,它们在成本方面比高性能器件具有优势,而且提供的性能也足以满足要求。
如今,想找到一个包含了您的系统所需要的各种外围器件的嵌入式处理器并非难事。因此,是否还需要采用定制的外围器件或接口?处理器未必是您所选择的架构,工作性能也有可能并不符合您的要求,而且在许多场合还存在一些典型的嵌入式处理器无法在片上实现的功能。如果采用的是一个外部外围器件,则它有可能与采用旧式技术的处理器不兼容,而为了编写老式软件,这种处理器又是必须采用的。
一个处理器如果拥有多款变种就会带来一个问题:即每款变种都需要进行其独特的掩模组和测试程序的开发。然而,掩模组的制造成本正变得越来越贵,这将使处理器变种型号减少,原因是嵌入式处理器制造商出于降低成本的考虑而努力使其产品库的配置更加合理。
高端和低成本FPGA具有专门针对某种特定类型的器件以及特定用途的独特功能组合。当然,由于FPGA是可编程的,而且具有巨大的灵活性,因此对于任何特定的系统而言并不存在"恰好对应"的终端市场。由于存储器要求的缘故,在小型系统中有可能需要采用高端FPGA,而在高性能系统中可能需要使用低成本的器件。如Altera
Stratix系列等高端器件通过采用锁相环(PLL)而把逻辑器件与大量的片上SRAM、专用数字信号处理器(DSP)功能块、众多的高带宽I/O标准以及板载时钟发生电路组合在了一起。
在对从一个复杂的外围器件传送至外部接口的数据进行缓冲处理这一方面,片上SRAM特别有用,这样一来从FPGA至处理器的数据传输就可以与一个外部信号源接收数据的操作异步进行。当采用高速外围器件(尤其是那些运行通信协议的外围器件)时,对于确保带宽要求是最为重要的。
Stratix数字信号处理器件将乘法器和加法器集成在了一起,旨在对信号处理算法的执行提供帮助。在FPGA中采用这些部件可以使处理器不再承担复杂的功能,在处理器上执行这些复杂功能不仅效率较低,而且还有可能降低最终的系统性能。这种运用协同处理器的做法还能够使用SRAM,方法是采用共享数据存储器在异步运行的处理器和信号处理功能元件之间传递数据。
Stratix FPGA提供了种类众多的高性能I/O标准,能够以很高的数据速率在FPGA与数据源之间或FPGA与支持一种兼容型接口标准的嵌入式处理器之间进行数据传送。有多款处理器提供了板载Hypertransport和/或
RapidIO接口,这些接口能够通过采用外围FPGA中的一个匹配IP内核的方法来传送数据,这两种接口均可以作为一个来自Altera或其AMPP伙伴公司之一的全参数化IP内核来使用。这便是在嵌入式处理器与外围FPGA之间实现高速数据传送的可行方法。
锁相环的运用使采用不同内部时钟的FPGA能够正常操作,因此,处理器接口与FPGA中实现的外围器件可以具有不同的运行速度,同样,也可以采用共享SRAM来实现时钟域之间的速率匹配和同步。
对于要求较低成本的系统,一款来自Altera Cyclone系列的器件可提供中等数量的逻辑资源和存储器、PLL以及一组数量有所减少的I/O标准。这种类型的器件系列是专为实现全面的低成本而设计的,为此牺牲了某些高端功能。低成本器件密度较低,因而更加适合于实现那些采用系统地址总线法来与处理器相连的外围器件,或者那些有可能采用如SPI或I2C等被大多数嵌入式处理器用作片上外围器件的串行接口的低带宽外围器件。
最后,对于FPGA而言有一些专用器件,比如那些具有内置高速收发器、适合于在高达3.125GHz的频率条件下工作的器件。这些器件可提供非常高的数据带宽,主要用于FPGA结构内部的复杂通信系统。此类器件将支持系统内部的RapidIO和/或Hypertransport接口的较高数据速率。嵌入式处理器很有可能就位于这种高带宽数据流的数据通路之中,但是,它希望利用一个性能较低的FPGA/处理器标准来进行连接,在这种场合,FPGA负责执行输入数据的监控功能,以便进行统计信息的收集或故障监控。
SOPC Builder(Altera Quartus II设计软件的一部分)等高级设计工具方便了IP内核与定制逻辑器件的轻松集成。这通过一个简单(系统地址总线)、复杂(诸如PCI等基于IP内核的总线)或专有接口把以硬件方式实现的外围器件(FPGA)与系统中的嵌入式处理器直接相连。
从系统设计的角度来看,采用标准接口的主要目的之一就是使外围器件对系统软件而言是透明的。如果采用的是系统总线法,则FPGA将被作为其他的存储变换外围器件来处理,丝毫不受FPGA内容的影响。事实上,FPGA内部的外围器件甚至可以在不对系统软件做任何改动的情况下进行全面的重新设计。即使在PCI等总线用作接口的场合(嵌入式处理器具有一个内置PCI桥接器),处理器的程序设计模型与PCI总线的传统使用方式相比并没有什么差异。
FPGA还可以从本质上对系统设计进行预检验。随着嵌入式处理器的不断更新换代,分立式外围器件不一定遵循相同的接口或标准发展趋势。借助在FPGA中实现外围器件的方法,外围器件便可以很容易地转至较新的架构(通常只需进行极少的设计工作),从而使外围器件的性能能够跟上嵌入式处理器的发展。还可以根据用户的需要对外围器件进行精确的客户化设计,而不必采取折衷方案。
由上可见,尽管FPGA通常被用作系统级功能部件(在高端)和连接逻辑电路(在低端),但是,将其用作嵌入式处理器的伴随芯片还能够获得更多的价值。FPGA可提供用于满足各种性能/价格需求的众多解决方案,而且,利用板载存储器、通用I/O标准以及时钟电路,它还能够在许多场合提供分立型、"现货供应"外围器件所不具备的优点。凭借高端(Stratix)、低成本(Cyclone)和基于收发器的器件(Stratix
GX)系列,Altera公司拥有了用于满足各类外围器件扩展需求的品种齐全的器件产品库。除此之外,仅Altera公司自己就能够提供超过50种IP内核,再加上如SOPC
Builder等高级系统设计工具,FPGA将在基于嵌入式存储器的系统中的外围器件实现方面起到越来越大的作用。
(Altera公司供稿)
|
|