国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PS和PL使用BRAM進(jìn)行數(shù)據(jù)交互

這篇具有很好參考價(jià)值的文章主要介紹了PS和PL使用BRAM進(jìn)行數(shù)據(jù)交互。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、簡(jiǎn)介

BRAM(Block RAM)是 PL 部分的存儲(chǔ)器陣列,PS 和 PL 通過(guò)對(duì) BRAM 進(jìn)行讀寫操作,來(lái)實(shí)現(xiàn)數(shù)據(jù)的交互。在 PL 中,通過(guò)輸出時(shí)鐘、地址、讀寫控制等信號(hào)來(lái)對(duì) BRAM 進(jìn)行讀寫操作。而在 PS 中,處理器并不需要直接驅(qū)動(dòng) BRAM 的端口,而是通過(guò) AXI BRAM 控制器來(lái)對(duì) BRAM 進(jìn)行讀寫操作。AXI BRAM 控制器是集成在 Vivado 設(shè)計(jì)軟件中的軟核,可以配置成 AXI4-lite 接口模式或者 AXI4 接口模式。

AXI4 接口模式的 BRAM 控制器支持的數(shù)據(jù)位寬為 32 位、64 位、128 位、512 位和 1024 位,而 AXI4-Lite接口僅支持 32 位數(shù)據(jù)位寬。PS 通過(guò) AXI4-Lite 接口訪問(wèn) BRAM,當(dāng)使能 ECC 選項(xiàng)時(shí),ECC 允許 AXI 主接口檢測(cè)和糾正 BRAM 塊中的單位和雙位錯(cuò)誤。AXI BRAM 控制器作為 AXI 總線的從接口,和 AXI 主接口實(shí)現(xiàn)互聯(lián),來(lái)對(duì) BRAM 進(jìn)行讀寫操作。針對(duì)不同的應(yīng)用場(chǎng)合,該 IP 核支持單次傳輸和突發(fā)傳輸兩種方式。

任務(wù):

PS 將串口接收到的數(shù)據(jù)寫入 BRAM,然后從 BRAM 中讀出數(shù)據(jù),并通過(guò)串口打印出來(lái);與此同時(shí),PL 從 BRAM 中同樣讀出數(shù)據(jù),并通過(guò) ILA 來(lái)觀察讀出的數(shù)據(jù)與串口打印的數(shù)據(jù)是否一致。下面是系統(tǒng)框圖

pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔

PS 端的 M_AXI_GP0 作為主端口,與 PL 端的 AXI BRAM 控制器 IP 核和 PL 讀 BRAM IP (pl_bram_rd)通過(guò) AXI4 總線進(jìn)行連接。其中,AXI 互聯(lián) IP(AXI Interconnect)用于連接 AXI 存儲(chǔ)器映射(memory-mapped)的主器件和從器件;AXI BRAM 控制器作為 PS 端讀寫 BRAM 的 IP 核;PL 讀BRAM IP 核是我們自定義的 IP 核,實(shí)現(xiàn)了 PL 端從 BRAM 中讀出數(shù)據(jù)的功能,除此之外,PS 端通過(guò) AXI總線來(lái)配置該 IP 核讀取 BRAM 的起始地址和個(gè)數(shù)等。本實(shí)驗(yàn)中,我們將自定義的IP核替換成AXI BRAM IP核。

本次實(shí)驗(yàn)創(chuàng)建的BRAM是雙端口RAM,兩個(gè)端口均連接AXI BRAM控制器

二、硬件設(shè)計(jì)

pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔

接著我們調(diào)用一個(gè)雙端口RAM

pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔
pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔
pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔

綜合后的連線圖

pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔

三、SDK驗(yàn)證

工程代碼

#include <stdio.h>
#include "xil_io.h"
#include "xparameters.h"
#include "xbram.h"

#define BRAM_CTRL_0_BASE      XPAR_AXI_BRAM_CTRL_0_S_AXI_BASEADDR//用于寫入數(shù)據(jù),操作A端口的AXI總線基地址
#define BRAM_CTRL_1_BASE      XPAR_AXI_BRAM_CTRL_1_S_AXI_BASEADDR//用于讀數(shù)據(jù),操作B端口的AXI總線基地址
char test_string[]="test ps pl bram string\n";
int main()
{
    int num,str_len;
    int str_rev;
    xil_printf("application start \n");
    str_len=strlen(test_string);//計(jì)算寫入長(zhǎng)度
    //通過(guò)控制axi_bram_ctrl_0像雙端口ram寫入test_string
    for( num=0; num<str_len; num++ )
    {
        XBram_WriteReg(BRAM_CTRL_0_BASE , num*4, test_string[num]);
    }

    //通過(guò)控制axi_bram_ctrl_1讀出寫入的數(shù)據(jù)
   for( num=0; num<str_len; num++ )
   {
       str_rev = XBram_ReadReg( BRAM_CTRL_1_BASE, num*4);
       xil_printf( "ADDR:%x DAT:%c\n",XPAR_AXI_BRAM_CTRL_1_S_AXI_BASEADDR + num*4,str_rev);
   }

    xil_printf("test over!\n");

    return 0;
}

