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

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

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

對AXI總線知識詳解解析

FPGA之家 ? 來源:數(shù)字ICer ? 作者:數(shù)字ICer ? 2021-04-09 17:10 ? 次閱讀

前言

本文針對秋招面試高頻問題: AXI總線進行總結(jié)學(xué)習(xí);

1.簡介

AXI是個什么東西呢,它其實不屬于Zynq,不屬于Xilinx,而是屬于ARM。它是ARM最新的總線接口,以前叫做AMBA,從3.0以后就稱為AXI了。

AXI(Advanced eXtensible Interface)是一種總線協(xié)議,該協(xié)議是ARM公司提出的AMBA3.0中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內(nèi)總線。AMBA4.0將其修改升級為AXI4.0。AMBA4 包括AXI4、AXI4-lite、ACE4、AXI4-stream。

AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允許最大256輪的數(shù)據(jù)突發(fā)傳輸;

AXI4-Lite:(For simple, low-throughput memory-mapped communication )是一個輕量級的地址映射單次傳輸接口,占用很少的邏輯單元。

AXI4-Stream:(For high-speed streaming data.)面向高速流數(shù)據(jù)傳輸;去掉了地址項,允許無限制的數(shù)據(jù)突發(fā)傳輸規(guī)模。

1.1 AXI協(xié)議特點

AMBA AXI協(xié)議支持支持高性能、高頻率系統(tǒng)設(shè)計;

適合高帶寬低延時設(shè)計

無需復(fù)雜的橋就能實現(xiàn)高頻操作

能滿足大部分器件的接口要求

適合高初始延時的存儲控制器

提供互聯(lián)架構(gòu)的靈活性與獨立性

向下兼容已有的AHB和APB接口關(guān)鍵特點

分離的地址/控制、數(shù)據(jù)相位

使用字節(jié)選通,支持非對齊的數(shù)據(jù)傳輸

基于burst傳輸,只需傳輸首地址

讀、寫數(shù)據(jù)通道分離,能提供低功耗DMA

支持多種尋址方式

支持亂序傳輸

易于添加寄存器級來進行時序收斂

支持outstanding AXI可以連續(xù)發(fā)送多個突發(fā)傳輸?shù)氖椎刂范鵁o需等待之前的突發(fā)傳輸完成,這有助于流水處理transaction

1.2 AXI讀寫架構(gòu)

AXI協(xié)議是基于burst的傳輸,并且定義了以下5個獨立的傳輸通道:讀地址通道、讀數(shù)據(jù)通道、寫地址通道、寫數(shù)據(jù)通道、寫響應(yīng)通道。 地址通道攜帶控制消息,用于描述被傳輸?shù)臄?shù)據(jù)屬性;數(shù)據(jù)傳輸使用寫通道來實現(xiàn)master到slave的傳輸,slave使用寫響應(yīng)通道來完成一次寫傳輸;讀通道用來實現(xiàn)數(shù)據(jù)從slave到master的傳輸。

b060bd14-990f-11eb-8b86-12bb97331649.png

讀架構(gòu)

b073b66c-990f-11eb-8b86-12bb97331649.png

寫架構(gòu)

AXI使用基于VALID/READY的握手機制數(shù)據(jù)傳輸協(xié)議;傳輸源端使用VALID表明地址/控制信號、數(shù)據(jù)是有效的;目的端使用READY表明自己能夠接受信息 ;讀/寫地址通道:讀、寫傳輸每個都有自己的地址通道,對應(yīng)的地址通道承載著對應(yīng)傳輸?shù)牡刂房刂菩畔ⅲ?/p>

讀數(shù)據(jù)通道:讀數(shù)據(jù)通道承載著讀數(shù)據(jù)和讀響應(yīng)信號包括數(shù)據(jù)總線(8/16/32/64/128/256/512/1024 bit)和指示讀傳輸完成的讀響應(yīng)信號;

寫數(shù)據(jù)通道:寫數(shù)據(jù)通道的數(shù)據(jù)信息被認為是緩沖了的,master無需等待slave對上次寫傳輸?shù)拇_認即可發(fā)起一次新的寫傳輸。寫通道包括數(shù)據(jù)總線(8/16/32/64/128/256/512/1024 bit)和字節(jié)線(用于指示8 bit 數(shù)據(jù)信號的有效性);

