Copyright © 2012-2020 芯驿电子科技(上海)有限公司
UltraScale+ MPSoC
Zynq UltraScale+ MPSoC 系列是 Xilinx 第二代平台,其在 FPGA 内部集成了完整 ARM 处理子系统(PS),包含了四核 Cortex-A53 加双核 Cortex-R5 处理器,整个 FPGA 以处理器为中心,并且独立于可编程逻辑单元,如果暂时没有用到可编程逻辑单元部分(PL),ARM 处理器的子系统也可以独立工作,这与以前的 FPGA 有本质区别。
时钟配置
PS 和 PL 的互连
AXI(Advanced eXtensible Interface),是 Xilinx 从 6 系列的 FPGA 开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式,目前版本是 AXI 4.0,Zynq 内部设备都有 AXI 接口。该接口是 ARM 公司所提出的 AMBA(Advanced Microcontroller Bus Architecture)的一部分,是一种高性能、高带宽、低延迟的片内总线,用来替代 AHB 和 APB 总线。AXI 4.0 包含在 2010 年发布的 AMBA 4.0 中。
AXI 协议主要描述了主设备和从设备之间的数据传输方式,主设备和从设备之间通过握手信号建立连接。当从设备准备好接收数据时,会发出 READY 信号,当主设备的数据准备好时,会发出和维持 VALID 信号,表示数据有效。数据只有在 VALID 和 READY 信号都有效的时候才开始传输。当这两个信号持续保持有效,主设备会继续传输下一个数据。主设备可以撤销 VALID 信号,或者从设备撤销 READY 信号终止传输。(主设备向从设备发送数据)
支持 AXI-Lite、AXI4、AXI-Stream 三种总线。
接口协议 | 特性 | 应用场合 |
---|---|---|
AXI4-Lite | 地址/单数据传输 | 低速外设或控制,适合小批量数据,简单控制场合,不支持批量传输,每次读写一个字(32-bit) |
AXI4 | 地址/突发数据传输 | 地址的批量传输,可以连续对一片地址进行一次性读写 |
AXI4-Stream | 仅传输数据,突发传输 | 数据流和媒体流传输,连续流接口,不需要地址线,ARM通过 AXI-DMA 模块实现内存映射到流式接口的转换,适合实时信号处理 |
AXI4-Lite 和 AXI4 均采用内存映射控制方式,即 ARM 将用户自定义 IP 编入某一地址进行访问,读写时就像在读写自己的片内 RAM,代价是资源占用过多,需要额外的读地址线、写地址线、读数据线、写数据线、写应答线这些信号线。
PL 发送数据:
- S_AXI_HP{0:3}_FPD: 总共有四个,用于 PL 访问 PS 上的存储器(DDR和 FPD Main Switch)。
- S_AXI_LPD: 连接 PL 到 LPD,低延迟访问 OCM 和 TCM、访问 PS 端 DDR。
- S_AXI_HPC{0,1}_FPD: 连接 PL 到 FPD,可连接到 CCI,访问 L1 和 L2 Cache,访问 PS 端 DDR 具有较低延迟。
PS 发送数据:
- M_AXI_HPM{0,1}_FPD: 主机接口,可发起读写,连接 FPD 到 PL,用于 CPU、DMA、PCIe 等从 PS 推送大量数据到 PL。
- M_AXI_HPM_LPD: 主机接口,可发起读写,连接 LPD 到 PL,可直接访问 PL 端的 BRAM、DDR 等,也经常用于配置 PL 端寄存器。
- S_AXI_ACE_FPD:
- S_AXI_ACP_FPD:
位于 PS 端的 ARM 直接有硬件支持的 AXI 接口,而 PL 端则需要使用逻辑实现相应的 AXI 协议。Xilinx 在 Vivado 开发环境里提供现成的 IP,如 AXI-DMA、AXI-GPIO、AXI-Datamover、AXI-Stream等。
- AXI-DMA:实现从 PS 内存到 PL 高速传输通道。AXI-HP – AXI-Stream 的转换。
- AXI-FIFO-MM2S:实现从 PS 内存到 PL 通用传输通道 AXI-HPM – AXI-Stream 的转换。
- AXI-DATAmover:实现从 PS 内存到 PL高速传输通道,AXI-HP – AXI-Stream 的转换,由 PL 控制,PS 是被动的。
- AXI-VDMA:实现从 PS 内存到 PL 高速传输通道 AXI-HP – AXI-Stream 的转换,专门针对视频、图片。
- AXI-CDMA:由 PL 完成将数据从内存的一个位置搬移到另一个位置,无需 CPU 插手。
用户自定义的 IP 核(使用向导生成)可以拥有 AXI4-Lite、AXI4、AXI4-Stream、PLB 和 FSL 这些接口,由于后两种 PS 端并不支持,所以不用。使用向导生成的自定义 IP 和官方 IP 中已经将 AXI 时序细节封装,用户只需要关心逻辑实现即可。
AXI 协议是一个点对点的主从接口协议,当多个外设需要互相交互数据时,我们需要加入一个 AXI Interconnect 模块(AXI 互联矩阵),作用是将一个或多个 AXI 主设备连接到一个或多个 AXI 从设备的一种交换机制。该 AXI Interconnect IP 核最多可以支持 16 个主设备、16 个从设备,如果需要连接更多的接口,可以多加入几个 IP 核。
AXU3EG 开发板介绍
这款 MPSoCs 开发板采用核心板加扩展板的模式,核心板使用 Xilinx Zynq UltraScale+ EG 芯片 ZU3EG 解决方案,采用 Processing System(PS)+ Programmable Logic(PL)技术将双核 ARM Cortex-A53 和 FPGA 可编程逻辑集成在一颗芯片上。
这款 FPGA 平台能够满足网络通信、高速数据交换存储、工业控制、深度学习、AI 智能、云计算等多方面的应用场景。在性能方面,由于使用了半定制集成电路,其在性能方面也远超数字信号处理器(DSP)的运算能力,由于在硬件层面控制输入和输出,满足了更快速的应用响应时间。在稳定性方面,由于 FPGA 不使用操作系统,拥有真正的并行执行和专注于每一项任务的确定性硬件,其可减少系统稳定性方面出现问题的可能性。
开发系统结构图:
外设 | 数量 | 备注 |
---|---|---|
eMMC Flash | 1 | 8GB,型号 MTFC8GAKAJCN-4M |
QSPI Flash | 1 | 256Mbit,型号 MT25QU256ABA1EW9 |
DisplayPort | 1 | 支持 4K 30Hz |
MIPI 摄像头输入接口 | 1 | 2-lane,用于连接 MIPI 摄像头模块(AN5641) |
USB3.0 | 4 | 接口类型为 Type A |
以太网口 | 2 | RJ45,PS 端和 PL 端各 1 路,10/100/1000M |
USB UART 接口 | 2 | PS 端和 PL 端各 1 路,串口采用 Silicon Labs CP2102GM 的 USB-UART 芯片 |
JTAG 调试接口 | 1 | 10 针2.54mm标准 JTAG 接口,用于 FPGA 芯片的下载和调试 |
485通信接口 | 2 | MAXIM 公司的 MAX3485 芯片 |
CAN 通信接口 | 2 | TI 公司的 SN65HVD232 芯片 |
40针扩展口 | 2x40PIN | 2.54mm 间距的扩展口,包含 IO 口 34 路 |
Micro SD卡座 | 1 | 用于存储操作系统镜像和文件系统 |
M.2 接口 | 1 | Key-M,PCIex1标准,6Gbps |
EEPROM | 1 | I2C 接口的 EEPROM 24LC04 |
温湿度传感器 | 1 | 板载温湿度传感器芯片 LM75 |
核心板
核心板型号 ACU3EG 是基于 Xilinx 公司的 Zynq UltraScale+ MPSoCs EG 系列的 XCZU3EG-1SFVC784i,这款核心板使用了 5 片 Micron 的 DDR4 芯片,其中 PS 端挂载 4 片 DDR4(Micron,MT40A512M16LY-062E,2400Mbps),组成 64 位数据总线带宽和 4GB 的容量。PL 端挂载 1 片,为 16 位的数据总线宽度的 1 GB芯片(2133Mbps)。
Zynq 芯片
ZU3EG 芯片的 PS 系统集成了 4 个 ARM Cortex-A53 处理器(1.2GHz),支持两级 cache,还包含 2 个 Cortex-R5 处理器(500MHz)。该芯片支持 32 位或者 64 位的 DDR4、LPDDR4、DDR3、DDR3L或LPDDR3 存储芯片,在 PS 端带有丰富的高速接口,如 PCIe Gen2、USB3.0、SATA 3.1、DisplayPort,同时也支持 USB2.0、千兆以太网、SD/SDIO、I2C、CAN、UART和GPIO等接口。PL 端内部含有丰富的可编程逻辑单元,DSP 和内部 RAM。ZU3EG 芯片的总体框图如图所示: