赛灵斯 Xilinx FPGA 最小系统设计指南

现场可编程门阵列(FPGA,Field Programmable Gate Array)是一种高性能、低延时、可重构,拥有高速并行运算能力,并可定制性能与功耗的可编程数字逻辑芯片,最早由 1984 年创立的赛灵思(Xilinx)公司推出,该公司由 Ross H. Freeman 和 Bernard V. Vonderschmitt 共同创办。不同于专用集成电路(ASIC,Application Specific Integrated Circuit)固定的内部电路连接和逻辑功能,FPGA 芯片内部电路连接与数字逻辑功能都可以通过灵活的编程来定义。

目前全球 FPGA 的市场份额主要集中在 赛灵思(Xilinx,2020 年被 AMD 收购)和 阿尔特拉(Altera,2015 年被 Intel 收购)两家美国企业手中,余下的市场份额主要由 莱迪思(Lattice)和 美高森美(Microsemi)两家公司占据。国产 FPGA 芯片产业起步较晚,产品性能与专利积累较为薄弱,目前主要有 深圳紫光同创、上海安路科技、广东高云半导体、上海复旦微电子、西安智多晶、深圳易灵思、北京京微齐力、成都华微电子 等研发厂商。本文基于 AMD/Xilinx 官方提供的数据手册与参考资料,分别从 产品线序列、片上功能单元、最小系统设计 三个维度进行讨论,协助硬件工程师快速上手相关电路设计。

FPGA 的基本结构

现场可编程门阵列(FPGA,Field Programmable Gate Array)芯片的内部基本结构主要由 可编程 IO 单元、可编程逻辑单元、嵌入式块 RAM、布线资源、内嵌专用硬核 六大功能单元构成,下面这张抛砖引玉的示意图可以协助大家直观的建立起 FPGA 的基本概念:

AMD/Xilinx 产品线介绍

AMD/Xilinx 公司的纯 FPGA 产品线,主要可以划分为 7 系列、UltraScale 系列(过渡性产品)、UltraScale+ 系列 三个大系列:

  1. 7 系列:采用 28nm 制程工艺,包含 Spartan-7、Artix-7、Kintex-7、Virtex-7 四个子系列;
  2. UltraScale 系列:采用 20nm 制程工艺,包含 Kintex UltraScale、Virtex UltraScale 两个子系列;
  3. UltraScale+ 系列:采用 16nm 制程工艺,包含 Spartan UltraScale+、Artix UltraScale+、Kintex UltraScale+、Virtex UltraScale+ 子系列;

注意:截止到 2026 年 8 月,UltraScale 作为过度系列已经逐步边缘化,不再推荐新项目选型。

在上述三个大系列的基础之上,面向不同的应用场景,上述 FPGA 产品线还会被进一步细分为 Spartan、Artix、Kintex、Virtex 四个子系列:

  1. Spartan 系列:低成本低功耗,面向消费电子和基础应用;
  2. Artix 系列:平衡成本与性能,适用于低功耗中等算力场景;
  3. Kintex 系列:高性能计算与通信,同时兼顾性价比;
  4. Virtex 系列:旗舰级高性能和高集成度;

AMD/Xilinx 公司也推出了同时集成有 SoC 和 FPGA 功能的四款自适应 Soc(Adaptive SoCs)产品线:

  • Zynq 7000 SoC:采用 28nm 制程工艺,集成有单/双核 ARM Cortex-A9,拥有 12.5G 速率的收发器;
  • UltraScale+™ MPSoC:采用 16nm 制程工艺,集成有双/四核 ARM Cortex-A53、双核 ARM Cortex-R5F、ARM Mali-400MP2 和 H.264/H.265 视频编解码器,是应用最为广泛的通用型号;
  • UltraScale+ RFSoC:采用 16nm 制程工艺,集成有四核 ARM Cortex-A53、双核 ARM Cortex-R5F 和数字 RF-ADC、RF-DAC、SD-FEC,广泛应用于 5G 通信、雷达、卫星通信等领域;
  • AMD Versal Adaptive SoC:采用 7nm 制程工艺,集成有双核 ARM Cortex-A72、双核 ARM Cortex-R5F,以及 DSP 和 AI 引擎与可编程片上网络,主要应运用于人工智能场景;

AMD/Xilinx 公司目前力推的 UltraScale+ 系列 多处理器片上系统(MPSoC,Multi-Processor System on Chip)产品,属于集成有多种异构处理核心的高性能片上系统,主要内置有如下的片上计算资源:

  • 应用处理器 APU:多核 64 位 ARM Cortex-A53,可运行 Linux 操作系统,负责通用计算;
  • 实时处理器 RPU:双核 ARM Cortex-R5F,用于处理实时任务;
  • 图形处理器 GPU:ARM Mali-400MP2 用于处理显示输出任务;
  • 可编程逻辑 PL:UltraScale+ FPGA,用于实现硬件加速;
  • 视频编解码:用于支持 H.264/H.265 视频编解码;

而 UltraScale+ MPSoC 系列下面又进一步划分出了下表中的 CG、EG、EV、RF 四个子系列:

UltraScale+ MPSoC 的 CG 子系列:入门级器件,主要集成有 双核 1.3 GHz ARM Cortex-A53 和 双核 ARM Cortex-R5F,系统逻辑单元数量在 81K ~ 600K 范围,其对应的具体系统功能框图如下面所示:

UltraScale+ MPSoC 的 EG 子系列:资源较为丰富,主要集成有 四核 1.5 GHz ARM Cortex-A53、双核 600 MHz ARM Cortex-R5F、多核 ARM Mali-400MP2 图形处理器,系统逻辑单元数量在 81K ~ 1143K 范围,其对应的具体系统功能框图如下面所示:

UltraScale+ MPSoC 的 EV 子系列:内置视频编解码器,主要集成有 四核 1.5 GHz ARM Cortex-A53、双核 600 MHz ARM Cortex-R5F、多核 ARM Mali-400MP2 图形处理器,以及 H.264/H.265 视频编解码器,系统逻辑单元数量在 192K ~ 504K 范围,其对应的具体系统功能框图如下面所示:

MPSoC 系列命名规则

UltraScale+ MPSoC 系列产品的命名由 设备名称 + 设备属性 + 封装信息 构成,例如对于命名为 XCZU7EV-2FFV C1156I 的 MPSoC 芯片:

设备名称 部分是 XCZU7EV:

  • 商品级别:XC 表示商业标准级(Xilinx Commercial),XA 表示汽车认证级(Xilinx Automotive);
  • 产品系列:ZU 表示 Zynq UltraScale+ 系列产品线;
  • 价值索引:该数值越大,片上资源就越丰富,价格也就越高;
  • 处理器系统标识符:C 代表双核 APU 和双核 RPU,E 代表四核 APU、双核 RPU、单个 GPU;
  • 引擎类型: G 表示通用规格,V 表示携带有视频解码器;

制造工艺 部分是 -2FFV:

  • 速度等级:-1/2/3 表示最慢/中等/最快,-L1/L2 表示低功耗;
  • 倒装封装:F 表示球距 1.0 mm 的 Flip-chip 封装,S 表示球距 0.8 mm 的 Flip-chip 封装,U 表示球距 0.5 mm 的 InFO 封装;
  • 封装技术:F 表示 Lid 封装技术,B 表示 Lidless 封装技术;
  • 电气标准:V 表示符合 RoHS 六项检测;

封装信息 部分是 C1156I:

  • 封装标识符:例如 A 或者 C 等;
  • 封装引脚数量:例如 1156 等;
  • 温度等级:E 表示工作在 0°C ~ +100°C,I 表示工作在 –40°C ~ +100°C;

处理系统 PS & 可编程逻辑 PL

AMD/Xilinx 的 Zynq 系列属于 ARM + FPGA 异构一体化 SoC 芯片产品,其 Zynq 7000 和 Zynq MPSoC 系列均由 处理系统(PS,Processing System)和 可编程逻辑(PL,Programmable Logic)两个核心部分组成:

  • 处理系统(PS,Processing System):基于 ARM Cortex 架构,类似于传统的 CPU 中央处理器,可以直接运行嵌入式 Linux 操作系统;
  • 可编程逻辑(PL,Programmable Logic):传统的 FPGA 可编程逻辑资源,支持硬件并行处理,可通过 Verilog 或者 VHDL 进行编程;

注意:PS 和 PL 之间的低速数据交互可以采用 EMIO,而高速数据则必须使用 高级可扩展接口(AXI,Advanced eXtensible Interface)总线。

虽然更早推出的 Zynq 7000 以及后来的 Zynq MPSoC 均采用 PS + PL 的架构,但是两者的区别在于 Zynq-7000 的 PS 端为双核 Cortex-A9 架构,而 Zynq MPSoC 的 PS 端升级为了四核 Cortex-A53 加上 双核 Cortex-R5 以及 GPU 的多核架构,在算力和实时性以及多媒体处理能力方面都得到了大幅提升:

基本逻辑单元 CLB

可配置逻辑块(CLB,Configurable Logic Block)是 FPGA 可编程逻辑单元的基本组成部分,每一个 CLB 包括有 2 个 Slices 切片。而每一个 Slice 切片又由 4 个 查找表(LUT,Look-Up Table)、8 个寄存器、逻辑门共同组成。

切片 Slices 可以进一步被划分为 逻辑切片(SLICEL,Slice Logic)和 存储器切片(SLICEM,Slice Memory)两种类型,其中 SLICEM 的功能更加强大,除了具备 SLICEL 的所有功能之外,还能实现分布式的 RAM、ROM 以及移位逻辑功能。除此之外,UltraScale 架构的 FPGA 内部通常还内嵌有块存储器(BRAM,Block RAM),而 UltraScale+ 架构还会内置超存储器(URAM,Ultra RAM),从而大大扩展了 FPGA 的应用范围与使用灵活性。

PS 侧的 MIO/EMIO

UltraScale+ MPSoC 在 PS 侧提供了多路复用(MIO,Multiplexed IO)和扩展多路复用(EMIO,Extended Multiplexed IO)两种 I/O 管理机制:

  • MIO:用于 PS 端的多路复用 IO,由处理系统 PS 直接管理的物理引脚,用于控制 PS 端的各种外设资源;
  • EMIO:用于 PS 端的扩展多路复用 IO,由处理系统 PS 通过 PL 可编程逻辑扩展的 I/O 接口,当 PS 的 MIO 数量不足时,可通过 PL 路由出更多的 EMIO(会引入额外延迟);

PL 侧的 SelectIO

SelectIO 指的是用于 PL 侧的逻辑 IO 引脚,能够支持多种单端(例如 LVCMOS)和差分(例如 LVDS)电平标准(信号电平幅值越低,传输速率越快),Xilinx FPGA 的 SelectIO 对 IO Bank 进行了如下表的分类:

Bank 类型 功能特点 性能描述
高性能 Bank(HP,High Performance) 适用于高速场景(1.0V ~ 1.8V); 单端速率最大 1.6 Gb/s,LVDS 差分速率最大 1.8 Gb/s,DDR4 接口速率 2.667 Gb/s;
高密度 Bank(HD,High Density) 单位晶圆面积提供更多 IO 引脚,适用于低速率场景(1.2V ~ 3.3V); 单端速率最大 250 Mb/s,不支持 LVDS 和 DDR;
宽范围 Bank(HR,High Range) 适用于宽电压范围场景(1.2V ~ 3.3V); 单端速率最大 800 Mb/s,LVDS 差分速率最大 1.25 Gb/s,不支持 DDR;
  • UltraScale+ MPSoC 系列的 HP Bank:拥有 52 个标准 SelectIO 引脚(24 个差分对);
  • UltraScale+ MPSoC 系列的 HD Bank:拥有 24 个标准 SelectIO 引脚(12 个差分对,无 I/ODELAY 功能);

注意:Zynq 7000 系列没有 HD Bank,UltraScale+ MPSoC 系列没有 HR Bank,不带 + 号的 UltraScale MPSoC 系列才拥有 HR Bank。

吉比特收发器 GTx

FPGA 内置的串行解串器(SerDes,Serializer/Deserializer)用于进行串行数据与并行数据的相互转换:

  1. 当 FPGA 作为接收端的时候,用于将串行数据,转换为 FPGA 内部能够处理的并行数据;
  2. 当 FPGA 作为发送端的时候,用于将 FPGA 内部的并行数据,转换为便于传输的串行数据;

注意:目前的 FPGA 芯片通常都集成有专用的 SerDes 外设单元,例如 AMD/Xilinx 的 GTx 收发器,以及 Intel/Altera 的 Transceiver 收发器。

AMD/Xilinx 在 FPGA 芯片 PL 端集成的 SerDes 外设被称作吉比特收发器(GT,Gigabyte Transceiver),基于不同的数据传输速率及其所具备的高级特性,规格书当中会分别以 GTx 格式进行命名,例如 GTP、GTX、GTH、GTZ、GTY。对应于 AMD/Xilinx 的不同产品系列,GTx 的传输速率也会有所不同:

7 系列 UltraScale 系列 UltraScale+ 系列
GTP = 6.6 Gb/s GTH = 16.3 Gb/s GTH = 16.3 Gb/s
GTX = 12.5 Gb/s GTY = 30.5 Gb/s GTY = 32.75 Gb/s
GTH = 13.1 Gb/s - GTR = 6.0 Gb/s
GTZ = 28.05 Gb/s - -

上述表格当中的 GTR 是集成在 UltraScale+ MPSoC 系列芯片 PS 端的硬核高速收发器,其传输速率上限为 6.0 Gb/s,采用固定的 4 对差分信号收发引脚(只能被运用于 PS 端的 PCIe2.0、SATA3.1、USB3.0、DP、SGMII 五种硬核协议)。

注意:许多数据手册和参考原理图当中出现的多吉比特收发器(MGT,Multi‑Gigabit Transceiver),通常指代的是高速收发器所在的 Bank,也就是 MGT Bank。

模数转换 XADC/SYSMON

