0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

你真的了解Zynq的學(xué)習(xí)嗎?

FPGA之家 ? 來源:CSDN技術(shù)社區(qū) ? 作者: Jaymr99 ? 2021-07-02 11:00 ? 次閱讀

一、簡介部分

Zynq是由兩個主要部分組成的:一個是由雙核 ARM CortexA9 構(gòu)成的處理系統(tǒng) (PS),另一個是等價于一片 FPGA 的可編程邏輯 (PL)。它還具有集成的存儲器、各種外設(shè)和高速通信接口。這個架構(gòu)實現(xiàn)了工業(yè)標(biāo)準(zhǔn)的 AXI 接口,在芯片的兩個部分之間實現(xiàn)了高帶寬、低延遲的連接。

PL 部分用來實現(xiàn)高速邏輯、算術(shù)和數(shù)據(jù)流子系統(tǒng)是很理想的,而 PS 支持軟件程序或操作系統(tǒng),具有固定的架構(gòu),承載了處理器和系統(tǒng)存儲區(qū)。這就意味著任何被設(shè)計的系統(tǒng)的整個功能可以恰當(dāng)?shù)卦?a target="_blank">硬件和軟件之間做出劃分。

PL 和 PS 之間的鏈接采用了工業(yè)標(biāo)準(zhǔn)的高級可擴(kuò)展接口(Advanced eXtensible Interface,AXI)連接方式。這兩部分可以單獨使用,也可以合起來用,而且實際上供電電路被設(shè)計成獨立給每個部分供電,這樣 PS 或 PL 部分不被使用的話就可以被斷電。

二、處理器系統(tǒng)部分(PS)

作為處理器系統(tǒng)的基礎(chǔ),所有的芯片都包含了一顆雙核 ARM Cortex-A9 處理器。這是一顆“ 硬 ”處理器 —— 它是芯片上專用而且優(yōu)化過的硅片元件。Xilinx 的MicroBlaze這樣的“軟” 處理器,是由可編程邏輯部分的單元組合而成的。

也就是說,一個軟處理器的實現(xiàn)和部署在 FPGA 的邏輯結(jié)構(gòu)里的任何其他 IP 核是等價的。一般來說,軟處理器的優(yōu)勢是處理器實例的數(shù)量和精確實現(xiàn)是靈活的。從另一方面來說,硬處理器可以獲得相對較高的性能,Zynq 的 ARM 處理器正是如此。

Zynq 的處理器系統(tǒng)里并非只有 ARM 處理器,還有一組相關(guān)的處理資源,形成了一個應(yīng)用處理器單元 (Application Processing Unit,APU) ,另外還有擴(kuò)展外設(shè)接口、cache 存儲器、存儲器接口、互聯(lián)接口和時鐘發(fā)生電路 。下圖是 PS 部分架構(gòu)框圖,其中高亮的部分就是 APU。

a13c6dca-dadb-11eb-9e57-12bb97331649.jpg

2.1 應(yīng)用處理單元(APU)

APU 主要是由兩個 ARM 處理核組成的:最高工作頻率1GHz;

一個 NEONTM 媒體處理引擎(Media Processing Engine,MPE)和浮點單元 (Floating Point Unit,F(xiàn)PU);

一個內(nèi)存管理單元 (MemoryManagement Unit,MMU);在虛擬地址和物理地址之間做翻譯;

一個一級 cache 存儲器(分為指令和數(shù)據(jù)兩個部分)APU 里還有一個二級 cache 存儲器;高速緩沖,在CPU與內(nèi)存儲器之間;

片上存儲器 (On Chip Memory,OCM);

一致性控制單元 (Snoop Control Unit,SCU);在ARM和二級cache,OCM之間形成橋連接;

a14daf2c-dadb-11eb-9e57-12bb97331649.png

2.2 處理器系統(tǒng)外部接口

Zynq PS 實現(xiàn)了眾多接口,既有 PS 和 PL 之間的,也有 PS 和外部部件之間的。

(1)PS和外部接口之間的通信

PS 和外部接口之間的通信主要是通過復(fù)用的輸入 / 輸出( Multiplexed Input/Output,MIO)實現(xiàn)的,它提供了可以做靈活配置的 54 個引腳,這表明外部設(shè)備和引腳之間的映射是可以按需定義的。

三、可編程邏輯部分(PL)

