首页/新闻资讯/正文详情

axis stream data通过DMA S2MM写入DDR

发布时间:2026/9/27 15:18:00 来源:云帆数科 栏目:资讯中心
axis stream data通过DMA S2MM写入DDR
今天我做了如下实验axis stream data通过DMA S2MM写入DDRPS读取DDR并通过串口打印其中axis stream data的触发是通过按键完成并且在调试过程中发现一个有意思的问题即“我首先在SDK点击Debug包含program FPGA然后我又在vivado重新Program device出现了ila我设置了key_pressed1为trigger条件在SDK端点击Run之前我按了按键ila捕捉到source_tready在key_pressed1之前一直为高电平有效之后source_tready有效持续4个时钟周期然后又被拉低此时我返回SDK点击Run收到的是丢失前四个数据的结果。”该错误操作下的ila抓包结果如下再次运行debug并先在PS端启动DMA后进行按键启动数据传输ila抓包如下此时PS串口也输出了完整的8个数据。结论一定要确保axis stream data在source_tready真正有效之后再进行传输。其中PS端对DDR的配置和轮询程序如下#include xparameters.h #include xaxidma.h #include xil_printf.h #include xil_cache.h #include sleep.h #define DMA_DEV_ID XPAR_AXI_DMA_0_DEVICE_ID #define DDR_BUFFER_ADDR 0x10000000 #define TRANSFER_LENGTH 32 XAxiDma AxiDma; int main(void) { XAxiDma_Config *ConfigPtr; xil_printf(\r\n); xil_printf(----- AXI DMA S2MM Test -----\r\n); //1. 查找 DMA 配置 ConfigPtr XAxiDma_LookupConfig(DMA_DEV_ID); //2. 初始化 DMA XAxiDma_CfgInitialize(AxiDma, ConfigPtr); //3. 禁用 S2MM 中断当前我们采用轮询方式 XAxiDma_IntrDisable( AxiDma, XAXIDMA_IRQ_ALL_MASK, XAXIDMA_DEVICE_TO_DMA ); //4. 清空 DDR Buffer u32 *BufferPtr (u32 *)DDR_BUFFER_ADDR; for (int i 0; i 8; i) { BufferPtr[i] 0xAAAAAAAA; } // 5. Flush Cache Xil_DCacheFlushRange( DDR_BUFFER_ADDR, TRANSFER_LENGTH ); xil_printf(\r\n); xil_printf(DDR buffer initialized.\r\n); XAxiDma_SimpleTransfer( AxiDma, DDR_BUFFER_ADDR, TRANSFER_LENGTH, XAXIDMA_DEVICE_TO_DMA ); xil_printf(DMA S2MM is armed.\r\n); xil_printf(Please press KEY to start PL data transmission.\r\n); // 6. 等待 DMA 接收完成 while (XAxiDma_Busy( AxiDma, XAXIDMA_DEVICE_TO_DMA )) {;} xil_printf(DMA transfer completed.\r\n); // 7. Invalidate Cache Xil_DCacheInvalidateRange( DDR_BUFFER_ADDR, TRANSFER_LENGTH ); // 8. 读取 DDR xil_printf(\r\n); xil_printf(DDR data:\r\n); for (int i 0; i 8; i) { xil_printf( DDR[%d] 0x%08lx\r\n, i, BufferPtr[i] ); } xil_printf(\r\n); xil_printf(----- Test Finished -----\r\n); return XST_SUCCESS; }PL中有一部分关于ILA的使用需要注意这里我将自己的source文件作为RTL module加入到了block design中了ila_0 不要作为一个独立 OOC 子设计处理而是跟 pll_clock_top 一起综合。module pll_clock_top( input clk, input rstn, input key, output [3:0] leds, output source_tvalid, output source_tlast, output [31:0]source_tdata, output [3:0] source_tkeep, input source_tready, //output key_pressed, //input start //input start ); // // Key debounce // wire key_state,key_pressed,key_released; key_debounce inst_key_debounce( .clk(clk), .rstn(rstn), .key(key), .key_state(key_state), .key_pressed(key_pressed), .key_released(key_released) ); // // LED // led_blink inst_led_blink( .clk(clk), .rstn(rstn), .key_pressed(key_pressed), .leds(leds) ); assign source_tkeep4b1111; axis_test_source inst_axis_test_source( .clk(clk), .rstn(rstn), .start(key_pressed), .m_tdata(source_tdata), .m_tvalid(source_tvalid), .m_tlast(source_tlast), .m_tready(source_tready) ); //set_property generate_synth_checkpoint 0 [get_files ila_0.xci] //这样告诉 Vivadoila_0 不要作为一个独立 OOC 子设计处理而是跟 pll_clock_top 一起综合。 ila_0 your_instance_name ( .clk(clk), // input wire clk .probe0(key_pressed), // input wire [0:0] probe0 .probe1(source_tvalid), // input wire [0:0] probe1 .probe2(source_tlast), // input wire [0:0] probe2 .probe3(source_tready), // input wire [0:0] probe3 .probe4(source_tdata) // input wire [31:0] probe4 ); endmodule

