RM新时代网站-首页

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

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

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

基于Xilinx FPGA AXI-EMC IP的EMIF通信測(cè)試

CHANBAEK ? 來源: FPGA Zone ? 作者: FPGA Zone ? 2023-08-31 11:25 ? 次閱讀

概述

外部存儲(chǔ)器接口EMIF通信常用于FPGADSP之間的數(shù)據(jù)傳輸,即將FPGA作為DSP的外部SRAM、或者協(xié)同處理器等。Xilinx提供了AXI-EMC IP核,將其掛載到AXI總線用于EMIF通信,也可方便地實(shí)現(xiàn) PL (FPGA)和 PS (MicroBlaze或者ARM)之間的數(shù)據(jù)交互功能。

本文主要介紹一下該IP核的使用,以及創(chuàng)建Vivado工程對(duì)EMIF通信功能進(jìn)行板上測(cè)試。

硬件平臺(tái)

軟件平臺(tái) :Vivado 2017.4;

硬件平臺(tái) :xc7a35tftg256-1;

AXI-EMC

功能特性

AXI-EMC IP核是一種可以支持各種型號(hào)內(nèi)存的控制器,和EMIF接口類似,利用它可以實(shí)現(xiàn)數(shù)據(jù)的交互和通信。該IP核有以下功能特性:

  • 接口采用AXI4 Slave Memory Map,位寬支持32、64bits;
  • 支持AXI4增量和包傳輸,支持窄帶和非對(duì)其傳輸;
  • 最多支持4個(gè)外部存儲(chǔ)器;
  • 支持奇偶校驗(yàn)和流水線級(jí)同步SRAM等;

參數(shù)配置

圖片

  • AXI Data Width:AXI總線位寬選擇32位;
  • Number of Memory Banks:存儲(chǔ)器個(gè)數(shù)這里選擇1即可;
  • AXI ID位寬和存儲(chǔ)空間地址選擇默認(rèn)配置;

圖片

  • Memory Type:內(nèi)存型號(hào)選擇異步SRAM;
  • Data Width:數(shù)據(jù)位寬選擇32位,與AXI總線位寬保持一致;
  • Timing Parameters參數(shù)默認(rèn)是100MHZ AXI時(shí)鐘下的配置;

圖片

  • Advanced Configuration:高級(jí)配置選項(xiàng)保持默認(rèn),不用配置IP核內(nèi)部寄存器;

Vivado工程創(chuàng)建

本工程是在MicroBlaze最小系統(tǒng)工程基礎(chǔ)上進(jìn)行創(chuàng)建,利用AXI-EMC在MicroBlaze軟核端對(duì)FPGA端進(jìn)行EMIF數(shù)據(jù)讀寫,進(jìn)而實(shí)現(xiàn)PS和PL端數(shù)據(jù)交互功能。

搭建Block Design

  • 在MicroBlaze最小系統(tǒng)的Block Design工程中添加AXI-EMC IP核,并對(duì)參數(shù)進(jìn)行配置;
  • 將IP核的 rdclk 接口以及 s_axi_aclk 接口與MIG IP提供的100MHZ用戶時(shí)鐘接口 ui_clk 進(jìn)行連接;
  • mem_a (地址)、 mem_cen (片選)、 mem_dq_o (輸出數(shù)據(jù))、 mem_dq_i (輸入數(shù)據(jù))、 mem_oen (讀使能)、 mem_wen (寫使能)接口引出,在頂層文件中會(huì)進(jìn)行調(diào)用。

最終搭建完成的Block Design如下圖所示:

圖片

修改頂層文件

在生成的頂層文件中添加以下代碼,用于實(shí)現(xiàn)FPGA端基本的EMIF通信功能,以及添加ILA模塊實(shí)現(xiàn)對(duì)EMIF接口信號(hào)的實(shí)時(shí)觀察。

reg             [31:0]                  data_reg,mem_dq_i_reg;
reg             [2:0]                   mem_wen_r,mem_oen_r;


assign          mem_dq_i            =   mem_dq_i_reg; 