Zynq 架構(gòu)的第二個主要部分是可編程邏輯。這是基于 Artix-7 和 Kintex-7的 FPGA 組件的。

3.1 邏輯部分

PL 主要是由通用 FPGA 邏輯部分組成的,這個 FPGA 是由邏輯片(slice)和可配置邏輯塊 (Configurable Logic Block,CLB)組成的,另外還有用于接口的輸入/輸出塊 (Input/ Output Block,IOB)

a1713c26-dadb-11eb-9e57-12bb97331649.png

? 可配置邏輯塊 (CLB) — CLB 是邏輯單元的小規(guī)模、普通編組,在 PL 中排列為一個二維陣列,通過可編程互聯(lián)連接到其他類似的資源。每個 CLB 里包含兩個邏輯片(slicem或slicel),并且緊鄰一個開關(guān)矩陣。

? 片 (Slice) — CLB 里的一個子單元,里面有實現(xiàn)組合和時序邏輯電路的資源。Zynq 的片是由 4 個查找表、8 個觸發(fā)器和其他一些邏輯所組成的。

? 查找表 (Lookup Table,LUT) — 一個靈活的資源,可以實現(xiàn): 1.至多 6個輸入的邏輯函數(shù);2.一小片只讀存儲器 (ROM);3.一小片隨機(jī)訪問存儲器 (RAM);4.一個移位寄存器。LUT 可以按需組合起來形成更大的邏輯函數(shù)、存儲器或移位寄存器。

? 觸發(fā)器(Flip-flop,F(xiàn)F) — 一個實現(xiàn) 1 位寄存的時序電路,帶有復(fù)位功能。FF 的一種用處是實現(xiàn)鎖存。

? 開關(guān)矩陣 (Switch Matrix) — 每個 CLB 旁都有一個開關(guān)矩陣,實現(xiàn)靈活的布線功能來1.連接 CLB 內(nèi)的單元;2.把一個 CLB 與 PL 內(nèi)的其他資源連接起來。

a1a5408e-dadb-11eb-9e57-12bb97331649.png

? 進(jìn)位邏輯 (Carry Logic) — 算術(shù)電路需要在相鄰的片之間傳遞信號,這就是通過進(jìn)位邏輯來實現(xiàn)的。進(jìn)位邏輯把布線和復(fù)用器組成鏈條來連接一個垂直列上的片。

? 輸入 / 輸出塊 (Input/Output Blocks,IOB) — IOB 實現(xiàn)了 PL 邏輯資源之間的對接,并且提供物理設(shè)備 “ 焊盤 ” 來連接外部電路。每個 IOB 可以處理一位的輸入或輸出信號。IOB 通常位于芯片的周邊。

盡管邏輯部分的內(nèi)部結(jié)構(gòu)知識對于設(shè)計者是有用的,但是大多數(shù)情況下并不需要專門地指定這些資源 ——Xilinx 工具會自動根據(jù)設(shè)計來安排所需的 LUT、 FF、IOB 等,然后做好相應(yīng)的映射。但我還是覺得對底層的電路結(jié)構(gòu)有一個清楚的認(rèn)識,對以后的學(xué)習(xí)會有很大的幫助。

3.2 特殊資源:DSP48E1和塊RAM

除了通用的部分,還有兩個特殊用途的部件:滿足密集存儲需要的塊 RAM 和用于高速算術(shù)的 DSP48E1 片。這兩個資源都按列排列集成在邏輯陣列中,嵌入在邏輯部分中,而且往往彼此靠近 (因為密集計算和在內(nèi)存中存儲數(shù)據(jù)往往是緊密聯(lián)系的運算)。

每個塊 RAM 可以存儲最多 36KB 的信息,并且可以被配置為一個 36KB 的 RAM 或兩個獨立的 18KB RAM。默認(rèn)的字寬是 18 位,這樣的配置下每個 RAM 含有 2048 個存儲單元2Kx18位。RAM 還可以被 “ 重塑 ” 來包含更多更小的單元(比如 4096 個單元 x9 位,或 8192x位),或是另外做成更少更長的單元(如 1024 單元 x36 位,512x72 位) 。把兩個或多個塊 RAM 組合起來可以形成更大的存儲容量。它們可實現(xiàn) RAM、ROM 和先入先出 (First In First Out,F(xiàn)IFO)緩沖器,同時還支持糾錯編碼 (Error Correction Coding,ECC)塊 RAM 往往還能用芯片所支持的最高時鐘頻率來工作。