調(diào)試如下

pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔

地址高位是42開頭的文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787400.html

pl寫bram,ps讀bram,FPGA,fpga開發(fā),Powered by 金山文檔

到了這里,關(guān)于PS和PL使用BRAM進(jìn)行數(shù)據(jù)交互的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ZYNQ7000 PL與PS交互(一): PL到PS中斷的使用與實(shí)現(xiàn)

    ZYNQ7000 PL與PS交互(一): PL到PS中斷的使用與實(shí)現(xiàn)

    翻譯以xilinx用戶手冊(cè)u(píng)g585,知道ZYNQ7000有幾類中斷即可。 PS基于ARM架構(gòu),使用了兩個(gè)Cortex-A9處理器和GIC PL390中斷控制器。中斷結(jié)構(gòu)與CPU密切相關(guān),并接收來(lái)自IO外設(shè)和可編程單元PL的中斷請(qǐng)求。 本章主要信息: 私有、共享和軟件中斷。 GIC功能介紹 中斷優(yōu)先級(jí)和處理 1.1.1 Zynq 中

    2024年04月15日
    瀏覽(19)
  • FPGA----UltraScale+系列的PS側(cè)與PL側(cè)通過(guò)AXI-HP交互(全網(wǎng)唯一最詳)附帶AXI4協(xié)議校驗(yàn)IP使用方法

    FPGA----UltraScale+系列的PS側(cè)與PL側(cè)通過(guò)AXI-HP交互(全網(wǎng)唯一最詳)附帶AXI4協(xié)議校驗(yàn)IP使用方法

    1、之前寫過(guò)一篇關(guān)于ZYNQ系列通用的PS側(cè)與PL側(cè)通過(guò)AXI-HP通道的文檔,下面是鏈接。 FPGA----ZCU106基于axi-hp通道的pl與ps數(shù)據(jù)交互(全網(wǎng)唯一最詳)_zcu106調(diào)試_發(fā)光的沙子的博客-CSDN博客 大家好,今天給大家?guī)?lái)的內(nèi)容是,基于AXI4協(xié)議的采用AXI-HP通道完成PL側(cè)數(shù)據(jù)發(fā)送至PS側(cè)(PS側(cè)數(shù)

    2024年02月13日
    瀏覽(28)
  • ZYNQ PS與PL通過(guò)AXI-LITE連接,在Linux下直接讀寫PL的物理地址,實(shí)現(xiàn)PS與PL的交互

    ZYNQ PS與PL通過(guò)AXI-LITE連接,在Linux下直接讀寫PL的物理地址,實(shí)現(xiàn)PS與PL的交互

    ZYNQ開發(fā),如果PL與PS的交互方式僅為AXI-Lite總線的話,在Linux下可以通過(guò)直接訪問(wèn)PL的寄存器物理地址來(lái)實(shí)現(xiàn)PS-PL的數(shù)據(jù)交互。 測(cè)試代碼的PC開發(fā)平臺(tái)為Ubuntu18.04,QT5。 ZYNQ為7020,并移植了Linux系統(tǒng)和Ubuntu16.04的最小系統(tǒng)。 將PL的程序封裝成IP核,通過(guò)AXI-LITE與PS連接,對(duì)外是18個(gè)寄

    2024年04月10日
    瀏覽(24)
  • FPGA的PS還有什么PL是什么意思

    FPGA的PS還有什么PL是什么意思

    在FPGA中 PS: 處理系統(tǒng) (Processing System) :就是與FPGA無(wú)關(guān)的ARM的SOC的部分。 PL: 可編程邏輯 (Progarmmable Logic) : 就是FPGA部分。之所以叫PL,而不是叫FPGA,用英文簡(jiǎn)寫可能便于理解區(qū)分,或者顯得比較專業(yè)吧(/滑稽臉) 對(duì)于ZYNQ,,就是兩大功能塊,PS 部分和 PL部分, ARM的SOC部分,

    2024年02月11日
    瀏覽(28)
  • PL讀不到PS寫入DDR的數(shù)據(jù)

    1、背景 平臺(tái):ZYNQ7020 CPU0的設(shè)置默認(rèn),CPU1工程bsp設(shè)置 -DUSE_AMP=1 ,PL以AXI接口訪問(wèn)DDR。 CPU1往DDR中寫數(shù)據(jù)后用 Xil_DCacheFlushRange 函數(shù)將數(shù)據(jù)回寫到DDR,但是隨后PL在DDR中讀不到相關(guān)數(shù)據(jù)。 把CPU1中的相關(guān)代碼放到CPU0中運(yùn)行,PL能讀到DDR中的相關(guān)數(shù)據(jù)。 2、原因分析 CPU1工程bsp中設(shè)置

    2024年02月06日
    瀏覽(23)
  • zynq 使用AXI_dma 傳輸==pl到ps,linux驅(qū)動(dòng)開發(fā),應(yīng)用層處理DMA數(shù)據(jù)

    zynq 使用AXI_dma 傳輸==pl到ps,linux驅(qū)動(dòng)開發(fā),應(yīng)用層處理DMA數(shù)據(jù)

    在使用zynq輸出處理時(shí),會(huì)使用到pl和ps的數(shù)據(jù)傳輸,可供使用的方案有多種,由于我們的數(shù)據(jù)量較大打算,因此使用用以下兩種方案處理: 1.使用pl直接寫ddr3, 2.使用dma, 本次詳細(xì)介紹使用axi_dma如何將pl的數(shù)據(jù)在linux應(yīng)用層接收數(shù)據(jù)并處理,以及遇到的問(wèn)題 fpga工程,我們使用

    2024年02月03日
    瀏覽(19)
  • ZYNQ通過(guò)AXI DMA實(shí)現(xiàn)PL發(fā)送連續(xù)大量數(shù)據(jù)到PS DDR

    ZYNQ通過(guò)AXI DMA實(shí)現(xiàn)PL發(fā)送連續(xù)大量數(shù)據(jù)到PS DDR

    硬件:ZYNQ7100 軟件:Vivado 2017.4、Xilinx SDK 2017.4 ??ZYNQ PL 和 PS 的通信方式有 AXI GPIO、BRAM、DDR等。對(duì)于數(shù)據(jù)量較少、地址不連續(xù)、長(zhǎng)度規(guī)則的情況,BRAM 比較適用。而對(duì)于傳輸速度要求高、數(shù)據(jù)量大、地址連續(xù)的情況,比如 ADC,可以通過(guò) AXI DMA 來(lái)完成。 1、硬件設(shè)計(jì) 1.1 ZYNQ7

    2024年02月04日
    瀏覽(26)
  • PS和PL共享DDR

    PS和PL共享DDR

    本文中,在SDK中先采用helloworld模板來(lái)檢查整個(gè)工程是否創(chuàng)建成功,得到正確的結(jié)果后,再加入PS操作DDR的代碼(用的是ZCU102)。本文主要描述整個(gè)設(shè)計(jì)的流程,過(guò)程容易忘記,所以記錄,也方便自己之后查看,如有不對(duì),請(qǐng)各位提出寶貴建議! 1.創(chuàng)建工程 指定工程名和存放位

    2023年04月08日
    瀏覽(20)
  • zynq pl訪問(wèn)ps ddr

    zynq pl訪問(wèn)ps ddr

    在 xilinx mpsoc 平臺(tái)上進(jìn)行 Linux 軟件開發(fā),不可避免的會(huì)涉及到 PS 與 PL 之間的數(shù)據(jù)交互。這個(gè) 系列 介紹一種 基于 DDR 的信息交互方式 。 這篇文章首先介紹下 如何從系統(tǒng)中“偷”內(nèi)存 。 交互流程: PS 寫入數(shù)據(jù)到 DDR 中,使用中斷通知 PL,PL 從協(xié)商好的 DDR 中讀取數(shù)據(jù); PL 寫

    2024年02月01日
    瀏覽(14)
  • zynq板上PS端給PL端復(fù)位

    最近接觸zynq板-zcu104,記錄一些實(shí)驗(yàn)筆記。 LED閃爍 在vivado中新建一個(gè)工程,命名為led-test。添加top.v文件。 其中,top模塊接入zcu104開發(fā)板的clk_300_p/n信號(hào),通過(guò)clock wizard轉(zhuǎn)換為單端始終clock,接入到led閃爍模塊led.v 其中,led模塊通過(guò)一個(gè)24bit的計(jì)數(shù)器,經(jīng)過(guò)相等間隔厚,讓led燈

    2024年02月11日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包