AXI總線簡介


0.緒論

AXI是高級擴展接口,在AMBA3.0中提出,AMBA4.0將其修改升級為AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream

AXI4.0-lite是AXI的簡化版本,ACE4.0 是AXI緩存一致性擴展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA進行以數據為主導的大量數據的傳輸應用。

1.簡介

1.1 關於AXI協議

AMBA AXI協議支持支持高性能、高頻率系統設計。

  • 適合高帶寬低延時設計
  • 無需復雜的橋就能實現高頻操作
  • 能滿足大部分器件的接口要求
  • 適合高初始延時的存儲控制器
  • 提供互聯架構的靈活性與獨立性
  • 向下兼容已有的AHB和APB接口

關鍵特點:

  • 分離的地址/控制、數據相位
  • 使用字節線來支持非對齊的數據傳輸
  • 使用基於burst的傳輸,只需傳輸首地址
  • 分離的讀、寫數據通道,能提供低功耗DMA
  • 支持多種尋址方式
  • 支持亂序傳輸
  • 允許容易的添加寄存器級來進行時序收斂

1.2 AXI架構

AXI協議是基於burst的傳輸,並且定義了以下5個獨立的傳輸通道:讀地址通道、讀數據通道、寫地址通道、寫數據通道、寫響應通道。

地址通道攜帶控制消息用於描述被傳輸的數據屬性,數據傳輸使用寫通道來實現“主”到“從”的傳輸,“從”使用寫響應通道來完成一次寫傳輸;讀通道用來實現數據從“從”到“主”的傳輸。

 

 

圖 1-1 讀架構

圖 1-2 寫架構

AXI是基於VALID/READY的握手機制數據傳輸協議,傳輸源端使用VALID表明地址/控制信號、數據是有效的,目的端使用READY表明自己能夠接受信息。

讀/寫地址通道:讀、寫傳輸每個都有自己的地址通道,對應的地址通道承載着對應傳輸的地址控制信息。

讀數據通道:讀數據通道承載着讀數據和讀響應信號包括數據總線(8/16/32/64/128/256/512/1024bit)和指示讀傳輸完成的讀響應信號。

寫數據通道:寫數據通道的數據信息被認為是緩沖(buffered)了的,“主”無需等待“從”對上次寫傳輸的確認即可發起一次新的寫傳輸。寫通道包括數據總線(8/16...1024bit)和字節線(用於指示8bit 數據信號的有效性)。

寫響應通道:“從”使用寫響應通道對寫傳輸進行響應。所有的寫傳輸需要寫響應通道的完成信號。

圖 1-3 接口與互聯

AXI協議提供單一的接口定義,能用在下述三種接口之間:master/interconnect、slave/interconnect、master/slave。

可以使用以下幾種典型的系統拓撲架構:

  • 共享地址與數據總線
  • 共享地址總線,多數據總線
  • multilayer多層,多地址總線,多數據總線

在大多數系統中,地址通道的帶寬要求沒有數據通道高,因此可以使用共享地址總線,多數據總線結構來對系統性能和互聯復雜度進行平衡。

寄存器片(Register Slices):

每個AXI通道使用單一方向傳輸信息,並且各個通道直接沒有任何固定關系。因此可以可以在任何通道任何點插入寄存器片,當然這會導致額外的周期延遲。

使用寄存器片可以實現周期延遲(cycles of latency)和最大操作頻率的折中;使用寄存器片可以分割低速外設的長路徑。

2.信號描述

表 2-1 全局信號

信號名 描述
ACLK   時鍾源   全局時鍾信號
ARESETn   復位源 全局復位信號,低有效

表 2-2 寫地址通道信號

