ZYNQ 入门笔记(零):概述

文章目录

    • 引言
    • 产品线
      • Zynq™ 7000 SoC
      • Zynq UltraScale+™ MPSoC
      • Zynq UltraScale+ RFSoC
      • Versal™ Adaptive SoC
    • 开发环境

引言

Xilinx FPGA 产品线从经济型的 Spartan、Artix 系列到高性能的 Kintex、Virtex、Versal 系列,可以说涵盖了 FPGA 的绝大部分应用场景,那为什么还要设计 Zynq 系列?为什么不使用纯逻辑的 FPGA 系列?为什么不使用开发效率更高的 CPU、GPU?

设计往往源于实际需求,以生活中常见的路由器为例,其主要包括 路由转发后台管理 两部分功能,路由转发功能我们往往关注其 吞吐量、波动、延迟 等指标,后台管理则更加关注其 灵活性。显然,仅使用纯逻辑 FPGA 或者 CPU 均难以兼顾上述需求,那能否将 FPGA 与 CPU 集成在一块 PCB 上?其中 FPGA 负责核心的 路由转发 功能,CPU 则负责 路由配置、后台管理、OTA 升级 等灵活性更高的功能,二者通过 总线通信,而这正是 Zynq 的设计理念

实际上现实中的路由器更多采用专用转发芯片 + CPU 的方案实现,这里更多是为了阐述 Zynq 的设计理念和开发优势

以 Zynq 7000 系列芯片架构为例,其内部分为 Processing SystemProgrammable Logic 两部分

  • Processing System :处理系统,由 ARM Cortex-A9 和 SPI、UART 等外设组成,通常称为 PS
  • Programmable Logic:可编程逻辑,即我们通常所说的 FPGA,内部包括逻辑门阵列、DSP、RAM 等模块,通常称为 PL

两者之间通过 EMIOAXI 总线通信,其中 AXI 总线又分为 GP 和 HP 以适应不同应用场景

产品线

Xilinx Zynq 产品线 包括 Zynq™ 7000 SoCZynq UltraScale+™ MPSoCZynq UltraScale+ RFSoCVersal™ Adaptive SoC 四个系列,其在 ARM 核心制程逻辑资源外设 方面有所不同

Clip_2024-07-21_22-22-19

Zynq™ 7000 SoC

该系列 PS 端集成 单核/双核 ARM Cortex-A9 核心,最大运行频率 766MHz - 1GHz,支持 DDR3、DDR3L、DDR2 和 LPDDR2,主要面向 成本敏感型设计

Clip_2024-07-21_22-38-51

PL 端为 Artix-7Kintex-7 系列,BRAM 大小为 1.8Mb - 26.5Mb

Clip_2024-07-21_22-37-37

此外 7000 系列还包含了若干 串行收发器 GTP 和 GTX,最高传输速率可达 200Gbps

Clip_2024-07-21_22-41-00

该系列产品的命名格式如下,读者在开发时可快速定位所需平台

Clip_2024-07-21_22-42-46

以上数据来源于 Xilinx 产品手册

Zynq UltraScale+™ MPSoC

相较于 7000 系列,UltraScale + MPSoC 集成了性能更加强悍的 ARM Cortex-A53 核心,部分产品还集成了 GPUH.264/H.265 视频编码单元,主要面向 图像/视频处理 场景

Clip_2024-07-21_22-52-38

该系列的可编程逻辑部分采用了更加先进的 16nm FinFET+ 工艺制造,提供了更加丰富的可编程逻辑资源,CGEGEV 系列的详细参数如下,其中 EV 系列集成的 H.264/H.265 编码核心功能非常强大

Clip_2024-07-21_22-56-47

Clip_2024-07-21_22-57-17

Clip_2024-07-21_22-57-40

UltraScale + MPSoC 系列的产品命名规则如下

Clip_2024-07-21_23-00-53

以上数据来源于 Xilinx 产品手册

Zynq UltraScale+ RFSoC

UltraScale+ RFSoC 系列集成了高速 ADC、DAC 和 SD-FEC、DDC 等信号处理单元,在射频信号处理、高速通信等领域应用广泛

Clip_2024-07-21_23-07-42

由于笔者对 RFSoC 系列了解较少,这里仅给出该系列产品性能参数,感兴趣的朋友可前往 官网 查看详细信息

Clip_2024-07-21_23-11-05

Clip_2024-07-21_23-11-49

该系列产品命名规则如下

Clip_2024-07-21_23-12-22

以上数据来源于 Xilinx 产品手册

Versal™ Adaptive SoC

Versal 系列是 Xilinx 产品线中的划时代设计,其采用先进的 7nm 工艺制造,按照产品研发时间可分为 Gen1Gen2 两部分