寫響應(yīng)通道:slave使用寫響應(yīng)通道對寫傳輸進行響應(yīng)。所有的寫傳輸需要寫響應(yīng)通道的完成信號;

通道名稱通道功能數(shù)據(jù)流向

read address讀地址通道主機-》從機

read data讀數(shù)據(jù)通道(包括數(shù)據(jù)通道和讀響應(yīng)通道)從機-》主機

write address寫地址通道主機-》從機

write data寫數(shù)據(jù)通道(包括數(shù)據(jù)通道和每8bit一個byte的寫數(shù)據(jù)有效信號)主機-》從機

write response寫響應(yīng)通道從機-》主機

1.3 接口和互聯(lián)

AXI協(xié)議提供單一的接口定義,用在下述三種接口之間:master/interconnect、slave/interconnect、master/slave。可以使用以下幾種典型的系統(tǒng)拓撲架構(gòu):

共享地址與數(shù)據(jù)總線

共享地址總線,多數(shù)據(jù)總線

multilayer多層,多地址總線,多數(shù)據(jù)總線

在大多數(shù)系統(tǒng)中,地址通道的帶寬要求沒有數(shù)據(jù)通道高,因此可以使用共享地址總線,多數(shù)據(jù)總線結(jié)構(gòu)來對系統(tǒng)性能和互聯(lián)復(fù)雜度進行平衡;

b0918660-990f-11eb-8b86-12bb97331649.png

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

使用寄存器片可以實現(xiàn)周期延遲(cycles of latency)和最大操作頻率的折中;

使用寄存器片可以分割低速外設(shè)的長路徑;

2.信號描述

信號名來源描述

ACLKsystem clock全局時鐘信號

ARESTnsystem reset全局復(fù)位信號,低有效

全局信號

信號名來源描述

AWIDmaster寫地址ID(用于區(qū)分該地址屬于哪個寫地址組)

AWADDRmaster寫地址

AWLENmaster突發(fā)長度

AWSIZEmaster突發(fā)尺寸(每次突發(fā)傳輸?shù)淖铋Lbyte數(shù))

AWBURSTmaster突發(fā)方式(FIXED,INCR,WRAP)

AWCACHEmaster存儲類型(標記系統(tǒng)需要的傳輸類型)

AWPROTmaster保護模式

AWQOSmasterQoS標識符

AWREGIONmasterregion標識符(當slave有多種邏輯接口時標識使用的邏輯接口)

AWUSERmaster用戶自定義信號

AWVALIDmaster寫地址有效信號(有效時表示AWADDR上地址有效)

AWREADYmaster寫從機就緒信號(有效時表示從機準備好接收地址)

寫地址通道信號

信號名來源描述

WDATAmaster寫數(shù)據(jù)

WSTRBmaster數(shù)據(jù)段有效(標記寫數(shù)據(jù)中哪幾個8位字段有效)

WLASTmasterlast信號(有效時表示當前為突發(fā)傳輸最后一個數(shù)據(jù))

WUSERmaster用戶自定義信號

WVALIDmaster寫有效信號(有效時表示W(wǎng)DATA上數(shù)據(jù)有效)

WREADYslave寫ready信號(有效時表示從機準備好接收數(shù)據(jù))

寫數(shù)據(jù)通道信號

信號名來源描述

BIDslave響應(yīng)ID

BRESPslave寫響應(yīng)

BUSERslave用戶自定義信號

BVALIDslave寫響應(yīng)信號有效

BREADYmaster寫響應(yīng)ready(主機準備好接受寫響應(yīng)信號)

寫響應(yīng)通道信號

信號名來源描述

ARIDmaster讀地址ID

ARADDRmaster讀地址

ARLENmaster突發(fā)長度

ARSIZEmaster突發(fā)尺寸(每次突發(fā)傳輸?shù)腷yte數(shù))

ARBURSTmaster突發(fā)類型(FIXED,INCR,WRAP)

ARCACHEmaster存儲類型

ARPROTmaster保護類型

ARQOSmasterQoS標識符

ARREGIONmaster區(qū)域標識符

ARUSERmaster用戶自定義

