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

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

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

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

基于AXI DMA IP核的DDR數(shù)據(jù)存儲與PS端讀取

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

掃碼添加小助手

加入工程師交流群

Vivado工程搭建

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

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

添加Zynq Processing System IP核,配置DDR控制器時鐘。7000系列的Zynq可以參考正點原子DMA回環(huán)測試設(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,由于工程需要,對ip進行修改,使得傳輸?shù)臄?shù)據(jù)位寬是16位,一共傳輸320*256個數(shù)據(jù)。修改位寬后re-package可能會出現(xiàn)報錯,請自行查找解決辦法。

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

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

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

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

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

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

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

在關(guā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è)計(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 端對應(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;   }  // 啟動接收  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端開始發(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完成(這里簡單用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ù)傳輸流程

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

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

測試結(jié)果如下:

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

ila信號如下:

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

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

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

    關(guān)注

    114

    文章

    17621

    瀏覽量

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

    關(guān)注

    11

    文章

    747

    瀏覽量

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

    關(guān)注

    1

    文章

    142

    瀏覽量

    17771
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    846

    瀏覽量

    70423

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    使用AXI4接口IP進行DDR讀寫測試

    本章的實驗任務(wù)是在 PL 自定義一個 AXI4 接口的 IP ,通過 AXI_HP 接口對 PS
    的頭像 發(fā)表于 11-24 09:19 ?2492次閱讀
    使用<b class='flag-5'>AXI</b>4接口<b class='flag-5'>IP</b><b class='flag-5'>核</b>進行<b class='flag-5'>DDR</b>讀寫測試

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

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

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

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

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

    麻煩,靈活性也比較差,本節(jié)課程講解如何直接通過AXI總線來讀寫PSddr數(shù)據(jù),這里面涉及到AXI
    的頭像 發(fā)表于 01-30 09:54 ?1.6w次閱讀
    【ZYNQ Ultrascale+ MPSOC FPGA教程】第三十二章PL讀寫<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進行DDR的讀寫測試

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

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

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

    有關(guān)PL利用AXI總線控制PSDDR進行讀寫(從機wready信號一直不拉高)

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

    基于E203的DMA ip的使用

    通過S00_AXI和M01_AXIDMA進行配置,而后DMA開始工作,通過M_AXI_MM2S、S00_
    發(fā)表于 10-22 06:00

    PCIE XDMA IP介紹

    結(jié)構(gòu)圖這是PCIE IP,主要用來發(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這兩個IP的使用方法

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

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

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

    ZYNQ中DMAAXI4總線

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

    Xilinx FPGA里面的AXI DMA IP的簡單用法

    本文以浮點數(shù)Floating-point IP將定點數(shù)轉(zhuǎn)換為浮點數(shù)為例,詳細講解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>的簡單用法

    基于AXI總線的DDR3讀寫測試

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

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

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