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

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

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

如何使用ZYNQ進行嵌入式系統(tǒng)設(shè)計

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-10-11 09:06 ? 次閱讀

[導(dǎo)讀] 基于ZYNQ實現(xiàn)復(fù)雜嵌入式系統(tǒng)非常便利,其應(yīng)用領(lǐng)域也越來越廣泛,本文來從對ZYNQ芯片架構(gòu)的理解來談?wù)剛€人體會。

俯瞰zynq

8cf6d858-48fa-11ed-a3b6-dac502259ad0.png

ZYNQ主要由兩大部分組成:

處理系統(tǒng)PS(Processing System):上圖左上部分即是PS部分,包括:

同構(gòu)雙核ARM Cortex A9的對稱多處理器 (Symmetric Multi-Processing,SMP)

豐富的外設(shè),2×SPI,2×I2C,2×CAN,2×UART,2×SDIO,2×USB,2×GigE,GPIO

靜態(tài)存儲控制器:Quad-SPI,NAND,NOR

動態(tài)存儲控制器:DDR3,DDR2,LPDDR2

編程邏輯PL(Programmable logic):兼容賽靈思7系列FPGA

基于Artix的芯片:Z-7010以及Z-7020

基于Kintex的芯片:Z-7030以及Z-7045

ZYNQ處理系統(tǒng)端PS所有的外設(shè)都連接在AMBA(Advanced Microcontroller Bus Architecture)總線,而基于FPGA設(shè)計的IP則可以通過AXI接口掛載在AMBA總線上,從而實現(xiàn)內(nèi)部各組件的互聯(lián)互通。這里涉及到兩個概念:

AMBA總線,熟悉ARM架構(gòu)的朋友應(yīng)該都大致了解, AMBA是ARM公司的注冊商標(biāo)。是一種用于片上系統(tǒng)(SoC)設(shè)計中功能塊的連接和管理的開放標(biāo)準(zhǔn)片上互連規(guī)范。它促進了具有總線結(jié)構(gòu)及多控制器或組件的多核處理器設(shè)計開發(fā)。自成立以來,AMBA已廣為應(yīng)用,遠遠超出了微控制器設(shè)備領(lǐng)域。如今,AMBA已廣泛用于各種ASIC和SoC部件,包括在現(xiàn)代便攜式移動設(shè)備中使用的應(yīng)用處理器。

高級可擴展接口AXI(Advanced eXtensible Interface):是ARM公司AMBA 3.0 和AMBA 4.0規(guī)范的一部分,是并行高性能,同步,高頻,多主機,多從機通訊接口,主要設(shè)計用于片上通訊。為啥說AXI是AMBA的一部分,看看下面兩個圖就可以比較清晰的了解。

8d5237a2-48fa-11ed-a3b6-dac502259ad0.png

8d6d6cb6-48fa-11ed-a3b6-dac502259ad0.png

ZYNQ的高度靈活性

靈活的PS端IO復(fù)用

Multiplexed I/O (MIO):PS端外設(shè)IO復(fù)用,這是什么概念呢?前面介紹了ZYNQ主要分PS/PL兩大組成模塊,PS端前面介紹的外設(shè)如USB/CAN/GPIO/UART等都必要需要引腳與外界打交道,這里所謂的復(fù)用與常見的單片機、處理器里引腳復(fù)用的概念一樣。但是(這里劃重點),ZYNQ具有高達54個PS引腳支持MIO,MIO具有非常高的靈活度以達到靈活配置,這給硬件設(shè)計、PCB布板帶來了極大的便利!,MIO的配置利用vivado軟件可以實現(xiàn)靈活配置,如下圖所示。

8d7e747a-48fa-11ed-a3b6-dac502259ad0.png

硬件工程師往往發(fā)現(xiàn)對一個復(fù)雜的系統(tǒng)的布局布線,常常會很困難,也常因為不合理的布局布線而陷入EMC深坑。ZYNQ的IO引腳高度靈活性,無疑在電路設(shè)計方面提供極大的方便,可實現(xiàn)非常靈活的PCB布局布線。從而在EMC性能改善方面帶來了很大便利。

靈活的PS-PL互連接口

