初始Vitis——ZYNQ学习笔记1

一、Vitis是什么

        Vitis 统一软件平台的前身为 Xilinx SDK,从 Vivado 2019.2 版本开始, Xilinx SDK 开发环境已统一整合到全功能一体化的 Vitis 中。 Vitis 开发平台除了启动方式、软件界面、使用方法与 SDK 开发平台略有区别,其他操作几乎一模一样。 Vitis 可以采用 C、 C++或 Python 开发以嵌入式处理器为核心的嵌入式系统, 可实现在 Xilinx 异构平台(包括 FPGA、 SoC 和 Versal ACAP)上开发嵌入式软件和加速应用。 它可为边缘、云和混合计算应用加速提供统一编程模型。 Vitis 可以利用与高层次框架的集成,通过加速库采用 C、 C++或Python 进行开发,或者使用基于 RTL 的加速器和低层次运行时 API 对实现方案进行粒度更精确的控制。 Vitis是应用 IDE( 集成开发环境), 可实现真正的同构及异构多处理器设计、调试和性能分析。

        Vitis 统一软件平台是一种新增工具,用于将赛灵思软件开发的方方面面全部组合到统一的环境内。Vitis 软件平台支持 Vitis 嵌入式软件开发流程以满足希望迁移至下一代技术的赛灵思软件开发套件(SDK) 用户的使用需求,也支持 Vitis 应用加速开发流程,以满足希望使用基于赛灵思 FPGA 的最新软件加速功能的软件开发者的需求。

二、Vitis开发流程

        使用 Vitis 进行嵌入式设计开发包括两部分,分别是硬件设计和软件设计。硬件设计使用到的工具是Xilinx 提供的 Vivado 套件,软件设计使用 Xilinx 提供的 Vitis 统一软件平台。

        在 Vivado 中我们可以在 Block Design 中搭建嵌入式处理系统,然后生成包含硬件信息的 XSA( Xilinx Shell Archive)文件。利用 XSA 文件在 Vitis 软件中搭建硬件平台,进行软件设计和调试。

下图是 Vitis 统一平台的嵌入式系统开发流程图:

第一步: 创建 Vivado 工程, 创建方法和《ZYNQ 之 FPGA 开发指南》中描述的步骤一致。

第二步:使用 IP 集成器创建嵌入式处理系统,包括配置 Processing System IP、其他需要的 IP 核以及外围设备。

第三步:对已经验证好的 Block Design 设计生成顶层 HDL。

第四步:与普通的 FPGA 开发一样,进行综合、实现并生成 Bitstream 文件和 XSA 文件,将生成的硬件设计文件导出到 Vitis 开发平台下。

第五步:启动 Vitis,创建硬件平台工程和应用工程并完成相关程序的编写、调试、编译。

第六步:进行软硬件联调、完成功能的验证。

        如上图所示,开发流程大体上可以分为 6 步。其中 step1 至 step4 为硬件设计部分,在 Vivado 软件中实现; step5 为软件设计部分,在 Vitis 软件中实现; step6 为功能的验证。

三、HelloWorld

1、创建vivado工程

        使用图形化开发工具

这里简单介绍下上述对话框中三个选项的含义,也可以通过点击对话框左下角的问号按钮去看 Xilinx的原文描述。

•Design name(设计名称): 指定要创建的块设计的名称。

•Directory(目录):指定创建的块设计文件的存放路径,可以是本地项目路径下也可以是当前项目之外的位置,一般默认为本地项目路径下。

•Specify source set(指定源集):将新的块设计添加到设计源文件集、默认仿真文件集或新的仿真文件集中。一般来说, Xilinx 建议在设计源文件集中创建块设计。

2、添加zynq系统IP

双击打开ZYNQ7 Processing System 模块

DDR3配置

UART配置

 

Bank工作电压参考板卡原理图

取消多余接口

 

验证设计

产生接口

3、生成顶层HDL

4、导出硬件Hardware

5、在vitis中进行软件设计

创建工程

 

编译程序

6、上板验证

打开串口工具

 

 

下载程序

 验证成功

四、总结

五、拓展

        在经过本章的学习后,相信大家已经掌握了创建硬件工程和软件工程的方法。例程里是直接调用 Vitis软件平台现成的模板工程去打印字符串的,大家也可以直接在 Vitis 平台里去新建一个空的应用工程,然后在空应用工程里添加 main.c 文件,在 main.c 文件里自己编写代码去打印想要打印的内容。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1541923.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

针对 Linux SSH 服务器的新攻击:Supershell 恶意软件危害易受攻击的系统

ASEC 研究人员发现了针对保护不善的 Linux SSH 服务器的新攻击。 在其中,黑客使用了用Go编写的 Supershell恶意软件。 该后门使攻击者能够远程控制受感染的系统。 初次感染后,黑客启动扫描仪来寻找其他易受攻击的目标。 据信这些攻击是使用从已受感…

【多模态大模型】Qwen2-VL基本原理和推理部署实战

文章目录 Qwen2-VL基本原理Qwen-VL简要回顾Qwen2-VL的高级升级统一视觉处理方式原生动态分辨率处理(非大图切分方式)多模态旋转位置编码 Qwen2-VL推理实现|代码解析单图推理视觉信息预处理找到能被28整除的最合适size最大最小pixel数边界处理 多模态信息…

docker入门总结(附错误处理,持续更新)

安装、启动、卸载 卸载掉旧版本的 Docker yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engineDocker安装(选其一)…

解决DockerDesktop启动redis后采用PowerShell终端操作