相关推荐

降重降AI二合一工具实测:2026年一次搞定双检
降重降AI二合一工具实测:2026年一次搞定双检

高校论文送审环节同步启用查重与AI检测,已是2026届毕业生普遍面对的现实。知网、维普等平台的双重把关,让论文修改从单一降重变成了"降重降AI"的双线任务。过去先降重再降AI的两步走模式,耗时费力且容易顾此失彼,市场因… · 2026/9/27 15:18:00

WAIC闭幕:国产AI全面领跑,203亿采购351款首发,TaoToken统一Key/API通道配置实战
WAIC闭幕:国产AI全面领跑,203亿采购351款首发,TaoToken统一Key/API通道配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 15:17:53

3步搞定免费搭建自助网站,性能优化让访问快如闪电
3步搞定免费搭建自助网站,性能优化让访问快如闪电

3步搞定免费搭建自助网站,性能优化让访问快如闪电 改个需求建站公司拖一周,改个颜色还要加钱?这种憋屈日子,今天必须终结。 别被“免费搭建自助网站”这四个字骗了,以为只是拖拖拽拽的模板站。真正的免费自助,是给你一套可掌控的代码骨架,让你像搭积… · 2026/9/27 15:17:53

Spingboot启动预热的实现
Spingboot启动预热的实现

启动预热的适用场景启动预热适合以下情况:数据主要来自第三方接口,无法直接从本地数据库读取。第三方接口响应较慢,首次访问容易超时。一个页面需要调用多个第三方接口或逐项查询。数据读取频繁,但变化不频繁。希望服务启动后&… · 2026/9/28 3:40:12

Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment
Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment

文章主要内容总结 本文研究了多模态大语言模型(具体为ChatGPT-4o)利用静态行车记录仪图像进行类人交通场景解读的潜力,重点聚焦与老年司机评估相关的三项任务:交通密度评估、交叉口可见性评估和停车标志识别。这些任务需上下文推理而非简单目标检测。研究采用零样本、少样… · 2026/9/28 3:32:43

Leveraging Large Language Models for Classifying App Users‘ Feedback
Leveraging Large Language Models for Classifying App Users‘ Feedback

文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)解决应用用户反馈分类的挑战,传统方法依赖有监督机器学习,但受限于标注数据集的规模和质量。研究通过三个核心实验评估了4种先进LLMs(GPT-3.5-Turbo、GPT-4o、Flan-T5、Llama3-70b)的性能: LLMs在用户反馈分类中的基… · 2026/9/28 3:32:43

Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...
Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...

文章主要内容总结 本文通过实验评估了大型语言模型(LLMs)在奥地利及欧盟增值税(VAT)法框架下辅助法律决策的能力。研究聚焦于两种提升LLM性能的方法——微调(fine-tuning)和检索增强生成(RAG),并在两类案例中进行验证:一是权威教科书案例,二是税务咨询公司的真实案… · 2026/9/28 3:32:43

学Java别走弯路,这5个方向最吃香
学Java别走弯路,这5个方向最吃香

学Java的人很多,但学明白的人不多。有人学了半年还在写控制台程序,有人一年就能独当一面。差别不在天赋,而在方向。Java生态太庞大了,什么都学等于什么都没学。选对方向,事半功倍。今天盘点当前最吃香的5个Java方向&am… · 2026/9/28 3:32:15

AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions
AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions

AlphaAgents相关总结与翻译 一、文章主要内容总结 (一)研究背景与问题 传统股票投资组合管理依赖人类分析师处理海量信息(如财务披露、财报、市场新闻等),存在信息处理效率低、易受认知偏差(如损失厌恶、过度自信)影响的问题,可能错失投资收益机会。尽管AI在数据处理… · 2026/9/28 3:32:08

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

制作网页比较方便的软件怎么选?一文搞懂避坑指南
制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码