zynq7000开发流程

article/2025/11/8 7:11:34

1   开发工具

1.1           独立开发环境

PL—>Vivado

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

1.2           集成开发环境

SDSoC

1.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 的完整软硬件系统,而且所需的用户介入程度很小。

2   Vivado

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

2.1           开发步骤

(1)     新建工程,选择要开发的zynq芯片型号;





(2)     点击“Create Block Design”,新建一个模块block,并命名;

(3)     点击“IP Catalog”,添加所需要的IP(包括ARM,PL-PS的接口,外围接口模块等等),用户自己编写的逻辑模块封装成IP,与固定IP一样在此添加到BD中。


(4)     约束文件(管脚约束、时序约束);

(5)     点击“Generate Bitstream”,开始综合、布线、生成bit文件;

(6)     最后File -> Export  ->Export Hardware 导出 .hdf 硬件描述文件给SDK用。

3   SDK

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

3.1           步骤

(1)     在SDK中会根据.hdf文件显示配置好的硬件配置环境;


(2)     File -> New ->Application Project


(3)     系统会根据hdf配置好对应的板级支持包bsp,这个就是库函数。在src里面添加main.c,写控制代码,保存的时候会自动编译


(4)     烧写FPGA的bit文件,然后点击Run,临时调试,也可以做成boot.bin文件烧写到外flash或SD卡里面;


4   类似嵌入式 C/C++/OpenCL 应用开发的体验--SDSoC

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

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

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

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

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

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

4.1           系统级的特性描述

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

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

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

4.2           全系统优化编译器

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

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

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

4.3           SDSoC开发流程


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

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

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


http://chatgpt.dhexx.cn/article/76aCKGmv.shtml

相关文章

ZYNQ7000 SPI LCD与Petalinux

前言 ZYNQ内部集成两个ARM Cortex A9核心,Xilinx也推出了Petalinux工具,与Vidado搭配可以方便地完成Linux的uboot、kernel、rootfs部署。 开发板上集成了HDMI,但是需要在FPGA中实现逻辑,但是实现之后占用了7010快一半的资源&…

ZYNQ7000 (二十)等精度频率计的原理分析和实例实现

等精度频率计的原理分析和实例实现 这一视频主要来分析实现等精度频率计。通过分析硬件实现原理,编写 PL的逻辑实现部分,以及对应 PS的 C语言操作,操作挂在 PS寻址空间的寄存器, 达到控制等精度频率计逻辑,读取计数结果…

ZYNQ7000-MIO与EMIO详解

摘要 本文参考芯片手册详细介绍了ZYNQ7000芯片的信号、接口与引脚,结合芯片封装说明了引脚的类别与分布,并说明了MIO与EMIO的区别。 关键词:ZYNQ;信号;引脚;MIO;EMIO;Bank 前言 了解…

ZYNQ7000 SDK开发使用

Zynq开发平台工具 ZYNQSDK开发使用 Zynq开发平台工具导入硬件平台配置BSP包创建和配置创建应用程序下载固件和调试应用程序创建FSBL工程建立内存测试工程启动模式spi flash及sd卡的测试 参考文档:zynq_sw\Lab_instructions\Lab01 - Explore Zynq Hardware Platform …

Zynq7000 OPENAMP 实验

前言 Zynq7000 openamp实验,最近想做一个多cpu异构系统,后面会用zynqmp去做,先拿zynq7000试一下 首先说明,openamp是开源异构多处理通信框架。现在cpu不再像以前单个cpu,而是越来越复杂,比如TI的TDA4芯片…

ZYNQ7000固化流程

ZYNQ7000固化流程 生成BOOT.bin文件 (1)在SDK开发环境下,将FSBL.elf文件,FPGA.bit文件和FW.elf文件按次序添加并打包成BOOT.bin文件 2. BOOT.bin文件固化 (1)在xilinx SDK环境中通过JTAG进行固化&#x…

zynq7000 资源介绍

zynq 7000 资源介绍 整体框架PS端资源PS端资源 整体框架 Zynq7000系列是基于APSOC的可拓展处理平台,它的本质特征是将一个双核ARM Cortex-A9处理器和一个可编程的FPGA芯片集成到一个片上系统中。在进行Zynq7000的详细说明前,本节首先对架构的高层模型进…

zynq7000 创建fsbl工程,并打开log

背景:若通过petalinux编译的启动文件,放到sd卡里面(或者flash),上电后串口没有任何log信息;可以考虑搭建fsbl工程。 以2018.3版本为例。 1、把*.hdf文件放到想要创建的文件里面,然后双击“Xil…

