电子头条

FPGA SoC入门难?SDSoC帮你跨“门槛儿”

2018-05-16
    阅读数:

SDSoC

该用什么硬件平台去做 Design-In?这是电子工程师在设计开发之初绕不过去的问题。专用芯片ASIC性能强但开发成本越来越高,通用的处理器灵活性好又不免会遭遇性能瓶颈……所以越来越多的人将目光转向了FPGA这种可由开发者自己“定义”硬件功能的可编程逻辑器件。


近年来,随着采用“ARM内核+可编程逻辑”这种异构FPGA SoC器件(如Xiinx Zynq系列)的问世,更是为开发者提供了一种高性能和灵活性完美结合的新平台,让人不免技痒。



而在人们的传统认知中,和可编程硬件打交道并非易事,这种工作通常是由公司中“一小撮”懂得VHDL、Verilog这类硬件描述语言的硬件工程师操刀,其他人只能在可编程硬件的门口徘徊。为了解决这个问题,Xilinx公司出了一个大招儿:推出了一系列“软件定义”导向的、名为SDx的开发工具——顾名思义,其中的SD就是指“Software Define”,软件定义——其用意很明确,它们是专为系统和软件工程师而设计,可以使那些只有很少或根本没有FPGA设计经验的研发人员,能够直接使用高级编程语言在强大的可编程硬件上进行设计,并且可以与嵌入芯片内部或是在片外连接的标准处理器(ARM或x86)一起协同工作。 这样一来,可编程硬件平台的用户就被扩展到传统意义上系统和软件工程师的范畴,从“高冷”范儿变得触手可及。


图1,Xilinx的SDx软件定义开发工具一览


目前Xilinx公司的SDx系列开发工具家族已经有三个主要成员:SDNet、SDAccel和SDSoC,每个工具各有侧重,面向不同的可编程硬件平台。

  • SDNet:问世最早,是“软件定义网络”的解决方案,SDNet可结合XIlinx的全面可编程器件,打造出了“软”定义网络这样的交叉技术,将可编程能力和智能化功能从控制层扩展至数据层,不仅支持SDN,而且还可以突破性地支持任何软件定义网络架构。

  • SDAccel:面向的是Xilinx那些“纯”可编程逻辑器件,实现了软件定义的加速器,与采用CPU和GPU实现的方案相比,利用FPGA进行加速可获得高达25倍的性能功耗比提升。

  • SDSoC:是专门针对Zynq SoC和MPSoC硬件平台的开发工具,其目的是让嵌入式和应用软件开发人员能够充分挖掘上述开编程硬件平台的性能优势,实现超过100倍的软件性能加速。


其中的SDSoC,由于面向的是应用最为广泛的嵌入式开发领域,也可以说是惠及面最广的一个工具,所以在在今后的一系列文章中我们将对它进行剥茧抽丝般详细的介绍。


图2,Xilinx的SDx系列工具定位及优势


SDSoC如何赋能开发者

从Xilinx赋予SDSoC的使命可以看出,它是一个先进工具套件,可以大大简化开发过程中资源的管理和更复杂的设计系统连接,让开发者使用复杂的SoC工具套件能够像使用他们熟悉的嵌入式开发工具一样顺畅和自然。


为了实现这一目标,SDSoC提供了一系列创新性的特性,如:

  • 系统级性能分析

  • 在可编程逻辑上的自动的软件加速

  • 自动生成系统连接 

  • 利用各种的库提升编程效率(比如OpenCV)


这些创新特性对于嵌入式开发者来说,能够带来的效率和便利性的提升是显而易见的。

  • 对于系统架构工程师来说,SDSoC能够帮助其基于C/C++快速完成硬件和软件功能分区,探索不同的系统架构。

  • 对于硬件工程师来说,他们不必再将算法“翻译”成HDL,而直接通过C/C++高级语言优化IP,并为一个可复用的平台创建I/O系统。

  • 对于软件工程师来说,他们无需成为一个FPGA专家,就可以在一个完整的、熟悉的软件环境下去创建基于Zynq系统的FPGA设计,即使没有任何FPGA/HDL的开发经验。



SDSoC让开发者能够以“系统”的思路去创建一个设计,让用户可以基于C/C++/OpenCL导入一个现有的Zynq设计并开始开发新的应用。它为潜在的硬件和软件问题提供了一个高级抽象,使得开发者能够将精力更多地专注于整体的系统解决方案,而不是耗费在在门级逻辑设计这些繁复的工作上。


总之,通过SDSoC这个开发工具,一方面让以前需要不同团队不断协调、迭代开发才能完成的工作流程得以简化,另一方面可以让做软件的人员直接参与到产品的设计中来,利用这个工具将软件的创意快速变成一个真实的产品,打破传统意义上系统、硬件、软件开发之间的藩篱,加速设计创新的进程。帮助更多的开发者跨过FPGA SoC应用的门槛儿,这就是SDSoC的要义所在。



往期相关文章回顾:

安富利将在微信推出 SDSoC 系列文章

告诉你一条Zynq应用开发的捷径!对,就是SDSoC!


安富利

获取更多精彩内容

展开↓