在介紹AXI之前,先簡單說一下總線、接口以及協議的含義
總線、接口和協議,這三個詞常常被聯系在一起,但是我們心里要明白他們的區別。
總線是一組傳輸通道,是各種邏輯器件構成的傳輸數據的通道,一般由由數據線、地址線、控制線等構成。
接口是一種連接標準,又常常被稱之為物理接口。
協議是傳輸數據的規則。
1.簡介
AXI4總線協議是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0協議中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內總線。
AXI4總線協議規定的數據傳輸方式是猝發式的。它的地址/控制和數據相位是分離的,支持不對齊的數據傳輸。在突發傳輸中,使用首字節選通方式,只需要首地址,在獨立的讀寫數據通道,采用獨立的地址、控制和數據周期進行數據傳輸,支持非對齊方式的數據傳輸,能夠發出多個未解析的地址,從而完成無序的數據傳輸交易,并更加容易并行時序收斂。
AXI是AMBA 中一個新的高性能協議。AXI 技術豐富了現有的AMBA 標準內容,滿足超高性能和復雜的片上系統(SoC)設計的需求。
常用的AXI總線有:AXI4、 AXI_Lite、AXI_Stream。
AXI4:主要面向高性能地址映射通信的需求,允許最大256輪的數據突發傳輸;
AXI4-Lite:是一個輕量級的地址映射單次傳輸接口,占用很少的邏輯單元;
AXI4-Stream:面向高速流數據傳輸,去掉了地址項,允許無限制的數據突發傳輸規模。
AXI4總線分為主、從兩端,兩者間可以連續的進行通信。
2. AXI_Lite 協議
axi總線的6個通道
( 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)
3.AXI_Stream 協議
AXI4-Stream總線的組成有:
( 1) ACLK 信號:總線時鐘, 上升沿有效;
( 2) ARESETN 信號:總線復位, 低電平有效
( 3) TREADY 信號:從機告訴主機做好傳輸準備;
( 4) TDATA 信號:數據, 可選寬度32,64,128,256bit
( 5) TSTRB 信號:字節修飾符, 每一bit對應TDATA的一個有效字節, 寬度為TDATA/8,用來描述TDATA相關字節內容作為一個數字字節或者一個位置字節被處理。
( 6) TLAST 信號:主機告訴從機該次傳輸為突發傳輸的結尾;
( 7) TVALID 信號:主機告訴從機數據本次傳輸有效;
( 8) TUSER 信號 :用戶定義信號, 寬度為128bit。
4.其他
4.1 AXI架構
AXI協議是基于burst的傳輸,并且定義了5個獨立的傳輸通道:
讀地址通道、讀數據通道、寫地址通道、寫數據通道、寫響應通道。
地址通道攜帶控制消息用于描述被傳輸的數據屬性;
數據傳輸使用寫通道來實現“主”到“從”的傳輸;
“從”使用寫響應通道來完成一次寫傳輸;
讀通道用來實現數據從“從”到“主”的傳輸。
圖4-1 讀結構
圖4-2 寫架構
AXI是基于VALID/READY的握手機制數據傳輸協議,傳輸源端使用VALID表明地址/控制信號、數據是有效的,目的端使用READY表明自己能夠接受信息。
讀/寫地址通道:讀、寫傳輸每個都有自己的地址通道,對應的地址通道承載著對應傳輸的地址控制信息。
讀數據通道:讀數據通道承載著讀數據和讀響應信號包括數據總線(8/16/32/64/128/256/512/1024bit)和指示讀傳輸完成的讀響應信號。
寫數據通道:寫數據通道的數據信息被認為是緩沖(buffered)了的,“主”無需等待“從”對上次寫傳輸的確認即可發起一次新的寫傳輸。寫通道包括數據總線(8/16…1024bit)和字節線(用于指示8bit 數據信號的有效性)。
寫響應通道:“從”使用寫響應通道對寫傳輸進行響應。所有的寫傳輸需要寫響應通道的完成信號。
圖4-3 接口與互聯
AXI協議提供單一的接口定義,能用在下述三種接口之間:master/interconnect、slave/interconnect、master/slave。
可以使用以下幾種典型的系統拓撲架構:
共享地址與數據總線
共享地址總線,多數據總線
multilayer多層,多地址總線,多數據總線
在大多數系統中,地址通道的帶寬要求沒有數據通道高,因此可以使用共享地址總線,多數據總線結構來對系統性能和互聯復雜度進行平衡。
寄存器片(Register Slices):
每個AXI通道使用單一方向傳輸信息,并且各個通道直接沒有任何固定關系。因此可以可以在任何通道任何點插入寄存器片,當然這會導致額外的周期延遲。
使用寄存器片可以實現周期延遲(cycles of latency)和最大操作頻率的折中;使用寄存器片可以分割低速外設的長路徑。
4.2 信號描述
表 4-4 全局信號
表 4-5 寫地址通道信號
表 4-6 寫數據通道信號
表 4-7 寫響應通道信號
表 4-8 讀地址通道信號
表 4-9 讀數據通道信號
表 4-10 低功耗接口信號
4.3 信號接口要求
4.3.1時鐘復位
時鐘:
每個AXI組件使用一個時鐘信號ACLK,所有輸入信號在ACLK上升沿采樣,所有輸出信號必須在ACLK上升沿后發生。
復位:
AXI使用一個低電平有效的復位信號ARESETn,復位信號可以異步斷言,但必須和時鐘上升沿同步去斷言。
復位期間對接口有如下要求:①主機接口必須驅動ARVALID,AWVALID,WVALID為低電平;②從機接口必須驅動RVALID,BVALID為低電平;③所有其他信號可以被驅動到任意值。
在復位后,主機可以在時鐘上升沿驅動ARVALID,AWVALID,WVALID為高電平。
4.3.2基本讀寫傳輸
握手過程
5個傳輸通道均使用VALID/READY信號對傳輸過程的地址、數據、控制信號進行握手。使用雙向握手機制,傳輸僅僅發生在VALID、READY同時有效的時候。下圖是幾種握手機制:
圖 4-11 VALID before READY 握手
圖 4-12 READY before VALID 握手
圖 4-13 VALID with READY 握手
4.3.3 通道信號要求
通道握手信號:每個通道有自己的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。
4.3.4 通道間關系
AXI協議要求通道間滿足如下關系:
寫響應必須跟隨最后一次burst的的寫傳輸
讀數據必須跟隨數據對應的地址
通道握手信號需要確認一些依耐關系
通道握手信號的依耐關系
歡迎加入至芯科技FPGA微信學習交流群,這里有一群優秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點個在看你最好看
原文標題:AXI總線協議總結
文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
-
FPGA
+關注
關注
1626文章
21678瀏覽量
602034
原文標題:AXI總線協議總結
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論