分布式 RAM (Distributed RAM) ,這是用邏輯部分里的 LUT 來搭建的。用分布式 RAM 實現(xiàn)小存儲器往往是有優(yōu)勢的,既是因為資源利用率,也是因為這樣的布局更靈活 (分布式存儲可以靠近與之相互作用的部件,這樣也就能有更快的時序性能)。

(2)DSP48E1

邏輯部分里的 LUT 可以用來實現(xiàn)任意長度的算術(shù)運算,但是最合適的是做短字長的算術(shù)運算 (長字長的算術(shù)電路會在邏輯片中占據(jù)較大的空間,這樣的布局和布線因素會使得時鐘頻率是次優(yōu)的)。

DSP48E1是專門用于實現(xiàn)對長字長信號的高速算術(shù)運算的邏輯片。這些都是專用的硅片資源,并且在邏輯單元內(nèi)主要包含了預(yù)加法器/減法器乘法器和后加法器/減法器。

a22a6188-dadb-11eb-9e57-12bb97331649.png

四、處理器系統(tǒng)與可編程邏輯的接口

Zynq 的表現(xiàn)不僅僅依賴于它的兩個組成部分 PS 和 PL 的特性,還在于能把兩者協(xié)同起來形成完整、集成的系統(tǒng)的能力。這其中起關(guān)鍵作用的,是一組高度定制的 AXI 互聯(lián)和接口用來在兩個部分之間形成橋梁。

4.1 AXI標(biāo)準(zhǔn)

AXI 表示的是高級可擴(kuò)展接口 (Advanced eXtensible Interface)AXI 總線可以靈活使用,而且一般情況下是用來在一個嵌入式系統(tǒng)中連接處理器和其他 IP 核的。實際上有三類 AXI4,每一類代表了一種不同的總線協(xié)議,下面會有總結(jié)。對于一個特定的連接選擇哪個 AXI 總線協(xié)議是基于那個連接所需的特性的。

? AXI4 — 用于存儲映射鏈接,它支持最高的性能:通過一簇高達(dá) 256 個數(shù)據(jù)字 (或 “ 數(shù)據(jù)拍 (data beats)”)的數(shù)據(jù)傳輸來給定一個地址。

? AXI4-Lite — 一種簡化了的鏈接,只支持每次連接傳輸一個數(shù)據(jù)(非批量) 。AXI4-Lite也是存儲映射的:這種協(xié)議下每次傳輸一個地址和單個數(shù)據(jù)。

? AXI4-Stream — 用于高速流數(shù)據(jù),支持批量傳輸無限大小的數(shù)據(jù)。沒有地址機(jī)制,這種總線類型最適合源和目的地之間的直接數(shù)據(jù)流 (非存儲器映射)

4.2 AXI互聯(lián)接口

在 PS 和 PL 之間的主要連接是通過一組 9 個 AXI 接口,每個接口有多個通道組成。這些形成了 PS 內(nèi)部的互聯(lián)以及與 PL 的連接。

? 互聯(lián)(Interconnect) — 互聯(lián)實際上是一個開關(guān),管理并直接傳遞所連接的AXI 接口之間的通信。在 PS 內(nèi)有幾個互聯(lián), 其中有些還直接連接到 PL ,而另一些是只用于內(nèi)部連接的。這些互聯(lián)之間的連接也是用 AXI 接口所構(gòu)成的。

? 接口 (Interface) — 用于在系統(tǒng)內(nèi)的主機(jī)和從機(jī)之間傳遞數(shù)據(jù)、地址和握手信號的點對點連接。

? 通用 AXI(General Purpose AXI) — 一條 32 位數(shù)據(jù)總線,適合 PL 和 PS 之間的中低速通信。接口是透傳的不帶緩沖??偣灿兴膫€通用接口:兩個 PS 做主機(jī),另兩個 PL 做主機(jī)。在PS-PL Configuration中的GP Master/Slave AXI Interface中可以啟用該接口

? 加速器一致性端口Accelerator Coherency Port) — 在 PL 和 APU 內(nèi)的 SCU之間的單個異步連接,總線寬度為 64 位。這個端口用來實現(xiàn) APU cache 和 PL的單元之間的一致性。PL 是做主機(jī)的。ACP接口允許對PL主機(jī)進(jìn)行低延遲訪問,帶有可選的coherency和L1、L2緩存。從系統(tǒng)角度來看,ACP接口具有與APU CPU類似的連通性,因此ACP可以直接在APU塊爭取資源。在PS-PL Configuration中的ACP Slave AXI Interface中可以啟用該接口

