RM新时代网站-首页

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

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

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

AXI總線協(xié)議的簡(jiǎn)單知識(shí)

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-15 09:16 ? 次閱讀

學(xué)習(xí)內(nèi)容

關(guān)于AXI總線協(xié)議的一些簡(jiǎn)單知識(shí),通過(guò)閱讀Xilinx的使用指導(dǎo)手冊(cè)(UG1037),結(jié)合正點(diǎn)原子的ZYNQ視頻進(jìn)行梳理總結(jié)。

AXI

AXI(Advanced eXtensible Interface) 高級(jí)擴(kuò)展接口ARM AMBA的一部分。(AMBA(Advanced Microcontroller Bus Architecture) 高級(jí)微控制器總線架構(gòu))

AMBA:高級(jí)微控制器總線架構(gòu),是1996年首次引用的一組微控制器總線協(xié)議。開(kāi)放的片內(nèi)互聯(lián)的總線標(biāo)準(zhǔn),能在多主機(jī)設(shè)計(jì)中實(shí)現(xiàn)多個(gè)控制器和外圍設(shè)備之間的連接和管理。在Xilinx公司芯片也廣泛地使用AXI接口用于開(kāi)發(fā)和設(shè)計(jì)。使用axi總線接口可以提高效率、開(kāi)發(fā)的靈活性,以及可移植性。

AXI4 三種類型

AXI4(AXI4-Full)

AXI4(AXI4-Full):用于高性能的存儲(chǔ)器映射需求;(存儲(chǔ)器映射:主機(jī)在對(duì)從機(jī)進(jìn)行讀寫(xiě)操作時(shí),指定一個(gè)目標(biāo)地址,這個(gè)地址對(duì)應(yīng)系統(tǒng)存儲(chǔ)空間的地址,表示對(duì)該空間進(jìn)讀寫(xiě)操作。)AXI4用于存儲(chǔ)器映射接口,允許高達(dá)256個(gè)數(shù)據(jù)的的高吞吐量突發(fā)傳輸,并且傳輸周期只需要一個(gè)地址。

AXI4-Lite

AXI4-Lite:簡(jiǎn)化版的AXI4接口。用于低吞吐率存儲(chǔ)器映射的通信。AXI4-Lite是一個(gè)輕量級(jí)、單次傳輸存儲(chǔ)器映射接口。它使用了少量的邏輯器件進(jìn)行實(shí)現(xiàn)總線功能,AXI4-Lite接口簡(jiǎn)單,在設(shè)計(jì)開(kāi)發(fā)中簡(jiǎn)單易用。

AXI4-Stream

AXI4-Stream:用于高速的流數(shù)據(jù)通信。AXI4-Stream完全去除了對(duì)地址的需求,并允許無(wú)限制數(shù)據(jù)大小的數(shù)據(jù)突發(fā)的數(shù)據(jù)傳輸。AXI4-Stream接口在傳輸時(shí)沒(méi)有使用地址單元,所以不是存儲(chǔ)器映射。所以在對(duì)于那些只關(guān)心數(shù)據(jù),對(duì)地址不關(guān)心或者沒(méi)有地址需求的接口,可以采用AXI4-Stream接口。

AXI的工作方式

AXI4和AXI4-Lite包含5個(gè)獨(dú)立的通道:

寫(xiě)地址通道

讀地址通道

寫(xiě)數(shù)據(jù)通道

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

寫(xiě)響應(yīng)通道

數(shù)據(jù)可以同時(shí)在主機(jī)和從機(jī)之間雙向移動(dòng),并且數(shù)據(jù)傳輸大小可以不同。AXI4中的限制是一個(gè)突發(fā)傳輸最多可以傳輸256個(gè)數(shù)據(jù)。AXI4-Lite只允許單次傳輸一個(gè)數(shù)據(jù)。

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

下圖演示了AXI總線如何進(jìn)行讀取數(shù)據(jù)的操作:d78c8900-03d4-11ed-ba43-dac502259ad0.png首先由主機(jī)通過(guò)讀取地址通道發(fā)送地址和讀操作的指令,在從機(jī)接收到讀操作,并正確讀取從主機(jī)發(fā)送的地址,通過(guò)讀取數(shù)據(jù)通道將數(shù)據(jù)由從機(jī)發(fā)送到主機(jī)。

寫(xiě)入數(shù)據(jù)

下圖演示了AXI總線如何進(jìn)行寫(xiě)入數(shù)據(jù)的操作:d7a15b5a-03d4-11ed-ba43-dac502259ad0.png首先由主機(jī)通過(guò)寫(xiě)入地址通道發(fā)送地址和寫(xiě)操作的指令,在從機(jī)接收到寫(xiě)操作,開(kāi)始接收主機(jī)從讀取數(shù)據(jù)通道發(fā)送的數(shù)據(jù)信息并寫(xiě)入從機(jī),當(dāng)完成寫(xiě)入操作后,寫(xiě)響應(yīng)通道將回應(yīng)寫(xiě)響應(yīng)。

存儲(chǔ)器映射協(xié)議

通過(guò)賦予每個(gè)任務(wù)不同的虛擬–物理地址轉(zhuǎn)換映射,支持不同任務(wù)之間的保護(hù)。地址轉(zhuǎn)換函數(shù)在每一個(gè)任務(wù)中定義,在一個(gè)任務(wù)中的虛擬地址空間映射到物理內(nèi)存的一個(gè)部分,而另一個(gè)任務(wù)的虛擬地址空間映射到物理存儲(chǔ)器中的另外區(qū)域。就是把一個(gè)地址連接到另一個(gè)地址。

AXI4-Stream協(xié)議

AXI4-Stream協(xié)議用于通常用于以數(shù)據(jù)為主和數(shù)據(jù)流的應(yīng)用實(shí)例中,其中不存在或不需要地址的概念。每個(gè)AXI4-Stream都充當(dāng)一個(gè)單向通道,并帶有一個(gè)握手?jǐn)?shù)據(jù)流。

連接存儲(chǔ)器映射和 AXI4-Stream

一種常見(jiàn)的方法是構(gòu)建將AXI4-Stream和AXI內(nèi)存映射IP結(jié)合在一起的系統(tǒng)。通常,DMA的IP可用于將數(shù)據(jù)流移入或移出內(nèi)存。例如,處理器可以與DMA一起工作來(lái)解碼數(shù)據(jù)包,或者在流數(shù)據(jù)之上實(shí)現(xiàn)一個(gè)協(xié)議棧,從而構(gòu)建更復(fù)雜的系統(tǒng),使數(shù)據(jù)在不同的應(yīng)用程序空間或不同的IP之間移動(dòng)。

使用HLS添加AXI接口

在HLS中支持函數(shù)自動(dòng)綜合生成下面的AXI總線接口:? AXI4-Stream (axis)? AXI4-Lite slave (s_axilite)? AXI4 master (m_axi)

HLS AXI4-Stream Interface

你可以將AXI4-Stream接口(axis模式)應(yīng)用于任何輸入參數(shù)和任何數(shù)組或指針輸出參數(shù)。因?yàn)閍xis 4- stream接口以順序流的方式傳輸數(shù)據(jù),所以不能與既可讀又可寫(xiě)的參數(shù)一起使用。在設(shè)計(jì)時(shí)候又分為帶side-channel和不帶side-channel。帶side-channel:使用帶有邊通道的axis4 - stream接口提供了額外的功能,允許作為組件的一部分的可選side-channel AXI4-Stream標(biāo)準(zhǔn),可直接用于C代碼。(這里我的理解是使用axi接口做了拓展功能)不帶side-channel:使用AXI4-Stream 時(shí)候,數(shù)據(jù)類型不包含任何AXI4 side-channel的參數(shù)。(這里我的理解是僅僅使用數(shù)據(jù)流的交互)下面給出一個(gè)HLS設(shè)計(jì)的實(shí)例:d7afd644-03d4-11ed-ba43-dac502259ad0.png綜合后對(duì)于A、B兩個(gè)端口,都被定義為了AXI4-Stream的接口。而多了VALID和READY用于檢測(cè)數(shù)據(jù)的是否有效和準(zhǔn)備狀態(tài)。d7c5f76c-03d4-11ed-ba43-dac502259ad0.png

HLS AXI4-Lite Interface

AXI4-Lite slave接口通常用于可以被微控制器和處理器控制的外設(shè)和設(shè)備接口。AXI4-Lite slave接口的Vivado HLS特性(s_axilite模式):

將多個(gè)端口分組到同一個(gè)AXI4-Lite從接口。