信號名     源     描述      
AWID 主機 寫地址ID,用來標志一組寫信號
AWADDR 主機 寫地址,給出一次寫突發傳輸的寫地址
AWLEN 主機 突發長度,給出突發傳輸的次數
AWSIZE 主機 突發大小,給出每次突發傳輸的字節數
AWBURST 主機 突發類型
AWLOCK 主機 總線鎖信號,可提供操作的原子性
AWCACHE 主機 內存類型,表明一次傳輸是怎樣通過系統的
AWPROT 主機 保護類型,表明一次傳輸的特權級及安全等級
AWQOS 主機 質量服務QoS
AWREGION 主機 區域標志,能實現單一物理接口對應的多個邏輯接口
AWUSER 主機 用戶自定義信號
AWVALID 主機 有效信號,表明此通道的地址控制信號有效
AWREADY 從機 表明“從”可以接收地址和對應的控制信號

表 2-3 寫數據通道信號

信號名     源     描述      
WID 主機 一次寫傳輸的ID tag
WDATA 主機 寫數據
WSTRB 主機 寫數據有效的字節線,用來表明哪8bits數據是有效的
WLAST 主機 表明此次傳輸是最后一個突發傳輸
WUSER 主機 用戶自定義信號
WVALID 主機 寫有效,表明此次寫有效
WREADY 從機 表明從機可以接收寫數據

表 2-4 寫響應通道信號

信號名     源     描述      
BID 從機 寫響應ID tag
BRESP 從機 寫響應,表明寫傳輸的狀態
BUSER 從機 用戶自定義
BVALID 從機 寫響應有效
BREADY 主機 表明主機能夠接收寫響應

表 2-5 讀地址通道信號

信號名     源     描述      
ARID 主機 讀地址ID,用來標志一組寫信號
ARADDR 主機 讀地址,給出一次寫突發傳輸的讀地址
ARLEN 主機 突發長度,給出突發傳輸的次數
ARSIZE 主機 突發大小,給出每次突發傳輸的字節數
ARBURST 主機 突發類型
ARLOCK 主機 總線鎖信號,可提供操作的原子性
ARCACHE 主機 內存類型,表明一次傳輸是怎樣通過系統的
ARPROT 主機 保護類型,表明一次傳輸的特權級及安全等級
ARQOS 主機 質量服務QoS
ARREGION 主機 區域標志,能實現單一物理接口對應的多個邏輯接口
ARUSER 主機 用戶自定義信號
ARVALID 主機 有效信號,表明此通道的地址控制信號有效
ARREADY 從機 表明“從”可以接收地址和對應的控制信號

 表 2-6 讀數據通道信號

信號名     源     描述      
RID 從機 讀ID tag
RDATA 從機 讀數據
RRESP 從機 讀響應,表明讀傳輸的狀態
RLAST 從機 表明讀突發的最后一次傳輸
RUSER 從機 用戶自定義
RVALID 從機 表明此通道信號有效
RREADY 主機 表明主機能夠接收讀數據和響應信息

表 2-7 低功耗接口信號

信號名     源     描述    
CSYSREQ 時鍾控制器 系統退出低功耗請求,此信號從“時鍾控制器”到“外設”
CSYSACK 外設 退出低功耗狀態確認
CACTIVE 外設 外設請求時鍾有效

3.信號接口要求

3.1時鍾復位

時鍾

每個AXI組件使用一個時鍾信號ACLK,所有輸入信號在ACLK上升沿采樣,所有輸出信號必須在ACLK上升沿后發生。

復位

AXI使用一個低電平有效的復位信號ARESETn,復位信號可以異步斷言,但必須和時鍾上升沿同步去斷言。

復位期間對接口有如下要求:①主機接口必須驅動ARVALID,AWVALID,WVALID為低電平;②從機接口必須驅動RVALID,BVALID為低電平;③所有其他信號可以被驅動到任意值。

在復位后,主機可以在時鍾上升沿驅動ARVALID,AWVALID,WVALID為高電平。

3.2基本讀寫傳輸

握手過程

5個傳輸通道均使用VALID/READY信號對傳輸過程的地址、數據、控制信號進行握手。使用雙向握手機制,傳輸僅僅發生在VALID、READY同時有效的時候。下圖是幾種握手機制:

圖 3-1 VALID before READY 握手

圖 3-2 READY before VALID 握手

圖 3-3 VALID with READY 握手

通道信號要求

通道握手信號:每個通道有自己的xVALID/xREADY握手信號對。

寫地址通道:當主機驅動有效的地址和控制信號時,主機可以斷言AWVALID,一旦斷言,需要保持AWVALID的斷言狀態,直到時鍾上升沿采樣到從機的AWREADY。AWREADY默認值可高可低,推薦為高(如果為低,一次傳輸至少需要兩個周期,一個用來斷言AWVALID,一個用來斷言AWREADY);當AWREADY為高時,從機必須能夠接受提供給它的有效地址。

寫數據通道:在寫突發傳輸過程中,主機只能在它提供有效的寫數據時斷言WVALID,一旦斷言,需要保持斷言狀態,知道時鍾上升沿采樣到從機的WREADY。WREADY默認值可以為高,這要求從機總能夠在單個周期內接受寫數據。主機在驅動最后一次寫突發傳輸是需要斷言WLAST信號。

寫響應通道:從機只能它在驅動有效的寫響應時斷言BVALID,一旦斷言需要保持,直到時鍾上升沿采樣到主機的BREADY信號。當主機總能在一個周期內接受寫響應信號時,可以將BREADY的默認值設為高。

讀地址通道:當主機驅動有效的地址和控制信號時,主機可以斷言ARVALID,一旦斷言,需要保持ARVALID的斷言狀態,直到時鍾上升沿采樣到從機的ARREADY。ARREADY默認值可高可低,推薦為高(如果為低,一次傳輸至少需要兩個周期,一個用來斷言ARVALID,一個用來斷言ARREADY);當ARREADY為高時,從機必須能夠接受提供給它的有效地址。

讀數據通道:只有當從機驅動有效的讀數據時從機才可以斷言RVALID,一旦斷言需要保持直到時鍾上升沿采樣到主機的BREADY。BREADY默認值可以為高,此時需要主機任何時候一旦開始讀傳輸就能立馬接受讀數據。當最后一次突發讀傳輸時,從機需要斷言RLAST。

通道間關系

AXI協議要求通道間滿足如下關系:

  • 寫響應必須跟隨最后一次burst的的寫傳輸
  • 讀數據必須跟隨數據對應的地址
  • 通道握手信號需要確認一些依耐關系

通道握手信號的依耐關系

為防止死鎖,通道握手信號需要遵循一定的依耐關系。①VALID信號不能依耐READY信號。②AXI接口可以等到檢測到VALID才斷言對應的READY,也可以檢測到VALID之前就斷言READY。下面有幾個圖表明依耐關系,單箭頭指向的信號能在箭頭起點信號之前或之后斷言;雙箭頭指向的信號必須在箭頭起點信號斷言之后斷言。

圖 3-4 讀傳輸握手依耐關系

圖 3-5 寫傳輸握手依耐關系

圖 3-6 從機寫響應握手依耐關系

3.3傳輸結構

地址結構

AXI協議是基於burst的,主機只給出突發傳輸的第一個字節的地址,從機必須計算突發傳輸后續的地址。突發傳輸不能跨4KB邊界(防止突發跨越兩個從機的邊界,也限制了從機所需支持的地址自增數)。

1)突發長度

ARLEN[7:0]決定讀傳輸的突發長度,AWLEN[7:0]決定寫傳輸的突發長度。AXI3只支持1~16次的突發傳輸(Burst_length=AxLEN[3:0]+1),AXI4擴展突發長度支持INCR突發類型為1~256次傳輸,對於其他的傳輸類型依然保持1~16次突發傳輸(Burst_Length=AxLEN[7:0]+1)。

burst傳輸具有如下規則:

  • wraping burst ,burst長度必須是2,4,8,16
  • burst不能跨4KB邊界
  • 不支持提前終止burst傳輸