ARVALIDmaster讀地址有效(有效時表示ARADDR上地址有效)

ARREADYslave寫有效信號(有效時表示從機準備好接收讀地址)

讀地址通道信號

信號名來源描述

RIDslave讀ID標簽

RDATAslave讀數(shù)據(jù)

RRESPslave讀響應(yīng)

RLASTslave有效時表示為突發(fā)傳輸?shù)淖詈笠粋€

RUSERslave用戶自定義

RVALIDslave讀數(shù)據(jù)有效信號

RREADYmaster主機就緒信號(有效時表示)

讀數(shù)據(jù)通道信號

信號名來源描述

CSYSREQClock controller該信號有效時,系統(tǒng)退出低功耗模式

CSYSACKPeripheral device退出低功耗模式應(yīng)答信號

CACTIVEPeripheral device外設(shè)申請時鐘信號

低功耗接口信號

3.信號接口要求

3.1讀寫傳輸

3.1.1 握手過程

5個傳輸通道均使用VALID/READY信號對傳輸過程的地址、數(shù)據(jù)、控制信號進行握手。使用雙向握手機制,傳輸僅僅發(fā)生在VALID、READY同時有效的時候。VALID信號表示地址/數(shù)據(jù)/應(yīng)答信號總線上的信號是有效的,由傳輸發(fā)起方控制

READY信號表示傳輸接收方已經(jīng)準備好接收,由傳輸接收方控制下圖是幾種握手機制:

b0a56a2c-990f-11eb-8b86-12bb97331649.png

VALID和READY的先后關(guān)系具有三種情況:

VALID先有效,等待READY有效后完成傳輸(VALID一旦有效后在傳輸完成前不可取消)

READY先有效,等待VALID有效后完成傳輸(READY可以在VALID有效前撤銷)

VALID和READY同時有效,立刻完成傳輸此外,需要注意的是允許READY信號等待VALID信號再有效,即使從機準備好,也可以不提供READY信號,等到主機發(fā)送VALID信號再提供READY信號。對應(yīng)的VALID信號不允許等待READY信號,即不允許VALID等待READY信號拉高后再拉高,否則容易產(chǎn)生死鎖現(xiàn)象。

命令通道握手(讀地址,寫地址,寫響應(yīng))

僅當?shù)刂返刃畔⒂行r,才拉高VALID,該VALID必須保持直到傳輸完成(READY置位)

READY默認狀態(tài)不關(guān)心,僅當準備好接收時拉高READY數(shù)據(jù)通道握手(寫數(shù)據(jù)和讀數(shù)據(jù))

突發(fā)讀寫模式下,僅數(shù)據(jù)信息有效時才拉高VALID,該VALID必須保持直到傳輸完成。當突發(fā)傳輸最后一個數(shù)據(jù)發(fā)送時拉高LAST信號

READY默認狀態(tài)不關(guān)心,僅當準備好接收時拉高READY通道信號要求:

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

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

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

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

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

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

3.1.2 通道順序

傳輸中,通道傳輸?shù)南群笥幸韵乱?guī)定

寫響應(yīng)通道傳輸必須在寫操作完成以后進行

讀數(shù)據(jù)通道傳輸必須在讀地址通道傳輸后進行

必須遵循一系列的狀態(tài)依賴關(guān)系

通道握手信號的依耐關(guān)系

為防止死鎖,通道握手信號需要遵循一定的依耐關(guān)系。VALID信號不能依耐READY信號。

AXI接口可以等到檢測到VALID才斷言對應(yīng)的READY,也可以檢測到VALID之前就斷言READY。下面有幾個圖表明依耐關(guān)系,單箭頭指向的信號能在箭頭起點信號之前或之后斷言;雙箭頭指向的信號必須在箭頭起點信號斷言之后斷言。

讀傳輸握手依耐關(guān)系

b0b9eefc-990f-11eb-8b86-12bb97331649.png

上圖為讀操作的依賴關(guān)系,ARREADY可以等待ARVALID信號,RVALID必須等待ARVALID和ARREADY同時有效后(一次地址傳輸發(fā)生)才能能有效;

寫傳輸握手依耐關(guān)系

b0c72946-990f-11eb-8b86-12bb97331649.png

從機寫響應(yīng)握手依耐關(guān)系