? 高性能端口(High Performance Ports) — 四個高性能 AXI 接口,帶有 FIFO緩沖來提供 “ 批量 ” 讀寫操作,并支持 PL 和 PS 中的存儲器單元的高速率通信。數(shù)據(jù)寬度是 32 或 64 位,在所有四個接口中 PL 都是做主機(jī)的。4個AXI_HP接口為PL總線主程序提供了到DDR和OCM內(nèi)存的高帶寬數(shù)據(jù)通道,每個接口有兩個用于讀寫通信的FIFO緩沖區(qū)。內(nèi)存互連的PL將高速AXI_HP端口布線到兩個DDR內(nèi)存端口或OCM。AXI_HP接口也可以用作AXI_FIFO接口,利用其緩沖能力。簡而言之,這種接口為PL主機(jī)和PS內(nèi)存(DDR或OCM)之間提供了一種高吞吐量數(shù)據(jù)通道。在PS-PL Configuration中的HP Slave AXI Interface中可以啟用這些接口。

本文轉(zhuǎn)自:

https://blog.csdn.net/Murmansk11?type=blog

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600704
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50027

    瀏覽量

    419817
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9009

    瀏覽量

    366134
  • Zynq
    +關(guān)注

    關(guān)注

    9

    文章

    607

    瀏覽量

    47084