所有的組件都不能提前終止一次突發傳輸。然而,主機可以通過解斷言所有的寫的strobes來使非所有的寫字節來減少寫傳輸的數量。讀burst中,主機可以忽略后續的讀數據來減少讀個數。也就是說,不管怎樣,都必須完成所有的burst傳輸。

注:對於FIFO,忽略后續讀數據可能導致數據丟失,必須保證突發傳輸長度和要求的數據傳輸大小匹配。

突發大小

ARSIZE[2:0],讀突發傳輸;AWSIZE[2:0],寫突發傳輸。

AxSIZE[2:0]    bytes in transfer

'b000      1

'b001      2

'b010      4

'b011      8

'b100      16

'b101      32

'b110      64

'b111      128

突發類型

FIXED:突發傳輸過程中地址固定,用於FIFO訪問

INCR:增量突發,傳輸過程中,地址遞增。增加量取決AxSIZE的值。

WRAP:回環突發,和增量突發類似,但會在特定高地址的邊界處回到低地址處。回環突發的長度只能是2,4,8,16次傳輸,傳輸首地址和每次傳輸的大小對齊。最低的地址整個傳輸的數據大小對齊。回環邊界等於(AxSIZE*AxLEN)。

AxBURST[1:0]    burst type

'b00          FIXED

'b01          INCR

'b10          WRAP

'b11          Reserved

Start_Address=AxADDR

Number_Bytes=2^AxSIZE

Burst_Length=AxLEN+1

Aligned_Addr=(INT(Start_Address/Number_Bytes))xNumber_Bytes。//INT表示向下取整。

對於INCR突發和WRAP突發但沒有到達回環邊界,地址由下述方程決定:

Address_N=Aligned_Address+(N-1)xNumber_Bytes

WRAP突發,突發邊界:

Wrap_Boundary=(INT(Start_Address/(Number_Bytes x Burst_Length)))x(Number_Bytes x Burst_Length)

 

數據讀寫結構

WSTRB[n:0]對應於對應的寫字節,WSTRB[n]對應WDATA[8n+7:8n]。WVALID為低時,WSTRB可以為任意值,WVALID為高時,WSTRB為高的字節線必須指示有效的數據。

窄傳輸

當主機產生比它數據總線要窄的傳輸時,由地址和控制信號決定哪個字節被傳輸:

INCR和WRAP,不同的字節線決定每次burst傳輸的數據,FIXED,每次傳輸使用相同的字節線。

下圖給出了5次突發傳輸,起始地址為0,每次傳輸為8bit,數據總線為32bit,突發類型為INCR。

圖 3-7 窄傳輸示例1

下圖給出3次突發,起始地址為4,每次傳輸32bit,數據總線為64bit。

圖 3-8 窄傳輸示例2

非對齊傳輸

AXI支持非對齊傳輸。在大於一個字節的傳輸中,第一個自己的傳輸可能是非對齊的。如32-bit數據包起始地址在0x1002,非32bit對齊。

主機可以①使用低位地址線來表示非對齊的起始地址;②提供對齊的起始地址,使用字節線來表示非對齊的起始地址。

圖 3-9 對齊非對齊傳輸示例1-32bit總線

圖 3-10 對齊非對齊傳輸示例2-64bit總線

圖 3-11 對齊的回環傳輸示例

讀寫響應結構

讀傳輸的響應信息是附加在讀數據通道上的,寫傳輸的響應在寫響應通道。

RRESP[1:0],讀傳輸

BRESP[1:0],寫傳輸

OKAY('b00):正常訪問成功

EXOKAY('b01):Exclusive 訪問成功

SLVERR('b10):從機錯誤。表明訪問已經成功到了從機,但從機希望返回一個錯誤的情況給主機。

DECERR('b11):譯碼錯誤。一般由互聯組件給出,表明沒有對應的從機地址。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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