Extended Multiplexed I/O (EMIO):擴展MIO,如果想通過PS來訪問PL又不想浪費AXI總線時,就可以通過EMIO接口來訪問PL。54個I/O中,其中一部分只能用于MIO,大部分可以用于MIO或EMIO,少量引腳只能通過EMIO訪問。

8e4c00ac-48fa-11ed-a3b6-dac502259ad0.png

如上圖,比如I2C0則可以通過EMIO映射到PL端的引腳輸出,這無疑又增加了更多的靈活性!

PS-PL接口HP0-HP3:如上架構(gòu)圖中AXI high-performance slave ports (HP0-HP3) 實現(xiàn)了PS-PL的接口

可配置的32位或64位數(shù)據(jù)寬度

只能訪問片上存儲器OCM(On chip memory)和DDR

AXI FIFO接口(AFI)利用1KB FIFOs來緩沖大數(shù)據(jù)傳輸

PS-PL接口GP0-GP1:如上架構(gòu)圖中AXI general-purpose ports

兩個PS主接口連接到PL的兩個從設(shè)備

32位數(shù)據(jù)寬度

一個連接到CPU內(nèi)存的64位加速器一致端口ACP)AXI從接口,ACP 是 SCU (一致性控制單元)上的一個 64 位從機接口,實現(xiàn)從 PL 到 PS 的異步 cache 一致性接入點。ACP 是可以被很多 PL 主機所訪問的,用以實現(xiàn)和 APU 處理器相同的方式訪問存儲子系統(tǒng)。這能達到提升整體性能、改善功耗和簡化軟件的效果。ACP 接口的表現(xiàn)和標(biāo)準(zhǔn)的 AXI 從機接口是一樣的,支持大多數(shù)標(biāo)準(zhǔn)讀和寫的操作而不需要在 PL 部件中加入額外的一致性操作。

DMA, 中斷, 事件信號

處理器事件總線信號事件信息到CPU

PL外設(shè)IP中斷到PS通用中斷控制器(GIC)

四個DMA通道RDY/ACK信號

擴展多路復(fù)用I/O (EMIO)允許PS外設(shè)端口訪問PL邏輯和設(shè)備I/O引腳。

時鐘以及復(fù)位信號:

四個PS時鐘帶使能控制連接到PL

四個PS復(fù)位信號連接到PL

靈活的時鐘系統(tǒng)

PS時鐘源:

PS端具有4個外部時鐘源引腳

PS端具有3個PLL時鐘模塊

PS端具有4個時鐘源可輸出到PL

PL端具有7個時鐘源

PL端時鐘源域相對PS端不同

PL端時鐘可靈活來自PL端外部引腳,因為FPGA的硬可編程性,完全靈活配置

也可使用PS端的4個時鐘源

注意

PL和PS之間的時鐘同步是由PS端處理

PL不能提供時鐘給PS使用

豐富的IP庫

Zynq 是一種SoC,具有大量的標(biāo)準(zhǔn) IP,這些部件不再需要重新設(shè)計而直接可用。以這樣的方式提升了設(shè)計抽象層級,加上重用預(yù)先測試和驗證過的部件,開發(fā)將被加速,而成本則可以降低。就像常說的:“ 為什么要重新發(fā)明輪子呢?”。

Vivado內(nèi)置了大量的IP可供使用,比如數(shù)學(xué)計算IP,信號處理IP、圖像視頻處理IP,通信互連(以太網(wǎng)、DDS、調(diào)制、軟件無線電、錯誤校驗)、處理器IP(MicroBlaze等)、甚至人工智能算法IP。

比如信號處理IP,由于采用FPGA硬邏輯實現(xiàn)信號處理無需CPU計算,對于實現(xiàn)復(fù)雜的信號運算(比如實現(xiàn)一個非常高階的FIR濾波、多點FFT計算)具有非常大優(yōu)勢。

8e7403cc-48fa-11ed-a3b6-dac502259ad0.png

雙ARM硬核處理器

