Zynq 系列的亮點(diǎn)在于 FPGA 里包含了完整的 ARM 處理子系統(tǒng)(PS),每一顆 Zynq 系列的處理器都包含了Cortex-A9處理器,整個(gè)處理器的搭建都以處理器為中心, 而且處理器子系統(tǒng)中集成了內(nèi)存控制器和大量的外設(shè),使Cortex-A9的核在Zynq-7000中完全獨(dú)立于可編程邏輯單元,也就是說(shuō)如果暫時(shí)沒(méi)有用到可編程邏輯單元部分(PL),ARM處理器的子系統(tǒng)也可以獨(dú)立工作,這與以前的FPGA有本質(zhì)區(qū)別,其是以處理器為中心的。Zynq就是兩大功能塊,PS部分和PL部分,說(shuō)白了,就是 ARM 的 SOC 部分和 FPGA部分。其中,PS 集成了兩個(gè)ARM Cortex-A9 處理器, AMBA互連,內(nèi)部存儲(chǔ)器,外部存儲(chǔ)器接口和外設(shè)。這些外設(shè)主要包括USB總線接口,以太網(wǎng)接口,SD/SDIO 接口,I2C總線接口,CAN總線接口,UART接口,GPIO 等,下圖是ZYNQ芯片總體框圖。
在ZYNQ芯片內(nèi)部用硬件實(shí)現(xiàn)了AXI總線協(xié)議,包括9個(gè)物理接口,分別為AXI-GP0AXI-GP3,AXI-HP0AXI-HP3,AXI-ACP接口。
AXI_ACP接口:ARM多核架構(gòu)下定義的一種接口,中文翻譯為加速器一致性端口,用來(lái)管理 DMA之類的不帶緩存的 AXI 外設(shè),PS 端是 Slave 接口。
AXI_HP接口:高性能/帶寬的AXI3.0標(biāo)準(zhǔn)的接口,總共有四個(gè),PL模塊作為主設(shè)備連接。主要用于 PL 訪問(wèn) PS 上的存儲(chǔ)器(DDR 和 On-Chip RAM)。
AXI_GP 接口:通用的 AXI 接口,總共有四個(gè),包括兩個(gè) 32 位主設(shè)備接口和兩個(gè) 32 位從設(shè)備接口。
ZYNQ 作為首款將高性能 ARM Cortex-A9 系列處理器與高性能 FPGA 在單芯片內(nèi)緊密結(jié)合的產(chǎn)品,為了實(shí)現(xiàn) ARM 處理器和 FPGA 之間的高速通信和數(shù)據(jù)交互,發(fā)揮 ARM 處理器和 FPGA的性能優(yōu)勢(shì),需要設(shè)計(jì)高效的片內(nèi)高性能處理器與 FPGA 之間的互聯(lián)通路。因此,如何設(shè)計(jì)高效的 PL 和 PS數(shù)據(jù)交互通路是 ZYNQ 芯片設(shè)計(jì)的重中之重,也是產(chǎn)品設(shè)計(jì)的成敗關(guān)鍵之一。其實(shí),在具體設(shè)計(jì)中我們往往不需要在連接這個(gè)地方做太多工作,我們加入 IP 核以后,系統(tǒng)會(huì)自動(dòng)使用 AXI 接口將我們的 IP 核與處理器連接起來(lái),我們只需要再做一點(diǎn)補(bǔ)充就可以了。AXI 就是 ARM 公司提出的AMBA(Advanced Microcontroller Bus Architecture)的一個(gè)部分,是一種高性能、高帶寬、低延遲的片內(nèi)總線,也用來(lái)替代以前的 AHB 和 APB 總線。第一個(gè)版本的 AXI(AXI3)包含在 2003年發(fā)布的 AMBA3.0 中,AXI的第二個(gè)版本 AXI(AXI4)包含在 2010 年發(fā)布的 AMBA 4.0 之中。
在 ZYNQ 中,支持 AXI-Lite, AXI4 和 AXI-Stream 三種總線:
AXI4-Lite:具有輕量級(jí),結(jié)構(gòu)簡(jiǎn)單的特點(diǎn),適合小批量數(shù)據(jù)、簡(jiǎn)單控制場(chǎng)合。不支持批量傳輸,讀寫時(shí)一次只能讀寫一個(gè)字(32bit)。主要用于訪問(wèn)一些低速外設(shè)和外設(shè)的控制。
AXI4:接口和 AXI-Lite 差不多,只是增加了一項(xiàng)功能就是批量傳輸,可以連續(xù)對(duì)一片地址進(jìn)行一次性讀寫。也就是說(shuō)具有數(shù)據(jù)讀寫的 burst 功能。
上面兩種均采用內(nèi)存映射控制方式,即 ARM 將用戶自定義 IP 編入某一地址進(jìn)行訪問(wèn),讀寫時(shí)就像在讀寫自己的片內(nèi)RAM,編程也很方便,開發(fā)難度較低。代價(jià)就是資源占用過(guò)多,需要額外的讀地址線、寫地址線、讀數(shù)據(jù)線、寫數(shù)據(jù)線、寫應(yīng)答線這些信號(hào)線。
AXI4-Stream:這是一種連續(xù)流接口,不需要地址線(很像FIFO,一直讀或一直寫就行)。對(duì)于這類 IP,ARM 不能通過(guò)上面的內(nèi)存映射方式控制(FIFO 根本沒(méi)有地址的概念),必須有一個(gè)轉(zhuǎn)換裝置,例如 AXI-DMA 模塊來(lái)實(shí)現(xiàn)內(nèi)存映射到流式接口的轉(zhuǎn)換。AXI-Stream 適用的場(chǎng)合有很多:視頻流處理;通信協(xié)議轉(zhuǎn)換;數(shù)字信號(hào)處理;無(wú)線通信等。其本質(zhì)都是針對(duì)數(shù)值流構(gòu)建的數(shù)據(jù)通路,從信源(例如 ARM 內(nèi)存、 DMA、無(wú)線接收前端等)到信宿(例如 HDMI 顯示器、高速 AD 音頻輸出,等)構(gòu)建起連續(xù)的數(shù)據(jù)流。這種接口適合做實(shí)時(shí)信號(hào)處理。
在上圖中可以看到PS與PL的交互還可以通過(guò)DMA和EMIO,實(shí)際上DMA是從HP口進(jìn)行PS和PL的交互,當(dāng)不想浪費(fèi)AXI總線的時(shí)候,可以通過(guò)EMIO進(jìn)行PS和PL的交互。搞清楚MIO,EMIO,GPIO可以通過(guò)下面三個(gè)點(diǎn)燈操作有一個(gè)比較形象的理解(1)PS通過(guò)MIO點(diǎn)亮PS端LED(2)PS通過(guò)EMIO點(diǎn)亮PL端LED(3)PS通過(guò)AXI點(diǎn)亮PL端LED。
-
處理器
+關(guān)注
關(guān)注
68文章
19387瀏覽量
230517 -
FPGA
+關(guān)注
關(guān)注
1630文章
21777瀏覽量
604733 -
接口
+關(guān)注
關(guān)注
33文章
8673瀏覽量
151554 -
Zynq
+關(guān)注
關(guān)注
10文章
610瀏覽量
47230
原文標(biāo)題:FPGA之ZYNQ
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論