利用FPGA协处理器优化汽车信息娱乐和信息通讯系统设计
另外,在图像处理中应用FPGA协处理后可以由单个FPGA完成包含MPEG2、MPEG4和H.264在内的多标准视频编解码。事实上,这里可以使用与无线通信应用中相同的FPGA。
FPGA协处理器通过直接存储器访问(DMA)接口与基于处理器的系统整合在一起。运行于嵌入式处理器上的软件层为每个协处理器提供一个应用接口,每个协处理器都有一个初始化例程,可以通过正确的应用协处理器加载FPGA。在应用程序初始化后,软件就调用协处理器控制参数、时序和数据流进出协处理器。根据具体的实现标准不同,在FPGA协处理器和控制处理器之间可能会有高等级的交互,也可能FPGA协处理器完全独立工作。在这种情况下,控制处理器只是简单地加载算法,然后就处于独立运行状态。
加载进FPGA的每个程序映像(program image)需要整合进周边系统中。FPGA的可编程功能需要一个定义完善的系统接口才能实现,因为每个基于FPGA的加速器都要依赖于它才能完成通信。通常FPGA会有多个接口连接控制器、存储器及其它外围器件或连接器。FPGA可能同时包含多个协处理器,这些协处理器共享一个连接控制处理器的接口。每个外围器件或协处理器可以拥有额外的总线用于高性能数据流处理。
在视频编解码器中,一般有一个输入源和一个输出目标。Delphi系统架构中的视频输入接口是Amanda ASIC的一部分,并采用ITU-R BT.656接口用于视频流。这个接口以后可以通过ASIC进行扩展和管理,以适合不同种类的显示屏。FPGA可能需要连接到其它2条总线,即ASIC芯片上的存储器总线和主控制处理器的PCI/MPX总线。通过这三个连接,FPGA就能支持高带宽的视频和通信应用。
FPGA可以为特定应用处理架构提供可再编程的平台,从而弥补主处理器的不足。然而,FPGA程序与标准处理器架构的程序具有本质的区别。FPGA可以提供带可编程逻辑单元、布线资源、DSP处理模块、存储器和I/O的高性能硬件结构。FPGA的系统架构执行方式与标准ASSP基本相同,即系统的一些专用功能是通过硬件和软件开发工具设计和实现的。这些工具的输出是一种二进制映像文件,这些映像文件加载到FPGA中后将能确定所有可编程逻辑单元、布线资源、DSP处理模块等的功能。主处理器可以在系统运行期间将这些二进制映像文件加载进FPGA。可以创建各种不同的程序映像来支持汽车信息通信系统中可能会用到的MPEG2、MPEG4、H.264、GSM/EDGE、WCDMA、1xEVDO、GPS、3D图形加速器或其它算法。根据用户在娱乐系统中的菜单选择,特定应用程序可以由主处理器下载到FPGA中,然后接受主处理器的控制。
FPGA用于可编程功能要求良好定义的系统接口
主处理器对特定硬件加速器的控制一般是通过寄存器和存储器接口完成,每个寄存器控制硬件加速器工作的某些方面。Delphi系统中默认的协同芯片就是这样的,对于加载到FPGA的每个协处理器架构来说也将是这样。采用FPGA,对于处理像标准化寄存器和存储器接口以控制编程到器件中的协处理器这样的任务来说是很容易的。这个标准接口可以定义如何向协处理器读写数据、如何开始和停止读写、如何复位,并包含一套控制特定应用操作的寄存器。所有这些寄存器都是FPGA内部线性地址映射中的一部分,因此软件物理器件驱动器很容易访问这些寄存器。
用于协处理器的软件物理器件驱动器的抽象级别要比用硬件实现的寄存器接口高。软件驱动器提供了从系统的算法参数到控制寄存器的映射,因此应用软件非常容易编写和维护。更高层模型器件驱动器在底层硬件实现变化过程中仍保持相当的可移植性。Delphi系统中的软件架构可以支持软件或硬件协处理器来实现算法,它提供了几个抽象层,这些抽象层将在软件或硬件中的算法实现与物理实现分离开来。FPGA协处理器非常适合Delphi的软件和硬件架构。
FPGA被设计用于基本架构与Delphi系统架构类似的许多系统中。这些系统内含一个以上的控制或DSP处理器,并利用FPGA来加速那些需要高性能处理的任务。实现FPGA协处理器的关键挑战在于以下几个方面:设计用于FPGA的不同的硬件加速器;硬件加速器与外部控制处理器整合;创建控制硬件加速器的软件层。所有要求的硬件加速器包括用于视频和通信应用的主流算法。这样的应用今后会有广阔的市场,而且这种市场发展后会培养更多的特殊标准知识产权(IP)硬件加速器专业设计公司,这些公司能够提供可以直接用在先进的低成本FPGA中的现成算法。另外,也可以购买针对MPEG2、MPEG4、H.264、WiFi和其它视频与通信标准设计的商用IP模块。图3就是Amphion公司推出的MPEG4解码器IP模块框图,可用于ASIC或FPGA中。
![]() |
图3 |
下一步是将FPGA中的硬件加速器与用于控制、数据输入和输出的外部总线整合起来。设计工程师可以利用新型开发工具轻松地实现这一步。设计工程师可以使用Altera公司提供的系统集成工具SOPC Builder从可用的IP列表中选择合适的IP模块。在选择时工具会提供一份参数化菜单,用户可以在实现以前控制不同的架构选项。一旦参数设定后,模块就会包含在工程师准备集成的其它外围器件和处理器列表中。当每个IP模块都选好并设定参数后,还需要将其集成进处理架构中。
SOPC Builder使设计工程师可以定义高性能的交换架构(switch architecture),并通过交换架构将各种硬件加速器和周边器件与外部主处理器连接起来。在模块互连的直观矩阵图上通过点击鼠标就可以完成这种开关架构的定义。在定义好之后,SOPC Builder就能自动组合各个IP,然后生成硬件描述语言的描述,并自动综合成最终的FPGA程序。在运行期间将最终程序下载到FPGA,从而实现特定算法的协处理器。
硬件整合完成后,需要用软件物理器件将高层软件控制与用于控制硬件加速器的具体寄存器和存储器映射架构分隔开。用于控制硬件加速器的寄存器和存储器是参数化IP模块的标准组件。然而,多个外围器件与加速器的整合需要一份在FPGA上实现所有可编程特性的寄存器和存储器映射。SOPC Builder在将IP组装进用户定义的交换架构时能够自动创建这样的寄存器和存储器映射。
每个IP模块都包含一套预先定义好的软件物理器件驱动器,这些驱动器主要用于外部主处理器对IP模块的控制。SOPC Builder能够自动组装各个软件物理器件驱动器,并自动将每个驱动器与被它控制的IP模块相关的寄存器和存储器映射关联起来。因此SOPC Builder能够通过这种方式自动创建并整合FPGA协处理器和控制处理器的硬件与软件架构。SOPC Builder可以满足FPGA快速发展的性能要求,并适应FPGA不断增强在复杂系统实现中应用的能力。
推动FPGA技术快速发展的因素
可编程逻辑器件自从20年前推出以来得到了迅猛发展,已经从低水平的胶合逻辑发展成目前具有最低成本、最高可编程处理性能的器件。驱动FPGA性能和成本的二大关键要素是:FPGA架构的发展以及FPGA使用半导体技术的方式。FPGA架构提供的可编程逻辑单元阵列是与可编程布线资源组合在一起的。在早期的低密度FPGA中,这种架构能完成简单处理单元的互连。随着FPGA密度的提高,阵列架构可以提供高度并行处理的能力。目前FPGA架构的整个处理阵列内包含有存储器模块、DSP模块和可编程I/O,因此能够轻松满足汽车信息处理系统的性能要求。
FPGA发展的另外一个重要驱动源是工艺技术及其对性能和成本的影响。采用最新一代工艺技术可以提高FPGA的密度和性能,降低FPGA的成本。同时,FPGA的广泛应用反过来也促进工艺技术的发展。FPGA对半导体工艺技术的发展极具价值,因为它们使用的规则结构能够在其生命周期的早期就投入批量生产。FPGA的规则结构非常方便产品缺陷测试中统计数据的收集,这对精确调整工艺技术以达到更高制造良品率是非常重要的。FPGA和工艺技术之间的共生关系不断地提高着FPGA的密度,并降低器件的成本。因此相对专用ASIC和ASSP来说,目前Altera的Cyclone系列低成本FPGA在价格方面极具竞争性。
本文小结
汽车娱乐系统的技术和差异化在不断快速发展。先进的系统架构服务于大部分主流汽车市场,并通过附加ASSP和软件的支持实现高端产品的差异化。FPGA提供了高性能和灵活的协处理平台,并将许多ASSP的功能整合进一个可再编程平台。FPGA协处理器非常适合Delphi架构这样的主流汽车娱乐架构。将FPGA协处理器用作高端汽车娱乐系统架构的一部分后,汽车公司就可以通过软件编程提供ASSP无法单独提供的多种高端视频和通信性能。灵活的高端汽车娱乐架构利用FPGA可以在汽车销售甚至整个汽车生命期内不断实现新的功能。在销售和售后阶段增强汽车娱乐系统功能的能力可以提升汽车售中和售后的价值,而以前被租汽车的转售价值仍是汽车制造商赢利的主要来源。
评论