always@(posedge ui_clk) begin
    mem_wen_r <= {mem_wen_r[1:0],mem_wen};
    mem_oen_r <= {mem_oen_r[1:0],mem_oen};
end




always@(posedge ui_clk)
    if(mem_wen_r[2:1] == 2'b10) begin
        case(mem_a[17:2])
            16'h5555:   
                    data_reg <= mem_dq_o;
            default:
                    data_reg <= data_reg;
        endcase
    end


always@(posedge ui_clk)
    if(mem_oen_r[2:1] == 2'b10) begin
        case(mem_a[17:2])
            16'haaaa:   
                    mem_dq_i_reg <= data_reg;
            default:
                    mem_dq_i_reg <= mem_dq_i_reg;
        endcase
    end

ila_0 ila_0_u0
(
    .clk            (ui_clk),

    .probe0         (mem_a),
    .probe1         (mem_cen),
    .probe2         (mem_dq_i),
    .probe3         (mem_dq_o),
    .probe4         (mem_oen),
    .probe5         (mem_wen),
    .probe6         (uart_rtl_0_txd)
    );

創(chuàng)建SDK工程

在SDK軟件中,采用Xilinx提供的Hello World工程,在helloworld.c文件中添加以下代碼,用于實(shí)現(xiàn)MicroBlaze軟核每隔一定時(shí)間在FPGA端0x55554地址下寫入32位十進(jìn)制數(shù)據(jù):111,并從0xaaaa4地址將該數(shù)據(jù)讀出。

#include < stdio.h >
#include "platform.h"
#include "xil_io.h"
#include "xparameters.h"
#include "xuartlite.h"
#include "xuartlite_l.h"


int ii,data;
int main()
{
    init_platform();
    print("EMIF TESTnr");
    while(1)
        {
          Xil_Out32(XPAR_EMC_0_S_AXI_MEM0_BASEADDR+0x5555*4,111);
          data=Xil_In32(XPAR_EMC_0_S_AXI_MEM0_BASEADDR+0xaaaa*4);
            for(ii=0;ii< 100;ii++);
        }
    cleanup_platform();
    return 0;
}

功能測(cè)試

該Vivado工程利用AXI-EMC IP核實(shí)現(xiàn)異步SRAM接口,在MicroBlaze軟核CPU和FPGA之間進(jìn)行基礎(chǔ)的EMIF通信。該工程為實(shí)現(xiàn)PS和PL之間的數(shù)據(jù)交互功能提供一種很好的思路。

圖片

FPGA板上測(cè)試結(jié)果如上圖所示,MicroBlaze軟核往FPGA 0x55554地址下寫入32位十進(jìn)制數(shù)據(jù)111,F(xiàn)PGA將該數(shù)據(jù)進(jìn)行寄存,供軟核從0xaaaa4地址下讀出。

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

    關(guān)注

    68

    文章

    19259

    瀏覽量

    229651
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    553

    文章

    7987

    瀏覽量

    348745
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602986
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7484

    瀏覽量

    163762
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6024

    瀏覽量

    135950
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121302
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Xilinx zynq AXI總線全面解讀

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

    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,利
    的頭像 發(fā)表于 12-25 14:07 ?5669次閱讀
    ARM+<b class='flag-5'>FPGA</b>開發(fā):基于<b class='flag-5'>AXI</b>總線的GPIO <b class='flag-5'>IP</b>創(chuàng)建

    XILINX FPGA IPAXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互連以及其他AXI4系統(tǒng)外設(shè)上生成特定序列(流量)。
    的頭像 發(fā)表于 11-23 16:03 ?2557次閱讀
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b>之<b class='flag-5'>AXI</b> Traffic Generator

    請(qǐng)教DSP的EMIF總線和ARM的AXI總線轉(zhuǎn)換的問題

    最近做的東西涉及到將原有的DSP+FPGA架構(gòu)的程序移植到ZYNQ-7系列FPGA上,請(qǐng)問如何將原DSP程序移植到ZYNQ-7的ARM上,可不可以做一個(gè)EMIF總線和AXI總線轉(zhuǎn)換的模
    發(fā)表于 05-12 21:51

    基于C66x平臺(tái)DSP與FPGA通信測(cè)試

    實(shí)際電腦終端IP為準(zhǔn)Tronlong> fpgasrio(4)DSP與FPGA EMIF16通信測(cè)
    發(fā)表于 10-31 14:27

    請(qǐng)問KC705上的AXI EMC核心硬件測(cè)試例子哪里可以找到?

    嗨,大家好在數(shù)據(jù)表PG100 aboutLogiCORE IP AXI EMCv2.0上,第62頁(硬件測(cè)試)顯示如下:AXI EMC內(nèi)核已
    發(fā)表于 09-10 11:35

    請(qǐng)問有哪些fpga板支持外部閃存與axi_emc?

    所有的,請(qǐng)告訴我任何fpga板支持外部閃存與axi_emc
    發(fā)表于 10-09 09:08

    AXI 代碼 不通過 AXI Protocol Checker IP 的檢測(cè)

    Checker IP 的檢測(cè)呢 ? https://www.xilinx.com/support/documentation/ip_documentation/axi_protoco
    發(fā)表于 02-28 13:44

    使用EMIFXilinx FPGA與TI DSP平臺(tái)接口

    使用EMIFXilinx FPGA與TI DSP平臺(tái)接口:本應(yīng)用指南使用外部存儲(chǔ)器接口 (EMIF) 實(shí)現(xiàn)了 Xilinx
    發(fā)表于 11-01 15:00 ?71次下載

    Xilinx的LogiCORE IP Video In to AXI4

    Xilinx的視頻的IP CORE 一般都是 以 AXI4-Stream 接口。 先介紹一下, 這個(gè)IP的作用。 下面看一下這個(gè)IP 的接口
    發(fā)表于 02-08 08:36 ?604次閱讀
    <b class='flag-5'>Xilinx</b>的LogiCORE <b class='flag-5'>IP</b> Video In to <b class='flag-5'>AXI</b>4

    基于TCP/IP通信技術(shù)在Xilinx FPGA上的實(shí)現(xiàn)

    研究了TCP/IP通信協(xié)議棧在Xilinx 公司現(xiàn)場(chǎng)可編程門陣列FPGA上的實(shí)現(xiàn),介紹了其軟硬件的系統(tǒng)組成   和原理,提出一種不需操作系統(tǒng)的TCP/
    發(fā)表于 09-04 09:24 ?9次下載
    基于TCP/<b class='flag-5'>IP</b><b class='flag-5'>通信</b>技術(shù)在<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>上的實(shí)現(xiàn)

    如何使用Xilinx AXI進(jìn)行驗(yàn)證和調(diào)試

    了解如何使用Xilinx AXI驗(yàn)證IP有效驗(yàn)證和調(diào)試AXI接口。 該視頻回顧了使用的好處,以及如何使用示例設(shè)計(jì)進(jìn)行模擬。
    的頭像 發(fā)表于 11-20 06:38 ?4105次閱讀

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

    用于通過使用Xilinx進(jìn)行的相應(yīng)的開發(fā)來做FPGA實(shí)現(xiàn),它被用作FPGA 設(shè)計(jì)的IP 核之間的一種通信方式。
    發(fā)表于 10-10 09:22 ?1w次閱讀

    簡(jiǎn)單講解AXI Interconnect IP核的使用方法

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

    什么是AXI?AXI如何工作?

    Xilinx 從 Spartan-6 和 Virtex-6 器件開始采用高級(jí)可擴(kuò)展接口 (AXI) 協(xié)議作為知識(shí)產(chǎn)權(quán) (IP) 內(nèi)核。Xilinx 繼續(xù)將
    的頭像 發(fā)表于 09-27 09:50 ?1750次閱讀
    什么是<b class='flag-5'>AXI</b>?<b class='flag-5'>AXI</b>如何工作?
    RM新时代网站-首页