ZYNQ 入门笔记(零):概述

ZYNQ 入门笔记(零):概述

文章目录

引言产品线Zynq™ 7000 SoCZynq UltraScale+™ MPSoCZynq UltraScale+ RFSoCVersal™ 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 System 和 Programmable Logic 两部分

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

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

产品线

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

Zynq™ 7000 SoC

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

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

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

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

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

Zynq UltraScale+™ MPSoC

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

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

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

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

Zynq UltraScale+ RFSoC

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

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

该系列产品命名规则如下

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

Versal™ Adaptive SoC

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

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

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

开发环境

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

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

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

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

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

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

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

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

Wiki

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

相关文章

阴阳师 灯笼火哪里多(阴阳师灯笼鬼哪里多 游戏)
office365打不开doc文件

阴阳师 灯笼火哪里多(阴阳师灯笼鬼哪里多 游戏)

📅 07-30 👁️ 8607
C语言指针的初始化和赋值
下载365App

C语言指针的初始化和赋值

📅 08-15 👁️ 7098