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

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

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

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

Hx ? 作者:工程師陳翠 ? 2018-06-29 09:33 ? 次閱讀

本文包含兩部分內(nèi)容:1)AXI接口簡介;2)AXI IP核的創(chuàng)建流程及讀寫邏輯分析。

1 AXI簡介(本部分內(nèi)容參考官網(wǎng)資料翻譯)

自定義IP核是Zynq學(xué)習(xí)與開發(fā)中的難點(diǎn),AXI IP核又是十分常用的自定義IP核,因此掌握AXI IP核的創(chuàng)建流程及通信機(jī)制顯得尤為重要。要搞懂AXI IP核,就必須先了解AXI接口。先介紹如下:

1) AXI(Advanced eXtensible Interface)協(xié)議主要描述了主設(shè)備(Master)和從設(shè)備(Slave)之間的數(shù)據(jù)傳輸方式,主設(shè)備和從設(shè)備之間通過握手信號(hào)建立連接。當(dāng)主設(shè)備的數(shù)據(jù)準(zhǔn)備好時(shí),會(huì)發(fā)出和維持VALID信號(hào),表示數(shù)據(jù)有效;當(dāng)從設(shè)備準(zhǔn)備好接收數(shù)據(jù)時(shí),會(huì)發(fā)出READY信號(hào)。數(shù)據(jù)只有在這兩個(gè)信號(hào)都有效時(shí)才開始傳輸。

2) AXI協(xié)議(又稱AXI4.0),包括3種接口標(biāo)準(zhǔn):AXI4、AXI-Stream、AXI-lite。

AXI4:適用于要求數(shù)據(jù)高速傳輸?shù)膱龊稀?/p>

AXI-Stream:如FIFO,數(shù)據(jù)傳輸不需要地址,而是主從設(shè)備間直接進(jìn)行數(shù)據(jù)的讀寫,主要用于高速數(shù)據(jù)傳輸?shù)膱龊?,?a href="http://wenjunhu.com/v/" target="_blank">視頻、高速AD等。

AXI-lite:可用于單個(gè)數(shù)據(jù)傳輸,主要用于訪問一些低速外設(shè)。

3) AXI接口具有5個(gè)獨(dú)立通道:WriteAddress通道、Write Data通道、Write Response通道、Read Address通道、Read Address通道、Read Data通道。

4) 讀/寫通道并行地進(jìn)行數(shù)據(jù)交互,明顯提高了數(shù)據(jù)吞吐量,對(duì)寫數(shù)據(jù),從設(shè)備會(huì)返回確認(rèn)信號(hào),這樣可以保證寫數(shù)據(jù)通道的安全,讀/寫模型分別如圖1-1、圖1-2。

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

讀模型:主設(shè)備發(fā)送讀地址占用信號(hào)給從設(shè)備→從設(shè)備將數(shù)據(jù)寫入主設(shè)備,實(shí)現(xiàn)讀操作。

寫模型:主設(shè)備發(fā)送寫地址占用信號(hào)給從設(shè)備→主設(shè)備將數(shù)據(jù)寫入從設(shè)備→從設(shè)備回復(fù)確認(rèn)收到信號(hào),實(shí)現(xiàn)寫操作。

5) AXI協(xié)議嚴(yán)格來講是一個(gè)點(diǎn)對(duì)點(diǎn)的主/從接口協(xié)議,當(dāng)多個(gè)外設(shè)需要互相交互數(shù)據(jù)時(shí),我們需要加入一個(gè)AXI Interconnect模塊,也就是AXI互聯(lián)矩陣,AXI Interconnect的作用是將一個(gè)或多個(gè)AXI主設(shè)備連接到一個(gè)或多個(gè)AXI 從設(shè)備。

6) AXI Interconnect IP核最多支持16個(gè)主設(shè)備和16個(gè)從設(shè)備,如果需要更多的接口可以在設(shè)計(jì)中加入多個(gè)IP核。

7) ZYNQ中的AXI接口包含三個(gè)類型,共9個(gè),主要用于PS與PL的互聯(lián)。

(1)AXI_HP接口(PL模塊作為主設(shè)備)

包括4個(gè),主要用于PL訪問PS上的存儲(chǔ)器。每個(gè)接口都有兩個(gè)FIFO緩沖器,一個(gè)是讀緩沖,一個(gè)是寫緩沖。