赛灵思模数转换器(XADC,Xilinx Analog-to-Digital Converter)是 Zynq 7 系列(纯 FPGA 芯片)、Zynq 7000 系列(集成有双核 ARM Cortex-A9 系统的 FPGA 芯片)内部集成的硬核子系统,在 UltraScale+ MPSoC 架构当中更名为系统监控器 SYSMON(早期 UltraScale 采用 SYSMONE1 版本架构,后期 UltraScale+ 统一采用 SYSMONE4 版本架构,本文主要介绍后者):

UltraScale+ MPSoC 系列芯片分别在 PS 端和 PL 端都内置有 SYSMONE4 增强型系统监控器:

  • PL 端系统监控器 PL SYSMON:采样率为 200 kSample/S,可以监测 PL 区域的温度,以及 PL 和 PS 端的多个电压节点,也可以基于 1.25V 差分参考输入引脚 \(V_{REFP}\) 和 \(V_{REFN}\) 进行外部模数转换采样(通过模拟差分输入引脚 \(V_P\) 和 \(V_N\)),电源使用的是 \(V_{CCAUX}\) 与 \(V_{CCADC}\) 两个引脚;
  • PS 端系统监控器 PS SYSMON:采样率为 1 MSample/S,只能监测芯片内部温度和电压,无法采集外部模拟信号,使用 PS 端 LPD 低功耗电源域的 \(V_{CC\_PSAUX}\) 和 \(V_{CC\_PSADC}\) 两个引脚供电;

注意:SYSMONE 是增强型系统监控器(System Monitor Enhanced)的英文缩写。

DDR 内存控制器

字节组 & 字节通道

在 DDR 相关的技术手册当中经常出现的字节组 Byte Group 和字节通道 Byte Lane 两个术语,本质上属于可以互换使用的同义词。每一组 Byte Lane 负责并行传输 8 位的数据(即一个字节),但是一个完整的 Byte Lane 不仅包含有 8 条 DQ 数据信号线,还会包含有相对应的控制与时序信号线:

  • 8 条数据信号 DQ[7:0];
  • 2 条数据选通 DQS_t 和 DQS_c 组成的差分信号;
  • 1 条数据掩码(Data Mask)DM_n 或者数据总线反相(Data Bus Inversion)DBI_n 信号;

注意:除此之外,Byte Lane 同样也是 PCB Layout 阶段信号分组和等长匹配的最基本单位。

PS 端的 DDR

UltraScale+ MPSoC 系列在 PS 端内置了 DDR 控制器和物理层的硬核实现,可以对 DDR3、DDR3L、LPDDR3、DDR4、LPDDR4 提供支持;PS 端的 DDR 引脚位于 Bank504(PS 端 DDR 控制器专属的 MIO Bank),能够连接 16 bit、32 bit、64 bit 位宽的多枚 DDR 颗粒(所有 DDR 颗粒必须使用相同的位宽),DDR 引脚互换遵循如下三条核心原则:

  1. DDR4 的 地址、命令、控制 信号引脚严禁交换,必须一对一进行连接;
  2. 数据通道(Byte Lane)可以整组互换(即每 8 位数据 DQ 信号,及其对应的数据选通 DQS_P/N、数据掩码 DM 信号为一个组),不同的组之间可以整组互相调换;
  3. 相同 数据通道 内部的数据 DQ 信号可以任意调换位置;

PL 端的 DDR

赛灵斯在 Vivado 当中提供了一个 IP 软核 内存接口生成器(MIG,Memory Interface Generator)​来提供对于 DDR 的控制器和物理层支持(基于 HP Bank 引脚),UltraScale+ MPSoC 系列的 MIG 软核可以支持 DDR3、DDR3L、LPDDR3、DDR4、LPDDR4,这款软核对于 DDR 字节通道的绑定,主要存在如下具体规则:

  • DQS_t 和 DQS_c 信号必须使用该数据通道 Lane 专用的差分时钟引脚 N6 和 N7;
  • DM_n 或 DBI_n 信号必须使用 N0 引脚;
  • DQ 信号可以使用该字节通道剩余的引脚,但是不能随意跨通道进行调换;

输入输出组 IO Bank

输入输出组 IO Bank 是 FPGA 内部对引脚资源进行分组管理的单元区块,相同 Bank 上的全部 IO 引脚都共享同一个电源域(可以将 Bank 翻译为中文的组),下面以 UltraScale+ MPSoC 系列采用 SFVC784 封装的 XCZU4EV 引脚定义示意图来进行讨论:

XCZU4EV 的 PL 逻辑侧 IO 被划分为 Bank43、Bank44、Bank45、Bank46、Bank64、Bank65、Bank66、Bank224 八个组:

  • 高性能 HP Bank:Bank43、Bank44、Bank45、Bank46(支持 DDR4、LVDS、LVCMOS 等高速接口),
  • 高密度 HD Bank:Bank64、Bank65、Bank66(通用低速外设接口);
  • 吉比特收发器 GT Bank:Bank224(PL 侧的高速 SerDes 接口);

XCZU4EV 的 PS 系统侧的 96 个 MIO 引脚则被划分为了 Bank500、Bank501、Bank502、Bank503、Bank504、Bank505 六个组:

Bank 组 MIO 引脚 Bank 组 MIO 引脚
Bank500 MIO[0~15] Bank503 MIO[48~63]
Bank501 MIO[16~31] Bank504 MIO[64~79]
Bank502 MIO[32~47] Bank505 MIO[80~95]

UltraScale+ MPSoC 引脚定义

展开进一步的讨论之间,先通过本节的一系列表格将 UltraScale+ MPSoC 芯片名目繁多的引脚定义,分门别类的整理和展示出来。

用户 I/O 引脚

UltraScale+ MPSoC 系列芯片的每个用户 I/O 引脚名称,都是由如下的标识格式组成:

1
2
IO_L[1 to 24][P or N]_T[0 to 3] [U or L]_N[0 to 12]_ [multi-function]_[bank number]
IO_T[0 to 3][U or L]_N[0 to 12]_[multi-function]_[bank number]

下面的列表,解释了各个标识的名字:

  • IO:代表用户 I/O 引脚;
  • L[1‑24]:代表一组独立差分对(包含有正极 P 和负极 N),换而言之,不带 L 标识则只支持单端信号,不能作为差分引脚使用;
  • T[0‑3][U or L]:代表该引脚所属字节组,而U 和 L 分别代表在该字节组内的半字节位置(上半字节 Upper,下半字节 Lower)。
  • N[0‑12]:该引脚在其所属字节组内部的引脚编号;
  • [multi‑function]:可复用为其它硬件功能的多功能引脚,不使用复用功能时可以作为普通用户 I/O 引脚使用;
  • [bank number]:该用户 I/O 引脚所属的 Bank 编号;

注意:UltraScale+ MPSoC 标准 52 引脚的 HD、HP、HR Bank 都固定包含有 T0、T1、T2、T3 四个字节组(Byte Group),每个字节组内部则拥有 N0、N1、N2 … N12 共 13 个局部编号引脚。除此之外,26 引脚的 HR Bank 只拥有 T0 和 T1 两个字节组,每个字节组同样拥有 N0 ~ N12 的局部编号引脚。

多功能 I/O 引脚

