做嵌入式开发的工程师朋友们都知道,FPGA的开发相对于DSP、MCU来说难度要大很多,门槛相对来说更高一些。主要原因是只要你会C或者C++就可以进行DSP和MCU的嵌入式开发,而如果你不具备RTL(VHDL,或者Verilog)开发专业知识的话,很难充分发挥FPGA的优势。为了解决这一难题,让更多的工程师能够参与到FPGA嵌入式开发中来,FPGA供应商再开发工具方面下足了功夫。比如赛灵思最近推出的面向全可编程SoC和MPSoC的SDSoC开发环境。使用该开发环境可以直接使用C,或者C++来进行FPGA嵌入式开发,从而大大降低了FPGA嵌入式开发的门槛。
是的,你没看错,有了SDSoC后,只要你懂C和C++就可以对包含ARM和FPGA的SoC产品进行嵌入式开发了,入门非常容易。“跟以前不同,现在很多智能系统的智能性除了跟系统的硬件相关外,更多的是跟上层的应用软件有关,包括算法。因此,现在很多FPGA开发团队中的软件工程师人数会比较多。我们想通过这个开发环境,让做软件的人员直接参与到产品的设计。”赛灵思全球销售部亚太区市场及销售副总裁杨飞道出了赛灵思 推出SDSoC的初衷。
 图1:赛灵思全球销售部亚太区市场及销售副总裁杨飞。
与VHDL和Verilog说“再见”
如果跟IT界类比的话,VHDL和Verilog就相当于汇编语言,而在SDSoC环境中,工程师可以直接使用高级语言,而无需跟汇编语言打交道了。因为软件工程师很多时候对底层的硬件,包括数据流怎么去连接等概念不是非常清楚,所以就可能没法做相关的工作,只能依赖硬件工程师。而SDSoC配有一款C/C++全系统优化的编译器,可提供系统及的特性描述、可编程逻辑内自动软件加速、自动系统连接生成,以及用于加快编程速度的各种库。加上该工具可以与业界通用的Eclipse IDE综合开发环境共同使用,这样软件工程师只需要在他们熟悉的开发环境里,通过C、C++来实现他们的创意。
这样一来,就可以让硬件工程师专门做嵌入式系统平台的工作,包括硬件的各种接口。而软件工程师则可以专注地用C/C++代码去实现算法或硬件加速等功能就可以了,不用再纠结怎么去硬件实现。
可缩短整个开发流程
SDSoC可为系统架构师和平台开发人员提供专家级的使用模型。通过将系统及的特性描述和性能分析功能与自动系统连接生成功能结合,该工具可以帮助架构是定义、探索并生成各种架构,为自己的应用平台找到最为理想的设计实现方案,并传递给嵌入式软件开发人员,用于在应用平台顶层构建完整的应用。
赛灵思亚太区Zynq业务拓展经理罗霖拿自动生成系统连接举例说,“自动生成系统连接对软件工程师来说是比较难的部分。因为他并不知道SoC里面数据的流动是怎么样的。处理器跟逻辑之间的连接,可以通过ACP,也可以通过高性能带cache。可以用高性能不带cache的,也可以用通用的接口的方式;可以用软件,也可以用DMA,也可能用分散的DMA的方式,还是处理器直接连接的方式,还是用FIFO的方式。用不同的资源来做,数据的移动速度结果是不一样的,当然是越低越好,延时越小越好,因为这样系统的功能可以做到更高。我们SDSoC的工具就可以为软件工程师挑出一个最优的路径来走,这样他就不需要花时间来学习相关的工作,也不需要去计算这些报表,去决定怎么做。这是我们的工具可以帮助到他的地方,最重要的是可以缩短整个开发的流程。”
 图2:赛灵思亚太区Zynq业务拓展经理罗霖。
为了加速开发进度,赛灵思跟第三方共同开发了一些通用的库,比如DSP、视频、定点、线性代数、BLAS、OpenCV算法等等,这些现成的库,工程师都可以拿来使用。
最后杨飞表示接下来还会提供一些针对某一些特定应用场景的工具,他说:“工具还是这个工具,只是瞄准特定应用场景的库和支持,比如做视频、做图像、做软件无线电等相关的应用的场景,我们会推出相关的配套,不是新的工具,只是在现在的工具里加入一些元素。” |