前言
一、ZYNQ UltraScale+ MPSoc的EG系列
二、UltraScale+ MPSoc EG系列概要
首先,来我们看一下我们选择的这块芯片的内部资源。
我们先看一下系统内部资源模块图。
这样一看是不是清晰很多,这个芯片分为PS(Processing System)和PL(Programmable Logic),就是处理器部分和逻辑部分。处理器部分比较复杂,除了各种Arm核之外,还有GPU、DDR控制器,当然也集成了我们常见的外设DMA、Watch Dog和各种各种常见的高速接口。PL部分就相对简单,主要是处理计算、高速连接和IO。PS和PL部分各自集成了一个10bit的ADC来进行系统监测,称之为System Monitor。
从硬件工程师的角度,我将分IO、电源、时钟与复位和外设四个部分来介绍EG系列芯片,其中时钟与复位和外设部分会放到另外一篇或者几篇文章进行讲述。
三、IO
经过一番努力,我做出了下面这张脑图,原创,建议打赏然后收藏。
说明:为了便于记忆每个IO Bank后面括号里的数字代表XCZU19EG所拥有的Bank号,方便你看到bank好的时候知道这个bank所在的分类。
3.1 IO分类
IO由一个个Bank组成,首先要分成PS和PL两部分。PS的部分可以分为以下四个部分:
3.PS DDR。这是DDR controller的接口,支持ECC功能,不在此详述。
IO Bank分为HP、HD和HR三类。
3.2 IO的供电电压
PS MIO、HP和GD的IO Bank有多个电压,以适应各种不同的逻辑电平应用场合。
VCCO 电源是 I/O 电路的主电源。特定 HP I/O bank 的所有 VCCO 管脚必须连接到开发板上相同的外部供电电压,因此,该 I/O bank 内的所有 I/O 的 VCCO电平必须相同。VCCO 电压必须符合已分配给此 I/O bank 的 I/O 标准的要求。错误的 VCCO 电压可能会导致功能丧失或损坏器件。
带差分输入缓存的单端 I/O 标准需要输入参考电压 (VREF)。如果 I/O bank 中需要 VREF,可将专用 VREF 管脚作为 VREF 供电输入(外部),或者使用内部生成的 VREF (INTERNAL_VREF 或 VREF 扫描(仅限 HP I/O bank))。使用INTERNAL_VREF 约束即可启用内部生成的参考电压。
在 I/O 标准需输入参考电压并使用内部生成的 VREF 的 bank 中,使用500Ω 或 1K 电阻将 VREF 管脚连接至 GND。如果无需输入参考电压,可以用500Ω 或 1KΩ 电阻将VREF 管脚接地,也可以保持浮空。
HP I/O bank 中提供了内部 VREF 扫描功能,以适应工艺变化或系统考虑因素。
全局辅助 (VCCAUX) 供电轨主要用于为器件内部各个块的互联逻辑供电。在 I/O bank 中, VCCAUX 还用于为某些 I/O 标准的输入缓存电路供电。其中包括部分不高于 1.8V 的单端 I/O 标准,以及部分 2.5V 标准 (仅限 HR I/O bank)。此外,VCCAUX 供电轨还为大多数差分 I/O 标准和 VREF I/O 标准中使用的差分输入缓存电路供电。
辅助 I/O (VCCAUX_IO) 供电电压轨用于为 I/O 电路供电。VCCAUX_IO 只能按 1.8V 标准供电。
这是 I/O bank 的内部电源。连接至 VCCINT 供电电压轨。
3.3 MIO and EMIO
PS端有三组MIO可供各种外设使用,当这些IO不够用的时候我们可以调用PL端的IO,这些IO叫 EMIO(extended multiplexed I/O )。PL端的EMIO可以通过PL逻辑连接到EMIO interface上,然后被PS端访问。所以PS端有6组I/O接口,3组MIO和3组EMIO。
3.4小结
SOC FPGA的IO相比MCU和普通SOC的IO要复杂很多,主要是因为要支持高速的、低速的各种逻辑电平的接口。但是只要分类清楚理解起来并不难,当然还有更多的细节需要自己去看数据手册。
四、电源
每个电源域都可以单独隔离。工作在LPD域上的平台管理单元(PMU)管理着每个电源域。当相应电源域的电源之一意外掉电时,可以自动打开隔离。由于每个电源域都可以单独隔离,因此可以实现功能隔离。
4.1电源结构
芯片电源结构如下图:
Power Domains and Islands (UG1085)
上图涉及了太多的电源轨,有着不同的电压和噪声要求。为了简化电源设计,我们可以使用下面的电源方案。
4.2 电源上电时序要求
PS 和 PL 电源为彼此完全独立的电源。所有 PS 电源均可在任意 PL 电源之前或之后上电。PS 和 PL 电源区域已隔离以防止损坏。(DS925)
低功耗域 (LPD) 正常运作后, 全功耗域 (FPD) 方可正常运行。低功耗域和全功耗域可同时上电。按上电顺序运行期间, PS_POR_B 输入必须断言为 GND(请参阅表 37) 。使用 FPD 时, 它必须先上电, 然后才能释放PS_POR_B。
LPD推荐上电顺序:
1. VCC_PSINTLP
这样做可以实现最低电流汲取并确保上电时 I/O 处于三态状态。下电顺序反过来即可。
FPD)推荐上电顺序:
1. VCC_PSINTFP 和 VCC_PSINTFP_DDR 从相同供电电源驱动。
2. VPS_MGTRAVCC 和 VCC_PSDDR_PLL, 按任意顺序或同时执行。
3. VPS_MGTRAVTT 和 VCCO_PSDDR, 按任意顺序或同时执行。
旨在实现最低电流汲取并确保上电时 I/O 处于三态状态。下电顺序反过来即可。
推荐上电顺序:
1. VCCINT
2.VCCINT_IO/VCCBRAM/VCCINT_VCU
3. VCCAUX/VCCAUX_IO 和 VCCO,
这样即可实现最低电流汲取并确保上电时 I/O 处于三态。下电顺序反过来即可。
4.3小结
电源的复杂度是随着系统的复杂同步上升的,后面在实际设计的时候应该还会遇到不少问题,到时我再补充文章进行说明。
五、参考文档:
DS891, Zynq® UltraScale+™ MPSoC Overview
DS925, Zynq UltraScale+ MPSoC Data Sheet: DC and AC Switching Characteristics
UG1075, Zynq UltraScale+ MPSoC Packaging and Pinouts
UG1085, Zynq UltraScale+ MPSoC Technical Reference Manual
UG571, UltraScale Architecture SelectIO™ Resources User Guide
UG574, UltraScale Architecture Configurable Logic Block User Guide
UG578, UltraScale Architecture GTY Transceivers User Guide
后记
未经整理的信息不足称为知识。我喜欢把看到乱七八糟的信息梳理成一篇有逻辑有体系的文章,节约大家学习的时间,让读者仅通过看一篇文章就对某块知识有个相对系统的了解,而这也是我深入学习的基石,我后续的学习只需要在此基础上丰富更多的细节,新学的任何知识都是有坐标体系的,不会混乱糊涂。
这依然属于自学笔记系列,属于我初涉领域,如有资深人士看到错讹之处,还请指教!
声明:
投稿/招聘/推广/宣传 请加微信:15989459034