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

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

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

對(duì)AXI總線知識(shí)詳解解析

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

前言

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

1.簡(jiǎn)介

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

AXI(Advanced eXtensible Interface)是一種總線協(xié)議,該協(xié)議是ARM公司提出的AMBA3.0中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內(nèi)總線。AMBA4.0將其修改升級(jí)為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 )是一個(gè)輕量級(jí)的地址映射單次傳輸接口,占用很少的邏輯單元。

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

1.1 AXI協(xié)議特點(diǎn)

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

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

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

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

適合高初始延時(shí)的存儲(chǔ)控制器

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

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

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

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

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

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

支持多種尋址方式

支持亂序傳輸

易于添加寄存器級(jí)來(lái)進(jìn)行時(shí)序收斂

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

1.2 AXI讀寫架構(gòu)

AXI協(xié)議是基于burst的傳輸,并且定義了以下5個(gè)獨(dú)立的傳輸通道:讀地址通道、讀數(shù)據(jù)通道、寫地址通道、寫數(shù)據(jù)通道、寫響應(yīng)通道。 地址通道攜帶控制消息,用于描述被傳輸?shù)臄?shù)據(jù)屬性;數(shù)據(jù)傳輸使用寫通道來(lái)實(shí)現(xiàn)master到slave的傳輸,slave使用寫響應(yīng)通道來(lái)完成一次寫傳輸;讀通道用來(lái)實(shí)現(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的握手機(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/1024 bit)和指示讀傳輸完成的讀響應(yīng)信號(hào);

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

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

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

read address讀地址通道主機(jī)-》從機(jī)

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

write address寫地址通道主機(jī)-》從機(jī)

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

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

1.3 接口和互聯(lián)

AXI協(xié)議提供單一的接口定義,用在下述三種接口之間:master/interconnect、slave/interconnect、master/slave??梢允褂靡韵聨追N典型的系統(tǒng)拓?fù)浼軜?gòu):

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

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

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

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

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

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

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

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

2.信號(hào)描述

信號(hào)名來(lái)源描述

ACLKsystem clock全局時(shí)鐘信號(hào)

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

全局信號(hào)

信號(hào)名來(lái)源描述

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

AWADDRmaster寫地址

AWLENmaster突發(fā)長(zhǎng)度

AWSIZEmaster突發(fā)尺寸(每次突發(fā)傳輸?shù)淖铋L(zhǎng)byte數(shù))

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

AWCACHEmaster存儲(chǔ)類型(標(biāo)記系統(tǒng)需要的傳輸類型)

AWPROTmaster保護(hù)模式

AWQOSmasterQoS標(biāo)識(shí)符

AWREGIONmasterregion標(biāo)識(shí)符(當(dāng)slave有多種邏輯接口時(shí)標(biāo)識(shí)使用的邏輯接口)

AWUSERmaster用戶自定義信號(hào)

AWVALIDmaster寫地址有效信號(hào)(有效時(shí)表示AWADDR上地址有效)

AWREADYmaster寫從機(jī)就緒信號(hào)(有效時(shí)表示從機(jī)準(zhǔn)備好接收地址)

寫地址通道信號(hào)

信號(hào)名來(lái)源描述

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

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

WLASTmasterlast信號(hào)(有效時(shí)表示當(dāng)前為突發(fā)傳輸最后一個(gè)數(shù)據(jù))

WUSERmaster用戶自定義信號(hào)

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

WREADYslave寫ready信號(hào)(有效時(shí)表示從機(jī)準(zhǔn)備好接收數(shù)據(jù))

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

信號(hào)名來(lái)源描述

BIDslave響應(yīng)ID

BRESPslave寫響應(yīng)

BUSERslave用戶自定義信號(hào)

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

BREADYmaster寫響應(yīng)ready(主機(jī)準(zhǔn)備好接受寫響應(yīng)信號(hào))

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

信號(hào)名來(lái)源描述

ARIDmaster讀地址ID

ARADDRmaster讀地址

ARLENmaster突發(fā)長(zhǎng)度

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

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

ARCACHEmaster存儲(chǔ)類型

ARPROTmaster保護(hù)類型

ARQOSmasterQoS標(biāo)識(shí)符

ARREGIONmaster區(qū)域標(biāo)識(shí)符

ARUSERmaster用戶自定義

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

ARREADYslave寫有效信號(hào)(有效時(shí)表示從機(jī)準(zhǔn)備好接收讀地址)

讀地址通道信號(hào)

信號(hào)名來(lái)源描述

RIDslave讀ID標(biāo)簽

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

RRESPslave讀響應(yīng)

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

RUSERslave用戶自定義

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

RREADYmaster主機(jī)就緒信號(hào)(有效時(shí)表示)

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

信號(hào)名來(lái)源描述

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

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

CACTIVEPeripheral device外設(shè)申請(qǐng)時(shí)鐘信號(hào)

低功耗接口信號(hào)

