片上可编程系统
嵌入式计算技术的进步,正在以前所未有的程度影响和改变着我们的生活,嵌入式系统尽管不是“无处不在”,但也已经是广泛应用于航天航空、智能交通、网络、电子、通讯、仪器仪表、工业自动控制等领域。据IDC调查,目前全球嵌入式产业的智能设备和智能系统每年有23%的年复合增长率,持续到2020年将会达到250亿台的市场份额。
鉴于嵌入式系统的各个应用领域的迅猛发展,为应对这一市场需求,并期望加快产品开发进程,日前赛灵思公司(Xilinx)面向全可编程SoC和MPSoC推出了一款软件定义SoC的开发环境SDSoC。这款开发环境极大地简化了SoC的编程体验,让嵌入式控制领域的系统架构师和软件工程师可以利用C/C++来同时做算法和功能的开发,并且在基础的硬件平台搭建好之后,便可以自由发挥,不再需要去求助于硬件工程师。这对于嵌入式软件工程师开发SoC应用来说无异于开发利器,对于整体的产品开发而言,亦可极大的加快开发进程。
而据赛灵思全球销售与市场亚太区副总裁杨飞先生透露,赛灵思一直以来都非常关注嵌入式领域,之前在这一领域也投入了很多,有一系列的相关产品推出,在嵌入式领域有很多应用。而自赛灵思公司全球总裁兼CEO Moshe Gavrielov提出All Programmable Imperative(全可编程势在必行)的行业趋势后,我们便一直在引领这个趋势——首先是取代标准芯片和定制芯片,其次是进入更广阔的嵌入式应用蓝海。
图1:赛灵思全球销售与市场亚太区副总裁杨飞
当前,激烈的市场竞争和技术竞争,要求产品的开发周期越来越短,显然,嵌入式系统的软、硬件技术和开发手段,正日益受到重视,成为各领域技术创新的重要基础。那么,如何才能够在激烈的竞争中脱颖而出?怎样才能够实现嵌入式系统的快速开发?怎么样才能让更多的人更便捷的使用赛灵思的产品呢?为此,赛灵思推出了SDx的战略。
图2:SDx三大法宝将FPGA运用拓展到软件工程师人群。
据我们了解,赛灵思自2014年4月开始先后发布了三款面向软件和系统工程师的软件定义开发环境SDx,首先是针对网络推出的SDnet(“软件”定义网络)。SD net是针对网络推出的设计环境,也是对无线和有线领域设计的,它使得无线和有线的人群也能够进行创新;能够让厂商用行为模型级的描述,把通信系统迅速实现出来。其次是11月份针对数据中心推出的SDAccel(软件定义加速器),SDAccel使得数据中心的软件设计人员也能够应用。在数据中心里要解决性能和功耗的问题,有很多应用场景要通过X86加FPGA的加速处理能力来做加速算法,SDAccel可以协助软件工程师把创意快速实现到整个X86和FPGA的流程中。
而此次推出的针对嵌入式设计SoC应用的SDSoC(软件定义SoC)意义更大,因为嵌入式控制无处不在,很多系统的设计和创新都是基于SoC平台进行设计的。这款设计环境将能使软件工程师也能够做硬件工程师的工作,能够利用SDSoC进行更多的创新,带来更大的影响力。
图3:全可编程SoC和MPSoC通过软件、硬件和I/O 可编程性实现高度的灵活性
面向全可编程SoC和MPSoC的SDSoC™ 开发环境作为赛灵思SDx™系列开发环境的第三大成员,SDSoC开发环境让更广阔的系统和软件开发者群体也能获益于“全可编程”SoC和MPSoC器件的强大优势。SDSoC环境可提供大大简化的类似ASSP的编程体验,其中包括简便易用的Eclipse集成设计环境(IDE)以及用于异构Zynq® 全可编程SoC和MPSoC部署的综合开发平台。SDSoC结合使用业界首款C/C++全系统优化编译器,可提供系统级特性描述、利用可编程逻辑实现软件自动加速、自动系统连接生成,以及各种库以加速编程工作。此外,它还能帮助最终用户和第三方平台开发人员快速定义、集成和验证系统级解决方案,并可通过定制编程环境为最终客户提供支持。
--------------------------
电子发烧友编辑团队年度巨献:《电源技术特刊》点击立即免费下载!
打破软件工程师的创新限制
我们知道,嵌入式系统是软硬结合的东西,涉及的层面比较多,流程复杂,这极大限制的开发设计进程。比如偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。另一类是软件专业出身的人,主要从事嵌入式操作系统和应用软件的开发。软件专业的人对硬件原理和接口通常难以有较好的掌握,最多也只能写部分BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现,嵌入式设备的增值很大程度上取决于嵌入式软件。
杨飞先生表示,很多公司在人员配备上也是偏软件,但是嵌入式本身所特有的软硬结合特性,使得硬件基础是不可或缺的,这是一大限制条件。现阶段,很多智能系统的智能性是有赖于里头的硬件,但更多的是上面的应用软件,包括它的一些算法,用软件和算法来实现智能性。所以我们想通过SDSoC这个开发环境,让做软件的人员直接参与到产品的设计中来,这样就可以把软件人员的创意通过这个工具很快的把创意实现,变成一个真实的产品。这就是为什么我们要做SDSoC这个开发环境的最主要的理由,面向全可编程SoC和MPSoC的SDSoC 开发环境使得软件工程师可以在基础的硬件平台充分发挥自己的创新思路,而不需要时刻都去寻求硬件工程师的配合。
SDSoC是在设计方法论上的一大创新,它使得软件工程师和所有熟悉SDSoC环境的工程师可以有效地把FPGA给利用起来,SDx开发环境的推出,也是赛灵思认为很重要的一个策略方向,因为如果没有相关的设计方法论,整个设计进程和生产力就达不到用户想要的效果,简单而熟悉的软件开发环境使得系统和嵌入式软件工程师有类似ASSP的编程体验。
图4:SDSoC开发环境与软件工程师习惯开发的ASSP完全相同,可以用C/C++来做算法和功能的开发。
工程师在做嵌入式设计的时候,可以用不同的方法论来解决相关问题——可以用CPU解决,也可以用ASSP来解决。CPU是纯软件编程的技术,有很多人会写C代码,因此CPU利用起来是比较灵活的。标准的ASSP是基于ARM和硬加速内核设计的,没有CPU这么灵活,但是也比较简单、比较容易。全可编程SoC性能很高、功能很好,但是其局限性是对硬件描述语言有认识的工程师才能开发相关产品。因此,其以前的应用环境没有CPU的开发环境这么好,赛灵思推出的SDSoC就改变了这一现状。
据杨飞先生强调,SDSoC跟其他习惯开发的标准器件是一模一样的,可以用C/C++来做算法和功能的开发。它提供的系统级的特性描述功能可以做一些描述,比如有哪些函数希望用硬件来做,有哪些是希望用处理器来做,其中可以设计一些加速用的C和C++函数,最后是一个全系统优化的编译器。我们这次做的工作就是克服业界出现的问题,把整个SoC和MPSoC产品的开发环境做成跟平时习惯开发ASSP的软件工程师所习惯的环境,这样可以拉齐跟它们开发的关系。
值得一提的是,目前赛灵思SDK的高级软件系统描述功能可对Zynq平台上运行的完整设计进行软硬件性能测量,SDSoC以此为基础,可以快速估算系统性能。不仅仅是具备系统级的特性描述,SDSoC还可针对ARM处理器和可编程逻辑提供全系统优化的编译器。SDSoC通过自动化系统连接生成功能可支持软件团队快速配置、生成宏/微架构,从而提供最佳的系统连接和存储器接口,并以更短的设计迭代时间实现对性能、吞吐量和延迟的快速系统探索。
图5:全系统优化的编译器
SDSoC支持创建完整的异构多处理系统,包括将传统HDLIP模块重复用作可用C语言调用的库。传统的分别以硬件和软件为中心、彼此分离的流程可能导致开发延迟、系统架构和性能的不确定性,与传统不同,SDSoC经过精心架构设计,可提供快速系统特性描述、利用可编程逻辑实现软件加速,以及在熟悉的框架中进行系统架构探索。
杨飞先生透露,有了硬件跟软件的整体化、全系统化优化的过程,跟纯软件的设计来比,整个性能可以提升一百倍以上。为了加快开发的进度,赛灵思还提供了很多库,有赛灵思的库,还有其他第三方的库。有DSP、视频的、定点、线性代数、BLAS、openCV的算法,你不需要现做很多计算,有很多现成的库可以利用。
SDSoC是一个综合的开发环境。接下来,赛灵思还将在该开发环境下,陆陆续续地提供一些针对某些特定应用场景的工具,即瞄准特定应用场景的库和支持。比如做视频、做图像、做软件无线电等相关应用的场景,赛灵思将会推出相关的配套元素。
聚焦领域:图像、视频、SDR
最后我们可以来看看现场的演示和合作伙伴的态度,从中我们可以一窥究竟。
赛灵思亚太地区Zynq业务拓展经理罗霖先生演示的例子是视频监控——对前后两人的图像分别做一次滤波;然后把这两幅图像相减,得到一个差分图像;再做一次中值滤波,合并输出。在整个画面上如果有运动物体的话,可以用红线把边缘勾勒出来。整个开发的例子是C代码和SDSoC开发工具。整个设计,包括优化多次迭代,在两个礼拜内就能完成;过去做完优化可能需要两个月的时间。因此,这样对大家的生产力是一个极大的提高。
图6:赛灵思亚太区Zynq业务发展经理罗霖详细展示了面向系统架构师和平台开发人员的生产力优势
最后,在演示效果时,罗霖先生对着摄像头挥手,详细讲解到:“如果我不动,我手上是没有这个红色的边缘;如果我手稍微动一下,我手运动的轮廓都会有红色的边缘出来。现在这是硬件演示效果,大家可以看到非常流畅,是实时的。下面来看一下软件的效果。软件特别卡,一秒钟大概可以做到还不到一帧,非常不流畅。而硬件可以做到每秒60帧,就是可以看到系统的性能通过我们的SDSoC工具可以完全释放出来,有上百倍性能的提升。同时,在开发效率方面,可能过去要用两个月做的事情,现在用两个星期就可以做完。这就是SDSoC给开发者带来的价值。我们提供给软件工程师一个他们非常熟悉、非常易用的开发工具,这样他们能从第一天就上手,可以做SDSoC的开发。同时,他不用管上面的硬件细节,他只专注于他本身的算法和核心技术的开发。这样对于他来说,可以充分释放他的想象力跟创造力,打造出非常差异化的产品。”
通过这个演示我们可以看得到纯软件和硬件加速的效果差别,而且整个流程做起来也是比较简单的,非常有利于加快产品开发进程。
据罗霖先生透露,在图像与视频的相关应用场景里,诸如智能视频监控、车牌识别等,都非常有优势,而且已经有相关的合作客户在大量使用,包括SDR这几大类是目前的重点方向。
在加快产品开发进程方面,罗霖先生还表示,SDSoC目前支持的主流操作系统有Linux、FreeRTOS和裸机三种,今后赛灵思还会继续增加操作系统列表。过去如果你用Zynq,光是把linux弄到Zynq上就需要很长时间。现在不需要担心要驱动任何程序,在这一部分就节省了大量的时间。
据悉,赛灵思SDSoC目前已有一些和客户合作的成功案例。赛灵思与ADI公司合作开发了一款Zynq SDR系统开发套件,通过SDSoC的开发环境,可以很快地把SDR平台的开发做出来。
另外一家做医疗和无人机开发的公司叫Van Gogh Imaging,目前正在做3D计算机视觉的开发。ARM架构在智能性视觉方面优势很大,因为其中有算法和很高的数据带宽,通过硬加速可以做到很高性能的视频分析。有了SDSoC,在一个月之内就能把3D对象识别从概念变成现实的加速Zynq设计。
DAVE也是做嵌入式系统的公司,该公司的BORA模块采用赛灵思Zynq-7000 SoC,非常适用于医疗器械、高级通信系统、关键实时操作和安全等高端应用。该公司利用SDSoC将Zynq SoC运用在一些医疗器械里,也是用很短的时间就把这些事情给做了出来。
全部0条评论
快来发表一下你的评论吧 !