Clip_2024-07-21_23-23-05

第二代产品的标量计算能力大约是第一代的 10 倍

Clip_2024-07-21_23-22-30

由于笔者对 Versal 系列的了解几乎为 0,因此大家感兴趣的还是自行前往 首页 了解吧 [doeg]

开发环境

Zynq 开发可分为 PS 端和 PL 端,PL 端使用 Vivado 开发,PS 端使用 Vitis 开发,安装时勾选 Vitis 会同时安装 Vivado

Clip_2024-07-21_17-25-36

Vitis 是 SDK 的升级版本,两者关于 PS 端的开发流程和 API 基本没有变化,但仍然推荐安装 Vitis。其中 2023.1 及之前版本的 SDK / Vitis 基于 Eclipse 开发,2023.2 及之后的版本基于 VSC 开发,外观更加现代

通过上面的产品线介绍大家可以感受到,Zynq 系列包含的产品非常复杂,想要完全讲透各种外设、GPUVPUAI 加速单元等非常费时费力。因此,本系列笔记的大致路线如下

  1. 项目搭建流程和联合调试技巧
  2. PS 端基础外设,如 MIO、I2C、SPI、UART 等
  3. PL 端拓展外设,如 EMIO、AXI-GPIO、AXI-I2C、BRAM、AXI4-Stream FIFO
  4. AXI 总线协议,包括 AXI4-Lite、AXI4-Full 和 AXI4-Stream
  5. PS 与 PL 数据交互,如 BRAM、FIFO、DDR 等
  6. VPU……

授人以鱼不如授人以渔,Xilinx 官方提供了许多资料帮助我们学习 Zynq

  1. 安装 Vitis 时一般会附带安装 DocNav 文档浏览器,可以在里面搜索关于 Zynq 相关的文档,里面对 Zynq 及其外设的内部结构、寄存器、基本使用有非常详细的介绍

    Clip_2024-07-21_18-06-45

  2. 在 Vitis 中点击 Platform Project 下的 xpr 文件,然后点击 Board Support Package,在下面的 Drivers 栏就有当前 xsa 文件包含的相关外设的例程

    Clip_2024-07-21_18-14-46

  3. 米联客、黑金、正点原子等有很多例程可以参考学习,这里 是笔者收集的板卡资料,仅供学习使用

    Clip_2024-07-21_18-17-32

  4. Wiki

不积跬步,无以至千里。不积小流,无以成江河。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫实战案例(爬取图片)