將設(shè)計(jì)導(dǎo)出到Vivado IP目錄時(shí),輸出C函數(shù)和頭文件以與處理器上運(yùn)行的代碼一起使用。下面給出一個(gè)多個(gè)不同端口分配到一個(gè)接口的實(shí)例:

void example(char *a, char *b, char *c)
{
#pragma HLS INTERFACE s_axilite port=return bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=a bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=b bundle=BUS_A
#pragma HLS INTERFACE s_axilite port=c bundle=BUS_A
*c += *a + *b;
}

綜合后的結(jié)果:d7d440c4-03d4-11ed-ba43-dac502259ad0.png

HLS AXI4 Master Interface

您可以在任何數(shù)組或指針/引用參數(shù)、實(shí)現(xiàn)HLS AXI4 Master接口(m_axi模式)。該接口使用兩種模式:一是單獨(dú)的數(shù)據(jù)傳輸,二是使用C memcpy功能的突發(fā)模式數(shù)據(jù)傳輸。單獨(dú)的數(shù)據(jù)傳輸模式:d7f1cf7c-03d4-11ed-ba43-dac502259ad0.png在這兩個(gè)例子中,通過(guò)AXI4 Master接口進(jìn)行的數(shù)據(jù)傳輸都是簡(jiǎn)單的讀或?qū)懖僮?一次傳輸一個(gè)地址和一個(gè)數(shù)據(jù)值。突發(fā)模式傳輸: 突發(fā)模式使用一個(gè)單一的基址傳輸數(shù)據(jù),該基址后面跟著多個(gè)連續(xù)的數(shù)據(jù)樣本,并且能夠?qū)崿F(xiàn)更高的數(shù)據(jù)吞吐量。只有在使用C memcpy函數(shù)將數(shù)據(jù)讀入或讀出用于合成的頂級(jí)函數(shù)時(shí),才可能使用突發(fā)模式。下面給出一個(gè)具體實(shí)例:

void example(volatile int *a){
#pragma HLS INTERFACE m_axi depth=50 port=a
#pragma HLS INTERFACE s_axilite port=return bundle=AXILiteS
//Port a is assigned to an AXI4-master interface
int i;
int buff[50];
// memcpy creates a burst access to memory
memcpy(buff,(const int*)a,50*sizeof(int));
for(i=0; i < 50; i++){
buff[i] = buff[i] + 100;
}
memcpy((int *)a,buff,50*sizeof(int));
}

當(dāng)你用前面的例子合成一個(gè)設(shè)計(jì)時(shí),它會(huì)產(chǎn)生如下圖所示的接口(AXI接口):d804d75c-03d4-11ed-ba43-dac502259ad0.png

原文標(biāo)題:使用HLS添加AXI接口

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

審核編輯:彭靜

聲明:本文內(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)投訴
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7484

    瀏覽量

    163761
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8575

    瀏覽量

    151014
  • AXI總線
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    14261

