你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

【赛灵思中国通讯56期】全可编程抽象化:您的编程您做主

发布者:jackzhang 时间:2015-06-30 20:28:47

为将设计团队的生产力提升到全新的水平,并将 All Programmable FPGA、SoC 和 3D IC 推向更广泛的软件工程师用户,赛灵思近期新增了两SDxTM 开发环境系列成员。新推出的SDAccel开发环境使没有任何FPGA经验的数据中心设备编程员都能够运用 OpenCLTM、C 或C++语言针对数据中心和云计算基础设施对赛灵思FPGA进行编程,设计出的FPGA设备性能功耗比远超基于GPU和CPU的设备。赛灵思还推出了SDSoC开发环境,支持同样没有 FPGA 经验的软件开发人员用 C 或 C++ 语言基于赛灵思及第三方平台开发商推出的 Zynq-7000 All Programmable SoC和 UltraScale+MPSoC平台创建各种系统。
SDx 环境是赛灵思 All Programm-able Abstraction计划的最新产品。该计划旨在帮助软件工程师和系统架构师方便地编程赛灵思器件,同时开发环境可根据他们的需求量身定制。
赛灵思公司企业战略与市场营销高级副总裁 Steve Glaser 指出:“SDNet、SDAccel 与 SDSoC 这一完美组合将为系统和软件工程师提供熟悉的类似 CPU、GPU 和 ASSP 的编程环境,这些工程师将首次尽享 All Programmable 器件带来的独特优势,诸如定制加速功能,性能功耗比提升10 倍乃至 100 倍,任意设备件间连接,以及提供下一代智能系统所需的保密性和安全性。赛灵思正力助下一代系统做到进一步互联,实现软件定义和虚拟化,同时还必须支持基于软件的分析,更多云端计算功能,这通常是无处不在的视频和嵌入式视觉应用所需要的。这就要求 SDx 软件定义编程环境和异构多处理技术采用新型UltraScale FPGA和MPSoC。”
2014 年春季 SDNet开发环境(详见《赛灵思中国通讯第52期》)推出后不久就推出了 SDAccel 和 SDSoC这两款新的开发环境。
SDx新环境在帮助软件工程师和系统架构师对赛灵思器件的FPGA部分进行编程的同时,也能让拥有硬件工程设计资源的设计团队的生产力更高,且更快集成到优化的系统上,进而加速产品上市进程。有了可行的系统设计,硬件工程师能集中精力优化FPGA布局和性能,实现更高的系统效率,同时软件工程师则能进一步优化应用代码。

All Programmable Abstraction
赛灵思于 2008 年在新任 CEO Moshe Gavrielov 领导下开始规划7系列All Programmable系列FPGA、3D IC和Zynq-7000 All Programmable SoC 时,就明显发现 7 系列和未来产品线的所有产品均具有丰富的功能,完全能让客户将赛灵思器件作为最新最具创新性产品的核心。
这些 All Programmable 器件比赛灵思早些年的胶合逻辑 FPGA 高级得多,实现了任何其他架构所无法企及的系统功能和最终产品差异化。为了最大化这些最新器件的价值,在竞争中脱颖而出,管理层认识到赛灵思必须开发出相关工具和方法,帮助系统架构师乃至嵌入式软件开发员(而仅仅只有FPGA专家),去进行赛灵思最新器件的编程工作。此外,公司还必须针对高增长市场,为软件工程师开发出设计环境,并根据设计人员习惯使用的工具和流程来定制这些环境。
此外,加强与 MathWorks 和国家仪器(Nl)等公司联盟也势在必行,这些公司已经构建了各种环境,使非传统 FPGA 用户能够充分利用赛灵思 All Programmable 器件的功率效率和灵活性优势。
对老客户来说,如果能为设计团队的每个成员都提供相应的设计环境,那就能确保高效性,缩短产品上市时间。如果这些环境足够高级,就能真正推广All Programmable FPGA和Zynq SoC 设计,让那些没有 FPGA 设计经验的架构师和软件工程师无需硬件设计人员帮助就能进行器件编程。
全球软件工程师人数与硬件工程师人数比为 10:1。因此,提供这种开发环境(或支持这种开发环境的硬件平台)的赛灵思及其联盟计划合作伙伴既能扩大用户群,又能增加营收。
该战略和支持软件工程师及系统架构师利用根据其设计需求量身定做的环境进行赛灵思器件编程的后续开发工作就是赛灵思所谓的 All Programmable Abstraction(如图 1 所示 )。