b0dc6fcc-990f-11eb-8b86-12bb97331649.png

在AXI3中,寫操作中唯一的強依賴關(guān)系是寫響應(yīng)通道BVALID,僅當WVALID和WREADY信號同時有效(數(shù)據(jù)傳輸完成)且WLAST信號有效(突發(fā)傳輸?shù)淖詈笠粋€數(shù)據(jù)傳輸完成)后才會被置位;

在AXI4中,定義了額外的依賴關(guān)系,即BVALID必須依賴AWVALID、AWREADY、WVALID和WREADY信號;

3.2時鐘復(fù)位

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

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

復(fù)位期間對接口有如下要求:

主機接口必須驅(qū)動ARVALID,AWVALID,WVALID為低電平;

從機接口必須驅(qū)動RVALID,BVALID為低電平;

所有其他信號可以被驅(qū)動到任意值。在復(fù)位后,主機可以在時鐘上升沿驅(qū)動ARVALID,AWVALID,WVALID為高電平。

4.傳輸結(jié)構(gòu)

4.1.地址通道數(shù)據(jù)結(jié)構(gòu)

AXI總線是基于突發(fā)傳輸?shù)目偩€,若主機要開始一次突發(fā)傳輸,需要傳輸一次地址和相關(guān)控制信號,之后從機自動計算地址(主機只給出突發(fā)傳輸?shù)牡谝粋€字節(jié)的地址,從機必須計算突發(fā)傳輸后續(xù)的地址),但一次突發(fā)傳輸?shù)牡刂贩秶荒芸缭?KB(防止突發(fā)跨越兩個從機的邊界,也限制了從機所需支持的地址自增數(shù))。

(1)。突發(fā)傳輸信息

突發(fā)長度(AxLEN)

突發(fā)長度為每次突發(fā)傳輸?shù)膫鬏敶螖?shù),范圍限制1~16(AXI4增量模式1~256)。每次傳輸?shù)耐话l(fā)長度為AxLEN[3:0] + 1(AXI增量模式AxLEN[7:0] + 1)

AXI3只支持1~16次的突發(fā)傳輸(Burst_length=AxLEN[3:0]+1);

AXI4擴展突發(fā)長度支持INCR突發(fā)類型為1~256次傳輸,對于其他的傳輸類型依然保持1~16次突發(fā)傳輸(Burst_Length=AxLEN[7:0]+1)。

對于回卷模式突發(fā)傳輸,突發(fā)長度僅能是2,4,8或16。

ARLEN[7:0]:讀地址通道的突發(fā)長度接口

AWLEN[7:0]:寫地址通道的突發(fā)長度接口burst傳輸具有如下規(guī)則:

wraping burst ,burst長度必須是2,4,8,16

burst不能跨4KB邊界

不支持提前終止burst傳輸(可以通過關(guān)閉所有數(shù)據(jù)字段的方式使一段傳輸數(shù)據(jù)無效,但傳輸行為必須完成)

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

提醒:對于FIFO,忽略后續(xù)讀數(shù)據(jù)可能導(dǎo)致數(shù)據(jù)丟失,必須保證突發(fā)傳輸長度和要求的數(shù)據(jù)傳輸大小匹配。

b0e899c8-990f-11eb-8b86-12bb97331649.png

突發(fā)尺寸(AxSIZE)

突發(fā)尺寸為每次傳輸?shù)腷yte數(shù)量,與突發(fā)傳輸?shù)牡刂奉A(yù)測相關(guān)性很強。每次的突發(fā)尺寸不能超過數(shù)據(jù)通道的寬度;若突發(fā)尺寸小于數(shù)據(jù)通道寬度,需要指定哪些位數(shù)是有效的。突發(fā)尺寸為2^AxSIZE[2:0]

ARSIZE[2:0]:讀地址通道突發(fā)尺寸

AWSIZE[2:0]:寫地址通道突發(fā)尺寸突發(fā)類型(AxBURST)

AXI支持三種突發(fā)類型:

FIXED(AxBURST[1:0]=0b00):固定突發(fā)模式,每次突發(fā)傳輸?shù)牡刂废嗤糜贔IFO訪問;

