當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]Xilinx的ZYNQ芯片軟件設(shè)計說明

1、概述

ZYNQ是xilinx推出一個款SOC,其亮點在于FPGA里包含了完整的ARM處理子系統(tǒng)(PS),每一顆Zynq系列的處理器都包含了Cortex-A9處理器,整個處理器的搭建都以處理器為中心,而且處理器子系統(tǒng)中集成了內(nèi)存控制器和大量的外設(shè),使Cortex-A9的核在Zynq-7000中完全獨立于可編程邏輯單元,也就是說如果暫時沒有用到可編程邏輯單元部分(PL),ARM處理器的子系統(tǒng)也可以獨立工作,這與以前的FPGA有本質(zhì)區(qū)別,其是以處理器為中心的。

Zynq就是兩大功能塊,PS 部分和PL部分,就是ARM的SOC部分,和FPGA部分。其中,PS集成了兩個ARM Cortex?-A9處理器,AMBA®互連,內(nèi)部存儲器,外部存儲器接口和外設(shè)。這些外設(shè)主要包括USB總線接口,以太網(wǎng)接口,SD/SDIO接口,I2C總線接口,CAN總線接口,UART接口,GPIO等。

ZYNQ芯片總體框圖

其中紅色的PS本身自帶的外設(shè),黃色框是PS與PL通信接口(兩個Master、兩個Slaver),藍色框是高性能PS與PL通信接口其只有Slaver接口,我們現(xiàn)主要用作DMA數(shù)據(jù)傳輸。

2、PS和PL互聯(lián)技術(shù)

ZYNQ作為首款將高性能ARM Cortex-A9系列處理器與高性能FPGA在單芯片內(nèi)緊密結(jié)合的產(chǎn)品,高效的PL和PS數(shù)據(jù)交互通路是ZYNQ芯片設(shè)計的重中之重。

用戶在具體設(shè)計中往往不需要在連接這個地方做太多工作,我們加入IP核以后,系統(tǒng)會自動使用AXI接口將我們的IP核與處理器連接起來,我們只需要再做一點補充就可以了。

2.1AXI總線簡介

AXI全稱Advanced eXtensible Interface,是Xilinx從6系列的FPGA開始引入的一個接口協(xié)議,主要描述了主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸方式。在ZYNQ中繼續(xù)使用,版本是AXI4,所以我們經(jīng)常會看到AXI4.0,ZYNQ內(nèi)部設(shè)備都有AXI接口。其實AXI就是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)的一個部分,是一種高性能、高帶寬、低延遲的片內(nèi)總線,也用來替代以前的AHB和APB總線。

AXI協(xié)議主要描述了主設(shè)備和從設(shè)備之間的數(shù)據(jù)傳輸方式,主設(shè)備和從設(shè)備之間通過握手信號建立連接。當(dāng)從設(shè)備準(zhǔn)備好接收數(shù)據(jù)時,會發(fā)出READY信號。當(dāng)主設(shè)備的數(shù)據(jù)準(zhǔn)備好時,會發(fā)出和維持VALID信號,表示數(shù)據(jù)有效。數(shù)據(jù)只有在VALID和READY信號都有效的時候才開始傳輸。當(dāng)這兩個信號持續(xù)保持有效,主設(shè)備會繼續(xù)傳輸下一個數(shù)據(jù)。主設(shè)備可以撤銷VALID信號,或者從設(shè)備撤銷READY信號終止傳輸。AXI的協(xié)議如圖,T2時,從設(shè)備的READY信號有效,T3時主設(shè)備的VILID信號有效,數(shù)據(jù)傳輸開始。

2.2 AXI三種協(xié)議對比

在ZYNQ中,支持AXI-Lite,AXI4和AXI-Stream三種總線,通過下表我們可以看到這三中AXI接口的特性。

AXI4-Lite:

具有輕量級,結(jié)構(gòu)簡單的特點,適合小批量數(shù)據(jù)、簡單控制場合。不支持批量傳輸,讀寫時一次只能讀寫一個字(32bit)。主要用于訪問一些低速外設(shè)和外設(shè)的控制。

AXI4:

接口和AXI-Lite差不多,只是增加了一項功能就是批量傳輸,可以連續(xù)對一片地址進行一次性讀寫。也就是說具有數(shù)據(jù)讀寫的burst功能。

上面兩種均采用內(nèi)存映射控制方式,即ARM將用戶自定義IP編入某一地址進行訪問,讀寫時就像在讀寫自己的片內(nèi)RAM,編程也很方便,開發(fā)難度較低。代價就是資源占用過多,需要額外的讀地址線、寫地址線、讀數(shù)據(jù)線、寫數(shù)據(jù)線、寫應(yīng)答線這些信號線。

AXI4-Stream:

這是一種連續(xù)流接口,不需要地址線(很像FIFO,一直讀或一直寫就行)。對于這類IP,ARM不能通過上面的內(nèi)存映射方式控制(FIFO根本沒有地址的概念),必須有一個轉(zhuǎn)換裝置,例如AXI-DMA模塊來實現(xiàn)內(nèi)存映射到流式接口的轉(zhuǎn)換。AXI-Stream適用的場合有很多:視頻流處理;通信協(xié)議轉(zhuǎn)換;數(shù)字信號處理;無線通信等。其本質(zhì)都是針對數(shù)值流構(gòu)建的數(shù)據(jù)通路,從信源(例如ARM內(nèi)存、DMA、無線接收前端等)到信宿(例如HDMI顯示器、高速AD音頻輸出,等)構(gòu)建起連續(xù)的數(shù)據(jù)流。這種接口適合做實時信號處理。

AXI4和AXI4-Lite接口包含5個不同的通道:

●Read Address Channel

●Write Address Channel

●Read Data Channel

●Write Data Channel

●Write Response Channel

其中每個通道都是一個獨立的AXI握手協(xié)議。下面兩個圖分別顯示了讀和寫的模型:

AXI讀數(shù)據(jù)通道

AXI寫數(shù)據(jù)通道

2.3 ZYNQ PL與PS互聯(lián)接口

在ZYNQ芯片內(nèi)部用硬件實現(xiàn)了AXI總線協(xié)議,包括9個物理接口,分別為AXI-GP0~AXI-GP3,AXI-HP0~AXI-HP3,AXI-ACP接口。

AXI_ACP接口,是ARM多核架構(gòu)下定義的一種接口,中文翻譯為加速器一致性端口,用來管理DMA之類的不帶緩存的AXI外設(shè),PS端是Slave接口。

AXI_HP接口,是高性能/帶寬的AXI3.0標(biāo)準(zhǔn)的接口,總共有四個,PL模塊作為主設(shè)備連接。主要用于PL訪問PS上的存儲器(DDR和On-Chip RAM)

AXI_GP接口,是通用的AXI接口,總共有四個,包括兩個32位主設(shè)備接口和兩個32位從設(shè)備接口。

另外這9個AXI接口性能也是不同的。GP接口是32位的低性能接口,理論帶寬600MB/s,而HP和ACP接口為64位高性能接口,理論帶寬1200MB/s。

PS端的ARM直接有硬件支持AXI接口,而PL則需要使用邏輯實現(xiàn)相應(yīng)的AXI協(xié)議。Xilinx在Vivado開發(fā)環(huán)境里提供現(xiàn)成IP如AXI-DMA,AXI-GPIO,AXI-Dataover, AXI-Stream都實現(xiàn)了相應(yīng)的接口,使用時直接從Vivado的IP列表中添加即可實現(xiàn)相應(yīng)的功能。

工程實現(xiàn)

3.1 ZYNQ資源對比

最終我們開發(fā)所用的芯片為:ZYNQ7045,目前開發(fā)板所用的是:ZYNQ7020,其中各個ZYNQ的資源的對比如下圖。

由上圖可以看出,ZYNQ系列7020和7045的主要差別是在FPGA資料上,PS端的資源是一樣的,因此在ZYNQ上PS的代碼具有通用性。

3.2 代碼實現(xiàn)

下圖是工程整體實現(xiàn)框圖,首先是初始化系統(tǒng)硬件,然后創(chuàng)建六個線程來實現(xiàn)各個模塊的功能。

1、網(wǎng)絡(luò)接收線程

目前網(wǎng)絡(luò)接收線程沒有特別多的工作做,主要是上位機命令的解析。

2、網(wǎng)絡(luò)發(fā)送線程

此線程主要通過AXI_Lite總線以寫寄存器的方式通知PL何時開始數(shù)據(jù)傳輸、傳輸數(shù)據(jù)的長度等,由于是和PL的自定義IP通信,因此需要自己寫Linux的驅(qū)動。同時PL根據(jù)PS的命令通過DMA發(fā)送數(shù)據(jù)流到PS端,經(jīng)過PS端將數(shù)據(jù)封裝與打包,發(fā)到上位機。

3、串口發(fā)送

ZYNQ將射頻組件狀態(tài)、電機狀態(tài)等雷達所必要狀態(tài)信息通過PL端自定義IP將信息寫到Bram中并通知PS去讀取數(shù)據(jù),并根據(jù)協(xié)議要求發(fā)送到上位機。

4、串口接收

串口接收主要接收上位機控制命令和參數(shù),并解析如需要PS控制著直接控制,若需要通過FPGA與射頻板通信或控制,則由PS將數(shù)據(jù)寫入到Bram中并通過AXI_Lite總線通知PL自定義IP讀取數(shù)據(jù)(PS端需要根據(jù)自定義IP寫相應(yīng)的驅(qū)動)。

5、Bram讀寫

在Vivado的Blockdesign中設(shè)計一個Bram模塊,主要用于PS與PL之間小批量的數(shù)據(jù)交互,此線程主要是根據(jù)PL端的信號和上位機命令實現(xiàn)對Bram的讀寫。

6、系統(tǒng)指示燈

此線程目前無其他功能,僅僅作為系統(tǒng)運行指示作用,后續(xù)可根據(jù)需要添加功能。

3.3 工程框圖

下圖是Vivado中的工程框圖,其中紅色部分是實現(xiàn)Bram功能,黃色框內(nèi)是實現(xiàn)PL-PS大量數(shù)據(jù)DMA交互的。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