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

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

3天内不再提示

Zynq的开发方式和开发工具

汽车玩家 来源:CSDN 作者:战斗机上的飞行员 2020-03-08 16:40 次阅读

1、Zynq的开发四种方式

纯PL开发,纯PS开发(helloworld),PS+PL(无操作系统,跑裸跑程序),PS+PL(跑操作系统)。

1.1 纯PL开发

这个和一般的xilinx的FPGA没有很大的区别。

1.2 纯PS开发

典型的就是helloworld工程, 一种是传统的arm的方式。还一种就是xilinx方法,这个是生成一个elf文件,这个elf文件包括了硬件配置信息(xmp),和裸跑程序(c文件)。

1.3 PS+PL(不跑操作系统)开发

这个可以参考懒兔子博客二,三笔记,生成的elf文件包括了硬件配置信息(xmp),还有裸跑程序(c文件),另外还有一个.bit文件可以看出和纯PS开发的区别了。

1.4 PS+PL(跑操作系统)开发

这个就需要BOOT.BIN,设备树,linux内核镜像,文件系统了。

其中BOOT.BIN是由3部分组成的(boot.elf, .bit, fsbl.elf),boot.elf这个是由交叉编译环境产生的,相当于ssbl,.bit文件是PL使用文件,fsbl.elf这个是fsbl。

2、开发工具

2.1 独立开发环境

PL—> Vivado

PS(ARM)–> SDK(Xilinx)或者第三方ARM开发工具

2.2 集成开发环境

SDSoC

2.3 独立开发环境的四个步骤

(1) 系统架构师确定硬件-软件分区方案;

(2) 硬件工程师处理被分配到硬件中的功能,并将它们转换或设计成IP核(Verilog/VHDL,也可用Vivado HLS实现C/C++高层次综合);

(3) 利用Vivado IP Integrator 创建整个嵌入式系统的模块化设计。包括开发需要的数据移动工具(AXI-DMA、AXI Memory Master、AXI-FIFO 等),以及连接 PL IP 与 PS 的 AXI 接口(GP、HP 和 ACP),之后将此项目导入到SDK中;

(4) 软件工程师使用SDK,开发PS中ARM处理器的驱动程序和应用。

对于以硬件为中心的优化流程,矛盾往往出现在不同的数据移动工具和PL-PS接口以及写入和调试驱动程序与应用,为避免重构硬件造成软件的变化,使得PS-PL开发更加紧密,赛灵思推出了SDSoC开发环境。将上述步骤(2)、(3)和(4)实现高度自动化,以缩短开发时间。该开发环境会生成必要的硬件和软件组件,用以同步硬件和软件并保存源程序语义,同时支持任务级并行处理和流水线化的通信与计算,从而实现高性能。SDSoC 环境会自动安排所有必要的赛灵思工具(Vivado、IP Integrator、HLS 和 SDK),以生成针对 Zynq SoC 的完整软硬件系统,而且所需的用户介入程度很小。

一个SDSoC设计项目是建立在一个“平台”之上的。所谓“平台”包含硬件平台和软件平台两个部分,是一个设计开发可以复用的基础性系统。

平台是利用标准的Vivado、SDK和OS工具创建的。硬件平台(HPFM)定义了诸如处理系统(PS,Processing System)、I/O子系统、存储器接口等,这些工作都基于一个定义明确的端口接口(AXI、AXI-S,、时钟、复位、中断)。软件平台(SPFM)定义了OS、设备驱动、启动加载程序(boot loaders)、文件系统、库等。

基于C/C++源代码的定制和专用硬件和软件,用户可以扩展平台。

SDSoC将平台作为独立的解决方案空间,基于平台提供的资源去生成用于解决方案的IP。每个解决方案都是为一个平台裁剪而成的。

一个扩展名为xpfm的文件包含了硬件描述符XML文件(HPFM)和软件描述符XML文件(SPFM)位置的参考。

2.4 Vivado

Vivado是基于IP的设计,称为block design(BD),调用已有的IP,用户自己编写的逻辑模块也可以封装成IP,然后在模块blcok中连线。逻辑开发完毕,再转到SDK,SDK会根据Vivado的硬件设计设置调用相应的内部驱动代码。(PL部分就如同ARM的总线AXI等挂的外设)

2.5 SDK