图1 –利用新的SDx设计环境和联盟成员提供的环境,赛灵思正帮助更多创新者 充分发挥赛灵思All Programmable 器件的作用,为下一代产品带来更大增值。

VIVADO HLS和IPI:设计抽象的第一步
2011 年,设计抽象迈出了重大的第一步,那就是赛灵思收购了私企AutoESL 公司的高层次综合(HLS)工具。继并购之后,赛灵思于 2012 年公开发布了集成到 ISE设计套件和Vivado设计套件工具流程中的 HLS技术。根据Berkeley Design Automation的详细调研(结果表明 AutoESL 的HLS工具最简便易用,而且是EDA产业所有 HLS 工具中能提供最佳结果质量的 HLS),赛灵思选择了AutoESL技术。HLS源于EDA世界,这也意味着工具使用模型面向的是 ASSP 和片上系统(SoC)架构师以及拥有 C 和C++ 编程经验、同时对硬件描述语言(Verilog和VHDL)及芯片设计需求有一定工作了解的成熟设计团队。
利用 Vivado HLS,具有丰富技能的架构师和设计团队能用 C 和 C++ 创建算法,同时利用 Vivado HLS 来编译并转换那些算法为 RTL IP 模块。随后,FPGA设计人员能将这个模块及其它模块集成到创建或授权的 RTL 中,并用赛灵思的 IP Integrator(IPI)工具将 IP 汇编到设计中。随后,FPGA设计人员能将汇编设计一步步通过Vivado流程,执行HDL仿真、时序与功耗优化、布局布线等。最终,设计人员生成网表 / 比特文件并配置目标All Programmable器件的硬件。如果设计包含处理器(Zynq SoC 或 MPU 软核),配置后的器件随即可供嵌入式软件工程师编程。
为了帮助嵌入式软件工程师应对繁杂的编程工作,赛灵思提供了基于Eclipse的集成设计环境,即赛灵思软件开发套件(SDK),其包含编辑器、编译器、调试器、驱动程序和面向Zynq SoC或FPGA的库,其内嵌了赛灵思的 32 位 MicroBlaze软核。该 SDK 于 10 多年前推出,随着赛灵思器件上处理器集成的发展变化而得到了大幅提升,此前器件上集成硬化的DSP Slice 和软核 MCU 和 MPU(8位、16 位和 32 位),到 Virtex-4和Virtex-5 FPGA时已转变为集成硬化的32 位 PowerPC;到Zynq SoC已转化为集成32位ARM处理器 ;而到即将推出的 Zynq UltraScale+ MPSoC 则发展到集成64位ARM处理器。

联盟成员为更多用户带来增值
10 多年来,赛灵思与国家仪器(NI)和MathWorks公司一直保持密切合作。这两家公司致力于为其服务的特定用户提供量身定制的独特高级开发环境。
美国国家仪器(NI)(德克萨斯州奥斯汀)提供的硬件平台深受控制和测试系统创新者欢迎。赛灵思的FPGA和 Zynq SoC 为 NI RIO 平台提供动力。NI 的 LabVIEW 开发环境是用户友好型图形化程序,底层运行 Vivado设计套件,因此 NI 的客户无需了解任何 FPGA 设计细节。一些人或许根本不知道 RIO 产品的核心其实是赛灵思器件。他们只需在LabVIEW环境中对其系统编程即可,NI 硬件能提升其开发的设计性能。
就MathWorks(马萨诸塞州纳蒂克)而言,该公司10多年前为其MATLAB、Simulink、HDL Coder和 Embedded Coder 添加了FPGA支持,底层运行赛灵思的 ISE 和 Vivado工具,而且完全自动化。因此,公司的用户——主要是数学算法开发人员——能开发算法并大幅提升算法性能,而且能在 FPGA 结构上简便运行算法。
10 年前,赛灵思为其ISE开发环境添加了 FPGA 架构级工具——系统生成器(System Generator),近期又给Vivado 设计套件添加了,以帮助具备FPGA知识的团队进一步调节设计,实现算法性能增益。MathWorks 和赛灵思两家公司技术的强强组合,有助于客户公司推出成千上万种创新产品。
近期,其他公司也开始为赛灵思环境做出贡献。赛灵思近期迎来TOPIC Embedded Systems 和 Silicon Software这两家欧洲公司加入其联盟计划,特别是欢迎其针对医学和工业市场的高级开发环境。
 TOPIC Embedded Systems(荷兰埃因霍温)拥有独特的开发环境 DYP-LO, 《赛灵思中国通讯第 54 期》对其进行了详细介绍。该环境面向 Zynq SoC,很快也将面向 Zynq MPSoC,对系统级设计采用统一方法,从而使系统架构师能够用 C 或 C++ 创建系统设计结果,并在 Zynq SoC 的双核 ARM CortexTM-A9 处理系统上运行该结果。一旦用户发现设计某些部分在软件中运行太慢,可以将这些部分拖放到窗口中,将 C 语言转化为 FPGA 逻辑(底层运行 Vivado HLS),并将其放入Zynq SoC 的可编程逻辑中。来回交换代码片段,直到达到最佳系统性能。
TOPIC 最初用于医疗设备开发,目前也开始与工业设备制造商合作。 Silicon Software(德国曼海姆)是支持软件工程师利用赛灵思 All Programmable 器件的最新联盟成员。公司的 VisualApplets 图形图像处理设计环境可帮助面向Zynq SoC平台的系统架构师和软件工程师打造工业机器
视觉应用创新,而且无需硬件工程师的协助。在2013年SPS Drives行业展会的赛灵思展台上,Silicon Software展示了其用 VisualApplets 环境开发的光学检查系统。演示显示通过采用 VisualApplets 环境将图形处理任务从Zynq SoC的处理系统转交给器件的FPGA逻辑来执行,能将系统性能提升10倍。


借助SDx推广FPGA和SOC设计
借助 SDx 软件定义开发环境,赛灵思将面向关键市场的软件开发人员和系统架构师构建一系列高级的设计入门环境。SDAccel 和 SDSoC 在底层自动运行整个 Vivado 流程,无需直接使用Vivado 工具,也无需硬件工程师的协助。SDNet 不会访问 Vivado HLS,针对线路卡架构师,其提供了独特的“两步使用模型”。在第一步中,线路卡架构师采用直观的类似 C 语言的高级语言而不是晦涩的微代码来设计需求,并制定网络线路卡规格描述。SDNet 开发环境根据规格描述生成 RTL 版设计。流程随后需要硬件工程师在目标 FPGA 中实现RTL。
在第二步中,SDNet 还允许网络公司用高级语言测试和更新协议,并升级线路卡的功能,即便在现场部署后也能做到,而且无需硬件设计参与。这个流程有助于企业快速创建并更新线路卡,这种灵活性对软件定义网络而言非常重要。SDAccel和SDSoc这两个新设计环境将SDx的理念推广到新的应用领域。