原文標(biāo)題:Zynq的學(xué)習(xí)

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ZYNQ核心板學(xué)習(xí)筆記

    此款開發(fā)板使用的是 Xilinx 公司的 Zynq7000 系列的芯片,型號為 XC7Z020-2CLG484I,484 個引腳的 FBGA 封裝。
    的頭像 發(fā)表于 10-24 18:08 ?174次閱讀
    <b class='flag-5'>ZYNQ</b>核心板<b class='flag-5'>學(xué)習(xí)</b>筆記

    如何學(xué)習(xí)ARM?

    ARM 處理器的程序。此外,還需要了解一些常用的開發(fā)工具和調(diào)試工具,如交叉編譯器、調(diào)試器等。 4.實踐項目: 在學(xué)習(xí)的過程中進(jìn)行一些實踐項目是很有幫助的。可以嘗試使用開發(fā)板或模擬器進(jìn)行簡單的嵌入式開發(fā)
    發(fā)表于 10-11 10:42

    正點原子ZYNQ7015開發(fā)板!ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2,性能強(qiáng)悍,資料豐富!

    、視頻演示!了解更多關(guān)于ZYNQ7015開發(fā)板詳情 三、豐富資料!提供豐富的開發(fā)資料助力開發(fā)者更加快速的上手 四、社群交流!技術(shù)交流&答疑解惑 五、了解更多!正點原子ZYNQ
    發(fā)表于 09-14 10:12

    [XILINX] 正點原子ZYNQ7035/7045/7100開發(fā)板發(fā)布、ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2!

    開發(fā)板&核心板 二、視頻演示!了解更多關(guān)于ZYNQ7035/7045/7100開發(fā)板詳情 三、豐富資料!提供豐富的開發(fā)資料助力開發(fā)者更加快速的上手 四、社群交流!技術(shù)交流&
    發(fā)表于 09-02 17:18

    認(rèn)識貼片電阻嗎,對他了解多少?

    認(rèn)識貼片電阻嗎,對他了解多少?
    的頭像 發(fā)表于 08-27 15:49 ?272次閱讀
    <b class='flag-5'>你</b>認(rèn)識貼片電阻嗎,<b class='flag-5'>你</b>對他<b class='flag-5'>了解</b>多少?

    真的了解駐波比嗎?到底什么是電壓駐波比?

    真的了解駐波比嗎?到底什么是電壓駐波比?在很長一段時間內(nèi),小編對駐波比的了解僅限于這樣一個概念:它是一個用于描述波反射大小的物理量,取值范圍[1, ∞],值越小,就表示反射越小,值越
    的頭像 發(fā)表于 05-29 14:27 ?2909次閱讀
    <b class='flag-5'>你</b><b class='flag-5'>真的</b><b class='flag-5'>了解</b>駐波比嗎?到底什么是電壓駐波比?

    真的了解110配線架嗎

    110配線架是一種常見的網(wǎng)絡(luò)設(shè)備,主要用于計算機(jī)網(wǎng)絡(luò)中數(shù)據(jù)和電話傳輸?shù)呐渚€系統(tǒng)。作為綜合布線系統(tǒng)的核心產(chǎn)品,它起著傳輸信號的靈活轉(zhuǎn)接、靈活分配以及綜合統(tǒng)一管理的作用。綜合布線系統(tǒng)的最大特性是利用同一接口和同一種傳輸介質(zhì),讓各種不同信息在上面?zhèn)鬏敚@一特性的實現(xiàn)主要通過連接不同信息的配線架之間的跳接來完成。 110配線架早期主要用于網(wǎng)絡(luò)系統(tǒng)配線,現(xiàn)在則主要用于電話系統(tǒng)配線,俗稱魚骨架。一般來說,一個110配線架為
    的頭像 發(fā)表于 04-23 11:46 ?1079次閱讀

    關(guān)于JTAG口,了解多少?

    歡迎大俠來到FPGA技術(shù)江湖新欄目今日說“法”,當(dāng)然,在這里我們肯定不是去研究討論法律法規(guī)知識,那我們討論什么呢,在這里我們討論的是產(chǎn)品研發(fā)以及技術(shù)學(xué)習(xí)時一些小細(xì)節(jié)小方法等,歡迎大家一起學(xué)習(xí)交流
    發(fā)表于 01-19 21:19

    半導(dǎo)體≠芯片:真的了解半導(dǎo)體技術(shù)嗎?

    的脈搏。事實上,這種觀念是片面的,甚至是有害的。本文將闡述新能源與電池、半導(dǎo)體與芯片之間的區(qū)別與聯(lián)系,以幫助讀者更全面地了解這些領(lǐng)域。
    的頭像 發(fā)表于 12-22 09:57 ?1262次閱讀
    半導(dǎo)體≠芯片:<b class='flag-5'>你</b><b class='flag-5'>真的</b><b class='flag-5'>了解</b>半導(dǎo)體技術(shù)嗎?

    RFID和NFC之間的那些事兒,真的了解嗎?

    RFID和NFC之間的那些事兒,真的了解嗎?
    的頭像 發(fā)表于 12-15 09:38 ?1149次閱讀
    RFID和NFC之間的那些事兒,<b class='flag-5'>你</b><b class='flag-5'>真的</b><b class='flag-5'>了解</b>嗎?

    介紹一種通過SystemC做RTL/C/C++聯(lián)合仿真的方法

    當(dāng)FPGA開發(fā)者需要做RTL和C/C++聯(lián)合仿真的時候,一些常用的方法包括使用MicroBlaze軟核,或者使用QEMU仿真ZYNQ的PS部分。
    的頭像 發(fā)表于 12-13 10:11 ?1601次閱讀
    介紹一種通過SystemC做RTL/C/C++聯(lián)合仿<b class='flag-5'>真的</b>方法

    肖特基二極管,真的用對了嗎?

    肖特基二極管,真的用對了嗎?
    的頭像 發(fā)表于 12-07 14:27 ?507次閱讀
    肖特基二極管,<b class='flag-5'>你</b><b class='flag-5'>真的</b>用對了嗎?

    作為射頻工程師,真的會用“dB”?

    作為射頻工程師,真的會用“dB”?
    的頭像 發(fā)表于 12-06 14:51 ?502次閱讀
    作為射頻工程師,<b class='flag-5'>你</b><b class='flag-5'>真的</b>會用“dB”?

    了解PWM“死區(qū)”嗎?

    了解PWM“死區(qū)”嗎?
    的頭像 發(fā)表于 11-24 16:47 ?895次閱讀
    <b class='flag-5'>你</b><b class='flag-5'>了解</b>PWM“死區(qū)”嗎?

    基于zynq7020器件來搭建Linux系統(tǒng)

    Zynq器件將arm和FPGA結(jié)合,利用了兩者各自的優(yōu)勢,arm可以實現(xiàn)靈活的控制,而FPGA部分可以實現(xiàn)算法加速,這大大擴(kuò)展了zynq的應(yīng)用。比如深度學(xué)習(xí)加速,圖像處理等等。PL側(cè)表示FPGA的邏輯部分,PS側(cè)為arm端以及一
    發(fā)表于 11-09 11:28 ?2329次閱讀
    基于<b class='flag-5'>zynq</b>7020器件來搭建Linux系統(tǒng)