如图: 在启动redis容器后,会计入以下界面 : 在进入执行界面后如图: 是否会觉得界面过于单调,于是想到使用PowerShell来操作。 步骤如下: 这样就能使用PowerShell愉快地敲命令了(颜值是第一生…

[SAP ABAP] 生成表维护视图

SAP由于数据量较大,很多自定义表都需要通过用户自行去维护,一般可以直接在SE16N对数据字典进行维护数据,但不是每个用户都有其操作权限,而且直接在数据字典上操作数据有很高的风险,因此SAP提供了表维护视图生成器&…

蓝桥杯【物联网】零基础到国奖之路:八. RTC

蓝桥杯【物联网】零基础到国奖之路:八. RTC 第一节 RTC的基本知识第二节 CubeMX配置第三节 代码 第一节 RTC的基本知识 RTC是实时时钟,指可以想时钟一样输出实际时间的电子设备,一般会是集成电路,也被称为是时钟芯片。总之,RTC只…

Matlab可视化│常用绘图全家桶

Matlab拥有强大的数据可视化功能,这也是其备受科研大佬们青睐的原因之一。利用Matlab的高级绘图全家桶,你能够轻松地呈现各种复杂数据,并使其变得更加易于阅读和理解。 效果图展示: colormap Matlab还提供了各种各样的颜色&#…

java 获取集合a比集合b多出来的对象元素

public class OrderListEntity {/*** deprecated 对象集合的处理* param aData 集合a* param bData 集合b* return 返回集合a比集合b多出来的部分, 通过id判断*/public static List<OrderListEntity> AHasMoreThanBData(List<OrderListEntity> aData, List<Ord…

机器人时代的“触觉革命”:一块小传感器如何颠覆你的认知?

你是否曾经想过,机器人也能像人类一样有“触觉”?不再是简单的机械操作,而是具备真正的感知能力,能够学会精细的任务。今天我想和你聊聊一种让机器人“长出触觉”的技术:一种小巧的触觉传感器,它的名字叫“AnySkin”。别看它小,它的潜力可一点都不小,或许能彻底改变我们…

如何使用ssm实现基于Web的数字家庭网站设计与实现+vue

TOC ssm661基于Web的数字家庭网站设计与实现vue 绪论 课题背景 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化。目前&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得到…

2024华为杯数学建模竞赛A题

2024年中国研究生数学建模竞赛A题 风电场有功功率优化分配 一、问题背景 我国风电快速发展&#xff0c;大型风机、大规模场站逐步投入运行。额定容量高的大型风机机械部件柔性更强&#xff0c;导致其疲劳损伤累积速度快&#xff0c;增加风机维护成本&#xff0c;降低风力发电…

操作系统之I/O设备管理

I/O系统的组成 I/O系统的结构 微机I/O系统 总线型I/O系统结构,CPU与内存之间可以直接进行信息交换&#xff0c;但是不能与设备直接进行信息交换&#xff0c;必须经过设备控制器。 主机I/O系统 I/O系统可能采用四级结构&#xff0c;包括主机、通道、控制器和设备。一个通道…

Linux:login shell和non-login shell以及其配置文件

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 shell是Linux与外界交互的程序&#xff0c;登录shell有两种方式&#xff0c;login shell与non-login shell&#xff0c;它们的区别是读取的配置文件不同&#xff0c;本…

算法学习2

学习目录 一.插入排序 一.插入排序 从数组的第一个元素开始&#xff0c;当前元素与其前一个元素进行比较&#xff1b; 大于&#xff08;或小于时&#xff09;将其进行交换&#xff0c;即当前元素替换到前一位&#xff1b; 再将该元素与替换后位置的前一个元素进行交换&#xf…

树莓派配置Qt+OpenCV

本次教程使用的树莓派镜像&#xff1a;树莓派镜像带图像界面下载 Qt的安装&#xff1a; 在命令行依次输入以下命令安装Qt&#xff1a; sudo apt-get updatesudo apt-get upgrade sudo apt-get install qtbase5-dev qtchooser sudo apt-get install qt5-qmake qtbase5-dev-t…

某花顺爬虫逆向分析

目标网站&#xff1a; aHR0cHM6Ly9xLjEwanFrYS5jb20uY24v 一、抓包分析 携带了cookie&#xff0c;每次请求的cookie都不一样&#xff0c;且不携带cookie不能成功返回数据 hook Cookie代码 _cookie document.cookie Object.defineProperty(document, cookie, {get(){con…

分子动力学工具篇一:TAB与moltemplate的安装与使用

文章目录 1. 介绍1.ATB (Automated Topology Builder)2. Moltemplate 2. 展出讲讲怎么使用ATB3. 展开讲讲怎么安装和使用moltemplate 1. 介绍 1.ATB (Automated Topology Builder) ATB网站网址&#xff08;需要用学术邮箱注册&#xff09; ATB (Automated Topology Builder) …

【数据结构】经典题

所以&#xff0c;语句 x; 的语句频度为&#xff1a;n(n1)(n2&#xff09;/6 选C 临时变量 t&#xff1a;只使用了一个额外的变量来存储交换的值。 没有使用额外的数组&#xff1a;所有的操作都是在原数组 a 上进行的。 因此&#xff0c;算法的空间复杂度是常数级别的&#xff0…

Java中List、ArrayList与顺序表

List、ArrayList与顺序表 List什么是List常用方法介绍List的使用 ArrayList与顺序表线性表顺序表接口的实现 ArrayList简介ArrayList的使用ArrayList的构造ArrayList的常见操作ArrayList的遍历ArrayList的扩容机制 ArrayList的具体使用杨辉三角简单的洗牌算法 ArrayList的问题及…

某招标公告公示搜索引擎爬虫逆向

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 网站&#xff1a;aHR0cHM6Ly9jdGJwc3AuY29tLyMv 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、抓包分析 请求参数和返回数据都进行了加…