SDK根据生成的.hdf文件匹配FSBL,只需添加main.c文件即可。

3、类似嵌入式 C/C++/OpenCL 应用开发的体验–SDSoC

SDSoC™ 开发环境可为异构 Zynq® AllProgrammable SoC 及 MPSoC 部署提供类似嵌入式 C/C++/OpenCL 应用的开发体验,其中包括简单易用的 Eclipse IDE 和综合设计环境。SDSoC 提供业界首款 C/C++/OpenCL 全系统优化编译器,可实现系统级的特性描述、可编程逻辑中的自动软件加速、自动系统连接生成以及可加速编程的各种库。此外,它还可帮助最终用户及第三方平台开发人员快速定义、集成和验证系统级解决方案,为其最终用户实现定制化编程环境。(软件工程师能够对 Zynq SoC 中的可编程逻辑和 ARM 处理系统进行编程)

• 简单易用的 EclipseIDE 可用于开发支持嵌入式 C/C++/OpenCL 应用的全面 Zynq All Programmable SoC 和 MPSoC 系统

• 只需一点按钮,就可对可编程逻辑 (PL) 中的功能进行加速

• 支持作为目标 OS 的裸机、Linux 与 FreeRTOS

• Xilinx 库作为 Vivado HLS 的一部分,由联盟成员提供,是可选硬件优化的库。

• OpenCL 在 2016.3 版中为早期的测试版。请联系您的当地销售代表提出申请

下图展示的是一个基于基础平台的完整SDSoC设计的整体结构。需要加速的C/C++/SystemC功能成为了FPGA可编程逻辑(PL)中的IP,而其他功能保留在处理器系统(PS)中。同时,SDSoC会在那些IP和PS系统间自动生成互连。

3.1 系统级的特性描述

• 快速性能估算与面积估算可在几分钟内完成,包括 PS、数据通信以及 PL

• 高速缓存、存储器以及总线利用率的自动运行时仪表

• 可实现最佳总体系统架构的便捷生成与探索

3.2 全系统优化编译器

• 可将C/C++/OpenCL 应用编译成全功能 Zynq SoC 与 MPSoC 系统

• 可在生成 ARM 软件与 FPGA 比特流的可编程逻辑中实现自动功能加速

• 不仅可优化系统连接,而且还支持吞吐量、时延以及面积权衡的快速系统探索

3.3 SDSoC开发流程

① SDSoC 环境使用快速估算流程(通过调用内含的Vivado HLS)构建应用项目。这样在数分钟内就能大致估算出性能和资源情况。

② 如果有必要,用适当的指令优化 C/C++ 应用和硬件功能,并重新运行估算直到实现所需的性能和占位面积。

③ 然后,SDSoC 环境构建整个系统。该过程会生成完整的 Vivado Design Suite 项目和比特流,以及一个针对 Linux、FreeRTOS 或裸机的可引导的运行时间软件映像。

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

    关注

    70

    文章

    2119

    浏览量

    119364
  • Zynq
    +关注

    关注

    9

    文章

    598

    浏览量

    46609
