首页 > 其他分享 >13PCIE与PL数据交互加速构架方案

13PCIE与PL数据交互加速构架方案

时间:2023-12-30 19:12:42浏览次数:27  
标签:wbuf FPGA vsbuf PC unsigned PCIE 13PCIE 构架 PL

软件版本:vitis2021.1(vivado2021.1)

操作系统:WIN10 64bit

硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA

登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!

13.1概述

FPGA硬件加速是FPGA的重要应用,基于PCIE的硬件加速需要通过PC上位机把需要计算的数据PCIE接口发送给FPGA,FPGA做完运算后,再传送给PC。米联客FPGA PCIE相关教程主要为解决用户对于基于FPGA的PCIE的方案接口应用。本方案提供了一种基于PCIE的可以用于加速的算法的通信构架,在这套构架下,用户可以快速搭建自己的加速应用方案。

13.2系统构架

PC上位机发送数据通过PCIE接口经过XDMA IP 写入到开发板的DDR中,之后通过AXI-GPIO通知开发板数据已经完成发送,数据处理模块接收到AXI-GPIO的信号后,开始从Milianke uifdmadbuf IP中获取DDR中的数据。数据经过处理后经过uifdmadbuf IP写回到DDR中,并且通过XDMA的中断事件通知上位机数据已经处理完毕。

13.3FPGA代码

图形代码中关键的信号接口引出到顶层,并且编写代码修改PC发送过来的数据,并且回传给PC

13.4上位机程序设计

上位机的地址分配必须确保和下位机的PCIE板卡中的地址一致

下位机的地址在uifdma_dbuf IP中设置,关于更多FDMA使用的内容可以阅读米联客"AXI4总线入门篇"博文在线学习地址为:https://www.uisrc.com/portal.php?mod=list&catid=81

 

数据的收发代码如下,发送部分每次发送完数据,需要通过user_write函数写GPIO

void h2c_transfer(unsigned int size, unsigned char *buffer)

{

     unsigned char vsbuf_ctr_val;

 

     memcpy(h2c_align_mem_tmp, buffer, size);

     write_device(h_h2c0, h2c_fpga_ddr_addr[wbuf], size, h2c_align_mem_tmp);

     vsbuf_ctr_val = 0x7f & wbuf;

     user_write(ADDR_VSBUF_CTR, 4, &vsbuf_ctr_val);

 

     vsbuf_ctr_val = 0x80 | wbuf;

     user_write(ADDR_VSBUF_CTR, 4, &vsbuf_ctr_val);

 

     if (wbuf >= 2)

         wbuf = 0;

     else

         wbuf++;

}

 

unsigned int c2h_transfer(unsigned int size)

{

double bd=0;

double time_sec;

 

QueryPerformanceFrequency(&freq);

QueryPerformanceCounter(&stop);

time_sec = (unsigned long long)(stop.QuadPart - start.QuadPart) / (double)freq.QuadPart;

bd = (int)(1.0/time_sec);;

QueryPerformanceCounter(&start);

read_device(h_c2h0,c2h_fpga_ddr_addr[fbuf],size,c2h_align_mem_tmp);

return (unsigned int)bd;

}

 

13.5硬件安装

注意确保TF卡里面没有程序,或者拔掉TF卡。

先下载程序,调试阶段下载bit文件,然后再开电脑。这样才能正确识别和后续测试工作正常开展。

13.6实验结果

 

标签:wbuf,FPGA,vsbuf,PC,unsigned,PCIE,13PCIE,构架,PL
From: https://www.cnblogs.com/milianke/p/17936668.html

相关文章

  • flutter ios swift avplayer 播放器自动播放下一集
    使用监听监听结束事件importFoundationimportAVKitimportMediaPlayerimportFlutterclassFlutterAVPlayerView:NSObject,FlutterPlatformView{privatevar_flutterAVPlayerViewController:AVPlayerViewControllerprivatevarurlArray:[URL]=[]......
  • matplotlib嵌入到pyqt中
    在pyqt5中使用matplotlib前言虽然,qt中也提供了绘图函数,但对于初学者并不是很容易掌握,众所周知,matplot提供了简单,易用,强大的绘图函数,结合mumpy基本可以达到matlb中的绘图体验,并且比matlab更加具有扩展性,也更自由。通过matplotlib提供的官方例程的修改,就可以很容易的绘制你想要的......
  • 07基于fdma ddr多路视频数据构架方案
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!7.1概述    基于AXI总线可以使用axi_interconnect的仲裁机制,同时接入多个基于AXI总线的IP,米联客的fdma采用的是A......
  • 无涯教程-Java 正则 - Matcher appendReplacement(StringBuffer sb, String replacem
    java.time.Matcher.appendReplacement(StringBuffersb,Stringreplacement)方法实现了附加和替换操作。MatcherappendReplacement-声明publicMatcherappendReplacement(StringBuffersb,Stringreplacement)sb           - 目标字符串缓冲区......
  • Applied Statistics - 应用统计学习 - numpy array交换两行 ? How to Swap Two Rows in
    https://www.statology.org/qualitative-vs-quantitative-variables/https://www.statology.org/numpy-swap-rows/HowtoSwapTwoRowsinaNumPyArray(WithExample)YoucanusethefollowingbasicsyntaxtoswaptworowsinaNumPyarray:some_array[[0,3],:......
  • 无涯教程-Java 正则 - Pattern String[] split(CharSequence input)函数
    java.util.regex.Pattern.split(CharSequenceinput)方法将给定的输入序列拆分为该模式的匹配项。String[]split-声明publicString[]split(CharSequenceinput)input  - 要拆分的字符序列。String[]split-返回值通过在此模式的匹配项附近拆分输入来计算的字符......
  • Spring Boot学习随笔- 集成MyBatis-Plus,第一个MP程序(环境搭建、@TableName、@TableId
    学习视频:【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备!引言MyBatis-Plus是一个基于MyBatis的增强工具,旨在简化开发,提高效率。它扩展了MyBatis的功能,提供了许多实用的特性,包括强大的CRUD操作、条件构造器、分页插件、代码生成器等。MyBati......
  • JavaScript的apply、call、bind方法
    JavaScript的apply、call、bind方法概述简述这三个方法存在一定的迷惑性,而且对于刚看ES6的人来说,十分难理解,这里为了以后我可能会复习到这个知识点,做出详解。总的来说,这三个方法都是将某某某(某01)绑定在某某某(某02)上,然后执行这个被绑定的某某某(某01),或者单纯就是绑定不执行。详......
  • PLSQL打开数据库对象乱码
    1.问题描述   PLSQL打开远程数据库对象后,发现其中的中文内容为问号乱码.    2.处理方式   这种情况一般是我们初次安装PLSQL后,未在本地配置与数据库一致的NLS_LANG环境变量,导致远端获取的对象字符集在本地解析时无法识别。2.1远程数据库配置情况   使用......
  • 初中英语优秀范文100篇-042Is It Good for Students to Play Video Games?学生玩游戏
    PDF格式公众号回复关键字:SHCZFW042记忆树1Videogameshavebecomemoreandmorepopularnow.翻译现在视频游戏变得越来越流行。简化记忆流行句子结构1主语(Subject):"Videogames"(电子游戏)是句子的主题,表示现在完成时态的承受者。2谓语(Predicate):"havebe......