3.信號(hào)接口要求

3.1讀寫傳輸

3.1.1 握手過(guò)程

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

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

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

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

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

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

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

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

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

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

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

READY默認(rèn)狀態(tài)不關(guān)心,僅當(dāng)準(zhǔn)備好接收時(shí)拉高READY通道信號(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è)用來(lái)斷言AWVALID,一個(gè)用來(lái)斷言AWREADY);當(dāng)AWREADY為高時(shí),從機(jī)必須能夠接受提供給它的有效地址。

寫數(shù)據(jù)通道:在寫突發(fā)傳輸過(guò)程中,主機(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è)用來(lái)斷言ARVALID,一個(gè)用來(lái)斷言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í)候一旦開(kāi)始讀傳輸就能立馬接受讀數(shù)據(jù)。當(dāng)最后一次突發(fā)讀傳輸時(shí),從機(jī)需要斷言RLAST。

3.1.2 通道順序

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.2時(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.傳輸結(jié)構(gòu)

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

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

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

突發(fā)長(zhǎng)度(AxLEN)

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

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)。

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

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

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

wraping burst ,burst長(zhǎng)度必須是2,4,8,16

burst不能跨4KB邊界

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

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

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

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

突發(fā)尺寸(AxSIZE)

突發(fā)尺寸為每次傳輸?shù)腷yte數(shù)量,與突發(fā)傳輸?shù)牡刂奉A(yù)測(cè)相關(guān)性很強(qiáng)。每次的突發(fā)尺寸不能超過(guò)數(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訪問(wèn);

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

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

(2)。存儲(chǔ)類型(AxCACHE)

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

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的每一位對(duì)應(yīng)數(shù)據(jù)中的8位(1字節(jié)),用于標(biāo)志數(shù)據(jù)中的對(duì)應(yīng)字節(jié)是否有效。即當(dāng)WSTRB[n] = 1時(shí),標(biāo)志數(shù)據(jù)中WDATA[(8n)+7: (8n)]部分有效。

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

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

窄帶傳輸(Narrow transfers)

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

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

在遞增地址和包裝地址的突發(fā)下,使用不同段信號(hào)線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ù)信號(hào)下使用8bit傳輸?shù)恼瓗鬏斒褂玫奈粩?shù)圖。第一次傳輸使用0~7位,第二次使用8~15位,依次遞增;在第五次傳輸時(shí)回到開(kāi)頭使用0~7位。

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

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

窄傳輸示例

不對(duì)齊傳輸(Unaligned transfers)

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

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

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

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

對(duì)齊非對(duì)齊傳輸示例1-32bit總線

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

對(duì)齊非對(duì)齊傳輸示例2-64bit總線

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

對(duì)齊的回環(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):正常訪問(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ī)地址。

5. AXI-Stream

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

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

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

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

AXI4-Stream接口比較重要的信號(hào)線:

ACLK:時(shí)鐘線,所有信號(hào)都在ACLK上升沿被采樣;

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

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

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

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

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

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

TID,TDEST,TUSER均為多機(jī)通信時(shí)的信號(hào),不予考慮。

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

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

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

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

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

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 總線接口
    +關(guān)注

    關(guān)注

    0

    文章

    82

    瀏覽量

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

    關(guān)注

    1

    文章

    127

    瀏覽量

    16631