如架構(gòu)圖,ZYNQ內(nèi)置了雙ARM Cortex-A9硬核,對軟件設(shè)計提供了極大的靈活性,在該處理器上可運行Linux,Android等復(fù)雜的操作系統(tǒng),相比常規(guī)FPGA嵌軟核IP的做法具有更強大的運算處理能力,你可能會說其處理器的運算能力相比時下的其他ARM芯片或稍有不足,但基本能滿足常規(guī)的醫(yī)療、工業(yè)領(lǐng)域等嵌入式系統(tǒng)應(yīng)用需求。

PL/PS的有機結(jié)合

通過前面的簡要分析介紹,不難發(fā)現(xiàn)PL可編程硬件邏輯及處理器單元的結(jié)合做的非常好。

PL端:可設(shè)計出高靈活的外設(shè)系統(tǒng),同時可編程硬件邏輯電路,可實現(xiàn)真正的硬并行處理、硬實時系統(tǒng)

PS端:PL端與PS的有機結(jié)合,有可實現(xiàn)對這種高靈活、硬并行、硬實時處理系統(tǒng)實現(xiàn)集中軟件管理

試想,如果一個系統(tǒng)需要實現(xiàn)硬實時、硬并行,復(fù)雜外設(shè)互連系統(tǒng):

或許會采用多微控制器(比如單片機)+處理器方案,微處理器實現(xiàn)實時需求,處理器運行Linux實現(xiàn)上層業(yè)務(wù)邏輯的方式。

或者采用FPGA+處理器來實現(xiàn)。

這兩種方案技術(shù)復(fù)雜度都非常高,硬件電路PCB設(shè)計比較復(fù)雜,軟件開發(fā)以及維護也會增加復(fù)雜度。而ZYNQ則可以很好的解決此類系統(tǒng)設(shè)計需求,真正做到system on chip,這也是SOC的一個很好的體現(xiàn)。

總結(jié)一下

ZYNQ這種高度靈活性,豐富的外設(shè),豐富的IP庫,以及vivado強大易用的開發(fā)環(huán)境,對使用ZYNQ進行嵌入式系統(tǒng)設(shè)計帶來了非常多優(yōu)勢。

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

    關(guān)注

    455

    文章

    50818

    瀏覽量

    423729
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3593

    瀏覽量

    129483
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    609

    瀏覽量

    47184
