接口與協議學習筆記-AMBA片上通訊協議_APB_AHB_AXI_AXI4不一樣版本(二)

                隨着深亞微米工藝技術日益成熟,集成電路芯片的規模愈來愈大。數字IC從基於時序驅動的設計方法,發展到基於IP複用的設計方法,並在SOC設計中獲得了普遍應用。在基於IP複用的SoC設計中,片上總線設計是最關鍵的問題。爲此,業界出現了不少片上總線標準。其中,由ARM公司推出的AMBA片上總線受到了廣大IP開發商和SoC系統集成者的青睞,已成爲一種流行的工業標準片上結構。算法

AMBA協議的演進api

  • AMBA 1只有ASB和APB協議;
  • AMBA 2引入AHB協議用於高速數據傳輸;
  • AMBA 3,爲適應高吞吐量傳輸和調試引入AXI和ATB,增長高級可擴展接口,而AHB協議縮減爲AHB-lite,APB協議增長了PREADY和PSLVERR,ASB因爲設計複雜而再也不使用;
  • AMBA 4,AXI獲得了加強,引入QOS和long burst的支持,根據應用不一樣可選AXI4,AXI4-lite,AXI4-stream,同時爲知足複雜SOC的操做一致性引入ACE和ACE-lite協議,APB和ATB也同時獲得加強,好比APB加入了PPROT和PSTRB,另外爲改善總線數據傳輸引入QVN協議;
  • 適應更加複雜的高速NOC設計,引入環形總線協議,推出的AMBA CHI協議。

 

V1.0 ASB、APB是第一代AMBA協議的一部分。主要應用在低帶寬的外設上,如UART、 I2C,它的架構不像AHB總線是多主設備的架構,APB總線的惟一主設備是APB橋(與AXI或APB相連),所以不須要仲裁一些Request/grant信號。APB的協議也十分簡單,甚至不是流水的操做,固定兩個時鐘週期完成一次讀或寫的操做。其特性包括:兩個時鐘週期傳輸,無需等待週期和迴應信號,控制邏輯簡單,只有四個控制信號。傳輸可用以下狀態圖表示,緩存

  • 系統初始化爲IDLE狀態,此時沒有傳輸操做,也沒有選中任何從模塊。
  • 當有傳輸要進行時,PSELx=1,PENABLE=0,系統進入SETUP狀態,並只會在SETUP 狀態停留一個週期。當PCLK的下一個上升沿時到來時,系統進入ENABLE 狀態。
  • 系統進入ENABLE狀態時,維持以前在SETUP 狀態的PADDR、PSEL、PWRITE不變,並將PENABLE置爲1。傳輸也只會在ENABLE狀態維持一個週期,在通過SETUP與ENABLE狀態以後就已完成。以後若是沒有傳輸要進行,就進入IDLE狀態等待;若是有連續的傳輸,則進入SETUP狀態。

一、寫傳輸包括無等待狀態和有等待狀態安全

無等待狀態地址、寫入數據、寫入信號和選擇信號都在時鐘上升沿後改變。第一個時鐘週期叫作Setup phase。 下一個時鐘沿後使能信號PENABLE被置位,表示Access phase就位。地址、數據和控制信號在Access phase期間有效。傳輸在該週期後結束。使能信號PENABLE, 在傳輸結束後清空。 選擇信號PSELx一樣被置低,除非緊接着下一傳輸開始。有等待狀態右圖當PENABLE爲高,傳輸能夠經過拉低PREADY來擴展傳輸。架構

二、讀傳輸包括無等待狀態和有等待狀態app

 

無等待狀態從器件必須在讀傳輸結束前提供數據。有等待狀態在Access phase期間PREADY信號拉低,則傳輸被擴展。性能

三、傳輸失敗的例子spa

     使用PSLVERR來指示APB傳輸錯誤。當PSELPENABLE以及PREADY 都爲高時,PSLVERR纔在最後一個週期進行判斷。 當任何一個PSELPENABLE或者PREADY爲低時,你能夠將PSLVERR拉低,這是推薦,並非強制要求。 收到一個錯誤後,可能或不可能改變外圍器件的狀態。 APB外圍設備不要求必須支持PSLVERR引腳,當不使用該引腳時,應被置低。設計

 

左圖爲寫傳輸失敗最後一個傳輸週期,PSLVERR信號拉高,右圖爲讀傳輸失敗,沒有讀出數據。3d

       AXI橋接到APB: AXI的RRESP/BRESP = APB的SLVERR(read: PSLVERR -> RRESP[1], write: PSLVERR -> BRESP[1])

      AHB橋接到APBPSLVERR被映射到HRESP = ERROR(PSLVERR -> HRESP[0])


 

 

V2.0 AHB是第二代AMBA協議最重要的一部分。AHB總線規範是AMBA總線規範的一部分,AMBA總線規範是ARM公司提出的總線規範,被大多數SoC設計採用,它規定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用於高性能、高時鐘頻率的系統結構,典型的應用如ARM核與系統內部的高速RAM、NAND FLASH、DMA、Bridge的鏈接。APB用於鏈接外部設備,對性能要求不高,而考慮低功耗問題。ASB是AHB的一種替代方案。

  • 相比於APB,區分了地址週期和數據週期。

AHB總線強大之處在於它能夠將微控制器(CPU)、高帶寬的片上RAM、高帶寬的外部存儲器接口、DMA總線控制器,以及各類AHB接口的控制器等鏈接起來構成一個獨立的完整SOC系統,還能夠經過AHB-APB橋來鏈接APB總線系統。

AHB總線由主設備Master、從設備Slave,內部包括仲裁器,譯碼器,數據多路和地址控制多路組成。 

  • 主設備發起一次讀/寫操做,某一時刻只容許一個主設備使用總線。
  • 從設備響應一次讀/寫操做,經過地址映射選擇使用哪個從設備。
  • 仲裁器容許某一個主設備控制總線
  • 譯碼器經過地址譯碼決定選擇哪個從設備

仲裁機制   仲裁機制保證了任意時刻只有一個master能夠接入總線。arbiter決定哪一個發出接入請求的master能夠接入總線,這經過優先級算法實現。AHB規範並無給出優先級算法,設計者須要根據具體的系統要求定義。通常狀況下arbiter不會中斷一個burst傳輸,將總線接入權讓給其餘master。固然未定義長度的burst傳輸是能夠打斷的,這要看優先級算法是如何規定的。若是一筆burst被打斷,master再度得到接入權限時,會傳遞剩餘的部分。如一筆長度爲INCR8的傳輸在傳遞3 beat後被打斷,master再次得到接入受權後,會繼續傳輸剩餘的5 beat,剩餘部分能夠由一個SINGLE和一個INCR4組成,或者一個INCR。

地址譯碼器   地址譯碼器用於爲總線上每一個slave提供選擇信號HSELx,選擇信號是經過組合邏輯對地址碼譯碼產生的。只有當前的數據傳輸完成後(HREADY爲高),slave纔會採樣地址和控制信號以及HSELx。在必定條件下可能會出現這樣的狀況:產生HSELx信號而HREADY爲低,在當前傳輸後slave會改變。每一個slave最小的地址空間爲1KB,全部的master的burst傳輸上限也是1KB,如此設計保證了不會出現地址越界問題。當一個設計不會用到全部的地址空間時,可能出現訪問到一個不存在的地址的狀況,這就須要增長一個附加的默認slave來爲上面的狀況提供一個響應。當SEQ或NONSEQ傳輸訪問到一個不存在的地址,默認slave應該提供ERROR響應;當IDLE或BUSY傳輸訪問到一個不存在的地址,默認slave會響應OKAY。地址譯碼器會帶有實現默認slave的功能。

 

 各個信號描述

Name Source To Description
HCLK clock source 各module 總線時鐘,上升沿採樣
HRESETn reset controller 各module 總線復位,低電平有效
HADDR[31:0] Master decoder
mux to slave
arbiter
32位系統地址總線
HTRANS[1:0] Master mux to slave 當前傳輸類型NONSEQ, SEQ, IDLE, BUSY
HWRITE Master mux to slave 1爲寫,0爲讀
HSIZE[2:0] Master mux to slave 每個transfer傳輸的數據大小,以字節爲單位,最高支持1024位
HBURST[2:0] Master mux to slave burst類型,支持四、八、16 burst,incrementing/wrapping
HPROT[3:0] Master mux to slave 保護控制信號,須要slave帶保護功能,通常不用
HWDATA[31:0] Master mux to slave 寫數據總線,Master到Slave
HRDATA[31:0] Slave mux to master 讀數據總線,Slave到Master
HREADY Slave mux to master
arbiter
高:Slave指出傳輸結束
低:Slave需延長傳輸週期
HRESP[1:0] Slave mux to master
arbiter
Slave發給Master的總線傳輸狀態OKAY, ERROR, RETRY, SPLIT
HSELx Decoder slave slave選擇信號

HRESP[1:0]  響應信號

       傳輸響應HRESP[1:0]
        00: OKAY
        01: ERROR
        10: RETRY
        傳輸未完成,請求主設備從新開始一個傳輸,arbiter會繼續使用一般的優先級
        11: SPLIT
        傳輸未完成,請求主設備分離一次傳輸,arbiter會調整優先級方案以便其餘請求總線的主設備能夠訪問總線

 

AHB仲裁信號

Name Source To Description
HBUSREQx Master arbiter master給仲裁器的請求得到總線使用權的請求信號,最多支持16個master
HLOCKx Master arbiter 若是一個master但願本身在傳輸期間不但願丟掉總線,則須要向仲裁器發送這個鎖定信號
HGRANTx arbiter master 受權信號,當前bus master x的優先級最高。當HREADY和HGRANTx同時爲高時,master獲取系統總線的權利
HMASTER [3:0] arbiter 具備split功能的slave 仲裁器爲每個master分配的ID,指出哪一個主設備正在進行傳輸,提供進行split的信息,用於地址控制多路選擇哪一個主設備接入總線。
HMASTLOCK arbiter 具備split功能的slave 表示當前的master正在執行Locked操做。這個信號和HMASTER有這相同的時序
HSPLITx[15:0] slave arbiter 從設備用這個信號告訴仲裁器哪一個主設備運行從新嘗試一次split傳輸,每一位對應一個主設備

總線操做過程

        有須要佔用總線的主設備向仲裁器發出請求,仲裁器受權給指定的總設備,任一時間週期只有一個主設備可使用總線,對其指定的從設備進行讀寫操做。

         得到受權的總線開始AHB傳輸,首先發出地址和控制信號,提供地址信息(HADDR)、傳輸方向、帶寬(HSIZE)和burst類型信號(HBURST)。總線統一規劃從設備的地址(HSELx),譯碼器根據地址和控制信號肯定某個從設備與主設備進行通訊。數據傳輸經過數據總線完成,不出現三態總線,AHB將讀寫總線分爲讀總線和寫總線。每次傳輸包括一個地址和控制週期,一個或多個數據週期。地址和控制週期不能擴展,從設備必須在一個週期內採樣地址信號,數據週期能夠經過HREADY信號擴展,這點與前面的APB的PREADY信號實現有等待信號傳輸同樣。HREADY爲低時給傳輸加入一個等待狀態以使從設備得到額外的時間提供或採樣數據,從設備經過響應信號HRESP反映傳輸狀態,AHB-APB橋鏈接APB總線系統時,PSLVERR被映射到HRESP = ERROR(PSLVERR -> HRESP[0])。

一、沒有等待狀態和有等待狀態的單次傳輸

  • 第一個週期的上升沿,主設備驅動地址和控制信號
  • 第二個週期的上升沿,從設備採樣地址和控制信號,並將HREADY拉高;
  • 若是是寫操做,主設備會在第二個週期的上升沿傳輸要寫入的數據,
  • 讀操做,從設備會在HREADY信號拉高後將讀取的數據寫入總線;
  • 第三個週期的上升沿,若是是寫操做,主設備獲取HREADY高信號,表面從設備接收成功;讀操做,主設備獲取HREADY高信號代表讀數據有效而且接收成功。
  • HREADY在數據有效期間必須始終爲高,而且延續到第三個週期的上升沿以後,確保主設備正確採樣。
  • 右圖可經過拉低HREADY信號擴展數據週期;寫操做時主設備須要在等待時間內保持寫數據不變。讀數據時,從設備不須要一開始給出數據,等待HREADY信號拉高時給出數據便可。

二、多個單次傳輸的流水線操做(pipeline)

 

    

  • 擴展數據週期的負效應是必須延長下一次傳輸的地址週期,A和C爲零等待傳輸,B數據加入了一個控制週期,C的地址週期也進行了擴展。
  • 第三個週期主設備發現有操做C須要執行,檢查到上一週期的HREADY爲高,就將地址和控制信號發送到總線上;同時此時第三個週期上升沿的HREADY信號爲低,插入等待狀態,B操做執行暫停。
  • 等待狀態時寫操做已經將數據B寫在數據總線上,讀操做卻不須要提早讀取數據B,等檢測到HREADY信號爲高時,讀取數據B到讀數據總線上。
  • 須要注意的是,總線上最多存在2個未處理完的傳輸,只有當總線上未完成的傳輸少於2個時,主設備才能發起新的操做。

3.相關傳輸   涉及信號傳輸類型HTRANS[1:0]、數據尺寸HSIZE[2:0]、Burst傳輸類型

 

HTRANS[1:0] 傳輸類型 Description
00 IDLE 主設備佔用總線,但沒進行傳輸
兩次burst傳輸中間主設備可發IDLE
此時就算slave被使能,也不會從總線上獲取任何的數據信號。若是此時salve被選中,那麼每個IDLE週期slave都要經過HRESP[1:0]返回一個OKAY響應
01 BUSY 主設備佔用總線,可是在burst傳輸過程當中尚未準備好進行下一次傳輸
一次burst傳輸中間主設備可發BUSY
這時slave不會從總線上收取數據而是等待,而且經過HRESP[1:0]返回一個OKAY響應。須要注意的是,這個transfer須要給出下一拍的地址和控制信號,儘管slave不會去採樣。
10 NONSEQ 代表一次單個數據的傳輸或者一次burst傳輸的第一個數據
地址和控制信號與上一次傳輸無關
11 SEQ burst傳輸接下來的數據
地址和上一次傳輸的地址是相關的,這時總線上的控制信號應當與以前的保持一致,地址視狀況遞增或者回環。
HSIZE[2:0](每個transfer傳輸的數據大小,以字節爲單位,最高支持1024位) Size Description
000 8 bits Byte
001 16 bits Halfword
010 32 bits Word
011 64 bits -
100 128 bits 4-word line
101 256 bits 8-word line
110 512 bits -
111 1024 bits -
HBURST[2:0]Burst傳輸類型 類型 Description
000 SINGLE Single transfer單個傳輸數據傳輸
001 INCR Incrementing burst of unspecified length 任意長度的數據傳輸
010 WRAP4 4-beat wrapping burst         打包4拍傳輸,四個地址是一個迴環範圍
011 INCR4 4-beat increment burst        4拍傳輸,地址是增長的
100 WRAP8 8-beat wrapping burst         打包8拍傳輸,八個地址是一個迴環範圍
101 INCR8 8-beat increment burst        8拍傳輸,地址是增長的
110 WRAP16 16-beat wrapping burst        打包16拍傳輸,十六個地址是一個迴環範圍
111 INCR16 16-beat increment burst       16拍傳輸,地址是增長的

四、打包4拍傳輸

  • HTRANS用來表示單次傳輸類型,SEQ的地址和上一次傳輸的地址是相關的
  • HADDR是一個4拍迴環地址,每一個地址之間相差4個字節,HSIZE表示單次傳輸數據大小爲「Word」爲4個字節,HBURST爲WRAP4。

五、無定長數據增量地址傳輸

  •  T1,master傳入地址和控制信號,由於是新的burst開始,transfer的類型是NONSEQ;
  • T2,因爲master不能在第二個週期裏處理第二拍,因此master使用BUSY transfer來爲本身延長一個週期的時間。注意,雖然是延長了一個週期,可是master須要給出第二個transfer的地址和控制信號;
  •  T3,slave採集到了master發來的BUSY,知道master須要等待一拍,因此slave會忽略這個BUSY transfer;
  • T3,master發起了第二個transfer,由於是同一個burst的第二個transfer,因此transfer的類型是SEQ;
  • T5,slave將HREADY信號拉低,告訴master須要等待一個週期
  •   T8時刻完成最後一個transfer。
  • 須要注意的 雖然slave會忽略掉BUSY transfer,可是master也須要給出下一拍的地址和控制信號。

六、增量4拍burst

  • 地址並非迴環地址,HBURST爲INCR4。

 


 

 V3.0  AXI(Advanced eXtensible Interface)是一種總協議,該協議是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0協議中最重要的部分。

  • 高性能、高帶寬、低延遲的片內總線
  • 地址/控制和數據相位是分離的,分離的讀寫數據通道。控制和數據通道分離,就能夠不等須要的操做完成,就發出下一個操做,流水線操做,數據吞吐量增長達到提速的做用。
  • 單向通道體系結構,使得片上信息流只是以單方向傳輸,減小了延時,更小的面積,更低的功耗,得到優異的性能。

   一、 AXI的五個通道    

      • 讀地址通道,包含ARVALID, ARADDR, ARREADY信號;
      • 寫地址通道,包含AWVALID,AWADDR, AWREADY信號;
      • 讀數據通道,包含RVALID, RDATA, RREADY, RRESP信號;
      • 寫數據通道,包含WVALID, WDATA,WSTRB, WREADY信號;
      • 寫應答通道,包含BVALID, BRESP, BREADY信號;
      • 系統通道,包含:ACLK,ARESETN信號;

      ACLK爲axi總線時鐘,ARESETN是axi總線復位信號,低電平有效;讀寫數據與讀寫地址類信號寬度都爲32bit;READYVALID是對應的通道握手信號;WSTRB信號爲1的bit對應WDATA有效數據字節,WSTRB寬度是32bit/8=4bit;BRESPRRESP分別爲寫回應信號,讀迴應信號,寬度都爲2bit,‘h0表明成功,其餘爲錯誤。

   二、握手機制

    

        每一個channel內的valid和ready之間沒有嚴格的前後順序,可是channel間的valid和ready信號有依賴關係。對於讀操做,spec要求讀data必須出如今讀addr以後,所以讀操做的兩個channel之間存在以下的依賴關係,即必須等到ARVALID的ARREADY同時爲High後,RVALID才能拉高。

        

      對於寫操做,addr和data兩個channel之間不存在依賴關係,可是隻能等最後一次transfer結束後,才能拉高BVALID。從下圖中看不出AWVLAID, AWREAY與BVALID之間的關係,可是,隱含條件是slave只有接收到addr和data後,才能作出響應,所以AWAVLID, AWREADY爲High,且最後一次transfer結束後才能拉高BVALID.

    三、讀操做

    

   順序爲主與從進行讀地址通道握手並傳輸地址內容,而後在讀數據通道握手並傳輸所讀內容以及讀取操做的迴應,時鐘上升沿有效。

    四、寫操做

  

順序爲主與從進行寫地址通道握手並傳輸地址內容,而後在寫數據通道握手並傳輸所讀內容,最後再寫回應通道握手,並傳輸寫回應數據,時鐘上升沿有效。

 

 


 

   AXI4 是第四代AMBA協議重要的一部分,AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-streamAXI4.0-lite是AXI的簡化版本,ACE4.0 是AXI緩存一致性擴展接口,AXI4.0-stream是ARM公司和Xilinx公司一塊兒提出,主要用在FPGA進行以數據爲主導的大量數據的傳輸應用。

  •      適合高帶寬低延時設計,無需複雜的橋就實現高頻操做,向下兼容已有的AHB和APB接口。
  • 分離地址/控制、數據相位
  • 分離的讀寫數據通道,提供低功耗DMA
  • 使用字節線支持非對齊的數據傳輸
  • 使用基於burst的傳輸,只需傳輸首地址
  • 支持多種傳輸方式,支持亂序傳輸
  • 容許容易的添加寄存器來進行時序收斂

AXI架構分爲5個獨立的傳輸通道,讀地址通道、讀數據通道、寫地址通道、寫數據通道、寫響應通道。基於VALID/READY的握手機制數據傳輸協議,傳輸源端使用VALID代表地址/控制信號、數據是有效的,目的端使用READY代表本身可以接受信息。數據總線可爲(8/16/32/64/128/256/512/1024bit),最大爲單次傳輸一個字節的數據。

.信號描述

  • 全局信號
信號名 描述
ACLK   時鐘源   全局時鐘信號
ARESETn   復位源 全局復位信號,低有效
  •  寫地址通道信號
信號名     源     描述      
AWID 主機 寫地址ID,用來標誌一組寫信號
AWADDR 主機 寫地址,給出一次寫突發傳輸的寫地址
AWLEN 主機 突發長度,給出突發傳輸的次數
AWSIZE 主機 突發大小,給出每次突發傳輸的字節數
AWBURST 主機 突發類型
AWLOCK 主機 總線鎖信號,可提供操做的原子性
AWCACHE 主機 內存類型,代表一次傳輸是怎樣經過系統的
AWPROT 主機 保護類型,代表一次傳輸的特權級及安全等級
AWQOS 主機 質量服務QoS
AWREGION 主機 區域標誌,能實現單一物理接口對應的多個邏輯接口
AWUSER 主機 用戶自定義信號
AWVALID 主機 有效信號,代表此通道的地址控制信號有效
AWREADY 從機 代表「從」能夠接收地址和對應的控制信號
  • 寫數據通道信號
信號名     源     描述      
WID 主機 一次寫傳輸的ID tag
WDATA 主機 寫數據
WSTRB 主機 寫數據有效的字節線,用來代表哪8bits數據是有效的
WLAST 主機 代表這次傳輸是最後一個突發傳輸
WUSER 主機 用戶自定義信號
WVALID 主機 寫有效,代表這次寫有效
WREADY 從機 代表從機能夠接收寫數據
  • 寫響應通道信號
信號名     源     描述      
BID 從機 寫響應ID tag
BRESP 從機 寫響應,代表寫傳輸的狀態
BUSER 從機 用戶自定義
BVALID 從機 寫響應有效
BREADY 主機 代表主機可以接收寫響應
  •  讀地址通道信號
信號名     源     描述      
ARID 主機 讀地址ID,用來標誌一組寫信號
ARADDR 主機 讀地址,給出一次寫突發傳輸的讀地址
ARLEN 主機 突發長度,給出突發傳輸的次數
ARSIZE 主機 突發大小,給出每次突發傳輸的字節數
ARBURST 主機 突發類型
ARLOCK 主機 總線鎖信號,可提供操做的原子性
ARCACHE 主機 內存類型,代表一次傳輸是怎樣經過系統的
ARPROT 主機 保護類型,代表一次傳輸的特權級及安全等級
ARQOS 主機 質量服務QoS
ARREGION 主機 區域標誌,能實現單一物理接口對應的多個邏輯接口
ARUSER 主機 用戶自定義信號
ARVALID 主機 有效信號,代表此通道的地址控制信號有效
ARREADY 從機 代表「從」能夠接收地址和對應的控制信號

  • 讀數據通道信號
信號名     源     描述      
RID 從機 讀ID tag
RDATA 從機 讀數據
RRESP 從機 讀響應,代表讀傳輸的狀態
RLAST 從機 代表讀突發的最後一次傳輸
RUSER 從機 用戶自定義
RVALID 從機 代表此通道信號有效
RREADY 主機 代表主機可以接收讀數據和響應信息
  • 低功耗接口信號

 

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

每一個數據通道有獨立的xVALID/xREADY握手信號對。

   VALID與READY信號做爲一對握手信號,爲防止死鎖,進行讀操做時,必須等讀地址通道握手完成,讀數據通道纔可進行下一步操做。進行寫操做時,寫地址通道與寫數據通道互相獨立,但一樣必須等最後一組數據寫完成寫響應通道握手完成。

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

  •  突發長度     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)。
    • 傳輸規則    wraping burst ,burst長度必須是2,4,8,16, burst不能跨4KB邊界,不支持提早終止burst傳輸。
    • 突發大小    

      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)

讀寫響應結構

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

RRESP[1:0],讀傳輸

BRESP[1:0],寫傳輸

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

EXOKAY(‘b01):Exclusive 訪問成功

SLVERR(‘b10):從機錯誤。代表訪問已經成功到了從機,但從機但願返回一個錯誤的狀況給主機。

DECERR(‘b11):譯碼錯誤。通常由互聯組件給出,代表沒有對應的從機地址。


 

幾種AMBA總線的性能對比分析

 

 

總線 AXI AHB APB
總線寬度 8, 16, 32, 64, 128, 256, 512, 1024 32, 64, 128, 256 8, 16, 32
地址寬度 32 32 32
通道特性 讀寫地址通道、讀寫數據通道均獨立 讀寫地址通道共用讀寫數據通道 讀寫地址通道共用讀寫數據通道
不支持讀寫並行操做
體系結構 多主/從設備
仲裁機制
多主/從設備
仲裁機制
單主設備(橋)/多從設備
無仲裁
數據協議 支持流水/分裂傳輸
支持猝發傳輸
支持亂序訪問
字節/半字/字
大小端對齊
非對齊操做
支持流水/分裂傳輸
支持猝發傳輸
支持亂序訪問
字節/半字/字
大小端對齊
不支持非對齊操做
一次讀/寫傳輸佔兩個時鐘週期
不支持突發傳輸
傳輸方式 支持讀寫並行操做 不支持讀寫並行操做 不支持讀寫並行操做
時序 同步 同步 同步
互聯 多路 多路 無定義
相關文章
相關標籤/搜索