SDACCEL可优化数据中心性能功耗比
《数据中心学刊》(Data Center Journal)2014 年3月的一篇文章指出,谷歌、Facebook、亚马逊、领英等公司核心部分——数据库——“消耗的电力占全球电力 3% 以上,同时产生2亿公吨CO2”。如此巨大的能耗使得其数据中心一年电费超过 600 亿美元。即便对最大规模网络公司来说,功耗也会严重削减盈利性,而且对环境也会产生不可估量的影响。
随着越来越多的企业期望采用云计算和大数据分析技术;视频和流媒体的全球性普及,以及越来越多的人加入无线网并准备升级到未来5G网络,对数量更多、性能更好的数据中心的需求呈几何级无止境增长趋势。
《数据中心学刊》文章指出,从当前趋势看,到 2017 年数据中心流量预计将达 7.7ZB,这意味着数据中心的功耗如果不能得到有效控制将会出现大幅增长。当今大多数数据中心的功耗主要源于其基础组件—— Intel x86 处理器。目前 MPU 能提供良好但不是最佳的性能,而且功耗很高。
目前全球庞大的的软件工程师队伍均发现MPU是最容易编程的器件。要解决数据中心性能问题,许多公司一直在设法构建采用图形处理单元(GPU)或通过 GPU 实现 CPU 系统加速的设备。GPU 的性能大大超越数据中心的 CPU,但不幸的是功耗要高很多。性能虽然很高,但功耗巨大。为集两者之大成,许多企业均转而采用以 FPGA 为中心的方法,将FPGA与其它处理器结合使用,以实现数据中心设备性能最大化。许多数据中心设备厂商已证实,分立式 FPGA 结合分立式 CPU 使用,虽然每个卡的功耗会增加一点点,但性能却得到大幅提升,从而可大幅提升性能功耗比。还有人认为,通过采用一颗在单个 SoC 上集成 x86 处理器内核和 FPGA 逻辑的芯片,有望进一步提升性能功耗比。还有人认为,在单个 SoC 上集成 FPGA 逻辑和 64 位
ARM 处理器 IP 似乎能带来更低功耗但同样高性能的解决方案。
在数据中心使用 FPGA 的主要障碍就是编程问题。数据中心开发人员习惯于 x86 架构编程,这些开发人员通常只有纯软件编程背景。帮助开发人员将CPU程序转向更快的 GPU 的第一步就是业界 OpenCL 语言的开放开发。过去2年来,OpenCL取得进一步发展,使客户能够针对FPGA进行编程,从而为未来数据中心设备架构乃至无所不在网络创造了新的机遇。
通过推出 SDAccel 环境,赛灵思弥补了编程鸿沟,并为数据中心工程师使用 OpenCL、C 或C++编程FPGA平台铺平了道路,而且无需硬件工程师介入。赛灵思公司设计方法市场高级总监 Tom Feist 表示,针对OpenCL、C和C++的SDAccel开发环境使数据中心编程人员能够打造出比CPU和GPU系统性能功耗比高出25倍的设备。


图2 – 在本SDAccel开发环境演示中,工程师 Henry Styles介绍了如何通过使用内含Alpha Data ADM-PCIE-7V3加速器的标准64位x86工作站来运用SDAccel开发环境实现加速。

Feist 指出,在 SDAccel 流程中(见图 2,SDAccel 开发环境演示),x86 CPU结合运行赛灵思20nm Kintex UltraScale FPGA 的加速卡,软件开发人员能发现需要加速的应用,并用OpenCL 编码和优化内核,再为 CPU编译和执行应用。随后他们再来评估并调试内核,直到找到周期精确的模型。接下来,再用 SDAccel 编译代码,并自动实现在 FPGA 中(可能因为 Vivado 在底层运行)。随后就能运行应用,验证通过卡加速后的应用性能以及与单纯用CPU运行的性能对比。Feist 指出:“他们能循环运行迭代,直到找到性能和功耗之间的最佳平衡,相对于 CPU 和 GPU 实现方案,性能功耗比可提升多达25倍。”
在本期《赛灵思中国通讯》中,Feist 和他的同事详细介绍了 SDAccel环境,后续文章则介绍 SDAccel 的工作原理(见第 38 页和 42 页)  。

