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

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

目前全球 FPGA 的市场份额主要集中在赛灵思(Xilinx,2020 年被 AMD 收购)和阿尔特拉(Altera,2015 年被 Intel 收购)两家美国企业手中,余下的市场份额同样由美国的莱迪思(Lattice)和美高森美(Microsemi)两家公司占据。国产 FPGA 芯片产业起步较晚,产品性能与专利积累较为薄弱,目前主要有 深圳紫光同创上海安路科技广东高云半导体上海复旦微电子西安智多晶深圳易灵思北京京微齐力成都华微电子 等研发厂商。全文基于 AMD/Xilinx 官方截止于 2026 年提供的各类数据手册整理而成,力求各项指标准确无误,如果读者发现有谬误之处,可以通过邮件和社交媒体与我联系。

FPGA 的基本结构

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

AMD/Xilinx 产品线介绍

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

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

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

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

  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-R5FARM Mali-400MP2 和 H.264/H.265 视频编解码器。
  • UltraScale+ RFSoC:采用 16nm 制程工艺,集成有四核 ARM Cortex-A53、双核 ARM Cortex-R5F 和数字 RF-ADCRF-DACSD-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,用于处理实时任务;
  • 图形处理器 GPUARM Mali-400MP2 用于处理显示输出任务;
  • 可编程逻辑 PLUltraScale+ FPGA,用于实现硬件加速;
  • 视频编解码:用于支持 H.264/H.265 视频编解码;

UltraScale+ MPSoC 主要涵盖了 CGEGEVRF 四个子系列:

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-R5FARM Mali-400MP2,系统逻辑单元数量在 81K ~ 1143K 范围,其对应的具体系统功能框图如下面所示:

UltraScale+ MPSoC 的 EV 子系列:内置视频编解码器,主要集成有 四核 1.5 GHz ARM Cortex-A53双核 600 MHz ARM Cortex-R5FARM Mali-400MP2H.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°CI 表示工作在 –40°C ~ +100°C

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

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

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

注意PSPL 之间的数据交互,如果是低速数据可以采用 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 的应用范围与使用灵活性。

串行解串器 SerDes

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

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

注意:现代 FPGA 通常集成了专用的 SerDes 外设,例如 AMD/XilinxGTX/GTH/GTY 收发器,以及 Intel/AlteraTransceiver 收发器。

PS 侧的 MIO/EMIO

UltraScale+ MPSoCPS 侧提供了多路复用(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 进行了如下表的分类:

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

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

串行解串器 SerDes

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

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

注意:现代 FPGA 通常集成了专用的 SerDes 外设,例如 AMD/XilinxGTx 收发器,以及 Intel/AlteraTransceiver 收发器。

吉比特收发器 GTx

AMD/Xilinx 在 FPGA 芯片 PL 端集成的 SerDes 外设被称作吉比特收发器GT,Gigabyte Transceiver),基于不同的数据传输速率及其所具备的高级特性,规格书当中会分别以 GTx 格式进行命名,例如 GTPGTXGTHGTZGTY。对应于 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

注意:许多数据手册和参考原理图当中出现的多吉比特收发器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 区域的温度,以及 PLPS 端的多个电压节点,也可以基于 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 内存控制器

PS 端的 DDR

UltraScale+ MPSoC 系列在 PS 端内置了 DDR 控制器和物理层的硬核实现,可以对 DDR3DDR3LLPDDR3DDR4LPDDR4 提供支持;PS 端的 DDR 引脚位于 Bank504(PS 端 DDR 控制器专属的 MIO Bank),能够连接 16 bit32 bit64 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 同样对 DDR3DDR3LLPDDR3DDR4LPDDR4 提供了支持。

输入输出组 IO Bank

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

