版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/abcdef123456gg/article/details/102814000
在介紹AXI之前,先簡單說一下總線、接口以及協(xié)議的含義
總線、接口和協(xié)議,這三個(gè)詞常常被聯(lián)系在一起,但是我們心里要明白他們的區(qū)別。
總線是一組傳輸通道,是各種邏輯器件構(gòu)成的傳輸數(shù)據(jù)的通道,一般由由數(shù)據(jù)線、地址線、控制線等構(gòu)成。
接口是一種連接標(biāo)準(zhǔn),又常常被稱之為物理接口。
協(xié)議是傳輸數(shù)據(jù)的規(guī)則。
1.簡介
AXI4總線協(xié)議是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0協(xié)議中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內(nèi)總線。
AXI4總線協(xié)議規(guī)定的數(shù)據(jù)傳輸方式是猝發(fā)式的。它的地址/控制和數(shù)據(jù)相位是分離的,支持不對(duì)齊的數(shù)據(jù)傳輸。在突發(fā)傳輸中,使用首字節(jié)選通方式,只需要首地址,在獨(dú)立的讀寫數(shù)據(jù)通道,采用獨(dú)立的地址、控制和數(shù)據(jù)周期進(jìn)行數(shù)據(jù)傳輸,支持非對(duì)齊方式的數(shù)據(jù)傳輸,能夠發(fā)出多個(gè)未解析的地址,從而完成無序的數(shù)據(jù)傳輸交易,并更加容易并行時(shí)序收斂。
AXI是AMBA 中一個(gè)新的高性能協(xié)議。AXI 技術(shù)豐富了現(xiàn)有的AMBA 標(biāo)準(zhǔn)內(nèi)容,滿足超高性能和復(fù)雜的片上系統(tǒng)(SoC)設(shè)計(jì)的需求。
常用的AXI總線有:AXI4、 AXI_Lite、AXI_Stream。
AXI4:主要面向高性能地址映射通信的需求,允許最大256輪的數(shù)據(jù)突發(fā)傳輸;
AXI4-Lite:是一個(gè)輕量級(jí)的地址映射單次傳輸接口,占用很少的邏輯單元;
AXI4-Stream:面向高速流數(shù)據(jù)傳輸,去掉了地址項(xiàng),允許無限制的數(shù)據(jù)突發(fā)傳輸規(guī)模。
AXI4總線分為主、從兩端,兩者間可以連續(xù)的進(jìn)行通信。
2. AXI_Lite 協(xié)議
axi總線的6個(gè)通道
( 1) 讀地址通道, 包含 ARVALID, ARADDR, ARREADY信號(hào);
( 2) 讀數(shù)據(jù)通道, 包含 RVALID, RDATA, RREADY, RRESP信號(hào);
( 3) 寫地址通道, 包含 AWVALID, AWADDR, AWREADY信號(hào);
( 4) 寫數(shù)據(jù)通道, 包含 WVALID, WDATA, WSTRB, WREADY信號(hào);
( 5) 寫應(yīng)答通道, 包含 BVALID, BRESP, BREADY信號(hào);
( 6) 系統(tǒng)通道, 包含 ACLK, ARESETN信號(hào)。
AXI4總線和AXI4-Lite總線的信號(hào)也有他的命名特點(diǎn):
讀地址信號(hào)都是以AR開頭( A: address; R: read)
寫地址信號(hào)都是以AW開頭( A: address; W: write)
讀數(shù)據(jù)信號(hào)都是以R開頭( R: read)
寫數(shù)據(jù)信號(hào)都是以W開頭( W: write)
3.AXI_Stream 協(xié)議
AXI4-Stream總線的組成有:
( 1) ACLK 信號(hào): 總線時(shí)鐘, 上升沿有效;
( 2) ARESETN 信號(hào): 總線復(fù)位, 低電平有效
( 3) TREADY 信號(hào): 從機(jī)告訴主機(jī)做好傳輸準(zhǔn)備;
( 4) TDATA 信號(hào): 數(shù)據(jù), 可選寬度32,64,128,256bit
( 5) TSTRB 信號(hào): 字節(jié)修飾符, 每一bit對(duì)應(yīng)TDATA的一個(gè)有效字節(jié), 寬度為TDATA/8,用來描述TDATA相關(guān)字節(jié)內(nèi)容作為一個(gè)數(shù)字字節(jié)或者一個(gè)位置字節(jié)被處理。
( 6) TLAST 信號(hào): 主機(jī)告訴從機(jī)該次傳輸為突發(fā)傳輸?shù)慕Y(jié)尾;
( 7) TVALID 信號(hào): 主機(jī)告訴從機(jī)數(shù)據(jù)本次傳輸有效;
( 8) TUSER 信號(hào) : 用戶定義信號(hào), 寬度為128bit。
4.其他
4.1 AXI架構(gòu)
AXI協(xié)議是基于burst的傳輸,并且定義了5個(gè)獨(dú)立的傳輸通道:
讀地址通道、讀數(shù)據(jù)通道、寫地址通道、寫數(shù)據(jù)通道、寫響應(yīng)通道。
地址通道攜帶控制消息用于描述被傳輸?shù)臄?shù)據(jù)屬性;
數(shù)據(jù)傳輸使用寫通道來實(shí)現(xiàn)“主”到“從”的傳輸;
“從”使用寫響應(yīng)通道來完成一次寫傳輸;
讀通道用來實(shí)現(xiàn)數(shù)據(jù)從“從”到“主”的傳輸。
圖4-1 讀結(jié)構(gòu)
圖4-2 寫架構(gòu)
AXI是基于VALID/READY的握手機(jī)制數(shù)據(jù)傳輸協(xié)議,傳輸源端使用VALID表明地址/控制信號(hào)、數(shù)據(jù)是有效的,目的端使用READY表明自己能夠接受信息。
讀/寫地址通道:讀、寫傳輸每個(gè)都有自己的地址通道,對(duì)應(yīng)的地址通道承載著對(duì)應(yīng)傳輸?shù)牡刂房刂菩畔ⅰ?/p>
讀數(shù)據(jù)通道:讀數(shù)據(jù)通道承載著讀數(shù)據(jù)和讀響應(yīng)信號(hào)包括數(shù)據(jù)總線(8/16/32/64/128/256/512/1024bit)和指示讀傳輸完成的讀響應(yīng)信號(hào)。
寫數(shù)據(jù)通道:寫數(shù)據(jù)通道的數(shù)據(jù)信息被認(rèn)為是緩沖(buffered)了的,“主”無需等待“從”對(duì)上次寫傳輸?shù)拇_認(rèn)即可發(fā)起一次新的寫傳輸。寫通道包括數(shù)據(jù)總線(8/16…1024bit)和字節(jié)線(用于指示8bit 數(shù)據(jù)信號(hào)的有效性)。
寫響應(yīng)通道:“從”使用寫響應(yīng)通道對(duì)寫傳輸進(jìn)行響應(yīng)。所有的寫傳輸需要寫響應(yīng)通道的完成信號(hào)。
圖4-3 接口與互聯(lián)
AXI協(xié)議提供單一的接口定義,能用在下述三種接口之間:master/interconnect、slave/interconnect、master/slave。
可以使用以下幾種典型的系統(tǒng)拓?fù)浼軜?gòu):
共享地址與數(shù)據(jù)總線
共享地址總線,多數(shù)據(jù)總線
multilayer多層,多地址總線,多數(shù)據(jù)總線
在大多數(shù)系統(tǒng)中,地址通道的帶寬要求沒有數(shù)據(jù)通道高,因此可以使用共享地址總線,多數(shù)據(jù)總線結(jié)構(gòu)來對(duì)系統(tǒng)性能和互聯(lián)復(fù)雜度進(jìn)行平衡。
寄存器片(Register Slices):
每個(gè)AXI通道使用單一方向傳輸信息,并且各個(gè)通道直接沒有任何固定關(guān)系。因此可以可以在任何通道任何點(diǎn)插入寄存器片,當(dāng)然這會(huì)導(dǎo)致額外的周期延遲。
使用寄存器片可以實(shí)現(xiàn)周期延遲(cycles of latency)和最大操作頻率的折中;使用寄存器片可以分割低速外設(shè)的長路徑。
4.2 信號(hào)描述
表 4-4 全局信號(hào)
表 4-5 寫地址通道信號(hào)
表 4-6 寫數(shù)據(jù)通道信號(hào)
表 4-7 寫響應(yīng)通道信號(hào)
表 4-8 讀地址通道信號(hào)
表 4-9 讀數(shù)據(jù)通道信號(hào)
表 4-10 低功耗接口信號(hào)
4.3 信號(hào)接口要求
4.3.1時(shí)鐘復(fù)位
時(shí)鐘:
每個(gè)AXI組件使用一個(gè)時(shí)鐘信號(hào)ACLK,所有輸入信號(hào)在ACLK上升沿采樣,所有輸出信號(hào)必須在ACLK上升沿后發(fā)生。
復(fù)位:
AXI使用一個(gè)低電平有效的復(fù)位信號(hào)ARESETn,復(fù)位信號(hào)可以異步斷言,但必須和時(shí)鐘上升沿同步去斷言。
復(fù)位期間對(duì)接口有如下要求:①主機(jī)接口必須驅(qū)動(dòng)ARVALID,AWVALID,WVALID為低電平;②從機(jī)接口必須驅(qū)動(dòng)RVALID,BVALID為低電平;③所有其他信號(hào)可以被驅(qū)動(dòng)到任意值。
在復(fù)位后,主機(jī)可以在時(shí)鐘上升沿驅(qū)動(dòng)ARVALID,AWVALID,WVALID為高電平。
4.3.2基本讀寫傳輸
握手過程
5個(gè)傳輸通道均使用VALID/READY信號(hào)對(duì)傳輸過程的地址、數(shù)據(jù)、控制信號(hào)進(jìn)行握手。使用雙向握手機(jī)制,傳輸僅僅發(fā)生在VALID、READY同時(shí)有效的時(shí)候。下圖是幾種握手機(jī)制:
圖 4-11 VALID before READY 握手
圖 4-12 READY before VALID 握手
圖 4-13 VALID with READY 握手
4.3.3 通道信號(hào)要求
通道握手信號(hào):每個(gè)通道有自己的xVALID/xREADY握手信號(hào)對(duì)。
寫地址通道:當(dāng)主機(jī)驅(qū)動(dòng)有效的地址和控制信號(hào)時(shí),主機(jī)可以斷言AWVALID,一旦斷言,需要保持AWVALID的斷言狀態(tài),直到時(shí)鐘上升沿采樣到從機(jī)的AWREADY。AWREADY默認(rèn)值可高可低,推薦為高(如果為低,一次傳輸至少需要兩個(gè)周期,一個(gè)用來斷言AWVALID,一個(gè)用來斷言AWREADY);當(dāng)AWREADY為高時(shí),從機(jī)必須能夠接受提供給它的有效地址。
寫數(shù)據(jù)通道:在寫突發(fā)傳輸過程中,主機(jī)只能在它提供有效的寫數(shù)據(jù)時(shí)斷言WVALID,一旦斷言,需要保持?jǐn)嘌誀顟B(tài),知道時(shí)鐘上升沿采樣到從機(jī)的WREADY。WREADY默認(rèn)值可以為高,這要求從機(jī)總能夠在單個(gè)周期內(nèi)接受寫數(shù)據(jù)。主機(jī)在驅(qū)動(dòng)最后一次寫突發(fā)傳輸是需要斷言WLAST信號(hào)。
寫響應(yīng)通道:從機(jī)只能它在驅(qū)動(dòng)有效的寫響應(yīng)時(shí)斷言BVALID,一旦斷言需要保持,直到時(shí)鐘上升沿采樣到主機(jī)的BREADY信號(hào)。當(dāng)主機(jī)總能在一個(gè)周期內(nèi)接受寫響應(yīng)信號(hào)時(shí),可以將BREADY的默認(rèn)值設(shè)為高。
讀地址通道:當(dāng)主機(jī)驅(qū)動(dòng)有效的地址和控制信號(hào)時(shí),主機(jī)可以斷言ARVALID,一旦斷言,需要保持ARVALID的斷言狀態(tài),直到時(shí)鐘上升沿采樣到從機(jī)的ARREADY。ARREADY默認(rèn)值可高可低,推薦為高(如果為低,一次傳輸至少需要兩個(gè)周期,一個(gè)用來斷言ARVALID,一個(gè)用來斷言ARREADY);當(dāng)ARREADY為高時(shí),從機(jī)必須能夠接受提供給它的有效地址。
讀數(shù)據(jù)通道:只有當(dāng)從機(jī)驅(qū)動(dòng)有效的讀數(shù)據(jù)時(shí)從機(jī)才可以斷言RVALID,一旦斷言需要保持直到時(shí)鐘上升沿采樣到主機(jī)的BREADY。BREADY默認(rèn)值可以為高,此時(shí)需要主機(jī)任何時(shí)候一旦開始讀傳輸就能立馬接受讀數(shù)據(jù)。當(dāng)最后一次突發(fā)讀傳輸時(shí),從機(jī)需要斷言RLAST。
4.3.4 通道間關(guān)系
AXI協(xié)議要求通道間滿足如下關(guān)系:
寫響應(yīng)必須跟隨最后一次burst的的寫傳輸
讀數(shù)據(jù)必須跟隨數(shù)據(jù)對(duì)應(yīng)的地址
通道握手信號(hào)需要確認(rèn)一些依耐關(guān)系
通道握手信號(hào)的依耐關(guān)系
審核編輯:何安
-
AXI總線
+關(guān)注
關(guān)注
0文章
66瀏覽量
14295
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論