<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

AXI總線協議的簡單知識

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-15 09:16 ? 次閱讀

學習內容

關于AXI總線協議的一些簡單知識,通過閱讀Xilinx的使用指導手冊(UG1037),結合正點原子的ZYNQ視頻進行梳理總結。

AXI

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

AMBA:高級微控制器總線架構,是1996年首次引用的一組微控制器總線協議。開放的片內互聯的總線標準,能在多主機設計中實現多個控制器和外圍設備之間的連接和管理。在Xilinx公司芯片也廣泛地使用AXI接口用于開發和設計。使用axi總線接口可以提高效率、開發的靈活性,以及可移植性。

AXI4 三種類型

AXI4(AXI4-Full)

AXI4(AXI4-Full):用于高性能的存儲器映射需求;(存儲器映射:主機在對從機進行讀寫操作時,指定一個目標地址,這個地址對應系統存儲空間的地址,表示對該空間進讀寫操作。)AXI4用于存儲器映射接口,允許高達256個數據的的高吞吐量突發傳輸,并且傳輸周期只需要一個地址。

AXI4-Lite

AXI4-Lite:簡化版的AXI4接口。用于低吞吐率存儲器映射的通信。AXI4-Lite是一個輕量級、單次傳輸存儲器映射接口。它使用了少量的邏輯器件進行實現總線功能,AXI4-Lite接口簡單,在設計開發中簡單易用。

AXI4-Stream

AXI4-Stream:用于高速的流數據通信。AXI4-Stream完全去除了對地址的需求,并允許無限制數據大小的數據突發的數據傳輸。AXI4-Stream接口在傳輸時沒有使用地址單元,所以不是存儲器映射。所以在對于那些只關心數據,對地址不關心或者沒有地址需求的接口,可以采用AXI4-Stream接口。

AXI的工作方式

AXI4和AXI4-Lite包含5個獨立的通道:

寫地址通道

讀地址通道

寫數據通道

讀數據通道

寫響應通道

數據可以同時在主機和從機之間雙向移動,并且數據傳輸大小可以不同。AXI4中的限制是一個突發傳輸最多可以傳輸256個數據。AXI4-Lite只允許單次傳輸一個數據。

讀取數據

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

寫入數據

下圖演示了AXI總線如何進行寫入數據的操作:d7a15b5a-03d4-11ed-ba43-dac502259ad0.png首先由主機通過寫入地址通道發送地址和寫操作的指令,在從機接收到寫操作,開始接收主機從讀取數據通道發送的數據信息并寫入從機,當完成寫入操作后,寫響應通道將回應寫響應。

存儲器映射協議

通過賦予每個任務不同的虛擬–物理地址轉換映射,支持不同任務之間的保護。地址轉換函數在每一個任務中定義,在一個任務中的虛擬地址空間映射到物理內存的一個部分,而另一個任務的虛擬地址空間映射到物理存儲器中的另外區域。就是把一個地址連接到另一個地址。

AXI4-Stream協議

AXI4-Stream協議用于通常用于以數據為主和數據流的應用實例中,其中不存在或不需要地址的概念。每個AXI4-Stream都充當一個單向通道,并帶有一個握手數據流。

連接存儲器映射和 AXI4-Stream

一種常見的方法是構建將AXI4-Stream和AXI內存映射IP結合在一起的系統。通常,DMA的IP可用于將數據流移入或移出內存。例如,處理器可以與DMA一起工作來解碼數據包,或者在流數據之上實現一個協議棧,從而構建更復雜的系統,使數據在不同的應用程序空間或不同的IP之間移動。

使用HLS添加AXI接口

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

HLS AXI4-Stream Interface

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

HLS AXI4-Lite Interface

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

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

將設計導出到Vivado IP目錄時,輸出C函數和頭文件以與處理器上運行的代碼一起使用。下面給出一個多個不同端口分配到一個接口的實例:

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;
}

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

HLS AXI4 Master Interface

您可以在任何數組或指針/引用參數、實現HLS AXI4 Master接口(m_axi模式)。該接口使用兩種模式:一是單獨的數據傳輸,二是使用C memcpy功能的突發模式數據傳輸。單獨的數據傳輸模式:d7f1cf7c-03d4-11ed-ba43-dac502259ad0.png在這兩個例子中,通過AXI4 Master接口進行的數據傳輸都是簡單的讀或寫操作:一次傳輸一個地址和一個數據值。突發模式傳輸: 突發模式使用一個單一的基址傳輸數據,該基址后面跟著多個連續的數據樣本,并且能夠實現更高的數據吞吐量。只有在使用C memcpy函數將數據讀入或讀出用于合成的頂級函數時,才可能使用突發模式。下面給出一個具體實例:

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));
}