收藏 人收藏

    評論

    相關(guān)推薦

    使用ZYNQ進行嵌入式系統(tǒng)設(shè)計

    ,你可能會說其處理器的運算能力相比時下的其他ARM芯片或稍有不足,但基本能滿足常規(guī)的醫(yī)療、工業(yè)領(lǐng)域等嵌入式系統(tǒng)應(yīng)用需求。
    的頭像 發(fā)表于 10-11 09:05 ?928次閱讀

    簡談Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計與實現(xiàn)

    今天給大俠帶來簡談Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計與實現(xiàn),話不多說,上貨。 Xilinx的ZYNQ系列FPGA是二種看上去對立面的思想的融合,ARM處理器的串行執(zhí)
    發(fā)表于 04-10 16:00

    簡談Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計與實現(xiàn)

    今天給大俠帶來簡談Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計與實現(xiàn),話不多說,上貨。 Xilinx的ZYNQ系列FPGA是二種看上去對立面的思想的融合,ARM處理器的串行執(zhí)
    發(fā)表于 05-08 16:23

    ZYNQ嵌入式系統(tǒng)的開發(fā)流程

    “Hello World!”是各種編程語言中最簡單,同時也是最經(jīng)典的入門實驗。因此,我們將串口打印“Hello World”作為 ZYNQ 嵌入式系統(tǒng)的開篇實驗,這也是我們步入 ZYNQ
    發(fā)表于 10-27 07:50

    如何實現(xiàn)Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計?

    如何實現(xiàn)Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計?
    發(fā)表于 12-23 08:53

    怎樣使用ZYNQ去實現(xiàn)一種復(fù)雜嵌入式系統(tǒng)的設(shè)計呢

    ZYNQ主要由哪幾大部分組成呢?怎樣使用ZYNQ去實現(xiàn)一種復(fù)雜嵌入式系統(tǒng)的設(shè)計呢?
    發(fā)表于 01-26 07:16

    基于Zynq嵌入式系統(tǒng)教學(xué)改革背景與措施

    針對傳統(tǒng)嵌入式系統(tǒng)教學(xué)中的問題,提出將Zynq平臺作為嵌入式系統(tǒng)的教學(xué)改革實踐平臺。采用全新的課程體系結(jié)構(gòu),以工程實踐訓(xùn)練為導(dǎo)向,驅(qū)動學(xué)生自
    發(fā)表于 11-17 01:39 ?1183次閱讀
    基于<b class='flag-5'>Zynq</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>教學(xué)改革背景與措施

    linux下開發(fā)基于zynq嵌入式操作系統(tǒng)流程

    本文檔內(nèi)容介紹了linux下開發(fā)基于zynq嵌入式操作系統(tǒng)流程,供參考
    發(fā)表于 03-15 16:48 ?17次下載

    了解基于Zynq嵌入式系統(tǒng)的研究

    針對傳統(tǒng)嵌入式系統(tǒng)教學(xué)中的問題,提出將Zynq平臺作為嵌入式系統(tǒng)的教學(xué)改革實踐平臺。采用全新的課程體系結(jié)構(gòu),以工程實踐訓(xùn)練為導(dǎo)向,驅(qū)動學(xué)生自
    發(fā)表于 04-17 15:38 ?1421次閱讀

    如何使用ARM進行嵌入式系統(tǒng)的設(shè)計與實現(xiàn)

    介紹了一種基于ARM 的嵌入式系統(tǒng)的設(shè)計方法; 首先簡要介紹了嵌入式硬件設(shè)計方案, 然后重點闡述BootLoader 程序的設(shè)計、uCLinux 的編譯與移植, 最后對uCLinux 下的網(wǎng)絡(luò)編程
    發(fā)表于 03-08 14:47 ?14次下載
    如何使用ARM<b class='flag-5'>進行</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計與實現(xiàn)

    ZYNQ嵌入式系統(tǒng)-Hello World 實驗

    “Hello World!”是各種編程語言中最簡單,同時也是最經(jīng)典的入門實驗。因此,我們將串口打印“Hello World”作為 ZYNQ 嵌入式系統(tǒng)的開篇實驗,這也是我們步入 ZYNQ
    發(fā)表于 10-20 17:35 ?12次下載
    <b class='flag-5'>ZYNQ</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>-Hello World 實驗

    ZYNQ嵌入式開發(fā)中有什么魔力?

    關(guān)注、星標(biāo)公眾號,直達精彩內(nèi)容來源:ZYNQ作者:watchman最近公司開始做一個項目,再一次使用到ZYNQ,今天給大家科普一下ZYNQ是什么,以及ZYNQ
    發(fā)表于 11-02 18:35 ?21次下載
    <b class='flag-5'>ZYNQ</b> 在<b class='flag-5'>嵌入式</b>開發(fā)中有什么魔力?

    使用ZYNQ實現(xiàn)復(fù)雜嵌入式系統(tǒng),真的好用!

    [導(dǎo)讀] 基于ZYNQ實現(xiàn)復(fù)雜嵌入式系統(tǒng)非常便利,其應(yīng)用領(lǐng)域也越來越廣泛,本文來從對ZYNQ芯片架構(gòu)的理解來談?wù)剛€人體會。俯瞰zynqZYNQ主要由兩大部分組成:處理
    發(fā)表于 12-01 18:06 ?0次下載
    使用<b class='flag-5'>ZYNQ</b>實現(xiàn)復(fù)雜<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>,真的好用!

    Zynq-7000 SoC:嵌入式設(shè)計教程

    電子發(fā)燒友網(wǎng)站提供《Zynq-7000 SoC:嵌入式設(shè)計教程.pdf》資料免費下載
    發(fā)表于 09-13 09:20 ?4次下載
    <b class='flag-5'>Zynq</b>-7000 SoC:<b class='flag-5'>嵌入式</b>設(shè)計教程

    Zynq UltraScale+MPSoC嵌入式設(shè)計教程

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+MPSoC嵌入式設(shè)計教程.pdf》資料免費下載
    發(fā)表于 09-13 09:14 ?5次下載
    <b class='flag-5'>Zynq</b> UltraScale+MPSoC<b class='flag-5'>嵌入式</b>設(shè)計教程