利用FPGA加速器模块增压 为真正发挥FPGA视频分析系统的全面潜力,我们需要将视频加速引擎集成到嵌入式系统中。 我们预见到几个性能瓶颈,因此设计小组开始采用VHDL进行一组加速器的早期开发。 作为赛灵思ISE设计套件和嵌入式开发套件 (EDK)的一部分,代码剖析器帮助我们进一步确定性能瓶颈并开发设计所需要的所有加速器模块。 表2提供了系列IP内核的全面列表。
表2 – 为第三代MVE / C-MVA开发的专用硬件加速模块IP内核系列
与其他开发小组一样,我们的开发小组也分别由不同的硬件和软件开发人员组成。对于维持开发人员的生产力以保证项目的成功来说,在这两个设计领域之间保留足够的抽象非常关键。我们利用Xilinx Platform Studio中的Create
IP Wizard来改进这一任务,为硬件加速模块生成RTL模块和软件驱动文件。 这些模块包括访问寄存器所需要的接口逻辑、嵌入式系统中的DMA逻辑和FIFO。一旦利用模块创建了RTL,我们就将其放到嵌入IP目录中,设计人员可根据需求进一步修改。 我们的IP内核开发流程包括一个通用的标准外设模块开发流程,用于基于PLB46MPMC-OPB的回传。这些外设包括单端和多I/O原型 (SIMO,MIMO, MISO模型),支持我们为要求苛刻的图像流处理算法灵活创造多线程协处理器流水线。在设计和定制不同分析引擎的过程中,通过近乎任意次序对IP内核进行组合和配置,我们达到了这方面的要求。 MVE分析引擎由InstantVision嵌入式软件模块以及构成C-MVA分析协处理器的硬件加速器组成。我们在一片Xilinx Spartan-3A-DSP 3400A FPGA中实现了MVE的原型,并创建了SoC参考设计。其中包括所有通信和数据流所需要的I/O功能(参考图2了解完整的硬件固件框图)。 这一完整的SoC参考设计使用了91%的逻辑片资源、 81%的块RAM和32%的DSP逻辑片,不仅包含MVE分析引擎,还包括所有支持I/O模块。 单就MVE分析引擎来说(不包括MPMC-PLB主干和专用I/O组件),它仅使用了46%的逻辑片、44%的块RAM和23%的DSP逻辑片,因此可以将其移植到成本更低的Spartan3A-DSP 1800A FPGA器件。 在单个时钟周期内,我们设计的CMVA协处理器中所有IP内核可以完成所有相关处理。这一功能与异步FSL接口相结合,系统集成商能够利用来自系统其它部分的不同时钟域来驱动C-MVA协处理器。这样做可以让C-MVA在较低的像素时钟频率中运行,同时利用更高频率的内部系统时钟来驱动主干(backbone),从而在保证系统性能要求的同时大大降低功耗。 |