當你用前面的例子合成一個設計時,它會產生如下圖所示的接口(AXI接口):d804d75c-03d4-11ed-ba43-dac502259ad0.png

原文標題:使用HLS添加AXI接口

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭靜

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7211

    瀏覽量

    162298
  • 接口
    +關注

    關注

    33

    文章

    7829

    瀏覽量

    148908
  • AXI總線
    +關注

    關注

    0

    文章

    66

    瀏覽量

    14170

原文標題:使用HLS添加AXI接口

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

收藏 人收藏

    評論

    相關推薦

    AXI總線協議的幾種時序介紹

    由于ZYNQ架構和常用接口IP核經常出現 AXI協議,賽靈思的協議手冊講解時序比較分散。所以筆者收藏AXI協議的幾種時序,方便編程。
    發表于 08-02 12:42 ?7190次閱讀

    玩轉Zynq連載3——AXI總線協議介紹1

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

    AXI接口協議詳解

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

    AXI接口協議詳解

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

    AMBA3.0 AXI總線接口協議的研究與應用

    本文介紹了AMBA3.0AXI的結構和特點,分析了新的AMBA3.0AXI協議相對于AMBA2.0的優點。它將革新未來高性能SOC總線互連技術,其特點使它更加適合未來的高性能、低延遲設
    發表于 09-20 08:30

    AXI總線協議的幾種時序介紹

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

    AXI 總線交互分為 Master / Slave 兩端

    在 AMBA 系列之 AXI 總線協議初探 中,了解到 AXI 總線交互分為 Master / Slave 兩端,而且標準的
    的頭像 發表于 02-08 11:44 ?1.3w次閱讀

    總線、接口以及協議的含義

    在介紹AXI之前,先簡單說一下總線、接口以及協議的含義。總線、接口和協議,這三個詞常常被聯系在一
    的頭像 發表于 02-08 11:38 ?6880次閱讀
    <b class='flag-5'>總線</b>、接口以及<b class='flag-5'>協議</b>的含義

    AXI總線協議總結

    在介紹AXI之前,先簡單說一下總線、接口以及協議的含義。總線、接口和協議,這三個詞常常被聯系在一
    發表于 02-04 06:00 ?10次下載
    <b class='flag-5'>AXI</b><b class='flag-5'>總線</b><b class='flag-5'>協議</b>總結

    AXI總線知識詳解解析

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

    AMBA 3.0 AXI總線接口協議的研究與應用

    本文介紹了AMBA 3.0 AXI的結構和特點,分析了新的AMBA 3.0 AXI協議相對于AMBA 2. 0的優點。它將革新未來高性能SOC總線互連技術,其特點使它更加適合未來的高性
    發表于 04-12 15:47 ?28次下載

    AXI總線協議簡介

      AXI (高性能擴展總線接口,Advanced eXtensible Interface)是ARM AMBA 單片機總線系列中的一個協議,是計劃用于高性能、高主頻的系統設計的。
    發表于 10-10 09:22 ?9066次閱讀

    AXI4-Lite協議簡明學習筆記

    AXI4協議是ARM的AMBA總線協議重要部分,ARM介紹AXI4總線
    發表于 06-19 11:17 ?2560次閱讀
    <b class='flag-5'>AXI</b>4-Lite<b class='flag-5'>協議</b>簡明學習筆記

    AXI總線協議總結

    在介紹AXI之前,先簡單說一下總線、 接口 以及協議的含義 總線、接口和協議,這三個詞常常被聯系
    的頭像 發表于 12-16 15:55 ?382次閱讀

    漫談AMBA總線-AXI4協議的基本介紹

    本文主要集中在AMBA協議中的AXI4協議。之所以選擇AXI4作為講解,是因為這個協議在SoC、IC設計中應用比較廣泛。
    發表于 01-17 12:21 ?563次閱讀
    漫談AMBA<b class='flag-5'>總線</b>-<b class='flag-5'>AXI</b>4<b class='flag-5'>協議</b>的基本介紹
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>