引脚名称 引脚类型 方向 描述
\(GC\) 或 \(HDGC\) 多功能 输入 全局时钟专用输入引脚,每个 I/O Bank 包含四组全局时钟引脚; PS_POR_B
\(VRP\) 多功能 无 P 型晶体管阻抗校准电压参考引脚,通常外接 240Ω/1% 的基准电阻下拉至低电平;
\(DBC\) 或 \(QBC\) 多功能 输入 字节通道时钟,字节通道时钟,DDR 内存场景等价于 DQS;
\(PERSTN [0 ~ 1]\) 多功能 输入 用于 PCIe 总线的硬件复位信号(低电平有效);

配置引脚

引脚名称 引脚类型 方向 描述
\(PUDC_{B}\) 专用 输入 用于配置阶段开启全部 SelectIO 引脚的内部上拉(0 开启配置前上拉,1 关闭配置前上拉),该引脚由 \(V_{CCAUX}\) 电源进行供电;
\(POR_{OVERRIDE}\) 专用 输入 上电复位延时重写(0 使用标准的 PL 上电复位延时(推荐默认值),1 缩短 PL 上电复位延时),配置前与配置过程当中,该引脚禁止悬空,该引脚必须连接至 \(V_{CCINT}\) 或者 GND;
\(PS_{DONE}\) 专用 输出 PS DONE 完成信号(需要外接上拉电阻);
\(PS_{ERROR\_OUT}\) 专用 输出 PS 错误标识;
\(PS_{ERROR\_STATUS}\) 专用 输出 PS 错误状态;
\(PS_{INIT\_B}\) 专用 输入/输出 标识上电复位之后的初始化完成,高电平表示 PL 端初始化完成(需要外接上拉电阻);
\(PS_{JTAG\_TCK}\) 专用 输入 JTAG 数据时钟引脚;
\(PS_{JTAG\_TDI}\) 专用 输入 JTAG 数据输入引脚;
\(PS_{JTAG\_TDO}\) 专用 输出 JTAG 数据输出引脚;
\(PS_{JTAG\_TMS}\) 专用 输入 JTAG 模式选择引脚;
\(PS_{MODE}\) 专用 输入/输出 用于配置 PS 端从哪个设备启动(QSPI、SD、eMMC、JTAG、USB);
\(PS_{PADI}\) 专用 输入 RTC 实时时钟信号输入引脚;
\(PS_{PADO}\) 专用 输出 RTC 实时时钟信号输出引脚;
\(PS_{POR\_B}\) 专用 输入 PS 端冷上电复位,PS 上电复位过程当中保持为低电平,当 PS 端电源和参考时钟稳定之后,才允许该引脚拉高并释放复位;
\(PS_{PROG\_B}\) 专用 输入 复位 PL 配置模块,低电平有效,复位完成之后上拉为高电平(需要外接上拉电阻);
\(PS_{REF\_CLK}\) 专用 输入 PS 端参考时钟(频率范围 27MHz ~ 60MHz);
\(PS_{SRST\_B}\) 专用 输入 PS 端热复位,供调试时使用,置为 0 时强制 PS 端进入系统复位序列;

电源引脚

引脚名称 引脚类型 方向 描述
\(GND\) 专用 无 接地引脚;
\(RSVD_{GND}\) 专用 无 保留引脚,必须连接至 GND;
\(RSVD\) 专用 无 保留引脚,保持悬空;
\(VCC_{INT}\) 专用 无 PL 内部逻辑电源;
\(VCC_{INT\_IO}\) 专用 无 I/O Bank 电源引脚,\(V_{CCINT\_IO}\) 必须与 \(V_{CCBRAM}\) 相互连接;
\(VCC_{INT\_VCU}\) 专用 无 视频编解码单元电源,不需要使用该单元可以将其接入 GND 以降低功耗,该引脚必须使用独立电源的供电,不能与其它电源轨合并;
\(VCC_{AUX}\) 专用 无 全局辅助电源引脚;
\(VCC_{AUX\_IO}\) 专用 无 I/O Bank 辅助电源引脚,必须将 \(V_{CCAUX\_IO}\) 连接到 \(V_{CCAUX}\);
\(VCC_{BRAM}\) 专用 无 PL 端块存储器 BRAM 的电源引脚;
\(VCC_{O\_[Bank 编号]}\) 专用 无 每个 Bank 的输出驱动器电源;
\(V_{REF\_[Bank 编号]}\) 专用 无 每个 Bank 输入引脚的参考电压引脚;
\(VCC_{ADC}\) 专用 无 系统监控器 SYSMON 模拟电源;
\(GND_{ADC}\) 专用 无 系统监控器 SYSMON 模拟地;
\(VCC_{PSADC}\) 专用 无 PS 端 ADC 电源;
\(GND_{PSADC}\) 专用 无 PS 端 ADC 模拟地;
\(VCC_{PSAUX}\) 专用 无 PS 端辅助电路供电电源;
\(VCC_{PSBATT}\) 专用 无 PS 端使用电池供电的 RTC 实时时钟电源(不使用时接入 GND);
\(VCC_{PSDDR\_PLL}\) 专用 无 PS 端 DDR 锁相环电源;
\(VCC_{PSPLL}\) 专用 无 PS 端的锁相环电源(DPLL、RPLL、APLL、VPLL、IOPLL);
\(VCC_{PSINTFP}\) 专用 无 PS 端全功耗电源域;
\(VCC_{PSINTFP\_DDR}\) 专用 无 PS 端 DDR 全功耗电源域;
\(VCC_{PSINTLP}\) 专用 无 PS 端低功耗电源域;
\(VCC_{OPSIO[0:3]\_[500:503]}\) 专用 无 PS 端 I/O 电源,[0:3] 表示 PS 端的四组 I/O 电源域,[500:503] 对应的是 BGA 封装球的编号范围;
\(VCCO_{PSDDR}\) 专用 无 PS 端 DDR 控制器的 I/O 电源;

PS 端引脚

引脚名称 引脚类型 方向 描述
\(PS_{MIO}\) 多功能 输入/输出 多路复用 I/O,可以被配置为 SPI、USB、SDIO、UART、SPI、GPIO 等接口;
\(PS_{DDR\_DQ}\) 专用 输入/输出 DDR 数据;
\(PS_{DDR\_DQS\_P}\) 专用 输入/输出 DDR 差分数据选通信号(正);
\(PS_{DDR\_DQS\_N}\) 专用 输入/输出 DDR 差分数据选通信号(负);
\(PS_{DDR\_ALERT\_N}\) 专用 输入 DDR 告警信号;
\(PS_{DDR\_ACT\_N}\) 专用 输出 DDR 激活命令信号;
\(PS_{DDR\_A}\) 专用 输出 DDR 行列地址;
\(PS_{DDR\_BA}\) 专用 输出 DDR Bank 地址;
\(PS_{DDR\_BG}\) 专用 输出 DDR Bank 组地址;
\(PS_{DDR\_CK\_N}\) 专用 输出 DDR 差分时钟(负);
\(PS_{DDR\_CK}\) 专用 输出 DDR 差分时钟(正);
\(PS_{DDR\_CKE}\) 专用 输出 DDR 时钟使能;
\(PS_{DDR\_CS}\) 专用 输出 DDR 片选信号;
\(PS_{DDR\_DM}\) 专用 输出 DDR 数据掩码;
\(PS_{DDR\_ODT}\) 专用 输出 控制 DDR 颗粒内部终端电阻的开启或关闭;
\(PS_{DDR\_PARITY}\) 专用 输出 DDR 奇偶校验信号;
\(PS_{DDR\_RAM\_RST\_N}\) 专用 输出 DDR 复位信号,低电平有效;
\(PS_{DDR\_ZQ}\) 专用 输入/输出 阻抗校准信号;