原文標(biāo)題:使用HLS添加AXI接口

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Xilinx zynq AXI總線全面解讀

    AXI (Advanced eXtensible Interface) 本是由ARM公司提出的一種總線協(xié)議, Xilinx從 6 系列的 FPGA 開(kāi)始對(duì) AXI
    的頭像 發(fā)表于 12-04 12:22 ?7117次閱讀
     Xilinx zynq <b class='flag-5'>AXI</b><b class='flag-5'>總線</b>全面解讀

    AXI總線協(xié)議的幾種時(shí)序介紹

    由于ZYNQ架構(gòu)和常用接口IP核經(jīng)常出現(xiàn) AXI協(xié)議,賽靈思的協(xié)議手冊(cè)講解時(shí)序比較分散。所以筆者收藏AXI協(xié)議的幾種時(shí)序,方便編程。
    發(fā)表于 08-02 12:42 ?8066次閱讀

    玩轉(zhuǎn)Zynq連載3——AXI總線協(xié)議介紹1

    `玩轉(zhuǎn)Zynq連載3——AXI總線協(xié)議介紹1 更多資料共享 鏈接:https://share.weiyun.com/5s6bA0s 1 AXI協(xié)議
    發(fā)表于 05-06 16:55

    AXI接口協(xié)議詳解

    AXI 總線上面介紹了AMBA總線中的兩種,下面看下我們的主角—AXI,在ZYNQ中有支持三種AXI總線
    發(fā)表于 04-08 10:45

    AXI接口協(xié)議詳解

    1、AXI接口協(xié)議詳解  AXI 總線  上面介紹了AMBA總線中的兩種,下面看下我們的主角—AXI
    發(fā)表于 10-14 15:31

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

    本文介紹了AMBA3.0AXI的結(jié)構(gòu)和特點(diǎn),分析了新的AMBA3.0AXI協(xié)議相對(duì)于AMBA2.0的優(yōu)點(diǎn)。它將革新未來(lái)高性能SOC總線互連技術(shù),其特點(diǎn)使它更加適合未來(lái)的高性能、低延遲設(shè)
    發(fā)表于 09-20 08:30

    AXI總線協(xié)議的幾種時(shí)序介紹

    由于ZYNQ架構(gòu)和常用接口IP核經(jīng)常出現(xiàn) AXI協(xié)議,賽靈思的協(xié)議手冊(cè)講解時(shí)序比較分散。所以筆者收藏AXI協(xié)議的幾種時(shí)序,方便編程。
    發(fā)表于 05-12 09:10 ?1.1w次閱讀
    <b class='flag-5'>AXI</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>的幾種時(shí)序介紹

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

    在介紹AXI之前,先簡(jiǎn)單說(shuō)一下總線、接口以及協(xié)議的含義。總線、接口和協(xié)議,這三個(gè)詞常常被聯(lián)系在一
    發(fā)表于 02-04 06:00 ?10次下載
    <b class='flag-5'>AXI</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>總結(jié)

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

    AXI是個(gè)什么東西呢,它其實(shí)不屬于Zynq,不屬于Xilinx,而是屬于ARM。它是ARM最新的總線接口,以前叫做AMBA,從3.0以后就稱為AXI了。
    的頭像 發(fā)表于 04-09 17:10 ?5810次閱讀
    對(duì)<b class='flag-5'>AXI</b><b class='flag-5'>總線</b><b class='flag-5'>知識(shí)</b>詳解解析

    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)高性能SOC總線互連技術(shù),其特點(diǎn)使它更加適合未來(lái)的高性
    發(fā)表于 04-12 15:47 ?28次下載

    AXI總線協(xié)議簡(jiǎn)介

      AXI (高性能擴(kuò)展總線接口,Advanced eXtensible Interface)是ARM AMBA 單片機(jī)總線系列中的一個(gè)協(xié)議,是計(jì)劃用于高性能、高主頻的系統(tǒng)設(shè)計(jì)的。
    發(fā)表于 10-10 09:22 ?1w次閱讀

    AXI總線協(xié)議:AHB、APB、AXI對(duì)比分析

    V1.0 ASB、APB是第一代AMBA協(xié)議的一部分。主要應(yīng)用在低帶寬的外設(shè)上,如UART、 I2C,它的架構(gòu)不像AHB總線是多主設(shè)備的架構(gòu),APB總線的唯一主設(shè)備是APB橋(與AXI
    發(fā)表于 04-14 10:54 ?3482次閱讀

    AXI4-Lite協(xié)議簡(jiǎn)明學(xué)習(xí)筆記

    AXI4協(xié)議是ARM的AMBA總線協(xié)議重要部分,ARM介紹AXI4總線
    發(fā)表于 06-19 11:17 ?3654次閱讀
    <b class='flag-5'>AXI</b>4-Lite<b class='flag-5'>協(xié)議</b>簡(jiǎn)明學(xué)習(xí)筆記

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

    在介紹AXI之前,先簡(jiǎn)單說(shuō)一下總線、 接口 以及協(xié)議的含義 總線、接口和協(xié)議,這三個(gè)詞常常被聯(lián)系
    的頭像 發(fā)表于 12-16 15:55 ?825次閱讀

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

    AXI4和AXI3是高級(jí)擴(kuò)展接口(Advanced eXtensible Interface)的兩個(gè)不同版本,它們都是用于SoC(System on Chip)設(shè)計(jì)中的總線協(xié)議,用于處
    的頭像 發(fā)表于 05-10 11:29 ?6612次閱讀
    SoC設(shè)計(jì)中<b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>AXI</b>4與<b class='flag-5'>AXI</b>3的主要區(qū)別詳解
    RM新时代网站-首页