原文標(biāo)題:AXI總線知多少?

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AMBA AXI4接口協(xié)議概述

    AMBA AXI4(高級(jí)可擴(kuò)展接口 4)是 ARM 推出的第四代 AMBA 接口規(guī)范。AMD Vivado Design Suite 2014 和 ISE Design Suite 14 憑借半導(dǎo)體產(chǎn)業(yè)首個(gè)符合 AXI4 標(biāo)準(zhǔn)的即插即用型 IP 進(jìn)一步擴(kuò)展了 AMD 平臺(tái)
    的頭像 發(fā)表于 10-28 10:46 ?223次閱讀
    AMBA <b class='flag-5'>AXI</b>4接口協(xié)議概述

    【CAN總線知識(shí)】深度解析CAN-FD與CAN協(xié)議的差別

    導(dǎo)讀隨著工業(yè)的發(fā)展,工業(yè)總線上的數(shù)據(jù)量越來(lái)越多,這使得CAN總線的逐漸達(dá)到負(fù)荷極限,這就需要改進(jìn)原有的總線來(lái)提高總線傳輸速率,CAN-FD便在這樣的背景下誕生了。隨著當(dāng)今工業(yè)的發(fā)展,尤
    的頭像 發(fā)表于 10-23 08:06 ?610次閱讀
    【CAN<b class='flag-5'>總線</b><b class='flag-5'>知識(shí)</b>】深度<b class='flag-5'>解析</b>CAN-FD與CAN協(xié)議的差別

    CAN底層報(bào)文抓到了,卻不知怎么解析?以及如何看到信號(hào)運(yùn)行狀態(tài)?

    本文介紹CAN總線中DBC文件的重要性及ZCANPRO如何實(shí)現(xiàn)DBC解析、數(shù)據(jù)發(fā)送和實(shí)時(shí)曲線分析,幫助您更有效地分析和利用CAN總線數(shù)據(jù)。在CAN總線的實(shí)際應(yīng)用中,我們經(jīng)常需要
    的頭像 發(fā)表于 09-30 08:05 ?1165次閱讀
    CAN底層報(bào)文抓到了,卻不知怎么<b class='flag-5'>解析</b>?以及如何看到信號(hào)運(yùn)行狀態(tài)?

    自動(dòng)售貨機(jī)MDB總線周邊設(shè)備地址中文解析(三)

    自動(dòng)售貨機(jī)MDB協(xié)議中文解析(三)MDB總線周邊設(shè)備地址
    發(fā)表于 09-09 10:43 ?0次下載

    EEPROM讀寫程序詳解

    EEPROM(Electrically Erasable Programmable Read-Only Memory)讀寫程序的詳解涉及多個(gè)方面,包括EEPROM的基本工作原理、讀寫流程、編程接口、代碼示例以及注意事項(xiàng)等。以下是對(duì)EEPROM讀寫程序的詳細(xì)解析。
    的頭像 發(fā)表于 09-05 12:32 ?2115次閱讀

    【技術(shù)分享】CAN總線相關(guān)知識(shí)探討以及Model3C兩路CAN的應(yīng)用

    CAN總線相關(guān)知識(shí),以個(gè)位數(shù)價(jià)格的工業(yè)級(jí)HMI芯片–Model3C為例, 2路CAN的應(yīng)用
    的頭像 發(fā)表于 09-05 10:59 ?550次閱讀
    【技術(shù)分享】CAN<b class='flag-5'>總線</b>相關(guān)<b class='flag-5'>知識(shí)</b>探討以及Model3C兩路CAN的應(yīng)用

    Xilinx NVMe AXI4主機(jī)控制器,AXI4接口高性能版本介紹

    NVMe AXI4 Host Controller IP可以連接高速存儲(chǔ)PCIe SSD,無(wú)需CPU,自動(dòng)加速處理所有的NVMe協(xié)議命令,具備獨(dú)立的數(shù)據(jù)寫入和讀取AXI4接口,不但適用高性能、順序
    的頭像 發(fā)表于 07-18 09:17 ?553次閱讀
    Xilinx NVMe <b class='flag-5'>AXI</b>4主機(jī)控制器,<b class='flag-5'>AXI</b>4接口高性能版本介紹

    有關(guān)PL端利用AXI總線控制PS端DDR進(jìn)行讀寫(從機(jī)wready信號(hào)一直不拉高)

    怎么判斷他到底采用了這三種握手里面的哪種握手,這實(shí)在令人費(fèi)解。還是PS端的DDR的機(jī)制的問(wèn)題。 5.31 update: 問(wèn)題找到部分: 情形一:接口的設(shè)置上,如果是設(shè)置為AXI4,如圖所示, 那么
    發(fā)表于 05-31 12:04

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

    AXI4和AXI3是高級(jí)擴(kuò)展接口(Advanced eXtensible Interface)的兩個(gè)不同版本,它們都是用于SoC(System on Chip)設(shè)計(jì)中的總線協(xié)議,用于處理器和其它外設(shè)之間的高速數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 05-10 11:29 ?6732次閱讀
    SoC設(shè)計(jì)中<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通過(guò)AXI總線讀寫DDR3實(shí)現(xiàn)方式

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

    SoC芯片的CAN總線基礎(chǔ)知識(shí)詳解(一)

    CAN總線(Controller Area Network)是一種用于車輛、工業(yè)自動(dòng)化和其他領(lǐng)域的高可靠性、實(shí)時(shí)性強(qiáng)的串行通信協(xié)議。
    的頭像 發(fā)表于 04-12 10:07 ?1657次閱讀
    SoC芯片的CAN<b class='flag-5'>總線</b>基礎(chǔ)<b class='flag-5'>知識(shí)</b><b class='flag-5'>詳解</b>(一)

    PCIe-AXI-Cont用戶手冊(cè)

    PCIe-AXI-Controller兼容PCI Express base Specification Revision 3.1,實(shí)現(xiàn)PCIe PHY layer,Data link layer以及
    發(fā)表于 02-22 09:15 ?3次下載

    PCIe控制器(FPGA或ASIC),PCIe-AXI-Controller

    PCIe-AXI-Controller兼容PCI Express Base Specification Revision 3.1,實(shí)現(xiàn)PCIe PHY Layer,Data Link Layer以及
    的頭像 發(fā)表于 02-21 15:15 ?921次閱讀
    PCIe控制器(FPGA或ASIC),PCIe-<b class='flag-5'>AXI</b>-Controller

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

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

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

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