前言

一、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