ZYNQ7000-GPIO详解

摘要 本文介绍了ZYNQ7000芯片中GPIO的基本概念,分组、功能、控制寄存器、中断设置以及如何在Vitis中配置GPIO。 本文参考:UG585 - Zynq-7000 SoC Technical Reference Manual (v1.12.2) 385~394页–Ch14: General Purpose I/O(GPIO) 关键词&#xff1a…

zynq7000中断系统

7.1环境 这一章节描述了系统级的中断环境以及中断控制器功能。PS端是基于ARM架构的,并且使用了两个Cortex-A9处理器以及型号为pl390的GIC中断控制器。整个中断结构与处理器、可编程逻辑器件(PL)、从外部IO接受到的中断请求有非常紧密的联系。本章节包含了下面这些关…

【ZYNQ】ZYNQ7000 UART 控制器及驱动应用示例

UART 简介 我们在使用 PS 的时候,通常会添加 UART 控制器,用于打印信息和调试代码。除此之外,PS 在和外部设备通信时,也会经常使用串口进行通信。 UART 控制器 UART 控制器是一个全双工异步收发控制器,ZYNQ 内部包含…

Xilinx ZYNQ 7000入门

ZYNQ是Xilinx推出的新一代全可编程片上系统,将处理器的软件可编程性与FPGA的硬件可编程性完美整合。 ZYNQ7020:xc7z020clg400-2 ZYNQ7010:xc7z010clg400-1 组合了一个双核ARM Cortex-A9(PS)处理器和一个传统的…

ZYNQ7000平台介绍

基于ZYNQ7000平台软件开发 ZYNQ7000平台简介 本文介绍ZYNQ7000平台采用Avnet推出的ZedBoard开发板进行讲解,ZedBoard开发板基于Xilinx Zynq-7000 All Programmable Soc,整合了双核Cortex-A9的PS处理单元和PL逻辑单元。 在zynq上,ARM Cortex…

【ZYNQ】ZYNQ7000 全局定时器及其驱动示例

定时器简介 在 ZYNQ 嵌入式系统中,定时器的资源是非常丰富的,每个 Cortex-A9 处理器都有各自独立的 32 位私有定时器和 32 位看门狗定时器,这两个 CPU 同时共享一个 64 位的全局定时器(GT)。 系统框图 全局定时器&am…

Xilinx ZYNQ 7000学习笔记一(复位和启动)

一、复位系统 参考文献:Zynq-7000 SoC Technical Reference Manual (UG585)-ch26 Reset System zynq7000复位信号源包括硬件复位、看门狗定时器、JTAG控制器复位信号和软件复位信号。其中,硬件复位引脚由上电复位信号PS_POR_B和系统复位信号PS_SRST_B驱…

zynq7000系列芯片介绍

ZYNQ从架构上可以划分为两大模块,一个是PS(处理器系统),另一个是PL(可编程逻辑) PS由APU、内存接口、IO外设、互连线4大模块组成。 1、APU(Application Processor Unit)应用处理单元 即PS【可编…

xilinx zynq-7000 基本知识

Zynq-7000 采用可扩展式处理平台架构(Extensible Processing Platform、EPP),是 Xilinx 用 28nm HKMG工艺制成的低功耗,高性能,高扩展性的新型芯片,这款新品里面集成了ARM CORTEX-A9 MPSOC 硬核以及相应的S…

ZYNQ-7000概述

摘要 Xilinx推出的ZYNQ-7000被称为全可编程片上系统(SOC),它由FPGA与ARM组合构成,硬件可编程,软件也可编程,在众多应用场合有一定优势。本文根据Xilinx官网的介绍并结合ZYNQ-7000的多份数据手册总结了此产品…

ZYNQ学习笔记(一)---初识ZYNQ-7000系列

前几日刚入手一款ZYNQ-7000系列的板卡,之前我也没用过FPGA,直接跨越到ZYNQ的原因主要是某宝上这款板卡相较于其他片上仅有一块FPGA的板卡性价比更高。作为入门,在学习过程中,笔者选择先单独学习ZYNQ上的FPGA部分,也就是…

ZYNQ7000 Vivado详细教学步骤

ZYNQ7000 Vivado开发 ZYNQ7000 Vivado详细教学步骤 ZYNQ7000 Vivado开发1.建立工程项目2.创建Block Design3.配置IO BANK4.配置DDR和CLOCK5.配置PS外设6.测试PS外设7.增加PL外设 1.建立工程项目 Xilinx提供了一系列开发工具,其中包括Vivado平台工具,它是…