0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

赛灵思FPGA在C语言上的开发介绍

Xilinx赛灵思官微 来源:djl 作者:赛灵思 2019-07-25 11:28 次阅读

前言

随着智能系统的进步和“物联网”的发展,以及人与物之间互联互通的增强,大多数新产品现在均采用了基于SoC的开发平台。此类平台便于企业以更快的速度将产品推向市场,提高系统级效率,而且最重要的是便于实现持续的创新和产品差异化。

为实现投资回报最大化,设计团队必须精心选择实现产品差异化的方法,同时还必须满足日益增长的市场需求和严苛的成本目标要求。真正的平台差异化依赖于新的软件特性与新的硬件特性的组合。鉴于加速产品上市这一要求实际上在各层面均存在差异化,因此需要工具和环境能够在不影响架构和性能的条件下,用传统ASSP编程环境所拥有的完整性和易用性实现软硬件的差异化。

赛灵思SDSoC开发环境介绍

Zynq SoC和MPSoC与软件工程师FPGA硬件工程师共同组成的设计团队可谓天合之作。但其对于硬件资源有限或欠缺的团队来说,使用起来很有难度,因为需要具备RTL(VHDL或Verilog)开发专业知识才能充分发挥该器件的优势。为解决这一难题,让更多的设计团队能够利用Zynq器件的优势,赛灵思推出了一种 全新的C/C++开发环境SDSoC 。SDSoC开发环境是赛灵思SDx系列开发环境的第三大成员,能够让更广泛的嵌入式软件开发人员发挥软硬件“全可编程”器件的威力。

SDSoC 带来的软件定义机遇: C/C++ 环境提供类似ASSP 的编程体验

赛灵思FPGA在C语言上的开发介绍

SDSoC开发环境可通过两种方式加速Zynq SoC和MPSoC开发进程。第一种是,软件开发人员借助赛灵思平台、第三方平台或最终用户平台,可以比使用传统硬件/传统软件开发流程更快地启动开发。第二种是,SDSoC可以消除在将可编程逻辑用作软件加速器时软件团队和硬件团队之间常发生的反复变更,真正加速整体系统开发进程。

赛灵思FPGA在C语言上的开发介绍

SDSoC开发环境可提供高度简化、类似ASSP C/C++的编程体验,包括简便易用的Eclipse集成设计环境(IDE)和用于异构Zynq平台部署的综合开发平台。SDSoC配有业界首款C/C++全系统优化的编译器,可提供系统级的特性描述、可编程逻辑内自动软件加速、自动系统连接生成,以及用于加快编程速度的各种库。此外,SDSoC还可为客户和第三方平台开发人员提供专门的流程,以便在SDSoC开发环境中使用这些平台。

SDSoC开发环境

赛灵思FPGA在C语言上的开发介绍

类似ASSP的编程体验

SDSoC可供系统和嵌入式软件开发人员使用,其提供的Eclipse IDE可用于开发运行于裸机或LinuxFreeRTOS操作系统上的C/C++应用。SDSoC可用于开发各种完整的异构多处理系统,包括运行在ARM/NEON处理器上的软件和可编程逻辑中的软件加速器,还能将现有的HDL IP模块反复用作C语言可调用的库。与传统的单独以硬件为中心的流程和以软件为中心的流程不同,这两种流程可能会导致开发延迟、系统架构与性能的不确定性,而SDSoC在开发人员熟悉的嵌入式框架中实现快速系统特性描述和可编程逻辑软件加速。

赛灵思FPGA在C语言上的开发介绍


这款简便易用的IDE可提供项目创建向导,供用户选择目标平台和操作系统,并使用模板创建功能齐全的SDSoC项目,作为构建自己应用的起点。

此外,SDSoC还可为软件团队提供简单的GUI选项,用于选择在可编程逻辑中加速的功能。SDSoC编译器将生成准备在目标平台板上运行的所有必备硬件和软件。

系统级的特性描述

以赛灵思软件开发套件(SDK)目前提供的高级软件特性描述为基础,SDSoC增添了系统级特性描述,用于快速系统(软/硬件)性能估算。此外,还能快速生成并探索系统级架构,以实现最佳总体系统性能与功耗。

赛灵思FPGA在C语言上的开发介绍


SDSoC采用基于PC采样的非侵入式编译器和标准的GPROF编译器,能帮助用户配置其自身软件应用,以识别占用时间最多且适用于硬件加速的功能。

此外,SDSoC还增添了快速系统(软/硬件)性能和器件利用率估算功能,能够迅速完成系统级架构探索,以实现最佳性能、资源利用率和功耗。用户可在可编程逻辑中设定待加速的功能,而且SDSoC还能调用C/C++代码来报告软件周期、硬件周期、数据传输估算、总体应用加速以及硬件资源利用率等情况。

充分利用基于平台的性能估算流程,软件开发人员能够在数分钟内迅速估算出将一项或多项软件功能转移到硬件中用于加速所产生的性能影响,而实际的硬件生成则需要一小时甚至更长时间。

在目标平台上,SDSoC使用由ARM CPU提供的性能计数器,同时自动插入AXI性能监控器(APM)到可编程逻辑中以采集硬件性能数据,可为缓存、存储器、软件加速器和总线利用率提供自动性能测量。运行在平台上的软件可采集性能数据,SDSoC就使用该数据帮助识别系统中的性能瓶颈。这种快速的性能反馈能实现最佳代码分区,以满足系统级性能和功耗需求,同时将开发流程缩短数周时间。

全系统优化的编译器

SDSoC还具有针对ARM处理系统和可编程逻辑的全系统优化的编译器。SDSoC旨在帮助系统架构师和软件团队使用“golden C/C++ source”,通过生成最佳系统连接,快速完成宏架构和微架构的配置。这样既能得到最佳系统连接和存储器接口,还能快速完成设计空间探索,便于开发人员综合权衡性能、吞吐量、时延,同时保持较短的设计迭代时间。

该编译器充分利用基础的高层次综合编译器技术,已有逾千名编程人员使用该技术生成了基于C/C++的高性能IP。将该编译器与链接器结合使用,并基于目标平台以及在可编程逻辑中生成的用户指定的自动软件加速功能,将程序转换到完整的软硬件系统中。

赛灵思FPGA在C语言上的开发介绍

基于程序语法、程序分析、调度安排、系统连接的特性化硬件建模,SDSoC能在可编程逻辑中生成用于软件的加速器。SDSoC充分利用平台的板支持包(BSP)、目标软件加速功能、IP和优化库及系统连接生成功能,构建设计的可编程逻辑部分。该编译器可自动把系统编译为完整的软硬件系统,包括用于可编程逻辑的比特流和用于配置目标平台的ARM处理系统ELF文件。

可编程逻辑中每个加速功能都可以作为独立的线程运行。SDSoC可生成与之同步和保存原始程序语义所需的软硬件组件,同时可实现任务级的并行和用流水线实现的通信和计算,以获取高性能。

C/C++应用源码可包含多个加速功能,特定功能的多个实例以及对主程序各不同部分中的加速器功能的调用。为获得最佳性能,SDSoC还提供赛灵思优化库和赛灵思联盟成员提供的备选库。

通过从“single golden source”生成完整的嵌入式应用,SDSoC可在应用层重构C/C++代码,便于软件开发人员迭代设计和架构变更,从而显著缩短在平台上运行工作程序所需的时间。

面向平台开发人员的专家级使用模型

SDSoC可为系统架构师和平台开发人员提供专家级的使用模型。通过将系统级的特性描述和性能分析功能与自动系统连接生成功能完美结合,该工具可帮助架构师定义、探索并生成各种架构,为自己的应用平台找到最为理想的设计实现方案,并传递给嵌入式软件开发人员,用于在应用平台顶层构建完整的应用。

借助自动系统连接生成功能,架构师可以快速定义、探索并生成宏系统架构和微系统架构,用以确定Zynq处理系统、存储器和基于可编程逻辑的加速器之间的最佳互联架构。

将赛灵思Vivado设计套件与SDSoC结合运用,可用于创建特定应用平台。该平台创建功能还能够将现有的RTL和IP配置用作C语言可调用的库。这对需要借助设计重用来加快平台开发的团队大有裨益。

SDSoC可为基于Zynq 全可编程 SoC的开发板(诸如ZC702、ZC706等)、第三方和特定市场平台(BSP)(如Zedboard、MicroZed和ZYBO),以及视频成像开发套件等提供板支持包(BSP)。这些BSP中包含的元数据可让SDSoC进行平台抽象,以便嵌入式软件开发人员和系统架构师提升生产力,并加速产品开发进程。

