[導(dǎo)讀] 基于ZYNQ實(shí)現(xiàn)復(fù)雜嵌入式系統(tǒng)非常便利,其應(yīng)用領(lǐng)域也越來(lái)越廣泛,本文來(lái)從對(duì)ZYNQ芯片架構(gòu)的理解來(lái)談?wù)剛€(gè)人體會(huì)。
俯瞰zynq
ZYNQ主要由兩大部分組成:
處理系統(tǒng)PS(Processing System):上圖左上部分即是PS部分,包括:
同構(gòu)雙核ARM Cortex A9的對(duì)稱多處理器 (Symmetric Multi-Processing,SMP)
豐富的外設(shè),2×SPI,2×I2C,2×CAN,2×UART,2×SDIO,2×USB,2×GigE,GPIO
靜態(tài)存儲(chǔ)控制器:Quad-SPI,NAND,NOR
動(dòng)態(tài)存儲(chǔ)控制器: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è)計(jì)的IP則可以通過(guò)AXI接口掛載在AMBA總線上,從而實(shí)現(xiàn)內(nèi)部各組件的互聯(lián)互通。這里涉及到兩個(gè)概念:
AMBA總線,熟悉ARM架構(gòu)的朋友應(yīng)該都大致了解, AMBA是ARM公司的注冊(cè)商標(biāo)。是一種用于片上系統(tǒng)(SoC)設(shè)計(jì)中功能塊的連接和管理的開(kāi)放標(biāo)準(zhǔn)片上互連規(guī)范。它促進(jìn)了具有總線結(jié)構(gòu)及多控制器或組件的多核處理器設(shè)計(jì)開(kāi)發(fā)。自成立以來(lái),AMBA已廣為應(yīng)用,遠(yuǎn)遠(yuǎn)超出了微控制器設(shè)備領(lǐng)域。如今,AMBA已廣泛用于各種ASIC和SoC部件,包括在現(xiàn)代便攜式移動(dòng)設(shè)備中使用的應(yīng)用處理器。
高級(jí)可擴(kuò)展接口AXI(Advanced eXtensible Interface):是ARM公司AMBA 3.0 和AMBA 4.0規(guī)范的一部分,是并行高性能,同步,高頻,多主機(jī),多從機(jī)通訊接口,主要設(shè)計(jì)用于片上通訊。為啥說(shuō)AXI是AMBA的一部分,看看下面兩個(gè)圖就可以比較清晰的了解。
ZYNQ的高度靈活性靈活的PS端IO復(fù)用Multiplexed I/O (MIO):PS端外設(shè)IO復(fù)用,這是什么概念呢?前面介紹了ZYNQ主要分PS/PL兩大組成模塊,PS端前面介紹的外設(shè)如USB/CAN/GPIO/UART等都必要需要引腳與外界打交道,這里所謂的復(fù)用與常見(jiàn)的單片機(jī)、處理器里引腳復(fù)用的概念一樣。但是(這里劃重點(diǎn)),ZYNQ具有高達(dá)54個(gè)PS引腳支持MIO,MIO具有非常高的靈活度以達(dá)到靈活配置,這給硬件設(shè)計(jì)、PCB布板帶來(lái)了極大的便利!,MIO的配置利用vivado軟件可以實(shí)現(xiàn)靈活配置,如下圖所示。
硬件工程師往往發(fā)現(xiàn)對(duì)一個(gè)復(fù)雜的系統(tǒng)的布局布線,常常會(huì)很困難,也常因?yàn)椴缓侠淼牟季植季€而陷入EMC深坑。ZYNQ的IO引腳高度靈活性,無(wú)疑在電路設(shè)計(jì)方面提供極大的方便,可實(shí)現(xiàn)非常靈活的PCB布局布線。從而在EMC性能改善方面帶來(lái)了很大便利。
靈活的PS-PL互連接口Extended Multiplexed I/O (EMIO) :擴(kuò)展MIO,如果想通過(guò)PS來(lái)訪問(wèn)PL又不想浪費(fèi)AXI總線時(shí),就可以通過(guò)EMIO接口來(lái)訪問(wèn)PL。54個(gè)I/O中,其中一部分只能用于MIO,大部分可以用于MIO或EMIO,少量引腳只能通過(guò)EMIO訪問(wèn)。
如上圖,比如I2C0則可以通過(guò)EMIO映射到PL端的引腳輸出,這無(wú)疑又增加了更多的靈活性!
PS-PL接口HP0-HP3:如上架構(gòu)圖中AXI high-performance slave ports (HP0-HP3) 實(shí)現(xiàn)了PS-PL的接口
可配置的32位或64位數(shù)據(jù)寬度
只能訪問(wèn)片上存儲(chǔ)器OCM(On chip memory)和DDR
AXI FIFO接口(AFI)利用1KB FIFOs來(lái)緩沖大數(shù)據(jù)傳輸
PS-PL接口GP0-GP1:如上架構(gòu)圖中AXI general-purpose ports
兩個(gè)PS主接口連接到PL的兩個(gè)從設(shè)備
32位數(shù)據(jù)寬度
一個(gè)連接到CPU內(nèi)存的64位加速器一致端口(ACP)AXI從接口,ACP 是 SCU (一致性控制單元)上的一個(gè) 64 位從機(jī)接口,實(shí)現(xiàn)從 PL 到 PS 的異步 cache 一致性接入點(diǎn)。ACP 是可以被很多 PL 主機(jī)所訪問(wèn)的,用以實(shí)現(xiàn)和 APU 處理器相同的方式訪問(wèn)存儲(chǔ)子系統(tǒng)。這能達(dá)到提升整體性能、改善功耗和簡(jiǎn)化軟件的效果。ACP 接口的表現(xiàn)和標(biāo)準(zhǔn)的 AXI 從機(jī)接口是一樣的,支持大多數(shù)標(biāo)準(zhǔn)讀和寫的操作而不需要在 PL 部件中加入額外的一致性操作。
處理器事件總線信號(hào)事件信息到CPU
PL外設(shè)IP中斷到PS通用中斷控制器(GIC)
四個(gè)DMA通道RDY/ACK信號(hào)
擴(kuò)展多路復(fù)用I/O (EMIO)允許PS外設(shè)端口訪問(wèn)PL邏輯和設(shè)備I/O引腳。
時(shí)鐘以及復(fù)位信號(hào):
四個(gè)PS時(shí)鐘帶使能控制連接到PL
四個(gè)PS復(fù)位信號(hào)連接到PL
靈活的時(shí)鐘系統(tǒng)PS時(shí)鐘源:
PS端具有4個(gè)外部時(shí)鐘源引腳
PS端具有3個(gè)PLL時(shí)鐘模塊
PS端具有4個(gè)時(shí)鐘源可輸出到PL
PL端具有7個(gè)時(shí)鐘源
PL端時(shí)鐘源域相對(duì)PS端不同
PL端時(shí)鐘可靈活來(lái)自PL端外部引腳,因?yàn)镕PGA的硬可編程性,完全靈活配置
也可使用PS端的4個(gè)時(shí)鐘源
注意
PL和PS之間的時(shí)鐘同步是由PS端處理
PL不能提供時(shí)鐘給PS使用
豐富的IP庫(kù)Zynq 是一種SoC,具有大量的標(biāo)準(zhǔn) IP,這些部件不再需要重新設(shè)計(jì)而直接可用。以這樣的方式提升了設(shè)計(jì)抽象層級(jí),加上重用預(yù)先測(cè)試和驗(yàn)證過(guò)的部件,開(kāi)發(fā)將被加速,而成本則可以降低。就像常說(shuō)的:“ 為什么要重新發(fā)明輪子呢?”。
Vivado內(nèi)置了大量的IP可供使用,比如數(shù)學(xué)計(jì)算IP,信號(hào)處理IP、圖像視頻處理IP,通信互連(以太網(wǎng)、DDS、調(diào)制、軟件無(wú)線電、錯(cuò)誤校驗(yàn))、處理器IP(MicroBlaze等)、甚至人工智能算法IP。
比如信號(hào)處理IP,由于采用FPGA硬邏輯實(shí)現(xiàn)信號(hào)處理無(wú)需CPU計(jì)算,對(duì)于實(shí)現(xiàn)復(fù)雜的信號(hào)運(yùn)算(比如實(shí)現(xiàn)一個(gè)非常高階的FIR濾波、多點(diǎn)FFT計(jì)算)具有非常大優(yōu)勢(shì)。
雙ARM硬核處理器如架構(gòu)圖,ZYNQ內(nèi)置了雙ARM Cortex-A9硬核,對(duì)軟件設(shè)計(jì)提供了極大的靈活性,在該處理器上可運(yùn)行Linux,Android等復(fù)雜的操作系統(tǒng),相比常規(guī)FPGA嵌軟核IP的做法具有更強(qiáng)大的運(yùn)算處理能力,你可能會(huì)說(shuō)其處理器的運(yùn)算能力相比時(shí)下的其他ARM芯片或稍有不足,但基本能滿足常規(guī)的醫(yī)療、工業(yè)領(lǐng)域等嵌入式系統(tǒng)應(yīng)用需求。
PL/PS的有機(jī)結(jié)合通過(guò)前面的簡(jiǎn)要分析介紹,不難發(fā)現(xiàn)PL可編程硬件邏輯及處理器單元的結(jié)合做的非常好。
PL端:可設(shè)計(jì)出高靈活的外設(shè)系統(tǒng),同時(shí)可編程硬件邏輯電路,可實(shí)現(xiàn)真正的硬并行處理、硬實(shí)時(shí)系統(tǒng)
PS端:PL端與PS的有機(jī)結(jié)合,有可實(shí)現(xiàn)對(duì)這種高靈活、硬并行、硬實(shí)時(shí)處理系統(tǒng)實(shí)現(xiàn)集中軟件管理
試想,如果一個(gè)系統(tǒng)需要實(shí)現(xiàn)硬實(shí)時(shí)、硬并行,復(fù)雜外設(shè)互連系統(tǒng):
或許會(huì)采用多微控制器(比如單片機(jī))+處理器方案,微處理器實(shí)現(xiàn)實(shí)時(shí)需求,處理器運(yùn)行Linux實(shí)現(xiàn)上層業(yè)務(wù)邏輯的方式。
或者采用FPGA+處理器來(lái)實(shí)現(xiàn)。
這兩種方案技術(shù)復(fù)雜度都非常高,硬件電路PCB設(shè)計(jì)比較復(fù)雜,軟件開(kāi)發(fā)以及維護(hù)也會(huì)增加復(fù)雜度。而ZYNQ則可以很好的解決此類系統(tǒng)設(shè)計(jì)需求,真正做到system on chip,這也是SOC的一個(gè)很好的體現(xiàn)。
總結(jié)一下ZYNQ這種高度靈活性,豐富的外設(shè),豐富的IP庫(kù),以及vivado強(qiáng)大易用的開(kāi)發(fā)環(huán)境,對(duì)使用ZYNQ進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)帶來(lái)了非常多優(yōu)勢(shì)。
原文標(biāo)題:從ZYNQ芯片架構(gòu)談?wù)勂錇楹稳绱苏T人
文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
處理器
+關(guān)注
關(guān)注
68文章
19265瀏覽量
229673 -
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
603046 -
芯片
+關(guān)注
關(guān)注
455文章
50732瀏覽量
423266 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19111瀏覽量
304853
原文標(biāo)題:從ZYNQ芯片架構(gòu)談?wù)勂錇楹稳绱苏T人
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論