视频、影像和电信市场的标准推动了异构可重配置 DSP 硬件平台的使用。就本文而言,这些平台包括 DSP 处理器和 FPGA,它们提供的现成硬件解决方案可以解决视频、影像和电信设计中的重大难题,但仍不失产品差异化所需的足够的可定制性。
据市场研究公司 Forward Concepts 于 2005 年发表的一则调查报告(图 1)称,选择处理器和 FPGA 的主要标准不是器件本身,而是开发它们的工具。这一概念对于包含 FPGA 和 DSP 处理器的平台亦应成立。
图 1 – 2005 年 Forward Concepts 市场调查
在 DSP 处理器和 FPGA 之间,传统的 DSP 开发者通常选择前者,因为设计流程是已知的,而异构系统的优点则难于评价。可重新配置的硬件平台限制了硬件自由度,设计流程因此而具有较高的自动化程度。这种自动化排除了设计的复杂性,从而在 DSP 设计界进一步推广了硬件解决方案的优势。
DSP 硬件平台的优点
FPGA 和 DSP 处理器具有截然不同的架构。在一种器件上非常有效的算法,在另一种器件上却可能效率非常低。如果目标应用要求大量的并行处理或最大的多通道流量,那么单纯基于 DSP 处理器的硬件系统就可能需要更大的面积、成本或功耗。一个 FPGA 协处理器仅在一个器件上就能提供多达 550 个并行乘法和累加运算,从而以较少的器件和较低的功耗为许多应用提供同样的性能(图 2)。
图 2 – 基于 FPGA 的 DSP – 并行
尽管 FPGA 在处理大量并行数据方面出类拔萃,但对于定期系数更新、决策控制任务或高速串行数学运算这类任务来说,它们的优化程度比不上处理器。正是 FPGA 和 DSP 处理器的结合为广泛的应用提供了制胜的解决方案。
例如,对于采用模式识别技术的智能摄像机来说,异构可重配置 DSP 平台可以作为理想的选择。FPGA 的并行处理能力非常适用于图像分割和特征提取,而视频和影像 DSP 处理器则更适合统计模式分类等数学密集型任务。异构系统可以更好地利用流水线和并行处理,这对于获得高帧速率和低延迟来说至关重要。
基于异构平台的设计流程的优点
基于异构平台的设计流程把单独处理器和 FPGA 设计流程采用的设计自动化概念扩展到整个平台。基于平台设计的基本原则是剔除基于硬件系统和基于软件系统的“中间件”。这样就可以让缺乏或完全没有 FPGA 设计经验的 DSP 设计者能够评估和利用 FPGA 协处理器的性能、成本和功耗优势。
基于平台的设计流程应能自动生成内存映射、软件接口的头文件和驱动程序文件以及硬件的接口和中断逻辑。整体系统的改动对单个软件和硬件组件的影响有限(图 3)。
图 3 – 软硬件接口生成
通过这种自动化,开发者个人不必再掌握设计 FPGA 硬件、DSP 处理器应用代码以及接口逻辑和软件所需的庞杂技术。
设计 FPGA 协处理器
任何给定的技术中都有多种方法可以实现信号处理算法。算法步骤常常受到目标硬件的影响。当目标是异构 DSP 硬件平台时,实现方法的选择就成了一个二步过程。您必须首先选择最合适的硬件器件,然后再确定哪种实现方法适合该器件。
在可重新配置的 DSP 硬件平台上,处理器将作为主处理单元并且控制 FPGA。而 FPGA 则用作协处理器(其中,数据传入 DSP 处理器进行同步,然后传出),或者用作预处理器或后处理器(其中,数据从高速接口传入)。FPGA 的最佳用法取决于系统数据速率、格式和运行参数。
像德州仪器公司 DSP 的 Code Composer Studio 这类工具包含代码分析器,用来识别可以下载到 FPGA 的软件“热点”。20% 应用代码占用 80% 可用处理器 MIPS 的情况并不罕见。
需要一个接口将 FPGA 连接到硬件平台上独立的 DSP 处理器。可重新配置的 DSP 平台通常能支持较多通用接口(如德州仪器公司的 16/32/64 位 Tic6x DSP 扩展存储器接口 (EMIF),适用于系统控制和协处理任务)和较多高速串行接口(如 SRIO 或视频接口,用于预处理和后处理操作)。
系统中加入 FPGA 协处理器后,软件实现就将由算法描述转变为数据传递与函数控制。对于应用软件开发者来说,FPGA 协处理器将显示为一个硬件加速器,可以通过函数调用对其进行访问。
Xilinx 解决方案
在MathWorks 的 Simulink 和 MATLAB 建模环境的基础上,Xilinx 为 FPGA提供了一个完整的 DSP开发环境。浮点 MATLAB 中所描述的算法可以用 AccelDSP 合成到 Xilinx® FPGA 的 DSP 功能模块中。System Generator 允许用 Simulink 将这些模块与一个由 90 多个经 Xilinx 优化的 DSP 模块组成的库结合起来,从而形成完整的基于 FPGA 的 DSP 系统。
System Generator 支持硬件协同验证,用硬件上运行的实现过程取代部分软件模拟。这样,您就可以验证硬件中的实现过程并且加速 Simulink 的模拟。
现在的 System Generator 在 FPGA 协处理器与德州仪器的 DSP 处理器之间自动生成基础架构,以这种方式支持基于平台的设计。这种支持针对平台,最初是为 Xilinx 视频协处理套件提供的。System Generator 将来的版本将包括对其他平台的支持。
用这种新型的自动方法,System Generator 通过一些叫做“共享存储器”的特殊模块在软硬件之间提供一个抽象层。对于硬件开发者来说,这种共享存储器的作用相当于 FIFO、RAM 或寄存器的一个端口(图 4)。
图 4 – 共享 System Generator 的 FIFO
数据传入和传出 FPGA 的操作是通过对应用软件中的共享寄存器之一执行一个简单函数调用来完成的,此函数调用在 System Generator 自动生成的驱动程序文件中予以定义。这个流程还支持中断生成,以实现处理器和协处理器之间的有效执行。
结论
FPGA 的并行处理能力可大大改善视频、影像和电信应用的性能、成本效率和功耗,这些应用或者已经受益于并行 DSP 处理,或者需要优化的多通道处理。依托基于平台设计方法的异构可重配置 DSP 平台使不熟悉 FPGA 设计的传统 DSP 设计者能够快速评估 FPGA 协处理器为其特定应用带来的好处。