当前位置: 首页 > news >正文

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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • anaconda+tensorflow+keras+jupyter notebook搭建过程(CPU版)
  • 探索PyPDF2:Python中的PDF处理大师
  • windows服务器启动apache失败,提示请通过cmd命令行启动:net start apache
  • 大型语言模型的生物医学知识图优化提示生成
  • DB-gpt + one-api + kimi-free-api 真香
  • C++模版
  • 关于SpringBoot项目利用阿里EasyExcel快捷导入Excel文件入库初始化数据的简单实现
  • djiango-开始创建一个应用
  • JavaScript基础入门:构建动态Web世界的基石
  • Kylin Cube构建日志分析:洞察大数据构建过程的窗口
  • SpringBoot 调用外部接口的三种方式
  • C++ 类型转换 包括C风格的转换、static_cast、const_cast、reinterpret_cast、dynamic_cast、模板特化等
  • opencv - py_calib3d - py_calibration 相机校准
  • git是什么?git和svn的区别。git的一些命令
  • 杰发科技Bootloader(2)—— 基于7840的Keil配置地址
  • 08.Android之View事件问题
  • CentOS 7 修改主机名
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • jdbc就是这么简单
  • Sublime text 3 3103 注册码
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 大型网站性能监测、分析与优化常见问题QA
  • 第十八天-企业应用架构模式-基本模式
  • 猴子数据域名防封接口降低小说被封的风险
  • 如何进阶一名有竞争力的程序员?
  • 微信小程序填坑清单
  • 详解移动APP与web APP的区别
  • 以太坊客户端Geth命令参数详解
  • 昨天1024程序员节,我故意写了个死循环~
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • #{} 和 ${}区别
  • #stm32整理(一)flash读写
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (二)学习JVM —— 垃圾回收机制
  • (规划)24届春招和25届暑假实习路线准备规划
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (五)网络优化与超参数选择--九五小庞
  • (正则)提取页面里的img标签
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ... 是什么 ?... 有什么用处?
  • .Net - 类的介绍
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET gRPC 和RESTful简单对比
  • .NET Project Open Day(2011.11.13)
  • .NET和.COM和.CN域名区别
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /bin/bash^M: bad interpreter: No such file ordirectory