AXI用戶指南——學習筆記(1)

什麼是AXI?

AXI是ARM AMBA的一部分。AMBA(Advanced Microcontroller Bus Architecture)片上總線協議與1996年第一次提出。AXI的首發版於AMBA3.0中第一次引入,並在2003年發行。之後AMBA4.0引入了AXI的第二個版本AXI4,於2010年發行。

AXI4包括三中類型的接口:

  • AXI4——針對高性能內存映射(high-performance memory-map)的要求
  • AXI4_Lite——用於低吞吐率內存映射(low-throughput memory-map)通信(例如操作控制和狀態寄存器)
  • AXI-Stream——用於高速數據流

AXI4的優點總結

AXI4全面改進和增強了Xilinx產品,提高了 生產力(Productivity)靈活性(Flexibility)可用性(Availability)

  • 生產力——通過對AXI接口進行標準化,開發人員只需要學習一種IP協議
  • 靈活性——爲應用程序提供正確的協議
    • AXI4用於內存映射接口,只需一個地址週期(address phase)即可觸發多達256個數據傳輸週期
    • AXI4-Lite是一個輕量級的單事務內存映射接口。它具有較小的邏輯佔用空間,是設計中一個簡單的接口
    • AXI4-Stream完全移除了對地址週期的要求,並允許無限制的突發數據的尺寸。AXI4-Stream接口和傳輸沒有地址週期,因此不具有內存映射的特性
  • 可用性——通過使用行業標準,您不僅可以訪問Xilinx IP目錄,還可以訪問ARM合作伙伴的全球社區
    • 許多IP提供者都支持AXI協議
    • 提供了強大的第三方AXI工具供應商,可提供各種驗證,系統開發和性能表徵工具。 在開始開發基於AXI的高性能系統時,這些工具的可用性至關重要

AXI是如何工作的?

AXI規範描述了單個AXI主設備和單個AXI從設備之間的接口,代表了相互交換信息的IP核。 內存映射AXI主設備和從設備可以使用稱爲 AXI Interconnect (AXI互連IP)的結構連接在一起。 Xilinx的AXI互連IP包含符合AXI標準的主從接口,可用於在一個或多個AXI主設備和從設備之間路由事務。

AXI4和AXI4- lite接口都包含五個不同的通道:

  • 讀地址通道
  • 寫地址通道
  • 讀數據通道
  • 寫數據通道
  • 寫響應通道

數據可以同時在主設備和從設備之間雙向移動,數據傳輸大小可以變化。 AXI4的限制是最多256次數據傳輸的突發事件。 AXI4-Lite每次事件僅允許1次數據傳輸。

下圖展示了AXI4 讀事務 是如何使用 讀地址通道讀數據通道 的。

在這裏插入圖片描述
下圖展示了AXI4 寫事務 是如何使用 寫地址通道寫數據通道寫響應通道 的。

如上圖所示,AXI4爲讀寫提供單獨的數據和地址連接,允許同時進行雙向數據傳輸。 AXI4需要一個地址,然後突發(Burst)最多256個字的數據。 AXI4協議描述了多種選項,允許符合AXI4標準的系統實現非常高的數據吞吐量。 除了突發之外,這些功能中的一些還包括:數據升遷和縮小規模,多個未完成的地址以及無序事務處理。

在硬件層次,AXI4允許每個AXI主從對使用不同的時鐘。 此外,AXI協議允許插入寄存器片(通常稱爲流水線級)以幫助實現時序收斂

AXI4-Lite類似於AXI4,但有一些例外,其中最值得注意的是突發(burst)不受支持。

AXI4-Stream協議定義了用於傳輸流數據的單個信道, AXI4-Stream通道建模在AXI4的寫數據通道之後。 與AXI4不同,AXI4-Stream接口可以突發無限量的數據。 AMBA4 AXI4-Stream Protocol v1.0 specification[2]中描述了其他可選功能。 該規範描述瞭如何分割,合併,交錯,擴展和縮小AXI4-Stream兼容接口。 與AXI4不同,AXI4-Stream傳輸無法重新排序。

內存映射協議

在內存映射的AXI(AXI3、AXI4和AXI4-Lite)中,所有事務都涉及系統存儲空間中的目標地址和要傳輸的數據的概念。

內存映射系統通常提供更加均勻的方式來查看系統,因爲IP圍繞定義的內存映射運行。

AXI4-Stream協議

AXI4-Stream協議用於通常專注於以數據爲中心和數據流範例的應用程序,其不存在或不需要地址的概念。 每個AXI4-Stream充當握手數據流的單個單向通道。

在這種較低的操作級別(與存儲器映射的AXI協議類型相比),在IP之間移動數據的機制是定義且有效的,但IP之間沒有統一的地址內容。 AXI4-Stream IP可以針對數據流應用中的性能進行更好的優化,同時在針對給定的應用空間中也表現得更專業化。

Infrastructure IP

Infrastructure IP是用於構建系統的另一種IP形式。 Infrastructure IP往往是使用通用AXI4接口在系統周圍移動或轉換數據的通用IP,而不會解釋數據。

Infrastructure IP的例子如下:

  • 寄存器切片(用於pipeline)
  • AXI FIFOs(用於緩衝/時鐘轉換)
  • AXI互連IP(將內存映射IP連接在一起)
  • AXI直接內存訪問(Direct Memory Access,DMA)引擎(內存映射到流的轉換)

這些IP對於將多個IP連接到一個系統很有用,但通常不是數據的端點。

結合AXI4-String和內存映射協議

另一種方法是構建將AXI4-Stream和AXI內存映射IP組合在一起的系統。 通常,DMA引擎可用於將流移入和移出內存。 例如,處理器可以與DMA引擎一起工作以解碼分組或在流數據之上實現協議棧以構建更復雜的系統,其中數據在不同的應用空間或不同的IP之間移動。

IP互操作性

AXI規範提供了一個框架,該框架定義了使用定義的信令標準在IP之間移動數據的協議。 該標準確保IP可以相互交換數據,並且數據可以在系統中移動。

AXI IP互操作性影響:

  • IP應用程序空間
  • IP如何解釋數據
  • 使用哪種AXI接口協議(AXI4,AXI4-Lite或AXI4-Stream)

AXI協議定義了數據的交換,傳輸和轉換方式。 AXI協議還確保了傳輸數據的高效,靈活和可預測。

數據解釋:AXI協議沒有規定或強制執行數據解釋; 因此,必須理解數據內容,並且不同的IP必須對數據有兼容的解釋。對於IP,例如具有AXI4存儲器映射接口的通用處理器,如何對處理器進行編程以根據端點IP的要求對數據進行格式化和解釋具有很大的靈活性。

數據兼容性:對於更多專用IP,如以太網MAC(EMAC)或使用AXI4-Stream的視頻顯示IP,IP的兼容性更受限於各自的應用空間。 例如,將以太網MAC直接連接到視頻顯示IP是不可行的。

未完待續…

參考文獻

[1]: AXI Reference Guide
[2]: AMBA4 AXI4-Stream Protocol v1.0


原創性聲明:本文屬於作者原創性文章,小弟碼字辛苦,轉載還請註明出處。謝謝~

如果有哪些地方表述的不夠得體和清晰,有存在的任何問題,亦或者程序存在任何考慮不周和漏洞,歡迎評論和指正,謝謝各路大佬。

需要代碼和有需要相關技術支持的可諮詢QQ:297461921

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章