在ZYNQ中有支持三種AXI總線,擁有三種AXI接口,當然用的都是AXI協議。其中三種AXI總線分別為:
AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允許最大256輪的數據突發傳輸;
AXI4-Lite:(For simple, low-throughput memory-mapped communication )是 一個輕量級的地址映射單次傳輸接口,占用很少的邏輯單元。
AXI4-Stream:(For high-speed streaming data.)面向高速流數據傳輸;去掉了地址項,允許無限制的數據突發傳輸規模。
說AXI4總線和AXI4-Lite總線具有相同的組成部分:
(1)讀地址通道,包含ARVALID, ARADDR, ARREADY信號;
(2)讀數據通道,包含RVALID, RDATA, RREADY, RRESP信號;
(3)寫地址通道,包含AWVALID,AWADDR, AWREADY信號;
(4)寫數據通道,包含WVALID, WDATA,WSTRB, WREADY信號;
(5)寫應答通道,包含BVALID, BRESP, BREADY信號;
(6)系統通道,包含:ACLK,ARESETN信號。
AXI4總線和AXI4-Lite總線的信號也有他的命名特點:
讀地址信號都是以AR開頭(A:address;R:read)
寫地址信號都是以AW開頭(A:address;W:write)
讀數據信號都是以R開頭(R:read)
寫數據信號都是以W開頭(W:write)
應答型號都是以B開頭(B:back(answer back))
而AXI4-Stream總線的組成有:
(1)ACLK信號:總線時鍾,上升沿有效;
(2)ARESETN信號:總線復位,低電平有效
(3)TREADY信號:從機告訴主機做好傳輸准備;
(4)TDATA信號:數據,可選寬度32,64,128,256bit
(5)TSTRB信號:每一bit對應TDATA的一個有效字節,寬度為TDATA/8
(6)TLAST信號:主機告訴從機該次傳輸為突發傳輸的結尾;
(7)TVALID信號:主機告訴從機數據本次傳輸有效;
(8)TUSER信號 :用戶定義信號,寬度為128bit。
對於AXI4-Stream總線命名而言,除了總線時鍾和總線復位,其他的信號線都是以T字母開頭,后面跟上一個有意義的單詞,看清這一點后,能幫助讀者記憶每個信號線的 意義。如TVALID = T+單詞Valid(有效)。
AXI 接口介紹
三種AXI接口分別是:
AXI-GP接口(4個):是通用的AXI接口,包括兩個32位主設備接口和兩個32位從設備接口,用該接口可以訪問PS中的片內外設。(AXI4)
AXI-HP接口(4個):是高性能/帶寬的標准的接口,PL模塊作為主設備連接(從下圖中箭頭可以看出)。(AXI4-Lite)
主要用於PL訪問PS上的存儲器(DDR和On-Chip RAM)
AXI-ACP接口(1個)(AXI4-Stream):是ARM多核架構下定義的一種接口,中文翻譯為加速器一致性端口,用來管理DMA(direct memory access)之類的不帶緩存的AXI外設,PS端是Slave接口。 我們可以雙擊查看ZYNQ的IP核的內部配置,就能發現上述的三種接口。
(從圖中可以看出,右邊一個,下方有兩個)
AXI 協議概述
講到協議不可能說是撇開總線單講協議,因為協議的制定也是要建立在總線構成之 上的。雖然說AXI4,AXI4-Lite,AXI4-Stream都是AXI4協議,但是各自細節上還是不同的。
總的來說,AXI總線協議的兩端可以分為分為主(master)、從(slave)兩端,他 們之間一般需要通過一個AXI Interconnect相連接,作用是提供將一個或多個AXI主設 備連接到一個或多個AXI從設備的一種交換機制。當我們添加了zynq以及帶AXI的IP后再 進行自動連線時vivado會自動幫我們添加上這個IP。
AXI Interconnect的主要作用是,當存在多個主機以及從機器時,AXI Interconnect負責將它們聯系並管理起來。
由於AXI支持亂序發送,亂序發送需要主機 的ID信號支撐,而不同的主機發送的ID可能相同,而AXI Interconnect解決了這一問題, 他會對不同主機的ID信號進行處理讓ID變得唯一。
AXI協議將讀地址通道,讀數據通道,寫地址通道,寫數據通道,寫響應通道分開, 各自通道都有自己的握手協議。
每個通道互不干擾卻又彼此依賴。這也是AXI高效的原 因之一。
AXI 協議之握手協議
AXI4所采用的是一種READY,VALID握手通信機制,簡單來說主從雙方進行數據通信 前,有一個握手的過程。當接收到READY信號后,再進行數據交互。如下圖所示:
需要強調的是,AXI的五個通道,每個通道都有握手機制,接下來我們就來分析一 下AXI-Lite的源碼來更深入的了解AXI機制。
incremental:增加的
Wrapping:包裝用的,包裹的;