【實(shí)例:設(shè)計(jì)視頻處理時(shí),高清的圖像可由FPGA直接完成采集、預(yù)處理,然后通過AXI_HP接口將數(shù)據(jù)高速傳輸至DDR中,供APU(加速處理器)完成進(jìn)一步的圖像處理】

(2)AXI_ACP接口(PS端是從設(shè)備端)

只有1個(gè),又叫加速器一致性端口,適合做專用指令加速器模塊接口。PL端可直接從PS部分的Cache中拿到CPU的計(jì)算結(jié)果,同時(shí)也可以第一時(shí)間將邏輯加速運(yùn)算的結(jié)果送至Cache中,延時(shí)很小。

(3)AXI_GP接口(PS端是從設(shè)備端)

通用AXI接口,總共有4個(gè)??捎糜诳刂齐姍C(jī)運(yùn)轉(zhuǎn),獲取傳感器信號(hào)等邏輯模塊的連接接口。

2 AXI IP核的創(chuàng)建流程及讀寫邏輯小結(jié)

(1)AXI IP核的創(chuàng)建流程(以AXI PWM IP為例)

環(huán)境:win 7 +64(i5,4G) Vivado 2014.4+Xilinx SDK2014.4

開發(fā)板:zedboard version d xc7z020clg484-1

1) 新建工程→Tools → Create and PackageIP → Next → Create a new AXI4 peripheral → 修改name: axi_pwm(如圖1)→ Next → 為用戶IP核添加AXI4總線接口的支持(如圖2)→ Add IP to the repository →Finish

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

圖1

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

圖2

2) 在Flow Navigator中選擇 IP Catalog,打開IP管理器,看到剛才添加的axi_pwm_v1.0(如圖3)→ 右擊axi_pwm_v1.0 → Edit in IPPackager選項(xiàng),單擊OK,此時(shí)系統(tǒng)會(huì)自動(dòng)打開另一個(gè)Vivado IDE來對(duì)用戶IP核進(jìn)行編輯,完成IP核的封裝。

3) 在新打開的VivadoIDE中,在source窗口中雙擊打開axi_pwm_v1_0.v頂層文件,添加用戶自定義端口pwm_out(如圖4),并對(duì)端口進(jìn)行例化(如圖5)。

圖4

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

圖5

4) 雙擊打開axi_pwm_v1_0_S00_AXI.v實(shí)例化文件,添加端口聲明(如圖6),添加用戶信號(hào)(如圖7),添加用戶邏輯(如圖8)。

圖6

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

圖7

AXI接口簡介_AXI IP核的創(chuàng)建流程及讀寫邏輯分析

圖8

5) 切換到Package IP-axi_pwm窗口,點(diǎn)擊CustomizationParameters,單擊如圖9所示鏈接,對(duì)剛才修改過的頂層文件進(jìn)行更新。

圖 9

6) 點(diǎn)擊Review and Package →Re-Package IP,至此,AXI PWM IP核設(shè)計(jì)完成。

(2)讀寫邏輯小結(jié)

a. 輸入信號(hào):

Input

Name

Remark

S_AXI_ACLK

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

S_AXI_ARESETN

全局復(fù)位信號(hào)

S_AXI_AWADDR

寫地址信號(hào)

主機(jī)發(fā)送,從機(jī)接收

S_AXI_AWPROT

寫通道保護(hù)信號(hào)

這個(gè)信號(hào)標(biāo)志著傳輸?shù)奶貦?quán)與安全

S_AXI_AWVALID

寫地址有效信號(hào)

S_AXI_WDATA

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

主機(jī)發(fā)送,從機(jī)接收

S_AXI_WSTRB

寫選通信號(hào)

這個(gè)信號(hào)表示寫字節(jié)通道保持有效,在每8位的寫數(shù)據(jù)總線上有1位被選通

S_AXI_WVALID

寫有效信號(hào)

S_AXI_BREADY

寫答復(fù)準(zhǔn)備好信號(hào)

這個(gè)信號(hào)表示主機(jī)可以接收到寫答復(fù)信號(hào)

S_AXI_ARADDR

讀地址信號(hào)

S_AXI_ARPROT

讀保護(hù)信號(hào)

S_AXI_ARVALID

讀地址有效信號(hào)

S_AXI_RREADY

讀準(zhǔn)備好信號(hào)

表示主機(jī)可以接收從機(jī)發(fā)送的數(shù)據(jù)并且給予答復(fù)

b. 輸出信號(hào):

Output

Name

Remark

S_AXI_AWREADY

寫地址準(zhǔn)備好信號(hào)