INCR(AxBURST[1:0]=0b01):增量突發(fā)模式,突發(fā)傳輸?shù)刂愤f增,遞增量與突發(fā)尺寸相關(guān)(傳輸過程中,地址遞增。增加量取決AxSIZE的值。)

WRAP(AxBURST[1:0]=0b10):回卷突發(fā)模式,和增量突發(fā)類似,但會在特定高地址的邊界處回到低地址處(傳輸?shù)刂凡粫銎鹗嫉刂匪诘膲K,一旦遞增超出,則回到該塊的起始地址),突發(fā)傳輸?shù)刂房梢绯鲂赃f增,突發(fā)長度僅支持2,4,8,16。傳輸首地址和每次傳輸?shù)拇笮R。最低的地址整個傳輸?shù)臄?shù)據(jù)大小對齊。地址空間被劃分為長度[突發(fā)尺寸*突發(fā)長度]的塊,即回環(huán)邊界等于(AxSIZE*AxLEN)。

(2)。存儲類型(AxCACHE)

AXI4可支持不同的存儲類型,AxCACHE[3:0]用于描述不同的存儲類型,如下圖所示

ARCACHE[3:0]AWCACHE[3:0]Memory type

00000000Device Non-bufferable

00010001Device Bufferable

00100010Normal Non-cacheable Non-bufferable

00110011Normal Non-cacheable Bufferable

10100110Write-through No-allocate

1110 (0110)0110Write-through Read-allocate

10101110 (1010)Write-through Write-allocate

11101110Write-through Read and Write-allocate

10110111Write-back No-allocate

1111(0111) 0111Write-back Read-allocate

10111111 (1011)Write-back Write-allocate

11111111Write-back Read and Write-allocate

4.2.數(shù)據(jù)通道數(shù)據(jù)結(jié)構(gòu)

(1)。數(shù)據(jù)選通(WSTRB)

WSTRB的每一位對應(yīng)數(shù)據(jù)中的8位(1字節(jié)),用于標志數(shù)據(jù)中的對應(yīng)字節(jié)是否有效。即當WSTRB[n] = 1時,標志數(shù)據(jù)中WDATA[(8n)+7: (8n)]部分有效。

WSTRB[n:0]對應(yīng)于對應(yīng)的寫字節(jié),WSTRB[n]對應(yīng)WDATA[8n+7:8n]。WVALID為低時,WSTRB可以為任意值, WVALID為高時,WSTRB為高的字節(jié)線必須指示有效的數(shù)據(jù)。

(2)。數(shù)據(jù)(xDATA)

窄帶傳輸(Narrow transfers)

當主機產(chǎn)生比它數(shù)據(jù)總線xDATA要窄的傳輸時,為窄帶傳輸,每次使用的數(shù)據(jù)位數(shù)不同,由地址和控制信號決定哪個字節(jié)被傳輸:

固定地址的突發(fā)下,使用同一段數(shù)據(jù)信號線

在遞增地址和包裝地址的突發(fā)下,使用不同段信號線INCR和WRAP,不同的字節(jié)線決定每次burst傳輸?shù)臄?shù)據(jù),F(xiàn)IXED,每次傳輸使用相同的字節(jié)線。

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

b0fd1024-990f-11eb-8b86-12bb97331649.png

窄傳輸示例

上圖為地址遞增突發(fā)下,在32位數(shù)據(jù)信號下使用8bit傳輸?shù)恼瓗鬏斒褂玫奈粩?shù)圖。第一次傳輸使用0~7位,第二次使用8~15位,依次遞增;在第五次傳輸時回到開頭使用0~7位。

下圖給出3次突發(fā),起始地址為4,每次傳輸32bit,數(shù)據(jù)總線為64bit。

b12d6756-990f-11eb-8b86-12bb97331649.png

窄傳輸示例

不對齊傳輸(Unaligned transfers)

AXI支持非對齊傳輸。在大于一個字節(jié)的傳輸中,第一個自己的傳輸可能是非對齊的。如32-bit數(shù)據(jù)包起始地址在0x1002,非32bit對齊。主機可以:使用低位地址線來表示非對齊的起始地址;