结论

SDSoC开发环境可提供类似ASSP的C/C++编程体验,以提高应用开发、系统架构定义和平台创建的生产效率。借助Zynq 全可编程 SoC和MPSoC,SDSoC赋予嵌入式软件开发人员加快更智能系统开发速度的能力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件开发
    +关注

    关注

    0

    文章

    612

    浏览量

    27353
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136665
  • 编程
    +关注

    关注

    88

    文章

    3614

    浏览量

    93684
收藏 人收藏

    评论

    相关推荐

    790.被并入AMD对中国FPGA厂商有什么意义?

    fpga
    小凡
    发布于 :2022年10月05日 02:52:44

    FPGA中使用ARM及AMBA总线

    国外的融合技术专家展示了一项基于FPGA的数据采集系统,用于合成孔径成像技术。采用了Xilinx ISE设计软件,支持ARM AMBA AXI4接口。文风犀利,观点新颖,FPGA中使用ARM及AMBA总线中不可多得的资料
    发表于 03-01 15:48

    玩转FPGA,FPGA设计大赛开赛啦

    经历过和牛人一起进行FPGA设计比赛的激烈竞争吗?你感受过FPGA原厂开发板和fpga行业泰斗直接带来的强烈震撼吗? 没经历过没关系,电子发烧友网主办,
    发表于 04-23 09:31

    玩转FPGA,FPGA设计大赛活动细则,参赛必看

    设计水平。为电子工程师与业界专家进行探讨交流的机会,提高对技术知识的应用和产品商业化的认知。为广大电子工程师深入了解产品的机会,利用
    发表于 04-24 14:40

    提交FPGA设计方案,赢取FPGA开发

    “玩转FPGA:iPad2,开发板等你拿”活动持续火爆进行中……………………活动得到了广大电子工程师积极强烈的支持,为了回报电子工程师
    发表于 07-06 17:24

    Verilog(FPGACPLD)设计小技巧

    Verilog(FPGACPLD)设计小技巧
    发表于 08-19 22:52

    玩转FPGA (xilinx)FPGA设计大赛获奖名单!!!

    专家进行探讨交流的机会,提高对技术知识的应用和产品商业化的认知;为广大电子爱好者深入了解产品的机会,利用
    发表于 09-06 11:54

    :“玩转FPGA (xilinx)FPGA设计大赛”获奖奖品展示

      电子发烧友网讯:由(xilinx)公司和华强PCB网赞助,电子发烧友网主办的玩转FPGA
    发表于 09-06 14:33

    选择(Xilinx)FPGA 7系列芯片的N个理由

      电子发烧友网讯:FPGA 7系列芯片正以燎原之势席卷整个行业。本文,电子发烧友网小编将带领大家一起走近Xilinx的
    发表于 09-06 16:24

    FPGA是用altera多还是的多呢

    FPGA是用altera多还是的多呢,我买的开发板是altera的,但是很多人推荐说学习
    发表于 01-09 21:27

    XilinxFPGA技术及应用线上公开课

    ` 本帖最后由 MGJOY 于 2017-4-10 15:07 编辑 本周三,4月12日,FPGA技术及应用线上公开课。欢迎大家观看、学习交流~分享主题【
    发表于 04-10 15:06

    7系列采用FPGA电源模块

    。ROHM与安富利公司共同开发7系列FPGA及Zynq®–7000 All Programmable SoC的评估套件Mini-Mod
    发表于 12-04 10:02

    如何使用FPGA加速包处理?

    FAST包处理器的核心功能是什么如何使用FPGA加速包处理?
    发表于 04-30 06:32

    CES发布基于Spartan-6 FPGA的最新消费

    CES发布基于Spartan-6 FPGA的最新消费数字电视目标设计平台  
    发表于 01-11 10:59 606次阅读

    FPGA设计流程看懂FPGA设计

    不断 从FPGA设计流程看懂FPGA设计 1.XILINX ISE传统FPGA设计流程 利
    发表于 02-20 20:32 1.6w次阅读
    从<b class='flag-5'>赛</b><b class='flag-5'>灵</b><b class='flag-5'>思</b><b class='flag-5'>FPGA</b>设计流程看懂<b class='flag-5'>FPGA</b>设计