0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AMBA協(xié)議的基礎(chǔ)知識(shí)介紹

OpenFPGA ? 來(lái)源:CSDN博客 ? 作者:CSDN博客 ? 2020-08-31 11:48 ? 次閱讀

在基于IP復(fù)用的SoC設(shè)計(jì)中,片上總線設(shè)計(jì)是最關(guān)鍵的問(wèn)題。為此,業(yè)界出現(xiàn)了很多片上總線標(biāo)準(zhǔn)。其中,由ARM公司推出的AMBA片上總線受到了廣大IP開(kāi)發(fā)商和SoC系統(tǒng)集成者的青睞,已成為一種流行的工業(yè)標(biāo)準(zhǔn)片上結(jié)構(gòu)。AMBA規(guī)范主要包括了AHB(Advanced High performance Bus)系統(tǒng)總線和APB(Advanced Peripheral Bus)外圍總線。 AMBA 2.0規(guī)范包括四個(gè)部分:AHB、ASB、APB、AXI和Test Methodology。AHB的相互連接采用了傳統(tǒng)的帶有主模塊和從模塊的共享總線,接口與互連功能分離,這對(duì)芯片上模塊之間的互連具有重要意義。AMBA已不僅是一種總線,更是一種帶有接口模塊的互連體系。

1.1.1AMBA協(xié)議的演進(jìn)

圖4?4 AMBA協(xié)議的演進(jìn) ·AMBA 1只有ASB和APB協(xié)議; ·AMBA 2引入AHB協(xié)議用于高速數(shù)據(jù)傳輸; ·AMBA 3,為適應(yīng)高吞吐量傳輸和調(diào)試引入AXI和ATB,增加高級(jí)可擴(kuò)展接口,而AHB協(xié)議縮減為AHB-lite,APB協(xié)議增加了PREADY和PSLVERR,ASB由于設(shè)計(jì)復(fù)雜而不再使用; ·AMBA 4,AXI得到了增強(qiáng),引入QOS和long burst的支持,根據(jù)應(yīng)用不同可選AXI4,AXI4-lite,AXI4-stream,同時(shí)為滿足復(fù)雜SOC的操作一致性引入ACE和ACE-lite協(xié)議,APB和ATB也同時(shí)得到增強(qiáng),比如APB加入了PPROT和PSTRB,另外為改善總線數(shù)據(jù)傳輸引入QVN協(xié)議; ·適應(yīng)更加復(fù)雜的高速NOC設(shè)計(jì),引入環(huán)形總線協(xié)議,推出的AMBA CHI協(xié)議。 V1.0 ASB、APB是第一代AMBA協(xié)議的一部分。主要應(yīng)用在低帶寬的外設(shè)上,如UARTI2C,它的架構(gòu)不像AHB總線是多主設(shè)備的架構(gòu),APB總線的唯一主設(shè)備是APB橋(與AXI或APB相連),因此不需要仲裁一些Request/grant信號(hào)。APB的協(xié)議也十分簡(jiǎn)單,甚至不是流水的操作,固定兩個(gè)時(shí)鐘周期完成一次讀或?qū)懙牟僮?。其特性包括:兩個(gè)時(shí)鐘周期傳輸,無(wú)需等待周期和回應(yīng)信號(hào),控制邏輯簡(jiǎn)單,只有四個(gè)控制信號(hào)。傳輸可用如下?tīng)顟B(tài)圖表示,

圖4?5 傳輸狀態(tài)圖 ·系統(tǒng)初始化為IDLE狀態(tài),此時(shí)沒(méi)有傳輸操作,也沒(méi)有選中任何從模塊。 ·當(dāng)有傳輸要進(jìn)行時(shí),PSELx=1,PENABLE=0,系統(tǒng)進(jìn)入SETUP狀態(tài),并只會(huì)在SETUP 狀態(tài)停留一個(gè)周期。當(dāng)PCLK的下一個(gè)上升沿時(shí)到來(lái)時(shí),系統(tǒng)進(jìn)入ENABLE 狀態(tài)。 ·系統(tǒng)進(jìn)入ENABLE狀態(tài)時(shí),維持之前在SETUP 狀態(tài)的PADDR、PSEL、PWRITE不變,并將PENABLE置為1。傳輸也只會(huì)在ENABLE狀態(tài)維持一個(gè)周期,在經(jīng)過(guò)SETUP與ENABLE狀態(tài)之后就已完成。之后如果沒(méi)有傳輸要進(jìn)行,就進(jìn)入IDLE狀態(tài)等待;如果有連續(xù)的傳輸,則進(jìn)入SETUP狀態(tài)。 V2.0 AHB是第二代AMBA協(xié)議最重要的一部分。AHB總線規(guī)范是AMBA總線規(guī)范的一部分,AMBA總線規(guī)范是ARM公司提出的總線規(guī)范,被大多數(shù)SoC設(shè)計(jì)采用,它規(guī)定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高時(shí)鐘頻率的系統(tǒng)結(jié)構(gòu),典型的應(yīng)用如ARM核與系統(tǒng)內(nèi)部的高速RAM、NAND FLASH、DMA、Bridge的連接。APB用于連接外部設(shè)備,對(duì)性能要求不高,而考慮低功耗問(wèn)題。ASB是AHB的一種替代方案。

圖4?6 相比于APB,區(qū)分了地址周期和數(shù)據(jù)周期 AHB總線強(qiáng)大之處在于它可以將微控制器CPU)、高帶寬的片上RAM、高帶寬的外部存儲(chǔ)器接口、DMA總線控制器,以及各種AHB接口的控制器等連接起來(lái)構(gòu)成一個(gè)獨(dú)立的完整SOC系統(tǒng),還可以通過(guò)AHB-APB橋來(lái)連接APB總線系統(tǒng)。

圖4?7 通過(guò)AHB-APB橋來(lái)連接APB總線系統(tǒng) AHB總線由主設(shè)備Master、從設(shè)備Slave,內(nèi)部包括仲裁器,譯碼器,數(shù)據(jù)多路和地址控制多路組成。 ·主設(shè)備發(fā)起一次讀/寫(xiě)操作,某一時(shí)刻只允許一個(gè)主設(shè)備使用總線。 ·從設(shè)備響應(yīng)一次讀/寫(xiě)操作,通過(guò)地址映射選擇使用哪一個(gè)從設(shè)備。 ·仲裁器允許某一個(gè)主設(shè)備控制總線 ·譯碼器通過(guò)地址譯碼決定選擇哪一個(gè)從設(shè)備 仲裁機(jī)制 仲裁機(jī)制保證了任意時(shí)刻只有一個(gè)master可以接入總線。arbiter決定哪個(gè)發(fā)出接入請(qǐng)求的master可以接入總線,這通過(guò)優(yōu)先級(jí)算法實(shí)現(xiàn)。AHB規(guī)范并沒(méi)有給出優(yōu)先級(jí)算法,設(shè)計(jì)者需要根據(jù)具體的系統(tǒng)要求定義。一般情況下arbiter不會(huì)中斷一個(gè)burst傳輸,將總線接入權(quán)讓給其他master。當(dāng)然未定義長(zhǎng)度的burst傳輸是可以打斷的,這要看優(yōu)先級(jí)算法是如何規(guī)定的。如果一筆burst被打斷,master再度獲得接入權(quán)限時(shí),會(huì)傳遞剩余的部分。如一筆長(zhǎng)度為INCR8的傳輸在傳遞3 beat后被打斷,master再次獲得接入授權(quán)后,會(huì)繼續(xù)傳輸剩余的5 beat,剩余部分可以由一個(gè)SINGLE和一個(gè)INCR4組成,或者一個(gè)INCR。 地址譯碼器 地址譯碼器用于為總線上每個(gè)slave提供選擇信號(hào)HSELx,選擇信號(hào)是通過(guò)組合邏輯對(duì)地址碼譯碼產(chǎn)生的。只有當(dāng)前的數(shù)據(jù)傳輸完成后(HREADY為高),slave才會(huì)采樣地址和控制信號(hào)以及HSELx。在一定條件下可能會(huì)出現(xiàn)這樣的情況:產(chǎn)生HSELx信號(hào)而HREADY為低,在當(dāng)前傳輸后slave會(huì)改變。每個(gè)slave最小的地址空間為1KB,所有的master的burst傳輸上限也是1KB,如此設(shè)計(jì)保證了不會(huì)出現(xiàn)地址越界問(wèn)題。當(dāng)一個(gè)設(shè)計(jì)不會(huì)用到所有的地址空間時(shí),可能出現(xiàn)訪問(wèn)到一個(gè)不存在的地址的情況,這就需要增加一個(gè)附加的默認(rèn)slave來(lái)為上面的情況提供一個(gè)響應(yīng)。當(dāng)SEQ或NONSEQ傳輸訪問(wèn)到一個(gè)不存在的地址,默認(rèn)slave應(yīng)該提供ERROR響應(yīng);當(dāng)IDLE或BUSY傳輸訪問(wèn)到一個(gè)不存在的地址,默認(rèn)slave會(huì)響應(yīng)OKAY。地址譯碼器會(huì)帶有實(shí)現(xiàn)默認(rèn)slave的功能。 表4?1 各個(gè)信號(hào)描述

Name Source To Description
HCLK clock source 各module 總線時(shí)鐘,上升沿采樣
HRESETn reset controller 各module 總線復(fù)位,低電平有效
HADDR[31:0] Master Decoder mux to slave arbiter 32位系統(tǒng)地址總線
HTRANS[1:0] Master mux to slave 當(dāng)前傳輸類型NONSEQ, SEQ, IDLE, BUSY
HWRITE Master mux to slave 1為寫(xiě),0為讀
HSIZE[2:0] Master mux to slave 每一個(gè)transfer傳輸?shù)臄?shù)據(jù)大小,以字節(jié)為單位,最高支持1024位
HBURST[2:0] Master mux to slave burst類型,支持4、8、16 burst,incrementing/wrapping
HPROT[3:0] Master mux to slave 保護(hù)控制信號(hào),需要slave帶保護(hù)功能,一般不用
HWDATA[31:0] Master mux to slave 寫(xiě)數(shù)據(jù)總線,Master到Slave
HRDATA[31:0] Slave mux to master 讀數(shù)據(jù)總線,Slave到Master
HREADY Slave mux to master
arbiter
高:Slave指出傳輸結(jié)束
低:Slave需延長(zhǎng)傳輸周期
HRESP[1:0] Slave mux to master
arbiter
Slave發(fā)給Master的總線傳輸狀態(tài)OKAY, ERROR, RETRY, SPLIT
HSELx Decoder slave slave選擇信號(hào)

HRESP[1:0] 響應(yīng)信號(hào) 傳輸響應(yīng)HRESP[1:0] 00: OKAY 01: ERROR 10: RETRY 傳輸未完成,請(qǐng)求主設(shè)備重新開(kāi)始一個(gè)傳輸,arbiter會(huì)繼續(xù)使用通常的優(yōu)先級(jí) 11: SPLIT 傳輸未完成,請(qǐng)求主設(shè)備分離一次傳輸,arbiter會(huì)調(diào)整優(yōu)先級(jí)方案以便其他請(qǐng)求總線的主設(shè)備可以訪問(wèn)總線 表4?2 AHB仲裁信號(hào)

Name Source To Description
HBUSREQx Master arbiter master給仲裁器的請(qǐng)求獲得總線使用權(quán)的請(qǐng)求信號(hào),最多支持16個(gè)master
HLOCKx Master arbiter 如果一個(gè)master希望自己在傳輸期間不希望丟掉總線,則需要向仲裁器發(fā)送這個(gè)鎖定信號(hào)
HGRANTx arbiter master 授權(quán)信號(hào),當(dāng)前bus master x的優(yōu)先級(jí)最高。當(dāng)HREADY和HGRANTx同時(shí)為高時(shí),master獲取系統(tǒng)總線的權(quán)利
HMASTER [3:0] arbiter 具有split功能的slave 仲裁器為每一個(gè)master分配的ID,指出哪個(gè)主設(shè)備正在進(jìn)行傳輸,提供進(jìn)行split的信息,用于地址控制多路選擇哪個(gè)主設(shè)備接入總線。
HMASTLOCK arbiter 具有split功能的slave 表示當(dāng)前的master正在執(zhí)行Locked操作。這個(gè)信號(hào)和HMASTER有這相同的時(shí)序
HSPLITx[15:0] slave arbiter 從設(shè)備用這個(gè)信號(hào)告訴仲裁器哪個(gè)主設(shè)備運(yùn)行重新嘗試一次split傳輸,每一位對(duì)應(yīng)一個(gè)主設(shè)備

V3.0 AXI(Advanced eXtensible Interface)是一種總協(xié)議,該協(xié)議是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0協(xié)議中最重要的部分。 ·高性能、高帶寬、低延遲的片內(nèi)總線 ·地址/控制和數(shù)據(jù)相位是分離的,分離的讀寫(xiě)數(shù)據(jù)通道。控制和數(shù)據(jù)通道分離,就可以不等需要的操作完成,就發(fā)出下一個(gè)操作,流水線操作,數(shù)據(jù)吞吐量增加達(dá)到提速的作用。 ·單向通道體系結(jié)構(gòu),使得片上信息流只是以單方向傳輸,減少了延時(shí),更小的面積,更低的功耗,獲得優(yōu)異的性能。 AXI4 是第四代AMBA協(xié)議重要的一部分,AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-streamAXI4.0-lite是AXI的簡(jiǎn)化版本,ACE4.0 是AXI緩存一致性擴(kuò)展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA進(jìn)行以數(shù)據(jù)為主導(dǎo)的大量數(shù)據(jù)的傳輸應(yīng)用。 · 適合高帶寬低延時(shí)設(shè)計(jì),無(wú)需復(fù)雜的橋就實(shí)現(xiàn)高頻操作,向下兼容已有的AHB和APB接口。 ·分離地址/控制、數(shù)據(jù)相位 ·分離的讀寫(xiě)數(shù)據(jù)通道,提供低功耗DMA ·使用字節(jié)線支持非對(duì)齊的數(shù)據(jù)傳輸 ·使用基于burst的傳輸,只需傳輸首地址 ·支持多種傳輸方式,支持亂序傳輸 ·允許容易的添加寄存器來(lái)進(jìn)行時(shí)序收斂 AXI架構(gòu)分為5個(gè)獨(dú)立的傳輸通道,讀地址通道、讀數(shù)據(jù)通道、寫(xiě)地址通道、寫(xiě)數(shù)據(jù)通道、寫(xiě)響應(yīng)通道。基于VALID/READY的握手機(jī)制數(shù)據(jù)傳輸協(xié)議,傳輸源端使用VALID表明地址/控制信號(hào)、數(shù)據(jù)是有效的,目的端使用READY表明自己能夠接受信息。數(shù)據(jù)總線可為(8/16/32/64/128/256/512/1024bit),最大為單次傳輸一個(gè)字節(jié)的數(shù)據(jù)。 信號(hào)描述 表4?3 全局信號(hào)

信號(hào)名 描述
ACLK 時(shí)鐘源 全局時(shí)鐘信號(hào)
ARESETn 復(fù)位源 全局復(fù)位信號(hào),低有效

表4?4 寫(xiě)地址通道信號(hào)

信號(hào)名 描述
AWID 主機(jī) 寫(xiě)地址ID,用來(lái)標(biāo)志一組寫(xiě)信號(hào)
AWADDR 主機(jī) 寫(xiě)地址,給出一次寫(xiě)突發(fā)傳輸?shù)膶?xiě)地址
AWLEN 主機(jī) 突發(fā)長(zhǎng)度,給出突發(fā)傳輸?shù)拇螖?shù)
AWSIZE 主機(jī) 突發(fā)大小,給出每次突發(fā)傳輸?shù)淖止?jié)數(shù)
AWBURST 主機(jī) 突發(fā)類型
AWLOCK 主機(jī) 總線鎖信號(hào),可提供操作的原子性
AWCACHE 主機(jī) 內(nèi)存類型,表明一次傳輸是怎樣通過(guò)系統(tǒng)的
AWPROT 主機(jī) 保護(hù)類型,表明一次傳輸?shù)奶貦?quán)級(jí)及安全等級(jí)
AWQOS 主機(jī) 質(zhì)量服務(wù)QoS
AWREGION 主機(jī) 區(qū)域標(biāo)志,能實(shí)現(xiàn)單一物理接口對(duì)應(yīng)的多個(gè)邏輯接口
AWUSER 主機(jī) 用戶自定義信號(hào)
AWVALID 主機(jī) 有效信號(hào),表明此通道的地址控制信號(hào)有效
AWREADY 從機(jī) 表明“從”可以接收地址和對(duì)應(yīng)的控制信號(hào)

表4?5 寫(xiě)數(shù)據(jù)通道信號(hào)

信號(hào)名 描述
WID 主機(jī) 一次寫(xiě)傳輸?shù)腎D tag
WDATA 主機(jī) 寫(xiě)數(shù)據(jù)
WSTRB 主機(jī) 寫(xiě)數(shù)據(jù)有效的字節(jié)線,用來(lái)表明哪8bits數(shù)據(jù)是有效的
WLAST 主機(jī) 表明此次傳輸是最后一個(gè)突發(fā)傳輸
WUSER 主機(jī) 用戶自定義信號(hào)
WVALID 主機(jī) 寫(xiě)有效,表明此次寫(xiě)有效
WREADY 從機(jī) 表明從機(jī)可以接收寫(xiě)數(shù)據(jù)

表4?6 寫(xiě)響應(yīng)通道信號(hào)

信號(hào)名 描述
BID 從機(jī) 寫(xiě)響應(yīng)ID tag
BRESP 從機(jī) 寫(xiě)響應(yīng),表明寫(xiě)傳輸?shù)臓顟B(tài)
BUSER 從機(jī) 用戶自定義
BVALID 從機(jī) 寫(xiě)響應(yīng)有效
BREADY 主機(jī) 表明主機(jī)能夠接收寫(xiě)響應(yīng)

表4?7讀地址通道信號(hào)

信號(hào)名 描述
ARID 主機(jī) 讀地址ID,用來(lái)標(biāo)志一組寫(xiě)信號(hào)
ARADDR 主機(jī) 讀地址,給出一次寫(xiě)突發(fā)傳輸?shù)淖x地址
ARLEN 主機(jī) 突發(fā)長(zhǎng)度,給出突發(fā)傳輸?shù)拇螖?shù)
ARSIZE 主機(jī) 突發(fā)大小,給出每次突發(fā)傳輸?shù)淖止?jié)數(shù)
ARBURST 主機(jī) 突發(fā)類型
ARLOCK 主機(jī) 總線鎖信號(hào),可提供操作的原子性
ARCACHE 主機(jī) 內(nèi)存類型,表明一次傳輸是怎樣通過(guò)系統(tǒng)的
ARPROT 主機(jī) 保護(hù)類型,表明一次傳輸?shù)奶貦?quán)級(jí)及安全等級(jí)
ARQOS 主機(jī) 質(zhì)量服務(wù)QoS
ARREGION 主機(jī) 區(qū)域標(biāo)志,能實(shí)現(xiàn)單一物理接口對(duì)應(yīng)的多個(gè)邏輯接口
ARUSER 主機(jī) 用戶自定義信號(hào)
ARVALID 主機(jī) 有效信號(hào),表明此通道的地址控制信號(hào)有效
ARREADY 從機(jī) 表明“從”可以接收地址和對(duì)應(yīng)的控制信號(hào)

表 4?8 讀數(shù)據(jù)通道信號(hào)

信號(hào)名 描述
RID 從機(jī) 讀ID tag
RDATA 從機(jī) 讀數(shù)據(jù)
RRESP 從機(jī) 讀響應(yīng),表明讀傳輸?shù)臓顟B(tài)
RLAST 從機(jī) 表明讀突發(fā)的最后一次傳輸
RUSER 從機(jī) 用戶自定義
RVALID 從機(jī) 表明此通道信號(hào)有效
RREADY 主機(jī) 表明主機(jī)能夠接收讀數(shù)據(jù)和響應(yīng)信息

表4?9 低功耗接口信號(hào)

信號(hào)名 描述
CSYSREQ 時(shí)鐘控制器 系統(tǒng)退出低功耗請(qǐng)求,此信號(hào)從“時(shí)鐘控制器”到“外設(shè)”
CSYSACK 外設(shè) 退出低功耗狀態(tài)確認(rèn)
CACTIVE 外設(shè) 外設(shè)請(qǐng)求時(shí)鐘有效

每個(gè)數(shù)據(jù)通道有獨(dú)立的xVALID/xREADY握手信號(hào)對(duì)。 VALID與READY信號(hào)作為一對(duì)握手信號(hào),為防止死鎖,進(jìn)行讀操作時(shí),必須等讀地址通道握手完成,讀數(shù)據(jù)通道才可進(jìn)行下一步操作。進(jìn)行寫(xiě)操作時(shí),寫(xiě)地址通道與寫(xiě)數(shù)據(jù)通道互相獨(dú)立,但同樣必須等最后一組數(shù)據(jù)寫(xiě)完成寫(xiě)響應(yīng)通道握手完成。 AXI協(xié)議是基于burst的,主機(jī)只給出突發(fā)傳輸?shù)牡谝粋€(gè)字節(jié)的地址,從機(jī)必須計(jì)算突發(fā)傳輸后續(xù)的地址。突發(fā)傳輸不能跨4KB邊界(防止突發(fā)跨越兩個(gè)從機(jī)的邊界,也限制了從機(jī)所需支持的地址自增數(shù))。 ·突發(fā)長(zhǎng)度 ARLEN[7:0]決定讀傳輸?shù)耐话l(fā)長(zhǎng)度,AWLEN[7:0]決定寫(xiě)傳輸?shù)耐话l(fā)長(zhǎng)度。AXI3只支持1~16次的突發(fā)傳輸(Burst_length=AxLEN[3:0]+1),AXI4擴(kuò)展突發(fā)長(zhǎng)度支持INCR突發(fā)類型為1~256次傳輸,對(duì)于其他的傳輸類型依然保持1~16次突發(fā)傳輸(Burst_Length=AxLEN[7:0]+1)。 ·傳輸規(guī)則 wraping burst ,burst長(zhǎng)度必須是2,4,8,16,burst不能跨4KB邊界,不支持提前終止burst傳輸。 ·突發(fā)大小 ARSIZE[2:0],讀突發(fā)傳輸;AWSIZE[2:0],寫(xiě)突發(fā)傳輸。 AxSIZE[2:0] bytes in transfer ‘b0001 ‘b0012 ‘b0104 ‘b0118 ‘b10016 ‘b10132 ‘b11064 ‘b111128 ·突發(fā)類型 FIXED:突發(fā)傳輸過(guò)程中地址固定,用于FIFO訪問(wèn) INCR:增量突發(fā),傳輸過(guò)程中,地址遞增。增加量取決AxSIZE的值。 WRAP:回環(huán)突發(fā),和增量突發(fā)類似,但會(huì)在特定高地址的邊界處回到低地址處?;丨h(huán)突發(fā)的長(zhǎng)度只能是2,4,8,16次傳輸,傳輸首地址和每次傳輸?shù)拇笮?duì)齊。最低的地址整個(gè)傳輸?shù)臄?shù)據(jù)大小對(duì)齊?;丨h(huán)邊界等于(AxSIZE*AxLEN)。 AxBURST[1:0]burst type ‘b00FIXED ‘b01INCR ‘b10WRAP ‘b11Reserved Start_Address=AxADDR Number_Bytes=2^AxSIZE Burst_Length=AxLEN+1 Aligned_Addr=(INT(Start_Address/Number_Bytes))xNumber_Bytes。//INT表示向下取整。 對(duì)于INCR突發(fā)和WRAP突發(fā)但沒(méi)有到達(dá)回環(huán)邊界,地址由下述方程決定: Address_N=Aligned_Address+(N-1)xNumber_Bytes WRAP突發(fā),突發(fā)邊界: Wrap_Boundary=(INT(Start_Address/(Number_Bytes x Burst_Length)))x(Number_Bytes x Burst_Length) 讀寫(xiě)響應(yīng)結(jié)構(gòu) 讀傳輸?shù)捻憫?yīng)信息是附加在讀數(shù)據(jù)通道上的,寫(xiě)傳輸?shù)捻憫?yīng)在寫(xiě)響應(yīng)通道。 RRESP[1:0],讀傳輸 BRESP[1:0],寫(xiě)傳輸 OKAY(‘b00):正常訪問(wèn)成功 EXOKAY(‘b01):Exclusive 訪問(wèn)成功 SLVERR(‘b10):從機(jī)錯(cuò)誤。表明訪問(wèn)已經(jīng)成功到了從機(jī),但從機(jī)希望返回一個(gè)錯(cuò)誤的情況給主機(jī)。 DECERR(‘b11):譯碼錯(cuò)誤。一般由互聯(lián)組件給出,表明沒(méi)有對(duì)應(yīng)的從機(jī)地址。

1.1.2AMBA概述

AMBA (Advanced Microcontroller Bus Architecture) 高級(jí)處理器總線架構(gòu) AHB (Advanced High-performance Bus) 高級(jí)高性能總線 ASB (Advanced System Bus) 高級(jí)系統(tǒng)總線 APB (Advanced Peripheral Bus) 高級(jí)外圍總線 AXI (Advanced eXtensible Interface) 高級(jí)可拓展接口 這些內(nèi)容加起來(lái)就定義出一套為了高性能SoC而設(shè)計(jì)的片上通信的標(biāo)準(zhǔn)。 AHB主要是針對(duì)高效率、高頻寬及快速系統(tǒng)模塊所設(shè)計(jì)的總線,它可以連接如微處理器、芯片上或芯片外的內(nèi)存模塊和DMA等高效率模塊。 APB主要用在低速且低功率的外圍,可針對(duì)外圍設(shè)備作功率消耗及復(fù)雜接口的最佳化。APB在AHB和低帶寬的外圍設(shè)備之間提供了通信的橋梁,所以APB是AHB或ASB的二級(jí)拓展總線。 AXI:高速度、高帶寬,管道化互聯(lián),單向通道,只需要首地址,讀寫(xiě)并行,支持亂序,支持非對(duì)齊操作,有效支持初始延遲較高的外設(shè),連線非常多。 表 4?10 幾種AMBA總線的性能對(duì)比分析

總線 AXI AHB APB
總線寬度 8, 16, 32, 64, 128, 256, 512, 1024 32, 64, 128, 256 8, 16, 32
地址寬度 32 32 32
通道特性 讀寫(xiě)地址通道、讀寫(xiě)數(shù)據(jù)通道均獨(dú)立 讀寫(xiě)地址通道共用讀寫(xiě)數(shù)據(jù)通道 讀寫(xiě)地址通道共用讀寫(xiě)數(shù)據(jù)通道不支持讀寫(xiě)并行操作
體系結(jié)構(gòu) 多主/從設(shè)備仲裁機(jī)制 多主/從設(shè)備仲裁機(jī)制 單主設(shè)備(橋)/多從設(shè)備無(wú)仲裁
數(shù)據(jù)協(xié)議 支持流水/分裂傳輸支持猝發(fā)傳輸支持亂序訪問(wèn)字節(jié)/半字/字大小端對(duì)齊非對(duì)齊操作 支持流水/分裂傳輸支持猝發(fā)傳輸支持亂序訪問(wèn)字節(jié)/半字/字大小端對(duì)齊不支持非對(duì)齊操作 一次讀/寫(xiě)傳輸占兩個(gè)時(shí)鐘周期不支持突發(fā)傳輸
傳輸方式 支持讀寫(xiě)并行操作 不支持讀寫(xiě)并行操作 不支持讀寫(xiě)并行操作
時(shí)序 同步 同步 同步
互聯(lián) 多路 多路 無(wú)定義

1.1.3AHB總線

AHB的組成 Master:能夠發(fā)起讀寫(xiě)操作,提供地址和控制信號(hào),同一時(shí)間只有1個(gè)Master會(huì)被激活。 Slave:在給定的地址范圍內(nèi)對(duì)讀寫(xiě)操作作響應(yīng),并對(duì)Master返回成功、失敗或者等待等狀態(tài)。 Arbiter:負(fù)責(zé)保證總線上一次只有1個(gè)Master在工作。仲裁協(xié)議是規(guī)定的,但是仲裁算法可以根據(jù)應(yīng)用決定。 Decoder:負(fù)責(zé)對(duì)地址進(jìn)行解碼,并提供片選信號(hào)到各Slave。 每個(gè)AHB都需要1個(gè)仲裁器和1個(gè)中央解碼器。

圖4?8 AHB的組成 AHB基本信號(hào) HADDR:32位系統(tǒng)地址總線 HTRANS:M指示傳輸狀態(tài),NONSEQ、SEQ、IDLE、BUSY HWRITE:傳輸方向1-寫(xiě),0-讀 HSIZE:傳輸單位 HBURST:傳輸?shù)腷urst類型 HWDATA:寫(xiě)數(shù)據(jù)總線,從M寫(xiě)到S HREADY:S應(yīng)答M是否讀寫(xiě)操作傳輸完成,1-傳輸完成,0-需延長(zhǎng)傳輸周期。需要注意的是HREADY作為總線上的信號(hào),它是M和S的輸入;同時(shí)每個(gè)S需要輸出自HREADY。所以對(duì)于S會(huì)有兩個(gè)HREADY信號(hào),一個(gè)來(lái)自總線的輸入,一個(gè)自己給到多路器的輸出。 HRESP:S應(yīng)答當(dāng)前傳輸狀態(tài),OKAY、ERROR、RETRY、SPLIT。 HRDATA:讀數(shù)據(jù)總線,從S讀到M。 AHB基本傳輸 兩個(gè)階段 地址周期(AP),只有一個(gè)cycle 數(shù)據(jù)周期(DP),由HREADY信號(hào)決定需要幾個(gè)cycle 流水線傳送 先是地址周期,然后是數(shù)據(jù)周期 AHB突發(fā)傳輸與AXI突發(fā)傳輸?shù)奶攸c(diǎn) AHB協(xié)議需要一次突發(fā)傳輸?shù)乃械刂?,地址與數(shù)據(jù)鎖定對(duì)應(yīng)關(guān)系,后一次突發(fā)傳輸必須在前次傳輸完成才能進(jìn)行。 AXI只需要一次突發(fā)的首地址,可以連續(xù)發(fā)送多個(gè)突發(fā)傳輸首地址而無(wú)需等待前次突發(fā)傳輸完成,并且多個(gè)數(shù)據(jù)可以交錯(cuò)傳遞,此特征大大提高了總線的利用率。 AHB總線與AXI總線均適用于高性能、高帶寬的SoC系統(tǒng),但AXI具有更好的靈活性,而且能夠讀寫(xiě)通道并行發(fā)送,互不影響;更重要的是,AXI總線支持亂序傳輸,能夠有效地利用總線的帶寬,平衡內(nèi)部系統(tǒng)。因此SoC系統(tǒng)中,均以AXI總線為主總線,通過(guò)橋連接AHB總線與APB總線,這樣能夠增加SoC系統(tǒng)的靈活性,更加合理地把不同特征IP分配到總線上。

1.1.4APB總線

主要應(yīng)用在低帶寬的外設(shè)上,如UART、 I2C,它的架構(gòu)不像AHB總線是多主設(shè)備的架構(gòu),APB總線的唯一主設(shè)備是APB橋(與AXI或APB相連),因此不需要仲裁一些Request/grant信號(hào)。APB的協(xié)議也十分簡(jiǎn)單,甚至不是流水的操作,固定兩個(gè)時(shí)鐘周期完成一次讀或?qū)懙牟僮鳌F涮匦园ǎ簝蓚€(gè)時(shí)鐘周期傳輸,無(wú)需等待周期和回應(yīng)信號(hào),控制邏輯簡(jiǎn)單,只有四個(gè)控制信號(hào)。APB上的傳輸可用如圖所示的狀態(tài)圖來(lái)說(shuō)明。 1、系統(tǒng)初始化為IDLE狀態(tài),此時(shí)沒(méi)有傳輸操作,也沒(méi)有選中任何從模塊。 2、當(dāng)有傳輸要進(jìn)行時(shí),PSELx=1,,PENABLE=0,系統(tǒng)進(jìn)入SETUP狀態(tài),并只會(huì)在SETUP狀態(tài)停留一個(gè)周期。當(dāng)PCLK的下一個(gè)上升沿到來(lái)時(shí),系統(tǒng)進(jìn)入ENABLE狀態(tài)。 3、系統(tǒng)進(jìn)入ENABLE狀態(tài)時(shí),維持之前在SETUP狀態(tài)的PADDR、PSEL、PWRITE不變,并將PENABLE置為1。傳輸也只會(huì)在ENABLE狀態(tài)維持一個(gè)周期,在經(jīng)過(guò)SETUP與ENABLE狀態(tài)之后就已完成。之后如果沒(méi)有傳輸要進(jìn)行,就進(jìn)入IDLE狀態(tài)等待;如果有連續(xù)的傳輸,則進(jìn)入SETUP狀態(tài)。

圖4?9 APB總線

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AMBA
    +關(guān)注

    關(guān)注

    0

    文章

    69

    瀏覽量

    15015
  • AMBA協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6482

原文標(biāo)題:AXI協(xié)議詳解-AMBA總線協(xié)議AHB、APB、AXI對(duì)比分析

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    IGBT的介紹和應(yīng)用基礎(chǔ)知識(shí)

    IGBT的介紹和應(yīng)用,基礎(chǔ)知識(shí)
    發(fā)表于 06-24 22:42

    電阻的基礎(chǔ)知識(shí)介紹

    電阻基礎(chǔ)知識(shí)介紹
    發(fā)表于 02-26 06:17

    嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí)

    第2章 嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí)本章教程為大家介紹嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí),本章先讓大家有一個(gè)全面的認(rèn)識(shí),后面章節(jié)中會(huì)為大家逐一講解用到的
    發(fā)表于 08-03 06:24

    介紹嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí)

    第2章 嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí)本章教程為大家介紹嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí),本章先讓大家有一個(gè)全面的認(rèn)識(shí),后面章節(jié)中會(huì)為大家逐一講解用到的
    發(fā)表于 08-03 06:58

    介紹嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí)

    第2章 嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí)本章教程為大家介紹嵌入式網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí),本章先讓大家有一個(gè)全面的認(rèn)識(shí),后面章節(jié)中會(huì)為大家逐一講解用到的
    發(fā)表于 08-04 08:17

    CAN協(xié)議基礎(chǔ)知識(shí)

    CAN協(xié)議基礎(chǔ)知識(shí)I2C.SPI總線多用于短距離傳輸,協(xié)議簡(jiǎn)單,數(shù)據(jù)量少,主要用于IC之間的通訊,而 CAN 總線則不同,CAN(Controller Area Network) 總線定義了更為優(yōu)秀
    發(fā)表于 08-19 06:24

    AMBA CHI協(xié)議介紹

    (SoC)中。它促進(jìn)了多處理器設(shè)計(jì)的首次開(kāi)發(fā),具有大量的控制器和外設(shè)。 CHI適用于需要一致性的廣泛應(yīng)用,包括移動(dòng),網(wǎng)絡(luò)、汽車和數(shù)據(jù)中心。AMBA CHI的設(shè)計(jì)是為了保持性能在組件和流量不斷增加的系統(tǒng)中。 本指南介紹了CHI協(xié)議
    發(fā)表于 08-02 13:40

    GSM基礎(chǔ)知識(shí)介紹

    GSM基礎(chǔ)知識(shí)介紹
    發(fā)表于 07-29 17:18 ?75次下載
    GSM<b class='flag-5'>基礎(chǔ)知識(shí)</b>的<b class='flag-5'>介紹</b>

    網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí)

    網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識(shí) 要講網(wǎng)絡(luò)協(xié)議,首先就地提到是開(kāi)放系統(tǒng)互聯(lián)參考模型(OSI Referenec Model),即我們通常所說(shuō)的網(wǎng)絡(luò)互聯(lián)的七層框架
    發(fā)表于 03-29 17:30 ?866次閱讀

    TCP協(xié)議基礎(chǔ)知識(shí)

    TCP 是互聯(lián)網(wǎng)核心協(xié)議之一,本文介紹它的基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 10-16 10:29 ?3642次閱讀
    TCP<b class='flag-5'>協(xié)議</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>

    TCP協(xié)議基礎(chǔ)知識(shí)詳細(xì)說(shuō)明

     TCP 是互聯(lián)網(wǎng)核心協(xié)議之一,本文介紹它的基礎(chǔ)知識(shí)?;ヂ?lián)網(wǎng)由一整套協(xié)議構(gòu)成。TCP 只是其中的一層,有著自己的分工。
    發(fā)表于 03-13 08:00 ?2次下載
    TCP<b class='flag-5'>協(xié)議</b>的<b class='flag-5'>基礎(chǔ)知識(shí)</b>詳細(xì)說(shuō)明

    AMBA 3.0 AXI總線接口協(xié)議的研究與應(yīng)用

    本文介紹AMBA 3.0 AXI的結(jié)構(gòu)和特點(diǎn),分析了新的AMBA 3.0 AXI協(xié)議相對(duì)于AMBA 2. 0的優(yōu)點(diǎn)。它將革新未來(lái)高性能SO
    發(fā)表于 04-12 15:47 ?28次下載

    基于AMBA總線介紹?

    3.0:增加了AXI協(xié)議(了解);AMBA4.0:ACE協(xié)議(了解) 本文主要介紹AMBA2.0 (Advanced Microcontro
    的頭像 發(fā)表于 05-19 14:22 ?2139次閱讀
    基于<b class='flag-5'>AMBA</b>總線<b class='flag-5'>介紹</b>?

    介紹AMBA2.0總線

    3.0:增加了AXI協(xié)議(了解);AMBA4.0:ACE協(xié)議(了解) 本文主要介紹AMBA2.0 (Advanced Microcontro
    的頭像 發(fā)表于 09-06 09:53 ?3198次閱讀
    <b class='flag-5'>介紹</b><b class='flag-5'>AMBA</b>2.0總線

    SPI協(xié)議基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《SPI協(xié)議基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 11-16 10:32 ?1次下載
    SPI<b class='flag-5'>協(xié)議</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>