提供對齊的起始地址,使用字節(jié)線來表示非對齊的起始地址。當傳輸位寬超過1byte,起始地址不為數(shù)據(jù)總線硬件帶寬(byte單位)整數(shù)倍時,為不對齊傳輸。不對齊傳輸?shù)臅r候需要配合數(shù)據(jù)選通在第一次傳輸時將某幾個byte置為無效,使第二次突發(fā)傳輸?shù)钠鹗嫉刂罚◤臋C自動計算)為突發(fā)尺寸的整數(shù)倍。

b43b8220-990f-11eb-8b86-12bb97331649.png

b46c9e00-990f-11eb-8b86-12bb97331649.png

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

b479c166-990f-11eb-8b86-12bb97331649.png

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

b487d7f6-990f-11eb-8b86-12bb97331649.png

對齊的回環(huán)傳輸示例

讀寫響應(yīng)結(jié)構(gòu)

讀傳輸?shù)捻憫?yīng)信息是附加在讀數(shù)據(jù)通道上的,寫傳輸?shù)捻憫?yīng)在寫響應(yīng)通道。

RRESP[1:0],讀傳輸

BRESP[1:0],寫傳輸

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

EXOKAY(’b01):Exclusive 訪問成功

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

DECERR(’b11):譯碼錯誤。一般由互聯(lián)組件給出,表明沒有對應(yīng)的從機地址。

5. AXI-Stream

AXI-Stream,是一種連續(xù)流接口,不需要地址線(類似FIFO,一直讀或一直寫就行)。對于這類IP,ARM必須有一個轉(zhuǎn)換裝置才能對內(nèi)存映射方式控制,例如AXI-DMA模塊來實現(xiàn)內(nèi)存映射到流式接口的轉(zhuǎn)換。

AXI-Stream適用的場合有很多:視頻流處理;通信協(xié)議轉(zhuǎn)換;數(shù)字信號處理;無線通信等。其本質(zhì)都是針對數(shù)值流構(gòu)建的數(shù)據(jù)通路,從信源(例如ARM內(nèi)存、DMA、無線接收前端等)到信宿(例如HDMI顯示器、音頻輸出等)構(gòu)建起連續(xù)的數(shù)據(jù)流。這種接口適合做實時信號處理。

用戶其實不需要對AXI時序了解太多,因為Xilinx已經(jīng)將和AXI時序有關(guān)的細節(jié)都封裝起來,官方IP和向?qū)傻淖远xIP,用戶只需要關(guān)注自己的邏輯實現(xiàn)即可

AXI4-Stream協(xié)議是一種用來連接需要交換數(shù)據(jù)的兩個部件的標準接口,它可以用于連接一個產(chǎn)生數(shù)據(jù)的主機和一個接受數(shù)據(jù)的從機。當然它也可以用于連接多個主機和從機。該協(xié)議支持多種數(shù)據(jù)流使用相同共享總線集合,允許構(gòu)建類似于路由、寬窄總線、窄寬總線等更為普遍的互聯(lián)。

AXI4-Stream接口比較重要的信號線:

ACLK:時鐘線,所有信號都在ACLK上升沿被采樣;

ARESETn:復(fù)位線,低電平有效;

TVALID:主機數(shù)據(jù)同步線,為高表示主機準備好發(fā)送數(shù)據(jù);

TREADY:從機數(shù)據(jù)同步線,為高表示從機準備好接收數(shù)據(jù);這兩根線完成了主機與從機的握手信號,一旦二者都變高有效,數(shù)據(jù)傳輸開始。

TDATA:數(shù)據(jù)線,主機發(fā)送,從機接收。

TKEEP:主機數(shù)據(jù)有效指示,為高代表對應(yīng)的字節(jié)為有效字節(jié),否則表示發(fā)送的為空字節(jié)。

TLAST:主機最后一個字指示,下一clk數(shù)據(jù)將無效,TVALID將變低。

TID,TDEST,TUSER均為多機通信時的信號,不予考慮。

利用AXI總線做轉(zhuǎn)換,可以把PS里DDR4的內(nèi)容以Stream形式發(fā)出去,例如以固定速度送往DA,完成信號發(fā)生器的設(shè)計;

ZYNQ的PS部分是ARM CortexA9系列,支持AXI4,AXI-Lite總線。PL部分也有相應(yīng)AXI總線接口,這樣就能完成PS到PL的互聯(lián)。僅僅這樣還不夠,需要PL部分實現(xiàn)流式轉(zhuǎn)換,即AXI-Stream接口實現(xiàn)。