表示主機(jī)可以控制寫數(shù)據(jù)總線實(shí)現(xiàn)寫功能

S_AXI_WREADY

寫準(zhǔn)備好信號(hào)

表示從機(jī)可以接收主機(jī)發(fā)送的數(shù)據(jù)

S_AXI_BRESP

寫答復(fù)信號(hào)

標(biāo)志從機(jī)是否接收到主機(jī)發(fā)送的數(shù)據(jù)

S_AXI_BVALID

寫答復(fù)有效信號(hào)

表示從機(jī)接收到主機(jī)發(fā)送的數(shù)據(jù)

S_AXI_ARREADY

讀地址準(zhǔn)備好信號(hào)

表示主機(jī)可以讀取數(shù)據(jù)

S_AXI_RDATA

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

從機(jī)發(fā)送,主機(jī)接收,即寫入主機(jī)

S_AXI_RRESP

讀答復(fù)信號(hào)

表示讀數(shù)據(jù)傳輸?shù)臓顟B(tài)

S_AXI_RVALID

讀有效信號(hào)

表示有效的數(shù)據(jù)已傳輸

c. 4個(gè)從機(jī)寄存器(在創(chuàng)建AXI IP時(shí),可以自己設(shè)定個(gè)數(shù),如圖2)

slv_reg0; slv_reg1; slv_reg2; slv_reg3;

d. 讀寫邏輯示意

寫://寫準(zhǔn)備好信號(hào)——寫準(zhǔn)備好地址總線被占用——寫地址通道有效——寫地址選擇——寫數(shù)據(jù)傳輸——寫應(yīng)答回復(fù)

讀://讀地址準(zhǔn)備好——讀總線被占用——讀地址有效信號(hào)產(chǎn)生——讀數(shù)據(jù)總線有效——讀數(shù)據(jù)有效——讀地址有效——主機(jī)寄存器讀取數(shù)據(jù)

