February 9, 2024

ZYNQ学习笔记


一、ZYNQ 简介

1.1 概述

PS and PL in ZYNQ

  ZYNQ,即Zynq-7000 All Programmable Soc (APSoC),赛灵思公司(AMD Xilinx)推出的新一代全可编程片上系统。实际上,ZYNQ = PS(Processing System,处理系统,ARM) + PL(Program Logic,可编程逻辑,实际上就是FPGA)。两个系统可以独立使用,二者通过AXI高速接口进行数据通信。

  ZYNQ将处理器的软件可编程性与FPGA的硬件可编程性进行完美结合,以提供无与伦比的系统性能、灵活性和可扩展性。ZYNQ可以依靠片上的ARM内核运行Linux系统。

  ZYNQ是基于ARM处理器的SoC,可满足复杂嵌入式系统的高性能、低功耗和多核处理器等要求。SoC(System on Chip)和早期的SoB(System on Board)相对应。SoC的成本更低,能在不同的系统单元之间实现更快更安全的数据传输,具有更高的系统运行速度,更低的功耗,更小的物理尺寸和更高的可靠性。

  Soc主要可以分为以下三类: 1. 基于ASIC的Soc; 2. 可编程的片上系统(SOPC, System on Programmable Chip, 即FPGA):灵活性很高,但是要实现这样的功能要使用的资源很多,导致最后实现的功能受限; 3. 全可编程片上系统(APSoC, All Programmable SoC,即ZYNQ)。 ### 1.2 PL(FPGA)简介

  FPGA(Field Programmable Gate Array,现场可编程门阵列),一种可以通过编程来修改其逻辑功能的数字集成电路(芯片)。Xilinx公司对自己的最小可编程单元起名为可配置逻辑块CLB(Configurable Logic Block),一个CLB由两个片(Slice)组成,每个片中包含多个查找表LUT(Look Up Table)和触发器FF(Flip-Flop)。PL部分就是7系列的FPGA部分,型号不同,资源不同,例如逻辑单元,内部存储器数量,乘法器,高速接口等。

  FPGA的架构如下所示: - 可编程IO单元:可将引脚配置为上拉或下拉、驱动电流、电平标准、输入、输出或双向等。 - 可编程逻辑单元(CLB) - 底层嵌入功能单元:例如PLL、DSP、时钟管理等 - 嵌入式块RAM(Block RAM):用来存储数据 - 硬核:例如XADC,不是每一个厂家的每一个芯片都有。XADC可以实现高速AD转换,检测片上温度和电压等。 - 布线资源 - ...

  有以下两种PL架构,对应不同的ZYNQ型号 - Artix-Based devices:Z-7010,Z-7015,Z-7020 - Kintex-Based devices:Z-7030,Z-7045,Z-7100

1.3 PS(处理系统)简介

PS端集成了两个ARM Cortex-A9处理器,AMBA(Advanced Microcontroller Bus Architecture)互联,内部存储器,外部存储器接口和多种外设。外设主要包括USB总线接口,I2C总线接口,CAN总线接口,UART接口,GPIO,GigE,以太网接口,SD/SDIO接口等。

在PS端有一部件称为APU(Application Processor Unit),可称为应用处理单元。内部除了两颗ARM核之外还有以下部件需要关注:

1.4 ZYNQ GPIO分布

ZYNQ有118个GPIO,分为54个MIO和64个EMIO。其中有32个MIO(Bank 0),22个MIO(Bank 1),32个EMIO(Bank 2),32个EMIO(Bank 3)。在概念的分组上,PS端有Bank 0和Bank 1两个分组,PL端有Bank 2和Bank 3两个分组。需要注意这些分组都是概念上的,在硬件上的分组有其他的形式。在硬件上,Bank 500、Bank 501、Bank 502是PS端的分组,Bank 13、Bank 33、Bank 34、Bank 35是PL端的分组。

二、AXI 总线

2.1 概述

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是 ARM 公司提出的 AMBA(Advanced Microcontroller Bus Architecture)3.0 协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。AXI 是 AMBA 中一个新的高性能协议。AXI 技术丰富了现有的 AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。

AXI 总线是连通 PS 和 PL 的一个总线协议,最终的形式就相当于 PL 块作为一个 IP Core 挂载在 AXI 总线上,然后由 PS 调用。Xilinx 从 6 系列的 FPGA 开始对 AXI 总线提供支持,目前使用 AXI4 版本(在A7系列芯片中就可以找到AXI4总线协议)。

2.2 AXI 总线协议种类

2.3 AXI 总线协议接口

image-20240321213944787

image-20240321220104190

About this Post

This post is written by Yun Zhang, licensed under CC BY-NC 4.0.

#FPGA#ZYNQ