Xilinx提供的從AXI到AXI-Stream轉(zhuǎn)換的IP核有:AXI-DMA,AXI-Datamover,AXI-FIFO-MM2S以及AXI-VDMA等。

AXI-DMA:實現(xiàn)從PS內(nèi)存到PL高速傳輸高速通道AXI-HP到AXI-Stream的轉(zhuǎn)換;

AXI-FIFO-MM2S:實現(xiàn)從PS內(nèi)存到PL通用傳輸通道AXI-GP到AXI-Stream的轉(zhuǎn)換;

AXI-Datamover:實現(xiàn)從PS內(nèi)存到PL高速傳輸高速通道AXI-HP到AXI-Stream的轉(zhuǎn)換,只不過這次是完全由PL控制的,PS是完全被動的;

AXI-VDMA:實現(xiàn)從PS內(nèi)存到PL高速傳輸高速通道AXI-HP到AXI-Stream的轉(zhuǎn)換,只不過是專門針對視頻、圖像等二維數(shù)據(jù)的。

AXI總線和接口的區(qū)別:

總線是一種標準化接口,由數(shù)據(jù)線、地址線、控制線等構(gòu)成,具有一定的強制性。接口是其物理實現(xiàn),即在硬件上的分配。在ZYNQ中,支持AXI-Lite,AXI4和AXI-Stream三種總線,但PS與PL之間的接口卻只支持前兩種,AXI-Stream只能在PL中實現(xiàn),不能直接和PS相連,必須通過AXI-Lite或AXI4轉(zhuǎn)接。PS與PL之間的物理接口有9個,包括4個AXI-GP接口和4個AXI-HP接口、1個AXI-ACP接口,均為內(nèi)存映射型AXI接口。
編輯:lyn

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

    關(guān)注

    0

    文章

    82

    瀏覽量

    30682
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16510