XCZU4EVPL 逻辑侧 IO 被划分为 Bank43Bank44Bank45Bank46Bank64Bank65Bank66Bank224 八个组:

  • 高性能 HP BankBank43Bank44Bank45Bank46(支持 DDR4LVDSLVCMOS 等高速接口),
  • 高密度 HD BankBank64Bank65Bank66(通用低速外设接口);
  • 吉比特收发器 GT BankBank224(高速 SerDes 接口);

XCZU4EVPS 系统侧的 96 个 MIO 引脚则被划分为了 Bank500Bank501Bank502Bank503Bank504Bank505 六个组:


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 系列芯片定义有 4 个顶层的独立电源域,每一个域下面会再细分 内核I/OPLL高速收发器VCUADC 等子电源域:

  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 引脚(用于实现 I2CSPIUARTCAN 等低速协议);
  • 全功耗域(FPD,Full Power Domain):Cortex-A53 应用处理器、Mali-400 GPU、PS 端 DDR 内存控制器、PS 端 GTR 收发器(高速 SerDes 通道,无需占用 PL 资源即可实现 USB3.0PCIe Gen2SATASGMII 等高速接口协议);

低功耗域 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 系列的 GTHGTY 收发器实现最小电流汲取(即上电时序错误产生较大瞬态电流导致的功耗异常),官方推荐了如下两种上电顺序(下电顺序分别相反):

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

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

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

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)型号为 MT25QU256ABA1EW9256Mb 容量 Flash 存储器,其内部存储位宽为 8 位(存储阵列 32M × 8bit = 256Mb = 32MB),采用 1.8V 电压进行供电,并且连接到 XCZU4EV 在 PS 端 Bank500MIO 引脚上面,使用时需要将这些 IO 引脚映射为 QSPI Flash 接口。

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

eMMC Flash

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

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

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

  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.95V2.7V ~ 3.6V 两种电源范围,通常设定为 1.8V 或者 3.3V,该电源决定了 eMMC 存储器的数据线 DAT[7:0]命令线 CMD时钟线 CLK 的逻辑电平;

时钟树

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

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

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]:代表该引脚所属字节组,而UL 分别代表在该字节组内的半字节位置(上半字节 Upper下半字节 Lower)。
  • N[0‑12]:该引脚在其所属字节组内部的引脚编号;
  • [multi‑function]:可复用为其它硬件功能的多功能引脚,不使用复用功能时可以作为普通用户 I/O 引脚使用;
  • [bank number]:该用户 I/O 引脚所属的 Bank 编号;

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

多功能 I/O 引脚

引脚名称 引脚类型 方向 描述
GCHDGC 多功能 输入 全局时钟专用输入引脚,每个 I/O Bank 包含四组全局时钟引脚; PS_POR_B
VRP 多功能 P 型晶体管阻抗校准电压参考引脚,通常外接 240Ω/1% 的基准电阻下拉至低电平;
DBCQBC 多功能 输入 字节通道时钟,字节通道时钟,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 端的锁相环电源(DPLLRPLLAPLLVPLLIOPLL);
\(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,可以被配置为 SPIUSBSDIOUARTSPIGPIO 等接口;
\(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 编号]}\) 专用 输入 RXPRXN 为 GTH Quad 各个接收器的差分输入对;
\(MGTH_{TX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输出 TXPTXN 为 GTH Quad 各个发送器的差分输出对;
\(MGTY_{RX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输入 RXPRXN 为 GTY Quad 各个接收器的差分输入对;
\(MGTY_{TX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输出 TXPTXN 为 GTY Quad 各个发送器的差分输出对;
\(PS_{MGTR\_RX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输入 RXPRXN 为 PS-GTR Quad 各个接收器的差分输入对;
\(PS_{MGTR\_TX[P 或 N][0 \sim 3]\_[GT Quad 编号]}\) 专用 输出 TXPTXN 为 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 表示的是 四个通道划分为一组,该单词出现在高速收发器后面的时候,表示的是一个高速收发器内部固定包含有 Channel0Channel1Channel2Channel3 四条通道(Lane)。

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

发布于

2025-08-06

更新于

2026-08-12

许可协议