爬取图片的信息 爬取图片与爬取文本内容相似,只是需要加上图片的url,并且在查找图片位置的时候需要带上图片的属性。 这里选取了一个4K高清的壁纸网站(彼岸壁纸https://pic.netbian.com)进行爬取。 具体步骤如下: …

使用阿里云云主机通过nginx搭建文件服务器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、准备基础环境二、安装配置nginx三、阿里云安全组配置安全组配置 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4ee96f38312e4771938e40f463987…

1 go语言环境的搭建

本专栏将从基础开始,循序渐进,由浅入深讲解Go语言,希望大家都能够从中有所收获,也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方,请指正!大家一起学习,…

【C语言】栈的实现(数据结构)

前言: 还是举一个生活中的例子,大家都玩过积木,当我们把积木叠起来的时候,如果要拿到最底部的积木,我们必须从顶端一个一个打出,最后才能拿到底部的积木,也就是后进先出(先进后出&a…

项目的小结

1.实现实时聊天 1.服务端建立一个ConcurrentHashMap<> 用来存储在线用户&#xff0c;用户账号和socket然后&#xff0c;如果有个人发了信息&#xff0c;就去数据库中查询&#xff0c;然后根据这个在线用户进行传递信息 服务端框架&#xff1a; public class ServerMain {…

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架4.4 信息加解密技术-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架 4.3 信息安全系统的组成框架4.3.1 技术体系4.3.1.1 基础安全设备4.3.1.2 计算机网络安全4.3.1.3 操作系统安全4.3.1.4 数据库安全4.3.1.5 终端安全设备4.3.2 组织机构体系4.3.3 管理体系4.4 信息加…

Ubuntu 22.04.4 LTS (linux) Tomcat 项目部署

1 war包直接放在tomcat webapps 下面 2 修改server.xml &#xff0c;改成自定义目录 sudo vim /data/tomcat/conf/server.xml <Host name"localhost" appBase"webapps" --> <Host name"localhost" appBase"" <Conte…

今日分享丨用双钻模型设计中后台产品

随着C端市场的快速进化&#xff0c;用户的审美标准与产品体验认知均达到了前所未有的高度&#xff0c;这一转变深刻影响了用户对B端产品的期待。在面对B端产品时&#xff0c;用户不自觉地以C端产品的优质体验为参照&#xff0c;希望产品不仅能高效完成工作任务&#xff0c;同时…

收藏:高性价比https证书

在当今的数字化世界中&#xff0c;网络安全已经成为了每个网站所有者的首要关注点&#xff0c;为了保护网站的安全&#xff0c;防止数据被窃取或篡改&#xff0c;使用SSL证书已经成为了一种标准的做法&#xff0c;SSL证书是一种用于加密网站和用户之间数据传输的证书&#xff0…

easyExcel和poi的版本对应

easypoi3.0.5对应的poi版本_easypoi和poi版本对应-CSDN博客 https://github.com/alibaba/easyexcel/blob/v3.2.0/pom.xml 解决 java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader 报错-CSDN博客 参考这个文档解决的- 引入最佳版本是3.15版本 java.lang.NoClas…

ubuntu一些好用的开发工具及其配置

1 终端模糊搜索fzf https://github.com/junegunn/fzf 输入某命令&#xff0c;比如 conda &#xff0c;按下ctrlR&#xff0c;会显示和该命令匹配的历史命令的列表 有了这个工具再也不用记忆太复杂的命令&#xff0c;只需要知道大概几个单词&#xff0c;输入即可搜索。 其搜索…

可见性::

目录 定义&#xff1a; 解决方法&#xff1a; ①使用synchronized实现缓存和内存的同步 修改一&#xff1a; 加入语句&#xff1a; 代码&#xff1a; 修改2&#xff1a; 在代码块中加入&#xff1a; 代码&#xff1a; 执行结果&#xff1a; 原因&#xff1a; ②使用…

RPA软件-影刀使用

流程自动化 影刀将操作进行抽象&#xff0c;分为一下几个对象&#xff1a; 网页自动化 &#xff08;1&#xff09; 网页自动化应用场景&#xff1a;网页操作、数据抓取 &#xff08;2&#xff09; 网页操作&#xff1a;基础操作-指令操作&#xff0c;智能操作-关联元素&#…

PTrade常见问题系列15

某容器占用内存很高需要关闭处理&#xff1f; 1、若只是关闭部分进程&#xff0c;则需要进入容器后top -b 排序出资源占用消耗最高的几个进程&#xff0c;通过kill -9的方式进行清理&#xff1b; 2、若要关闭对应容器&#xff0c;则在管理端勾选后进行关闭容器操作或者在后台执…

【学习笔记】解决Serial Communication Library编译问题

【学习笔记】解决编译 Serial Communication Library 时的 Catkin 依赖问题 Serial Communication Library 是一个用 C 编写的用于连接类似 rs-232 串口的跨平台库。它提供了一个现代的 C 接口&#xff0c;它的工作流程设计在外观和感觉上与 PySerial 相似&#xff0c;但串口速…

本地化部署一个简单的AI大模型,Llama3.1

7 月 23 日消息&#xff0c;Meta 今晚正式发布llama3.1&#xff0c;提供 8B、70B 及 405B 参数版本。 Meta 称 4050 亿参数的 Llama 3.1-405B 在常识、可引导性、数学、工具使用和多语言翻译等一系列任务中&#xff0c;可与 GPT-4、GPT-4o、Claude 3.5 Sonnet 等领先的闭源模型…

KETTLE运行出现乱码和无法执行问题及解决方案

一、乱码问题 &#xff08;1&#xff09;出现乱码&#xff0c;在数据库连接里面的选项里面加入&#xff1a;characterEncodingutf8和tinyInt1isBitfalse &#xff08;2&#xff09;取消简易转换&#xff0c;点开表输入&#xff0c;取消”允许简易转换”选项&a…

学习笔记:MySQL数据库操作5

1. 触发器&#xff08;Triggers&#xff09; 触发器是数据库的一种高级功能&#xff0c;它允许在执行特定数据库操作&#xff08;如INSERT、UPDATE、DELETE&#xff09;之前或之后自动执行一段代码。 1.1 创建商品和订单表 商品表&#xff08;goods&#xff09; gid: 商品编号…

【LeetCode:3098. 求出所有子序列的能量和 + 记忆化缓存】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

c++ 内存管理(newdeletedelete[])

因为在c里面新增了类&#xff0c;所以我们在有时候会用malloc来创建类&#xff0c;但是这种创建只是单纯的开辟空间&#xff0c;没有什么默认构造的。同时free也是free的表面&#xff0c;如果类里面带有指针指向堆区的成员变量就会free不干净。 所以我们c增加了new delete和de…