原文標題:AXI總線知多少?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    SoC設(shè)計中總線協(xié)議AXI4與AXI3的主要區(qū)別詳解

    AXI4和AXI3是高級擴展接口(Advanced eXtensible Interface)的兩個不同版本,它們都是用于SoC(System on Chip)設(shè)計中的總線協(xié)議,用于處理器和其它外設(shè)之間的高速數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 05-10 11:29 ?4214次閱讀
    SoC設(shè)計中<b class='flag-5'>總線</b>協(xié)議<b class='flag-5'>AXI</b>4與<b class='flag-5'>AXI</b>3的主要區(qū)別<b class='flag-5'>詳解</b>

    FPGA通過AXI總線讀寫DDR3實現(xiàn)方式

    AXI總線由一些核心組成,包括AXI主處理器接口(AXI4)、AXI處理器到協(xié)處理器接口(AXI
    發(fā)表于 04-18 11:41 ?1015次閱讀

    AMBA總線AXI設(shè)計的關(guān)鍵問題講解

    首先我們看一下針對AXI接口的IP設(shè)計,在介紹之前我們先回顧一下AXI所具有的一些feature。
    的頭像 發(fā)表于 02-20 17:12 ?1287次閱讀
    AMBA<b class='flag-5'>總線</b>之<b class='flag-5'>AXI</b>設(shè)計的關(guān)鍵問題講解

    漫談AMBA總線-AXI4協(xié)議的基本介紹

    本文主要集中在AMBA協(xié)議中的AXI4協(xié)議。之所以選擇AXI4作為講解,是因為這個協(xié)議在SoC、IC設(shè)計中應(yīng)用比較廣泛。
    發(fā)表于 01-17 12:21 ?1510次閱讀
    漫談AMBA<b class='flag-5'>總線</b>-<b class='flag-5'>AXI</b>4協(xié)議的基本介紹

    AXI總線協(xié)議總結(jié)

    在介紹AXI之前,先簡單說一下總線、 接口 以及協(xié)議的含義 總線、接口和協(xié)議,這三個詞常常被聯(lián)系在一起,但是我們心里要明白他們的區(qū)別。 總線是一組傳輸通道,是各種邏輯器件構(gòu)成的傳輸數(shù)據(jù)
    的頭像 發(fā)表于 12-16 15:55 ?634次閱讀

    XILINX FPGA IP之AXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互連以及其他AXI4系統(tǒng)外設(shè)上生成特定序列(流量)。它根據(jù)IP的編程和選擇的操作模式生成各種類型
    的頭像 發(fā)表于 11-23 16:03 ?1862次閱讀
    XILINX FPGA IP之<b class='flag-5'>AXI</b> Traffic Generator

    藍牙4.1新技術(shù)全面解析(附藍牙掃盲知識)

    電子發(fā)燒友網(wǎng)站提供《藍牙4.1新技術(shù)全面解析(附藍牙掃盲知識).doc》資料免費下載
    發(fā)表于 11-10 16:26 ?1次下載
    藍牙4.1新技術(shù)全面<b class='flag-5'>解析</b>(附藍牙掃盲<b class='flag-5'>知識</b>)

    ZYNQ的ARM和FPGA數(shù)據(jù)交互——AXI交互最重要的細節(jié)

    大部分器件的接口要求,提供互聯(lián)架構(gòu)的靈活性與獨立性。 (1)AXI總線 總線是一組傳輸通道,是各種邏輯器件構(gòu)成的傳輸數(shù)據(jù)的通道,一般由數(shù)據(jù)線、地址線、控制線等構(gòu)成。在ZYNQ中支持三種AXI
    發(fā)表于 11-03 10:51

    AXI傳輸數(shù)據(jù)的過程

    AXI4為例,有AXI full/lite/stream之分。 在Xilinx系列FPGA及其有關(guān)IP核中,經(jīng)常見到AXI總線接口,AXI
    的頭像 發(fā)表于 10-31 15:37 ?862次閱讀
    <b class='flag-5'>AXI</b>傳輸數(shù)據(jù)的過程

    ARM處理器中有些總線APB AHB AXI 3 AXI 4有什么不同?

    ARM處理器中有些總線APB AHB AXI 3 AXI 4,他們的有什么不同,各自作用?
    發(fā)表于 10-24 07:16

    LogiCORE IP AXI UART 16550內(nèi)核簡介

    LogiCORE IP AXI 通用異步接收發(fā)送器 (UART) 16550 連接到高級微控制器總線架構(gòu) (AMBA) AXI,為異步串行數(shù)據(jù)傳輸提供控制器接口。該軟 IP 核旨在通過 AXI
    的頭像 發(fā)表于 10-16 11:02 ?3601次閱讀
    LogiCORE IP <b class='flag-5'>AXI</b> UART 16550內(nèi)核簡介

    LogiCORE JTAG至AXI Master IP核簡介

    LogiCORE JTAG至AXI Master IP核是一個可定制的核,可生成AXIAXI總線可用于處理和驅(qū)動系統(tǒng)中FPGA內(nèi)部的AXI信號。AXI
    的頭像 發(fā)表于 10-16 10:12 ?867次閱讀
    LogiCORE JTAG至<b class='flag-5'>AXI</b> Master IP核簡介

    太陽能光伏相關(guān)知識詳解

    電子發(fā)燒友網(wǎng)站提供《太陽能光伏相關(guān)知識詳解.pdf》資料免費下載
    發(fā)表于 10-08 09:32 ?0次下載
    太陽能光伏相關(guān)<b class='flag-5'>知識</b><b class='flag-5'>詳解</b>

    AXI IIC總線接口介紹

    LogiCORE?IPAXI IIC總線接口連接到AMBA?AXI規(guī)范,提供低速、兩線串行總線接口,可連接大量流行的設(shè)備。
    的頭像 發(fā)表于 09-28 15:56 ?4984次閱讀

    什么是AXIAXI如何工作?

    Xilinx 從 Spartan-6 和 Virtex-6 器件開始采用高級可擴展接口 (AXI) 協(xié)議作為知識產(chǎn)權(quán) (IP) 內(nèi)核。Xilinx 繼續(xù)將 AXI 協(xié)議用于針對 7 系列和 Zynq-7000 All Progr
    的頭像 發(fā)表于 09-27 09:50 ?1406次閱讀
    什么是<b class='flag-5'>AXI</b>?<b class='flag-5'>AXI</b>如何工作?