第三章 ZYNQ简介
上一章我们从宏观上认识了ZYNQ 是"PS + PL"的全可编程片上系统。本章进一步深入:PL 到底是什么结构?PS 里面又装了什么?两者如何互联?搞清楚这些问题,后面的开发实践才有根基。
本章在讲什么
本章分为三部分:
- ZYNQ PL 简介——PL 等价于Xilinx 7 系列FPGA,详解其六大组成结构;
- ZYNQ PS 简介——APU 处理器单元、外部接口、存储器接口、片上存储器和AXI 接口;
- ZYNQ 的优势——从应用领域和设计角度总结ZYNQ 为什么值得学。
核心概念拆解
1. PL:Xilinx 7 系列FPGA 的六大结构
PL 部分等价于一片7 系列FPGA,基本结构由六部分组成:

1)可编程输入/输出单元(I/O 单元)
芯片与外界电路的接口,可编程适配不同电气标准与I/O 物理特性,能调整匹配阻抗、上下拉电阻、驱动电流等。常见电气标准有LVTTL、LVCMOS、SSTL、HSTL、LVDS、LVPECL、PCI 等。
ZYNQ 上的通用输入/输出功能(IOB)合称SelectIO 资源,通常以50 个IOB 为一组。每个IOB 有一个与外部设备连接的焊盘,还包含IOSERDES(串并转换)和IODELAY(延迟)资源:

2)基本可编程逻辑单元
这是可编程逻辑的主体。FPGA 一般基于SRAM 工艺,基本逻辑单元几乎都由查找表(LUT)和寄存器组成。Xilinx 7 系列FPGA 内部查找表为4 输入;寄存器可灵活配置为带同步/异步复位或置位、时钟使能的触发器,也可配置成锁存器——寄存器是FPGA 实现同步时序逻辑的核心组件。
Xilinx 7 系列FPGA 的可编程逻辑单元叫CLB(Configurable Logic Block,可配置逻辑块):

每个CLB 包含两个Slice(逻辑片),每个Slice 由4 个查找表、8 个触发器和其他逻辑组成。CLB 在PL 中排列成二维阵列,紧邻开关矩阵,通过可编程互联连接:

3)嵌入式块RAM(Block RAM)
Zynq-7000 里的块RAM 与7 系列FPGA 的BRAM 等同,可实现RAM、ROM 和FIFO 缓冲器:
- 每个块RAM 最多存储36KB,可配置为一个36KB RAM 或两个独立18KB RAM;
- 默认字宽18 位(2048 个存储单元),可"重塑"为4096x9、8192x4、1024x36、512x72 等形态;
- 多个块RAM 可组合成更大容量。

补充:除了块RAM,还可以把LUT 灵活配置成RAM、ROM、FIFO,这叫分布式RAM。块RAM 的数量和配置方式是器件选型的重要标准。
4)丰富的布线资源
布线资源连通FPGA 内部所有单元,按工艺、长度、宽度和分布位置分四类:
| 类别 | 用途 |
|---|---|
| 全局布线资源 | 全局时钟和全局复位/置位布线 |
| 长线资源 | Bank 间高速信号和第二全局时钟 |
| 短线资源 | 基本逻辑单元之间的逻辑互连 |
| 分布式布线资源 | 专有时钟、复位等控制信号线 |
设计者无需主动选择布线资源,布局布线器会根据网表拓扑和约束自动选择,但布线资源的特性和使用效率会直接影响时序性能和面积开销。
5)底层内嵌功能单元
通用程度较高的嵌入式功能模块,如PLL、DLL、DSP、CPU 等。Xilinx 7 系列的时钟资源是CMT(Clock Management Tile),每个CMT 由一个MMCM(混合模式时钟管理)和一个PLL(锁相环)组成,可完成高精度、低抖动的倍频、分频、占空比调整、相移。注意:xc7z020 内部有4 个CMT,xc7z010 只有2 个CMT。
6)内嵌专用硬核
与底层嵌入单元不同,专用硬核通用性较弱,不是所有器件都有。例如:
- XADC:数模混合模块,含两个ADC、模拟多路复用器和片上温度/电压传感器,可监测芯片温度和供电电压,也可测外部模拟电压;
- 高速串行收发器(GTX、GTP,仅高端ZYNQ 有):支持PCI Express、Serial RapidIO、SCSI、SATA 等标准接口。
PL 架构整体示意:

2. PS:以处理器为核心的系统
关键认知转变:ZYNQ 实际上是一个以处理器为核心的系统,PL 可以看作它的一个外设。通过AXI 接口调用IP 核即可实现PL 与PS 互联。
PS 的几个重要特点:
- 包含完整的ARM 处理器系统,集成内存控制器和大量外设,Cortex-A9 可完全独立于PL 运行;
- PS 和PL 的供电电路独立,不用时可分别关断以降功耗;
- ZYNQ 集成的是"硬核"处理器(专用优化硬件电路,性能高),区别于FPGA 逻辑搭建的"软核"处理器(如MicroBlaze、Nios II,胜在数量和灵活)。两者不冲突:完全可以在PL 里搭一个MicroBlaze 软核与ARM 硬核协同工作。
1)APU(应用处理器单元)


APU 主要由两个ARM Cortex-A9 处理器组成,每个处理器包含:
- NEON 引擎和浮点单元(FPU);
- 内存管理单元(MMU);
- 一级cache(指令和数据两部分)。
两个处理器共用二级cache 和片上存储器(OCM),由监听控制单元(SCU)在ARM 内核与二级cache、OCM 之间桥接。SCU 还负责与PL 的接口交互,实现ARM 处理器与PL 的协同。
2)外部接口(MIO/EMIO)
PS 与外部设备之间的通信主要通过MIO(复用输入/输出)实现,提供54 个可灵活配置的引脚——外部设备与引脚的映射可以按需定义。引脚不够时用EMIO(扩展MIO),它不是直接通路,而是借用PL 的I/O 资源实现。
PS 中可用I/O 包括标准通信接口和GPIO(可做按钮、开关、LED 等):

3)存储器接口
- 动态存储器控制器:支持DDR3、DDR3L、DDR2、LPDDR2;
- 静态存储器接口:NAND 闪存、Quad-SPI 闪存、并行数据总线和并行NOR 闪存。
4)片上存储器(OCM)
包括256KB RAM 和128KB ROM(BootROM 就在ROM 区域内),支持两个64 位AXI 从机接口。
BootROM 是一块非易失性只读存储器,存储芯片出厂时固化的引导程序(用户无法修改),是系统上电后执行的第一段代码,负责启动流程初始化和引导FSBL(First Stage Boot Loader)加载。
5)AXI 接口——PS 与PL 的桥梁
如果Cortex-A9 与FPGA 之间的数据交互成为瓶颈,处理器与FPGA 结合的性能优势就发挥不出来。因此片内互联通路是ZYNQ 设计的重中之重。
AXI(Advanced eXtensible Interface,高级可扩展接口)是ARM 公司AMBA 协议的一部分,特点包括:地址/控制和数据通道分离、支持不对齐传输、支持突发传输(只需指定起始地址)、读写数据通道分离、支持乱序完成、易于时序收敛。
AXI4 协议的三种接口:
| 接口 | 特点 | 典型用途 |
|---|---|---|
| AXI4 | 高性能,内存映射,支持突发传输 | 处理器访问存储器 |
| AXI4-Lite | 简化版,单次传输 | 访问低速外设寄存器 |
| AXI4-Stream | 非内存映射,无地址,连续传输 | 视频、高速AD、PCIe、DMA 等高速数据流 |
内存映射(memory mapped):主设备发起的事务中会指定一个对应系统内存空间的地址。AXI4 的突发传输中指定的是起始地址,后续地址由从设备计算。
PS 与PL 之间的9 个AXI 接口:


命名规则以PS 扮演的角色为依据:PS 为主设备时接口名以"M"开头,PS 为从设备时以"S"开头。9 个接口分三类:
- 通用AXI:32 位数据总线,适用于中低速通信,透传不带缓冲;共4 个(2 个PS 为主机、2 个PL 为主机);
- 加速器一致性接口(ACP):PL 与APU 内SCU 之间的单个异步连接,64 位,实现APU 缓存与PL 组件的一致性,PL 为主机;
- 高性能接口(HP):4 个,带FIFO 缓冲以适应"突发式"读写,支持PL 与PS 存储器单元间高速通信,32 位或64 位,皆以PL 为主机。
3. ZYNQ 的应用领域与优势
五大代表性应用领域:
- 汽车:ADAS 高级驾驶辅助系统(偏离车道警告、道路标识识别、泊车辅助、抬头显示等)。ZYNQ 降低元件数量的特性,在成本、功耗、空间敏感的市场中是明显优势;

- 通信:地面和卫星收发信机、移动通信骨干网、雷达、声纳、GPS 等。ZYNQ 是理想的"柔性无线电"平台,可动态改变操作;
- 机器人、控制和仪器:工业控制、风力发电、高能物理实验等。借助PL 快速实时地同步处理多传感器输入、驱动多动作器输出;PS+PL 高带宽连接形成紧密反馈回路,电机控制场景有天然优势;
- 图像处理:嵌入式视频应用既需要大量像素的确定性处理(PL),也需要软件算法(PS),正好各得其所;
- 医疗:CT、超声、MRI 影像设备的图像处理,机器人辅助手术、内窥镜、病人监视设备等。
ZYNQ 的优势总结:
- 功耗更低:分立元件系统的外部连接比ZYNQ 内部PS-PL 连接消耗更多功率;28nm 工艺、紧密存储器集成进一步降低功耗;
- 物理尺寸更小:单芯片替代"ARM 芯片+FPGA 芯片"双芯片方案;
- 开发效率高:集成化设计与软件开发工具套件,支持设计重用和基于C 的算法高级综合;
- 接口标准化:设计流支持PL/PS 间的标准AXI 接口,不必自己设计接口,且有丰富的第三方AXI 兼容IP 可用;
- 通信更安全:处理器与FPGA 的外部连接通信开销消失,内部连接带宽更高、延迟更低、更安全。
初学者容易踩的坑
- 搞反PL 和PS 的主从关系:在ZYNQ 中,PS(ARM 处理器系统)才是核心,PL 更像一个可编程外设,通过AXI 接口挂到PS 上。
- 混淆"软核"与"硬核"处理器:软核(MicroBlaze)用FPGA 逻辑搭建,灵活但性能低;硬核(Cortex-A9)是专用硅电路,性能高。两者可以共存协作。
- 以为EMIO 是PS 的直连引脚:EMIO 没有自己的物理引脚,是借用PL 的I/O 资源实现的扩展。
- 分不清三种AXI 接口的适用场景:访问低速寄存器用AXI4-Lite,访问存储器用AXI4,高速数据流(视频、AD)用AXI4-Stream,选错会带来不必要的复杂性。
- 记错AXI 接口命名方向:M 开头表示PS 是主机,S 开头表示PS 是从机,方向搞反会导致例化IP 时主从接错。
- 忽略不同型号CMT 数量差异:xc7z010 只有2 个CMT,xc7z020 有4 个,涉及时钟资源规划时要注意。
小结 & 下一步
本章详解了ZYNQ 的两大组成部分:PL 端是7 系列FPGA 结构(可编程IO、CLB、块RAM、布线资源、CMT 时钟单元、XADC 等硬核);PS 端是以APU 为核心的完整处理器系统(双核Cortex-A9、MIO/EMIO、DDR 控制器、OCM),两者通过9 个AXI 接口实现高带宽低延迟互联。ZYNQ 在汽车、通信、工业控制、图像处理、医疗等领域都有广泛应用,其单芯片集成带来了低功耗、小尺寸、高开发效率和标准化接口等优势。
下一章将介绍我们的实验平台——正点原子领航者ZYNQ 开发板,把前面学的芯片知识落到一块实际的板子上。