chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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 DMA IP核的DDR數(shù)據(jù)存儲(chǔ)與PS端讀取

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 2025-11-24 09:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Vivado工程搭建

1. 創(chuàng)建基礎(chǔ)工程

新建Vivado項(xiàng)目,選擇目標(biāo)FPGA型號(hào)。

添加Zynq Processing System IP核,配置DDR控制器時(shí)鐘。7000系列的Zynq可以參考正點(diǎn)原子DMA回環(huán)測(cè)試設(shè)置。

75e7bbd2-c750-11f0-8c8f-92fbcf53809c.png

764b10d8-c750-11f0-8c8f-92fbcf53809c.png

2. 添加AXI DMA IP核

配置AXI DMA為Simple模式。

設(shè)置數(shù)據(jù)位寬(如32/64位)和Width of Buffer Lenghth Register(26最大可以存2^26 bit)。

76ac756c-c750-11f0-8c8f-92fbcf53809c.png

3. 添加Stream Data FIFO

這里看需要設(shè)置FIFO 深度

7717e310-c750-11f0-8c8f-92fbcf53809c.png

4. 添加自定義ip用于產(chǎn)生數(shù)據(jù)

這里可以參考https://fpga.eetrend.com/blog/2023/100568155.html,由于工程需要,對(duì)ip進(jìn)行修改,使得傳輸?shù)臄?shù)據(jù)位寬是16位,一共傳輸320*256個(gè)數(shù)據(jù)。修改位寬后re-package可能會(huì)出現(xiàn)報(bào)錯(cuò),請(qǐng)自行查找解決辦法。

77767cfe-c750-11f0-8c8f-92fbcf53809c.png

77d3b658-c750-11f0-8c8f-92fbcf53809c.png

5. 添加自定義ip用于產(chǎn)生dma_start信號(hào)

由于dma傳輸過(guò)程中會(huì)出現(xiàn)數(shù)據(jù)丟失情況,這里借鑒了以下博主的解決方法:ZYNQ踩坑日記:AXI_DMA傳輸問(wèn)題詳解——問(wèn)題再續(xù)篇-物聯(lián)沃-IOTWORD物聯(lián)網(wǎng)對(duì)于vivado中使用DMA傳輸數(shù)據(jù)時(shí)會(huì)丟數(shù)據(jù)的解決辦法_vivado dma-CSDN博客

782d02ee-c750-11f0-8c8f-92fbcf53809c.png

對(duì)數(shù)據(jù)產(chǎn)生ip進(jìn)行了修改(右鍵ip->edit in packager),使得dma初始化之后再開(kāi)始傳輸數(shù)據(jù),避免數(shù)據(jù)丟失

788728f0-c750-11f0-8c8f-92fbcf53809c.png

在關(guān)鍵代碼中進(jìn)行如下修改:

78df97a6-c750-11f0-8c8f-92fbcf53809c.png

最后再Re-Package IP,可以參考https://cloud.tencent.com/developer/article/1813652創(chuàng)建并修改自定義ip。

6. 連接IP核與總線

總體block design如下

793beefc-c750-11f0-8c8f-92fbcf53809c.png

PS端軟件設(shè)計(jì)(Vitis/SDK)

1. 初始化DMA

#include"xaxidma.h"#include"xparameters.h"#include"xil_cache.h"#include"xil_printf.h"#include"my_dma_start_s.h"#include"sleep.h"#defineDMA_DEV_ID   XPAR_AXIDMA_0_DEVICE_ID#defineDDR_BASE_ADDR  XPAR_PSU_DDR_0_S_AXI_BASEADDR#defineRX_BUFFER_BASE (DDR_BASE_ADDR + 0x01000000)#defineDATA_LENGTH   81920// 與 PL 端對(duì)應(yīng)#defineMY_DMA_START_ADDR XPAR_MY_DMA_START_S_0_S00_AXI_BASEADDR#defineMY_DMA_OFFSET MY_DMA_START_S_S00_AXI_SLV_REG0_OFFSETintmain() {   XAxiDma AxiDma;   XAxiDma_Config *Config;  intstatus, i;   u16 *RxBufferPtr = (u16 *)RX_BUFFER_BASE;   xil_printf("---- Start DMA Receive Test ----
");   Config = XAxiDma_LookupConfig(DMA_DEV_ID);  if(!Config) {     xil_printf("No DMA config found!
");    returnXST_FAILURE;   }   status = XAxiDma_CfgInitialize(&AxiDma, Config);  if(status != XST_SUCCESS) {     xil_printf("DMA Init Failed
");    returnXST_FAILURE;   }  if(XAxiDma_HasSg(&AxiDma)) {     xil_printf("DMA configured as SG mode!
");    returnXST_FAILURE;   }  // 啟動(dòng)接收  status = XAxiDma_SimpleTransfer(&AxiDma, (UINTPTR)RxBufferPtr,                   DATA_LENGTH *sizeof(u16),                   XAXIDMA_DEVICE_TO_DMA);  if(status != XST_SUCCESS) {     xil_printf("DMA Receive Config Failed
");    returnXST_FAILURE;   }  //這里用于通知PL端開(kāi)始發(fā)送數(shù)據(jù)  MY_DMA_START_S_mWriteReg(MY_DMA_START_ADDR,MY_DMA_OFFSET,1);   usleep(5);   MY_DMA_START_S_mWriteReg(MY_DMA_START_ADDR,MY_DMA_OFFSET,0);  // 等待DMA完成(這里簡(jiǎn)單用while輪詢)while(XAxiDma_Busy(&AxiDma, XAXIDMA_DEVICE_TO_DMA));  // 失效 Cache,保證讀到 DDR 最新數(shù)據(jù)  Xil_DCacheInvalidateRange((UINTPTR)RxBufferPtr, DATA_LENGTH *sizeof(u16));  // 打印接收數(shù)據(jù)for(i =0; i < DATA_LENGTH; i++) { ? ? ? ? xil_printf("DDR[%d] = 0x%04x
", i, RxBufferPtr[i]); ? ? } ? ? ?xil_printf("---- DMA Receive Done ----
"); ? ?return?XST_SUCCESS; }

2. 數(shù)據(jù)傳輸流程

啟動(dòng)debug,在return XST_SUCCESS處打斷點(diǎn),并查看memory中ddr的數(shù)據(jù):

79907c60-c750-11f0-8c8f-92fbcf53809c.png

測(cè)試結(jié)果如下:

79e8dd6a-c750-11f0-8c8f-92fbcf53809c.png

ila信號(hào)如下:

7a3e6a0a-c750-11f0-8c8f-92fbcf53809c.png

可以看到結(jié)果符合要求。

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

    關(guān)注

    114

    文章

    17791

    瀏覽量

    193252
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    754

    瀏覽量

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

    關(guān)注

    1

    文章

    145

    瀏覽量

    17942
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    857

    瀏覽量

    71119

原文標(biāo)題:基于AXI DMA IP核的DDR數(shù)據(jù)存儲(chǔ)與PS端讀取

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用AXI4接口IP進(jìn)行DDR讀寫(xiě)測(cè)試

    本章的實(shí)驗(yàn)任務(wù)是在 PL 自定義一個(gè) AXI4 接口的 IP ,通過(guò) AXI_HP 接口對(duì) PS
    的頭像 發(fā)表于 11-24 09:19 ?3738次閱讀
    使用<b class='flag-5'>AXI</b>4接口<b class='flag-5'>IP</b><b class='flag-5'>核</b>進(jìn)行<b class='flag-5'>DDR</b>讀寫(xiě)測(cè)試

    ZYNQ SOC案例開(kāi)發(fā):AXI DMA使用解析及環(huán)路測(cè)試

    一、AXI DMA介紹 本篇博文講述AXI DMA的一些使用總結(jié),硬件IP子系統(tǒng)搭建與SDK C代碼封裝參考米聯(lián)客ZYNQ教程。若想讓ZYN
    的頭像 發(fā)表于 12-31 09:52 ?1.1w次閱讀
    ZYNQ SOC案例開(kāi)發(fā):<b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b>使用解析及環(huán)路測(cè)試

    DDR3 SDRAM控制器IP的寫(xiě)命令和寫(xiě)數(shù)據(jù)間關(guān)系講解

    用戶使用的,框圖如圖1所示。 如圖1 所示的中間部分為我們調(diào)取的IP ,user FPGA Logic 為用戶邏輯,DDR2/
    的頭像 發(fā)表于 12-31 11:17 ?6918次閱讀
    <b class='flag-5'>DDR</b>3 SDRAM控制器<b class='flag-5'>IP</b><b class='flag-5'>核</b>的寫(xiě)命令和寫(xiě)<b class='flag-5'>數(shù)據(jù)</b>間關(guān)系講解

    【ZYNQ Ultrascale+ MPSOC FPGA教程】第三十二章PL讀寫(xiě)PSDDR數(shù)據(jù)

    麻煩,靈活性也比較差,本節(jié)課程講解如何直接通過(guò)AXI總線來(lái)讀寫(xiě)PSddr數(shù)據(jù),這里面涉及到AXI
    的頭像 發(fā)表于 01-30 09:54 ?1.7w次閱讀
    【ZYNQ Ultrascale+ MPSOC FPGA教程】第三十二章PL讀寫(xiě)<b class='flag-5'>PS</b><b class='flag-5'>端</b><b class='flag-5'>DDR</b><b class='flag-5'>數(shù)據(jù)</b>

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

    首先對(duì)本次工程進(jìn)行簡(jiǎn)要說(shuō)明:本次工程使用AXI-Full接口的IP進(jìn)行DDR的讀寫(xiě)測(cè)試。在我們的DDR讀寫(xiě)IP中,我們把讀寫(xiě)完成和讀寫(xiě)錯(cuò)誤信
    的頭像 發(fā)表于 07-18 09:53 ?7168次閱讀
    使用<b class='flag-5'>AXI</b>-Full接口的<b class='flag-5'>IP</b>進(jìn)行<b class='flag-5'>DDR</b>的讀寫(xiě)測(cè)試

    一文詳解AXI DMA技術(shù)

    AXI直接數(shù)值存?。―rect Memory Access,DMAIPAXI4內(nèi)存映射和AXI
    的頭像 發(fā)表于 04-03 09:32 ?2518次閱讀
    一文詳解<b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b>技術(shù)

    有關(guān)PL利用AXI總線控制PSDDR進(jìn)行讀寫(xiě)(從機(jī)wready信號(hào)一直不拉高)

    一直拉高的。這與寫(xiě)數(shù)據(jù)通道好像有點(diǎn)區(qū)別。 我不清楚PS DDR到底發(fā)生了什么,但是和MIG就是有點(diǎn)不一樣,通過(guò)仿真MIG核可以發(fā)現(xiàn),P
    發(fā)表于 05-31 12:04

    基于E203的DMA ip的使用

    通過(guò)S00_AXI和M01_AXI對(duì)DMA進(jìn)行配置,而后DMA開(kāi)始工作,通過(guò)M_AXI_MM2S、S00_
    發(fā)表于 10-22 06:00

    PCIE XDMA IP介紹

    結(jié)構(gòu)圖這是PCIE IP,主要用來(lái)發(fā)送數(shù)據(jù),發(fā)送引擎主要負(fù)責(zé)將待發(fā)送數(shù)據(jù)按照PCIE協(xié)議組織成不同類型的TLP數(shù)據(jù)包,并發(fā)送給PCIE
    發(fā)表于 12-26 10:46

    AXI FIFO和AXI virtual FIFO這兩個(gè)IP的使用方法

    DDR3 或 DDR3L。開(kāi)發(fā)人員可以使用此存儲(chǔ)器通過(guò)直接存儲(chǔ)器訪問(wèn) (DMA) 在 DDR
    發(fā)表于 11-04 11:03

    ZYNQ的ARM和FPGA數(shù)據(jù)交互——AXI交互最重要的細(xì)節(jié)

    使用AXI4_Lite)總線把數(shù)據(jù)寫(xiě)入RAM中,PS從RAM中讀取數(shù)據(jù)。 3.PL
    發(fā)表于 11-03 10:51

    ZYNQ中DMAAXI4總線

    AXI-Lite或AXI4轉(zhuǎn)接。PS與PL之間的物理接口有9個(gè),包括4個(gè)AXI-GP接口和4個(gè)AXI-HP接口、1個(gè)
    的頭像 發(fā)表于 11-02 11:27 ?5159次閱讀
    ZYNQ中<b class='flag-5'>DMA</b>與<b class='flag-5'>AXI</b>4總線

    Xilinx FPGA里面的AXI DMA IP的簡(jiǎn)單用法

    本文以浮點(diǎn)數(shù)Floating-point IP將定點(diǎn)數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)為例,詳細(xì)講解AXI DMA IP
    的頭像 發(fā)表于 02-16 16:21 ?1.3w次閱讀
    Xilinx FPGA里面的<b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的簡(jiǎn)單用法

    基于AXI總線的DDR3讀寫(xiě)測(cè)試

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

    ZYNQ基礎(chǔ)---AXI DMA使用

    前言 在ZYNQ中進(jìn)行PL-PS數(shù)據(jù)交互的時(shí)候,經(jīng)常會(huì)使用到DMA,其實(shí)在前面的ZYNQ學(xué)習(xí)當(dāng)中,也有學(xué)習(xí)過(guò)DMA的使用,那就是通過(guò)使用自定義的IP
    的頭像 發(fā)表于 01-06 11:13 ?4037次閱讀
    ZYNQ基礎(chǔ)---<b class='flag-5'>AXI</b> <b class='flag-5'>DMA</b>使用