SDSOC让嵌入式系统创新者辈出
SDNet 让线卡开发人员能够利用独特的软定义方式快速创建下一代网络,而 SDAccel 则能让数据中心设备厂商的下一代数据中心设计的实现最佳性能功耗比。新的 SDSoC 开发环境或许能为赛灵思用户群带来最广泛的影响。这是因为 SDSoC 针对广泛的嵌入式系统设计团队,特别是软件工程师,这些软件工程师设计面向的是赛灵思 Zynq SoC 所服务的大部分市场。SDSoC 环境现在能让用户配置逻辑 —— 不光是对运行 Zynq SoC 硬件平台的嵌入式系统处理器编程 ——而且能使用 C 和 C++ 语言。
SDSoC 产品经理 Nick Ni 指出:“软件开发人员习惯于对主板、ASSP平台和ASIC进行编程,且无需硬件工程师参与。有了SDSoC开发环境,他们就用类似 ASSP 的方式对Zynq SoC 和 MPSoC 平台进行编程。SDSoC 的独特之处在于现在我们能在Eclipse IDE环境中用C或C++语言面向 Zynq SoC 和 Zynq UltraScale+MPSoC 平台创建完整的系统设计。
Nick 表示,使用 SDSoC 环境,嵌入式软件开发人员能运用 C 或 C++语言创建设计并进行测试,以发现Zynq SoC 处理系统上哪些部分运行得不佳。一旦发现可疑代码,便突出显示并命令 SDSoC 环境自动将该代码分区到 Zynq SoC 的可编程逻辑中,以加速系统性能。Nick 指出,SDSoC环境只需点击按钮就能把软件功能移到 FPGA 逻辑中,无需硬件工程师介入。SDSoC 中的编译器将生成整个Vivado 项目,并为目标硬件平台生成可引导的软件映像。

图3 – 在本SDSoC开发环境演示中,首席工程师Jim Hwang用SDSoC构建简单的图形处理流水线以检测运动,并在以60fps速率运行的实时HD 1080p视频流中插入运动边缘。

Nick 指出:“利用针对我们 Zynq SoC 的 SDSoC 环境,我们主要是让我们的嵌入式软件工程师变成系统工程师。”  (见图3,SDSoC 开发环境演示)SDSoC 环境利用带有用户指定的C/C++ 代码的宏编译器,可在 Zynq SoC 逻辑中实现加速。通过在底层运行 Vivado 设计套件,该环境可自动将该代码返回 IP 模块并将该模块配置为器件的逻辑,从而自动生成软件驱动程序。
SDSoC 可为基于 Zynq All Progr-ammable SoC 的开发板(包括 ZC702和 ZC706),以及第三方和特定市场平台(诸如 ZedBoard、  MicroZed、ZYBO 以及视频与图像开发平台)提供板支持包 (BSP)。Nick 表示:“我们今后几个月将为 SDSoC 添加更多 BSP,尤其是随着越来越多第三方平台公司用Zynq SoC 开发系统。SDSoC 有助于赛灵思以及采用 Zynq SoC 开发平台的公司扩大用户群。”
Nick 同时指出,SDSoC 环境的主要目的是让大量嵌入式软件设计人员能用赛灵思 Zynq SoC 创建完整的系统,不过有传统 FPGA 背景的用户和设计团队也能从该环境受益匪浅。
Nick 指出 :“它能帮助设计团队快速用 C 和 C++ 语言设计系统架构,然后尝试不同的配置,以获得所需的最佳性能。如果他们团队里确实有 FPGA 设计人员,则能让其通过Vivado 工具来进一步优化模块和逻辑布局。”  
如欲了解联盟成员对SDSoC环境支持的更多信息,敬请参阅本期Xpedit 部分(第 66 页)。
关于赛灵思 All Programmable Abstraction 的更多信息,敬请访问 :http://china.xilinx.com/products/design-tools/all-programma- ble-abstrac tions.html。  

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了