系统监控引脚

引脚名称 引脚类型 方向 描述
\(AD_{[0 \sim 15][P 或 N]}\) 多功能 输入 系统监控器 0 ~ 15 通道差分辅助模拟输入引脚;
\(V_{REFP}\) 专用 无 电压参考输入;
\(V_{REFN}\) 专用 无 电压参考地;
\(V_{P}\) 专用 输入 系统监控器差分模拟输入(正);
\(V_{N}\) 专用 输入 系统监控器差分模拟输入(负);
\(I2C_{SCLK}\) 多功能 双向 I²C 串行时钟信号(直连到系统监控器 DRP 动态重配置端口,用于 I²C 操作配置);
\(I2C_{SDA}\) 多功能 双向 I²C 串行数据信号(直连到系统监控器 DRP 动态重配置端口,用于 I²C 操作配置);
\(SMB_{ALERT}\) 多功能 双向 可选的 PMBus 电源管理总线 告警与中断信号,低电平表示存在系统故障,需要通过 PMBus 命令清除;

高速收发器引脚

引脚名称 引脚类型 方向 描述
\(MGTH_{RX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输入 RXP 和 RXN 为 GTH Quad 各个接收器的差分输入对;
\(MGTH_{TX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输出 TXP 和 TXN 为 GTH Quad 各个发送器的差分输出对;
\(MGTY_{RX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输入 RXP 和 RXN 为 GTY Quad 各个接收器的差分输入对;
\(MGTY_{TX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输出 TXP 和 TXN 为 GTY Quad 各个发送器的差分输出对;
\(PS_{MGTR\_RX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输入 RXP 和 RXN 为 PS-GTR Quad 各个接收器的差分输入对;
\(PS_{MGTR\_TX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输出 TXP 和 TXN 为 PS-GTR Quad 各个发送器的差分输出对;
\(MGT_{AVCC\_[L 或 R][N 或 S]}\) 专用 输入 PL 端的 GTH/GTY 高速收发器内部收发电路的模拟电源引脚;
\(PS_{MGTR\_AVCC}\) 专用 无 PS 端的 GTR 高速收发器内部收发电路的模拟电源引脚;
\(MGT_{AVTT\_[L 或 R][N 或 S]}\) 专用 输入 PL 端的 GTH/GTY 高速收发器在收发端接电路的模拟电源引脚;
\(MGT_{VCCAUX\_[L 或 R][N 或 S]}\) 专用 输入 GT Quad 内部 4 路高速收发器共用的锁相环 QPLL 电路的辅助模拟电源引脚;
\(PS_{MGTR\_AVTT}\) 专用 无 PS 端 GTR 高速收发器的收发端接电路的模拟电源引脚;
\(MGT_{REFCLK[0 或 1][P 或 N]}\) 专用 输入/输出 可以配置为 GTH/GTY 高速收发器的参考时钟输入引脚,或者接收端恢复时钟输出引脚;
\(PS_{MGT\_REFCLK[0 \sim 3][P 或 N]}\) 专用 输入 PS 端 GTR 高速收发器的差分参考时钟;
\(MGT_{AVTT\_RCAL\_[L 或 R][N 或 S]}\) 专用 无 端接电阻校准电路的偏置电流引脚;
\(MGT_{RREF\_[L 或 R][N 或 S]}\) 专用 输入 PL 端的 GTH/GTY 高速收发器端接电阻的校准电阻引脚;
\(PS_{MGTR\_REF}\) 专用 输入 PS 端 GTR 高速收发器端接电阻的校准电阻引脚;

注意:上述表格当中的 Quad 表示的是 四个通道划分为一组,该单词出现在高速收发器后面的时候,表示的是一个高速收发器内部固定包含有 Channel0、Channel1、Channel2、Channel3 四条通道(Lane)。

电源 の 上电时序

UltraScale+ MPSoC 系列芯片定义有 4 个顶层的独立电源域,每一个域下面会再细分 内核、I/O、PLL、高速收发器、VCU、ADC 等子电源域:

  1. PS 全功耗域(LPD,Low Power Domain);
  2. PS 低功耗域(FPD,Full Power Domain);
  3. PL 电源域(PLPD,PL Power Domain);
  4. 电池电源域(BPD,Battery Power Domain);

下面的框图当中,展示的是 UltraScale+ MPSoC 系列芯片的整体电源域架构:

UltraScale+ MPSoC 系列的 PL 端和 PS 端的电源域(Power Domain)相互独立,官方不强制要求双方的上电顺序,各自满足自身的上电时序即可。接下来内容当中所涉及的电源引脚定义,都可以方便的在本文后续的 《UltraScale+ MPSoC 引脚定义》小节内容中查询得到。

注意:上图当中的英文 Auxiliary [ɔːɡˈzɪliəri] 表示的是辅助的意思,Xilinx 的数据手册当中经常将其缩写为 Aux。

PS 端上电时序

为了确保上电时,PS 端的 IO 引脚处于高阻态(避免上电瞬间 IO 输出的高低电平状态),并且避免这些 IO 引脚由于 PS 端电源上电时序错误,产生较大的瞬态电流导致功耗异常,官方推荐遵循如下上电顺序:

  • 低功耗域(LPD,Low Power Domain):Cortex-R5 实时处理器、PMU 电源管理单元、PS 端的低速 MIO 引脚(用于实现 I2C、SPI、UART、CAN 等低速协议);
  • 全功耗域(FPD,Full Power Domain):Cortex-A53 应用处理器、Mali-400 图形处理器、PS 端 DDR 内存控制器、PS 端 GTR 收发器(高速 SerDes 通道,无需占用 PL 资源即可实现 USB3.0、PCIe Gen2、SATA、SGMII 等高速接口协议);

低功耗域 LPD 推荐使用如下列表的上电顺序(下电顺序相反):

  1. 首先 \(V_{CC\_PSINTLP}\) 开始上电;
  2. 然后 \(V_{CC\_PSAUX}\)、\(V_{CC\_PSADC}\) 和 \(V_{CC\_PSPLL}\) 三者可以任意顺序或者同时上电;

全功耗域 FPD 推荐使用如下列表的上电顺序(下电顺序相反):

  1. \(V_{CC\_PSINTFP}\) 与 \(V_{CC\_PSINTFP\_DDR}\) 必须使用相同的电源进行供电;
  2. \(V_{PS\_MGTRAVCC}\) 与 \(V_{CC\_PSDDR\_PLL}\) 两者可以任意顺序或者同时上电;
  3. \(V_{PS\_MGTRAVTT}\) 与 \(V_{CCO\_PSDDR}\):两者可以任意顺序或者同时上电;

注意:低功耗域 LPD 必须首先就绪,然后全功耗域 FPD 再行上电。除此之外,PS 端的复位信号 PS_POR_B 在上电期间必须保持低电平 GND,上电完成之后才能释放;

PL 端上电时序

同样为了 PL 侧引脚处于高阻态,避免 IO 引脚由于上电时序错误,产生较大瞬态电流出现功耗异常,官方推荐 PL 端的上电顺序如下面列表所示(下电顺序相反):

  1. 首先 \(V_{CCINT}\) 开始上电;
  2. 然后 \(V_{CCINT\_IO}\)、\(V_{CCBRAM}\)、\(V_{CCINT\_VCU}\) 进行上电;
  3. 最后 \(V_{CCAUX}\)、\(V_{CCAUX\_IO}\)、\(V_{CCO}\) 完成上电;

电源的同步缓升是指多路电源从 0V 开始,电压上升的斜率基本一致,电压值同步抬升,并最终同时达到额定电压。

  • 如果 \(V_{CCINT}\) 与 \(V_{CCINT\_IO}\)、\(V_{CCBRAM}\) 设定的电压一致(必须将 \(V_{CCINT\_IO}\) 与 \(V_{CCBRAM}\) 短接),那么可以使用相同的电源进行供电(需要同步缓升)。
  • 如果 \(V_{CCAUX}\) 与 \(V_{CCAUX\_IO}\)、\(V_{CCO}\) 设定的电压一致(必须将 \(V_{CCAUX}\) 与 \(V_{CCAUX\_IO}\) 短接),那么同样可以使用相同的电源进行供电(需要同步缓升)。

注意:除此之外,\(V_{CCADC}\) 和 \(V_{REF}\) 可以随时上电,没有上电顺序方面的要求。

高速收发器上电时序

UltraScale+ MPSoC 系列的 GTH 或 GTY 收发器实现最小电流汲取(即上电时序错误产生较大瞬态电流导致的功耗异常),官方推荐了如下两种上电顺序(下电顺序分别相反):

  • \(V_{CCINT} \implies V_{MGTAVCC} \implies V_{MGTAVTT}\);
  • \(V_{MGTAVCC} \implies V_{CCINT} \implies V_{MGTAVTT}\);

上面列表里的 \(V_{CCINT}\) 和 \(V_{MGTAVCC}\) 这两路电源允许进行同步缓升。

注意:高速收发器辅助电源 \(V_{MGTVCCAUX}\),官方没有约束其上电时序,因而可以跟随其它电源在任意时刻上电。

电源去耦电容选型

UltraScale+ MPSoC 系列芯片的去耦电容数量可以通过 Xilinx 官方提供的 电源设计管理器(PDM,Power Design Manager)进行估算,该工具可以基于 FPGA 的实际资源占用情况计算得到去耦电容数量,但是官方也提供了如下去耦电容组合的参考表格:

UltraScale+ MPSoC 型号 \(VCC_{INT}\) 或 \(VCC_{INT\_IO}\) \(VCC_{BRAM}\) 或 \(VCC_{INT\_IO}\) \(VCC_{AUX}\) 或 \(VCC_{AUX\_IO}\) 各个 Bank
XCZU4EV 330µF × 1、100µF × 4、47µF × 1、10µF × 1 47µF × 1、10µF × 1 47µF × 1、10µF × 1 47µF × 1、10µF × 1
XCZU5EV 330µF × 1、100µF × 5、47µF × 1、10µF × 1 47µF × 1、10µF × 1 47µF × 1、10µF × 1 47µF × 1、10µF × 1
XCZU7EV 330µF × 1、100µF × 5、47µF × 1、10µF × 1 47µF × 1、10µF × 1 47µF × 1、10µF × 1 47µF × 1、10µF × 1

注意:对于 47µF 的大容量电容,最多可以由 4 个 I/O Bank 共用,前提是这些 Bank 必须属于相同的电源轨。

除此之外,UltraScale+ MPSoC 系列芯片的 PS 端电源 \(V_{CC\_PSINTFP}\) & \(V_{CC\_PSINTLP}\) & \(V_{CC\_PSAUX}\) & \(V_{CC\_PSPLL}\) & \(V_{CC\_PSINTFP\_DDR}\) & \(V_{CCO\_PSIOx}\) 均可以采用 100µF × 1、10µF × 1 的去耦电容组合,而 \(V_{CC\_PSBATT}\) 电源只需要一个 10µF × 1 去耦电容即可。

注意:对于 100µF 的大容量电容,最多可以由 4 个 PS 端相同电源轨的 MIO Bank 所共用。

接下来的表格,展示的是 Xilinx 官方推荐的去耦电容规格以及 PCB 布局间距:

容值 封装 温度特性 生产商 型号 FPGA 电源引脚与去耦电容间距
330 μF 1210 X6S 村田(Murata) GRM32EC80E337ME05 25.4 mm ~ 101.6 mm
100 μF 0805 X6S 村田(Murata) GRM21BC80G107ME15 12.7 mm ~ 76.2 mm
47 μF 0603 X6S 村田(Murata) GRM188C80E476ME05 12.7 mm ~ 50.8 mm
10 μF 0402 X6S 村田(Murata) GRM155C80J106ME11D 0 mm ~ 25.4 mm

注意:按照表格当中的 FPGA 电源引脚与去耦电容的间隔距离进行布局,可以最大限度减少寄生电感。官方建议将 0402 封装的电容直接布局到 FPGA 芯片的底部,从而最大限度降低寄生电感,提升去耦效率。

PS 端 DDR 控制器 PLL 锁相环 1.8V 模拟电源轨 \(V_{CC\_PSDDR\_PLL}\) 可以单独供电,也可以使用 \(V_{CC\_PSAUX}\) 电源进行供电,此时两个电源域之间必须通过一颗 0603 封装的 120Ω@100MHz 铁氧体磁珠(例如村田公司的 BLM18SG121TN1)进行连接, 然后再连接到一颗 10uF 的 0603 封装去耦电容(连接在磁珠的后级,采用至少 2mm 宽度的铺铜连接,并且与电源引脚的间隔距离要低于 76mm),以及一颗 0201 封装的 1 μF 或者 0402 封装的 10 μF 去耦电容(放置在电源引脚的 BGA 扇出孔附近):

具体的 PCB 布局可以参考下图,注意磁珠和不同容值与封装的去耦电容的摆放位置:

UltraScale+ MPSoC 的 EV 子系列 VCU 视频编解码单元 0.9V 电源 \(V_{CCINT\_VCU}\) 必须采用独立的电源轨进行供电(禁止与任何其它电源轨合并)。如果不需要使用到视频编解码单元,那么可以将该电源引脚接地减少漏电;如果要使用视频编解码单元,则需要添加下表里的去耦电容组合:

10 μF(0402 封装) 47 μF(0603 封装) 100 μF(0805 封装) 330 μF(1210 封装) 470 μF(D 形封装)
型号 村田 GRM155C80J106ME11D 村田 GRM188C80E476ME05 村田 GRM21BC80G107ME15 村田 GRM32EC80E337ME05 松下 EEFGX0D471R
数量 3 个 5 个 1 个 2 个 3 个
位置 BGA 扇出孔附近 BGA 扇出孔附近 1 个,BGA 扇出孔与电源之间 4 个 位于 BGA 扇出孔与电源之间 位于 BGA 扇出孔附近 电源附近 1 个,BGA 扇出孔与电源之间 2 个

官方建议 \(V_{CCINT\_VCU}\) 电源的铺铜宽度要具备 3A 的载流能力,且该电源引脚位于 BGA 封装外部的铺铜宽度保持在 500 mil ~ 800 mil 范围,进入到 BGA 封装区域收窄到 400 mil,然后铺铜形状逐步收敛到 \(V_{CCINT\_VCU}\) 引脚,具体请参考下面的示意图:

注意:建议将 GND 接地层直接置于 \(V_{CCINT\_VCU}\) 电源的临近 PCB 叠层,从而缩短电流的回流路径,减少阻抗损耗。

XCZU4EV 最小系统

本文接下来的内容会通过一块 Xilinx UltraScale+ MPSoC XCZU4EV 核心板作为典型示例,讨论 FPGA 最小系统电路的基本构成。

PS/PL DDR4

这块 XCZU4EV 核心板采用 5 片 美光科技(Micron)型号为 MT40A512M16GE 的 DDR4 内存颗粒:

  • PS 端:挂载 4 片 DDR4(连接到 Bank504,提供 4GB 容量和 64 位的数据位宽),PS 端 DDR4 SDRAM 的最大运行频率为 1200MHz,数据传输速率为 2400Mbps;

  • PL 端:挂载 1 片 DDR4(连接到 Bank64,提供 1GB 容量和 16 位的数据位宽),PL 端 DDR4 SDRAM 的最大运行频率为 1066MHz,数据传输速率为 2132Mbps;

QSPI Flash

FPGA 最小系统通常需要使用 Nor Flash 存储器(小容量,擦写寿命长,读速度快,写速度慢)来作为系统启动设备(用于存储 比特流、ARM 应用程序、用户文件 等数据),因此该 XCZU4EV 核心板配备了 1 片 华邦电子(Winbond)型号为 MT25QU256ABA1EW9 的 256Mb 容量 Flash 存储器,其内部存储位宽为 8 位(存储阵列 32M × 8bit = 256Mb = 32MB),采用 1.8V 电压进行供电,并且连接到 XCZU4EV 在 PS 端 Bank500 的 MIO 引脚上面,使用时需要将这些 IO 引脚映射为 QSPI Flash 接口。

该款存储器采用 Quad‑SPI 总线进行通信,具有 4 个双向 IO 引脚(每个时钟周期传输 4 位数据),最大总线时钟频率为 133 MHz,4 位模式下等效传输速率为 133 MT/s × 4 = 532 Mb/s。

注意:Xilinx 官方建议 QSPI Flash 芯片的 写保护 WP、片选 CS、保持 HOLD 三个引脚上需要连接 4.7kΩ 的上拉电阻。

并且对时钟、数据、SS 线路长度

eMMC Flash

FPGA 最小系统还需要使用 NAND Flash 存储器(大容量,单位成本低)来存放 PS 端的嵌入式 Linux 操作系统和应用程序,该 XCZU4EV 核心板配备了 1 片 美光科技(Micron)型号为 MTFC8GAKAJCN-4M 的 8GB 容量 eMMC 存储器。

注意:这颗 eMMC 存储器被连接到 PS 端 Bank500 的 MIO 引脚,数据位宽为 8 位,使用时需要将这些引脚配置为 eMMC 接口功能。

该存储器兼容 联合电子器件工程委员会(JEDEC,Joint Electron Device Engineering Council)提出的 e.MMC v5.0(即 JESD84-B50)存储接口标准,支持 DDR52、HS200、HS400 三种总线速度模式:

  1. DDR52 模式:双倍数据速率(DDR,Double Data Rate)采样,即在时钟信号上升沿和下降沿各传输一次数据,时钟频率最高可达 52MHz,最大数据传输速率为 52MHz × 2 倍 = 104MB/s;
  2. HS200 模式:单倍数据速率(SDR,Souble Data Rate)采样方式,通过大幅提高时钟频率至 200MHz 来提升传输效率,并采用调优(Tuning)机制进行动态时序校准,最大数据传输速率为 200MHz × 1 倍 = 400MB/s;
  3. HS400 模式:结合双倍数据速率 DDR 采样与数据选通(DS,Data Strobe)机制,读取数据时 eMMC 存储器主动产生一个与数据窗口对齐的 DS 信号,协助 FPGA 克服高频时钟偏移问题,从而在 200MHz 的时钟频率下稳定实现双倍速率传输 200MHz × 2 倍 = 400MB/s;

接下来的封装示意图以及表格里,整理了 MTFC8GAKAJCN-4M 存储器 153 球 FBGA 封装全部引脚的位置与定义:

eMMC 引脚 类型 功能描述
\(CLK\) 输入 时钟引脚;
\(RST_n\) 输入 复位引脚;
\(CMD\) 输入/输出 命令引脚;
\(DAT[7:0]\) 输入/输出 数据引脚;
\(DS\) 输出 数据选通引脚;
\(V_{CC}\) 电源 NAND Flash 存储阵列电源;
\(V_{CCQ}\) 电源 eMMC 控制器电源;
\(V_{SS}\) 电源 NAND Flash 存储阵列接地;
\(V_{SSQ}\) 电源 eMMC 控制器接地;
\(V_{DDIM}\) - 内部电压节点(禁止连接到电源和地);
\(RFU\) - 保留功能,悬空即可;

对于上述表格当中 eMMC 存储器电源的接法,主要从 NAND Flash 存储阵列电源 \(V_{CC}\) 和 eMMC 控制器电源 \(V_{CCQ}\) 两个电源域来进行设计和考量:

  1. NAND Flash 存储阵列电源 \(V_{CC}\):标准电压范围为 2.7V ~ 3.6V,通常设定为 3.3V;
  2. eMMC 控制器电源 \(V_{CCQ}\):可以选用 1.7V ~ 1.95V 和 2.7V ~ 3.6V 两种电源范围,通常设定为 1.8V 或者 3.3V,该电源决定了 eMMC 存储器的数据线 DAT[7:0]、命令线 CMD、时钟线 CLK 的逻辑电平;

注意:根据 JESD84-B451 相关规范,eMMC 存储颗粒的 Data0 ~ Data7 引脚需要添加上拉电阻;并且在 CLK、CMD、DATA[7:0] 引脚上串联 30Ω 源端匹配电阻,并且尽可能靠近 FPGA 芯片的 MIO 引脚放置。

时钟树

该 XCZU4EV 核心板分别为 PS(处理系统)和 PL(可编程逻辑)部分提供了独立的系统参考时钟,使得两者可以单独工作。除此之外,为了便于获取以 1 秒为单位的自然计时(计时器从 0 累计到 32767 可以产生 1 秒脉冲信号),还加入了实时时钟(RTC,Real Time Clock):

  1. 32.768KHz 无源晶振可以为 PS 侧提供实时时钟,该时钟信号连接到 PS 侧 Bank503 的 PS_PADI_503 和 PS_PADO_503 引脚;
  2. 33.333MHz 单端有源晶振为 PS 侧提供系统时钟,该时钟信号连接到 PS 侧 Bank503 的 PS_REF_CLK_503 引脚;
  3. 200MHz 有源差分时钟为 PL 侧提供系统时钟(作为内部逻辑电路和 DDR4 控制器的参考时钟),该时钟信号连接到 PL 侧 Bank64 的多区域时钟引脚(MRCC,Multi‑Region Clock‑Capable),作为全局时钟使用;

PS 端系统配置 Bank503

Bank503 属于 PS 端进行系统配置,同时提供时钟信号和调试接口的专用 Bank,本节内容将会分门别类对这些引脚进行介绍。

启动模式

下面表格当中的四个上电采样引脚,决定了 PS 端系统的启动来源,它们只会在 PS_POR_B 引脚由低电平跳变到高电平的上升沿时刻采样一次:

信号名 方向 功能说明
PS_MODE0 输入 启动模式选择位 0;
PS_MODE1 输入 启动模式选择位 1;
PS_MODE2 输入 启动模式选择位 2;
PS_MODE3 输入 启动模式选择位 3;

复位

信号名 方向 功能说明
PS_POR_B 输入 上电复位,该引脚必须保持低电平,直至 PS 端电源域满足电压指标,PS 端参考时钟满足系统要求;该引脚变为高电平之后,PS 端开始进入启动引导流程;
PS_SRST_B 输入 系统复位,通常用于调试场景。下拉为低电平时,就会强制 PS 端进入系统复位流程;
PS_PROG_B 输入 该引脚下拉为低电平时,会清空 PL 端的配置存储器,PL 端进入未配置状态(不会影响 PS 端);上拉为高电平之后,就会重新启动 PL 端配置流程;

状态指示

信号名 方向 功能说明
PS_INIT_B 输出 PL 端初始化完成志,可以开始收比特流,内部为开漏输出结构,必须外接上拉;
PS_DONE 输出 PS 端启动完成标志,必须外接上拉;PS 端启动流程结束之后,该引脚自动变为高电平,告知外部电路 PS 端启动完毕;
PS_ERROR_STATUS 输出 该引脚在 PS 端安全启动校验失败时,会被上拉为高电平,也可以 PMU 固件自定义输出状态;
PS_ERROR_OUT 输出 当 PMU 检测到不可恢复的严重硬件故障时,该引脚会被上拉为高电平,没有错误发生时保持为低电平;

注意: PMU 是电源管理单元(Power Management Unit)的英文缩写。

时钟

信号名 方向 Bank 功能说明
PS_REF_CLK 输入 PS 端系统主参考时钟 27MHz ~ 60MHz,通常使用 33.333MHz 或者 50MHz 的有源单端时钟;
PS_PADI 输入 32.768KHz 无源 RTC 晶振输入引脚;
PS_PADO 输出 32.768KHz 无源 RTC 晶振输出引脚;

电源

信号名 方向 Bank 功能说明
VCCO_PSIO3 电源 为 PS 端 Bank503 的所有 IO 引脚提供电源域参考,支持 1.8V、2.5V、3.3V,误差为 ±5%;
VSS 接地 VCCO_PSIO3 对应的接地引脚;
VCC_PSBATT​ 接地 PS 侧的电池备份域电源(1.2V~1.5V),为 RTC 实时时钟和 BBRAM 电池备份 RAM 供电
VCC_PSADC 电源 PS 端系统监视器 SYSMON 的 ADC 模拟电源;
GND_PSADC 接地 PS 端系统监视器 SYSMON 的 ADC 模拟地;

PS 端 JTAG

信号名 方向 功能说明
PS_JTAG_TCK 输入 PS 端 JTAG 时钟
PS_JTAG_TDI 输入 PS 端 JTAG 数据输入
PS_JTAG_TDO 输出 PS 端 JTAG 数据输出
PS_JTAG_TMS 输入 PS 端 JTAG 状态机选择
PS_JTAG_TRST 输入 PS 端 JTAG 复位(低电平有效)

PL 端配置 Bank0 及专用引脚

根据赛灵思官方引脚分配相关资料的描述,Bank0 上面只存在一个 PUDC_B 引脚,也就是 配置期间上拉控制引脚(Pull‑Up During Configuration)引脚。用于在 FPGA 配置阶段,使能全部 SelectIO 引脚内部的上拉电阻:

  • 低电平 0:预配置阶段,使能 SelectIO 引脚内部的弱上拉电阻;
  • 高电平 1:预配置阶段,失能 SelectIO 引脚内部的弱上拉电阻;

除此之外,UltraScale+ MPSoC 还存在如下表格中的专用(Dedicated)引脚,为了便于原理图符号按照 Bank 来分组管理,通常也会将这些引脚划分到 Bank0:

引脚名称 类型 简要功能说明
POR_OVERRIDE 输入 上电复位延时设置,0 标准上电延时,1 快速上电延时;该引脚禁止悬空,必须基于 VCCINT 或 GND 上下拉;
VCCADC 模拟电源 系统监视器模拟电源;
GNDADC 模拟地 系统监视器模拟地;
VREFP 专用 系统监视器外部参考电压正;
VREFN 专用 系统监视器外部参考电压负;
VP 输入 系统监视器差分模拟输入正;
VN 输入 系统监视器差分模拟输入负;
DXP 专用 FPGA 片上温度感应二极管引脚正;
DXN 专用 FPGA 片上温度感应二极管引脚负;

XCZU3TEG 引脚分配示意图

IO Bank 与高速收发器引脚分配

下面展示的是 SFVC784 封装 XCZU3TEG 在 PL 端和 PS 端的 IO Bank 引脚、高速收发器引脚以及部分专用引脚的分配示意图:

电源与多功能引脚分配

接下来展示的是 SFVC784 封装 XCZU3TEG 的电源引脚、其它专用和多功能引脚的分配示意图:

XCZU4EV 引脚分配示意图

IO Bank 与高速收发器引脚分配

下面展示的是 SFVC784 封装 XCZU4EV 在 PL 端和 PS 端的 IO Bank 引脚、高速收发器引脚以及部分专用引脚的分配示意图:

电源与多功能引脚分配

接下来展示的是 SFVC784 封装 XCZU4EV 的电源引脚、其它专用和多功能引脚的分配示意图:

XCZU7EV 引脚分配示意图

IO Bank 与高速收发器引脚分配

下面展示的是 FFVC1156 封装 XCZU7EV 在 PL 端和 PS 端的 IO Bank 引脚、高速收发器引脚以及部分专用引脚的分配示意图:

电源与多功能引脚分配

接下来展示的是 FFVC1156 封装 XCZU7EV 的电源引脚、其它专用和多功能引脚的分配示意图:

赛灵斯 Xilinx FPGA 最小系统设计指南

http://www.uinio.com/Electronics/FPGA/

作者

Hank

发布于

2026-08-06

更新于

2026-09-21

许可协议