收藏 人收藏

    评论

    相关推荐

    STM32WLE5使用什么开发工具

    我准备使用STM32WLE5,请教一下使用什么开发工具?STLINK-V2可以吗?
    发表于 03-14 07:00

    配置Ubuntu系统环境和安装的开发工具

    安装好Ubuntu系统环境后,开发前需要简单配置Ubuntu系统环境以及安装一些必备的开发工具
    的头像 发表于 12-22 13:32 601次阅读
    配置Ubuntu系统环境和安装的<b class='flag-5'>开发工具</b>

    CodeArts五年磨一剑,深耕信创软件开发工具

    在今年的QCon全球软件开发大会(上海站),华为云开发工具和效率领域首席专家、华为软件开发生产线 CodeArts首席技术总监王亚伟作为「智能化信创软件IDE」专题的出品人,带领他的专家团队为大家
    的头像 发表于 12-15 15:55 370次阅读
    CodeArts五年磨一剑,深耕信创软件<b class='flag-5'>开发工具</b>

    有奖问卷 | 下一代开发工具,由你定义!

    我们正在进行一项关于下一代开发者体验的研究,旨在深入了解和优化未来的开发工作流程和工具。在全部数据回收后, 将抽取一定比例的开发者获得50元京东卡 ,请您在问卷最后准确留下您的联系
    的头像 发表于 12-15 15:50 189次阅读

    CCES和VDSP开发工具有什么不同?哪个易于操作?

    我选用的21489做音频操作,但是我是一名新手,需要学习一个开发工具,我想问各位这两个开发工具CCES和VDSP++到底有什么区别,如何选用?因为还有一系列的后续开发,各位可建议采用哪个开发工
    发表于 11-30 06:59

    开发出商用的RISC-V处理器还需要哪些开发工具和环境?

    开发出商用的RISC-V处理器还需要哪些开发工具和环境? 处理器是软硬件的交汇点,所以必须有完善的编译器、开发工具和软件开发环境(IDE),处理器内核才能够被用户顺利使用起来。目前RI
    发表于 11-18 06:05

    开发板和开发工具指南

    与使用开发环境相比,许多工程师更倾向于将调试点嵌入其代码并使用测试设备来验证其硬件。欧时电子指南将详述开发板和开发工具的优势,并提供关于使用和选择恰当开发工具的实用建议。
    的头像 发表于 10-26 14:35 271次阅读

    Intellij IDEA 开发工具实例

    本篇博客我们将会以Intellij IDEA 开发工具为例,所以我这里简单谈谈我们所使用的开发工具。 目前大家做Java开发的,无外乎就两种,eclipse或者Intellij IDEA
    的头像 发表于 09-25 16:21 471次阅读
    Intellij IDEA <b class='flag-5'>开发工具</b>实例

    先楫hpm_sdk开发方式的优缺点 与单片机传统开发方式的不同点

    最近在跟一些开发者交流过程中,或者开发者群里反馈,感觉先楫单片机开发方式不同于以往的单片机开发方式,或者开发方式没接触过导致无从下手,或者是
    的头像 发表于 09-25 09:16 643次阅读
    先楫hpm_sdk<b class='flag-5'>开发方式</b>的优缺点 与单片机传统<b class='flag-5'>开发方式</b>的不同点

    OneCore存储软件开发工具包(SDK)

    电子发烧友网站提供《OneCore存储软件开发工具包(SDK).pdf》资料免费下载
    发表于 08-22 14:53 0次下载
    OneCore存储软件<b class='flag-5'>开发工具</b>包(SDK)

    通用数据库管理和开发工具DBeaver的下载与安装

    DBeaver 是一个基于 Java 开发,免费开源的通用数据库管理和开发工具,使用非常友好的 ASL 协议。可以通过官方网站或者 Github 进行下载。
    发表于 08-14 14:16 429次阅读
    通用数据库管理和<b class='flag-5'>开发工具</b>DBeaver的下载与安装

    【新唐开发工具】快速建构低功耗蓝牙设计的开发模块:BLE ATCMD

    【新唐开发工具】快速建构低功耗蓝牙设计的开发模块:BLE ATCMD
    的头像 发表于 08-09 15:27 378次阅读
    【新唐<b class='flag-5'>开发工具</b>】快速建构低功耗蓝牙设计的<b class='flag-5'>开发</b>模块:BLE ATCMD

    使用Helium开发工具包和Cayenne进行GPS跟踪

    电子发烧友网站提供《使用Helium开发工具包和Cayenne进行GPS跟踪.zip》资料免费下载
    发表于 06-19 15:33 0次下载
    使用Helium<b class='flag-5'>开发工具</b>包和Cayenne进行GPS跟踪

    OpenHarmony开发者大会 开发工具分论坛:聚能量赢未来,工具助力应用创新

    日前,以“开源正当时,共赢新未来”为主题的开放原子开源基金会OpenHarmony开发者大会2023(以下简称“大会”)在北京举行,“开发工具分论坛”于当天下午召开。在本次论坛上,各位演讲嘉宾重点
    的头像 发表于 05-08 14:42 914次阅读
    OpenHarmony<b class='flag-5'>开发</b>者大会 <b class='flag-5'>开发工具</b>分论坛:聚能量赢未来,<b class='flag-5'>工具</b>助力应用创新

    瑞萨FLASH开发工具箱3.07用户手册

    瑞萨FLASH开发工具箱3.07用户手册
    发表于 05-04 19:45 1次下载
    瑞萨FLASH<b class='flag-5'>开发工具</b>箱3.07用户手册