此外,通过赛灵思FPGA和ISE® 设计套件工具,视频分析设计小组可以为终端客户定制解决方案方面提供更大灵活性。通过快速建立标准分辨率和高分辨率视频处理原型,我们可以快速定制视频分析引擎和片上系统(SoC)解决方案。这样我们就可以根据客户需求更高效地利用Spartan-3A DSP 3400A或成本更低的Spartan-3A DSP 1800A FPGA器件中的可用资源。
FPGA解决方案另一个好处是可以利用同一硬件平台创建多种不同的衍生产品。由于我们已经使用VHDL设计了多种分析加速器引擎,因此可以将这些专用内核集成到C-MVA协处理器中。这种方法允许工程师重新利用双MicroBlaze嵌入式系统来创建不同的FPGA编程文件,这样就构成了高度可扩展的解决方案,可以轻松调节适应范围广泛的视频分析应用。
从DaVinci移植到赛灵思FPGA
我们先前一代的视频分析产品基于TI DaVinci数字媒体SoC芯片TMS320DM6446。该芯片包括ARM9x处理器和C64x+ DSP协处理器。在设计中,我们使用ARM9x做通信和控制,用C64x+做分析算法的DSP处理。然而,两者组合起来构成的系统仍然无法满足我们第二代产品所需要的高性能处理要求。因此,我们转向了Spartan-3A DSP FPGA系列。
通过创建拥有两个独立运行MicroBlaze v7软内核处理器的赛灵思嵌入式系统,我们简化了设计移植任务。这种架构使我们可以分别移植ARM和DSP处理器代码,从而大大简化了设计移植过程。图2给出了Eutecus硬件系统的框图,以及基于MVE的参考SoC设计。
图 2. Dual-MicroBlaze® System-on-Chip (SoC)架构MVE引擎协处理器框图
我们的MVE引擎包括运行在MicroBlaze (MB0)上的InstantVision嵌入式软件,运行在MicroBlaze (MB1)上的系统控制和通信部分以及C-MVA协处理器。C-MVA协处理器是运行在FPGA构造上的硬件加速器IP内核模块链。
利用ISE设计套件和MicroBlaze软核,我们的ARM和DSP代码移植工作相当简单。一个突出优点就是,InstantVision跨平台环境是采用高级标准C/C++语言编写的,只需要很少的修改。
一旦完成代码移植,我们验证其功能的正确性并且识别出性能瓶颈。事实表明,优化和加速对原TI处理器开发的C/C++代码是一项重要挑战,因为当初在开发这一平台的过程中,我们在汇编级优化时使用了几个DaVinci C64x+协处理加速模块。在转换过程中,我们遵循以下一系列步骤:首先利用高级C函数来重写这些模块。最后,用运行在FPGA构造上的同等功能加速器模块来代替这些模块的大部分功能。