注:寫的比較片面,期待大家的意見及補(bǔ)充。

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

    關(guān)注

    5

    文章

    1708

    瀏覽量

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

    關(guān)注

    1

    文章

    127

    瀏覽量

    16631
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM+FPGA開發(fā):基于AXI總線的GPIO IP創(chuàng)建

    FPGA+ARM是ZYNQ的特點(diǎn),那么PL部分怎么和ARM通信呢,依靠的就是AXI總線。這個(gè)實(shí)驗(yàn)是創(chuàng)建一個(gè)基于AXI總線的GPIO IP,利用PL的資源來擴(kuò)充GPIO資源。通過這個(gè)實(shí)驗(yàn)
    的頭像 發(fā)表于 12-25 14:07 ?5694次閱讀
    ARM+FPGA開發(fā):基于<b class='flag-5'>AXI</b>總線的GPIO <b class='flag-5'>IP</b><b class='flag-5'>創(chuàng)建</b>

    AXI VIP設(shè)計(jì)示例 AXI接口傳輸分析

    賽靈思 AXI Verification IP (AXI VIP) 是支持用戶對(duì) AXI4 和 AXI4-Lite 進(jìn)行仿真的
    發(fā)表于 07-08 09:24 ?1801次閱讀

    創(chuàng)建AXI Sniffer IP以在Vivado IP Integrator中使用教程

    在某些情況下,通過嗅探 AXI 接口分析其中正在發(fā)生的傳輸事務(wù)是很有用的。在本文中,我將為大家演示如何創(chuàng)建基本 AXI4-Lite Sni
    發(fā)表于 07-08 09:35 ?1040次閱讀

    使用AXI-Full接口IP進(jìn)行DDR的讀寫測試

    首先對(duì)本次工程進(jìn)行簡要說明:本次工程使用AXI-Full接口IP進(jìn)行DDR的讀寫測試。在我們的DDR讀寫
    的頭像 發(fā)表于 07-18 09:53 ?5254次閱讀
    使用<b class='flag-5'>AXI</b>-Full<b class='flag-5'>接口</b>的<b class='flag-5'>IP</b>進(jìn)行DDR的<b class='flag-5'>讀寫</b>測試

    PCIE項(xiàng)目中AXI4 IP例化詳解

    的fifo接口),用戶只要操作fifo接口,無需關(guān)心PCIE的內(nèi)部驅(qū)動(dòng)。為了便于讀者更加明白,可以深入了解PCIE,我們將會(huì)制作一個(gè)PCIE的連載系列。今天,首先說一下自定義AXI4的IP
    發(fā)表于 12-13 17:10

    如何使用Vivado功能創(chuàng)建AXI外設(shè)

    了解如何使用Vivado的創(chuàng)建和封裝IP功能創(chuàng)建可添加自定義邏輯AXI外設(shè),以創(chuàng)建自定義
    的頭像 發(fā)表于 11-29 06:48 ?7147次閱讀
    如何使用Vivado功能<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>AXI</b>外設(shè)

    自定義sobel濾波IP,IP接口遵守AXI Stream協(xié)議

    自定義sobel濾波IP IP接口遵守AXI Stream協(xié)議
    的頭像 發(fā)表于 08-06 06:04 ?3922次閱讀

    FPGA程序設(shè)計(jì):如何封裝AXI_SLAVE接口IP

    M_AXI接口對(duì)數(shù)據(jù)進(jìn)行讀取操作,此時(shí)設(shè)計(jì)一個(gè)基于AXI-Slave接口IP進(jìn)行數(shù)據(jù)傳輸操作就非常的方便。 封裝的形式并不復(fù)雜,只是略微繁
    的頭像 發(fā)表于 10-30 12:32 ?4398次閱讀
    FPGA程序設(shè)計(jì):如何封裝<b class='flag-5'>AXI</b>_SLAVE<b class='flag-5'>接口</b><b class='flag-5'>IP</b>

    AXI_GP接口AXI_HP接口的相關(guān)內(nèi)容

    學(xué)習(xí)關(guān)于ZYNQ IP中的GP接口和HP接口的異同,介紹關(guān)于AXI_GP接口
    的頭像 發(fā)表于 07-03 14:17 ?3067次閱讀

    AXI4-Stream Video 協(xié)議和AXI_VDMA的IP介紹

    本文主要介紹關(guān)于AXI4-Stream Video 協(xié)議和AXI_VDMA的IP相關(guān)內(nèi)容。為后文完成使用帶有HDMI接口的顯示器構(gòu)建圖像視
    的頭像 發(fā)表于 07-03 16:11 ?8352次閱讀

    AXI_GPIO簡介與使用指南

    前面簡單學(xué)習(xí)了關(guān)于GPIO的操作,本次將使用PL 端調(diào)用 AXI GPIO IP , 并通過 AXI4-Lite 接口實(shí)現(xiàn) PS 與 PL
    的頭像 發(fā)表于 07-19 17:36 ?4799次閱讀

    使用AXI4-Lite將Vitis HLS創(chuàng)建IP連接到PS

    AXI 基礎(chǔ)第 6 講 - Vitis HLS 中的 AXI4-Lite 簡介中,使用 C 語言在 HLS 中創(chuàng)建包含 AXI4-Lit
    發(fā)表于 08-02 09:43 ?833次閱讀
    使用<b class='flag-5'>AXI</b>4-Lite將Vitis HLS<b class='flag-5'>創(chuàng)建</b>的<b class='flag-5'>IP</b>連接到PS

    簡單講解AXI Interconnect IP的使用方法

    最近需要用到AXI接口的模塊,xilinx的IP很多都用到了AXI總線進(jìn)行數(shù)據(jù)和指令傳輸。如果有多個(gè)設(shè)備需要使用
    的頭像 發(fā)表于 06-19 15:45 ?1w次閱讀
    簡單講解<b class='flag-5'>AXI</b> Interconnect <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用方法

    自定義AXI-Lite接口IP及源碼分析

    在 Vivado 中自定義 AXI4-Lite 接口IP,實(shí)現(xiàn)一個(gè)簡單的 LED 控制功能,并將其掛載到 AXI Interconnect 總線互聯(lián)結(jié)構(gòu)上,通過 ZYNQ 主機(jī)控制
    發(fā)表于 06-25 16:31 ?3354次閱讀
    自定義<b class='flag-5'>AXI</b>-Lite<b class='flag-5'>接口</b>的<b class='flag-5'>IP</b>及源碼<b class='flag-5'>分析</b>

    基于AXI總線的DDR3讀寫測試

    本文開源一個(gè)FPGA項(xiàng)目:基于AXI總線的DDR3讀寫。之前的一篇文章介紹了DDR3簡單用戶接口讀寫方式:《DDR3讀寫測試》,如果在某些
    的頭像 發(fā)表于 09-01 16:20 ?4564次閱讀
    基于<b class='flag-5'>AXI</b>總線的DDR3<b class='flag-5'>讀寫</b>測試