AXI總線簡介


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

AXI協議具有如下特點:
. 總線的地址/控制和數據通道是分離的;
. 支持不對齊的數據傳輸;
. 在突發數據傳輸中只需要首地址;
. 同時具有分離讀/寫數據通道;
. 支持顯著傳輸訪問和亂序訪問;
. 更加容易進行時序收斂

AXI4包含三種接口:
. AXI4——For high-performance memory-mapped requirements.
. AXI4-Lite——For simple, low-throughput memory-mapped communication (for example, to and from control and status registers).
. AXI4-Stream——For high-speed streaming data.

從上面的描述可以看出,AXI4協議相當於原來的AHB協議,提供高速的系統內部互連通道,可以支持burst模式,主要用於處理器訪問存儲等需要高速數據的場合;AXI4-Lite為外設童工單個數據傳輸,相當於原來的APB協議,用於訪問一些低速外設;AXI4-Stream接口就像FIFO一樣,數據傳輸的時候不需要地址,而是主從設備直接連續讀寫數據,主要用於如視頻、高速AD、PCIe、DMA接口等需要高速數據傳輸的場合,跟Xilinx原來的Local Link協議類似。

AXI Interconnect
AXI協議嚴格的講是一個點對點的主從接口協議,當多個外設需要互相交互數據時,我們需要加入一個AXI Interconnect模塊,也就是AXI互聯矩陣,作用是提供將一個或多個AXI主設備連接到一個或多個AXI從設備的一種交換機制(有點類似於交換機里面的交換矩陣)。Xilinx為我們提供了實現這種互聯矩陣的IP核axi_interconnect_1,在前面的例子中,我們在XPS中可以看到。這個IP核最多可以支持16個主設備、16個從設備,如果需要更多的接口,可以多加入幾個IP核。關於AXI Interconnect更多的知識,可參考Xilinx官方文檔DS768。

AXI4和AXI4-Lite接口包含5個不同的通道:
. Read Address Channel
. Write Address Channel
. Read Data Channel
. Write Data Channel
. Write Response Channel

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


ZYNQ中的AXI接口共有9個,主要用於PS與PL的互聯,包含以下三個類型:
. AXI_ACP接口,是ARM多核架構下定義的一種接口,中文翻譯為加速器一致性端口,用來管理DMA之類的不帶緩存的AXI外設,PS端是Slave接口。
. AXI_HP接口,是高性能/帶寬的AXI3.0標准的接口,總共有四個,PL模塊作為主設備連接。主要用於PL訪問PS上的存儲器(DDR和On-Chip RAM)
. AXI_GP接口,是通用的AXI接口,總共有四個,包括兩個32位主設備接口和兩個32位從設備接口。

其實,在具體設計中我們往往不需要在連接這個地方做太多工作,就像上一個例子中,我們加入IP核以后,系統會自動使用AXI接口將我們的IP核與處理器連接起來,我們只需要再做一點補充就可以了。不過,這部分概念還是了解比較好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM