首页 > 其他分享 >07PCIE数据卡BRAM缓存中断采集

07PCIE数据卡BRAM缓存中断采集

时间:2023-12-30 18:44:21浏览次数:22  
标签:10 插件 缓存 07PCIE IP 编译 qwt BRAM

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

操作系统:WIN10 64bit

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

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

7.1概述

在方案中,使用基于AXI4实现的FDMA来实现数据的缓存。通过切换缓存的地址,实现2帧以上缓存数据的读取。这种构架更加方便高效。帧的管理,使用到了PCIE中断,本方案中缓存使用了FPGA芯片自带的BRAM。

7.2系统构架

本系统中通过Milianke Uispi7606 IP串行采集数据,通过Milianke uifdma_dbuf将数据写入Bram。PCIE上位机使用XDMA IP通过AXI Interconnect IP读取存放在Bram中的ADC采样数据。

7.3FPGA工程

新版本的DAQ7606只支持SPI串行采样源码封装成uispi7606 IPCORE,教程的第一部分课程中有详细的讲解分析。采用SPI接口可以省下更多的FPGA IO。

以上demo种主要使用到了米联客开发的2个IP分别为uifdma_dbuf数据缓存控制IP以及uiFDMA 基于AXI的DMA IP,关于更多这两个IP的详细介绍可以阅读相关章节,也可以在线阅读我们官方的技术博文关于"AXI4-总线篇"相关内容https://www.uisrc.com/portal.php?mod=list&catid=81

7.4上位机程序设计

7.4.1qwt库的编译

qwt-6.1.4.rar库的源码可以在以下地址下载:https://www.uisrc.com/f-download.html

该demo的应用软件使用到了qwt插件,该插件可以用于波形的绘制。首先需要对该插件进行编译。

1: 使用VS中的QT插件打开qwt插件工程

 

2:配置编译的库

3:复制以下编译好的库到路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\lib

复制以下编译好的文件到路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\plugins\designer

 

4:在路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\include新建qwt文件夹

并且把C:\qwt-6.1.4\include中所有库头文件复制到该路径C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\include\qwt

5:打开已经设计好的VS+QT工程并设置VS中的项目属性

1-属性->配置属性->C/C+±>常规,附加包含目录:C:\Qt\Qt5.12.10\5.12.10\msvc2015_64\include\qwt

2-属性->配置属性->链接器->输入,附加依赖项:qwtd.lib

3-属性->配置属性->C/C+±>预处理器,预处理器定义:QWT_DLL

设置好后就可以正常编译了,用户可以直接下载已经编译好的库,这样可以省了编译QWT库的过程。

7.4.2QT界面设计

7.5硬件安装

注意先下载程序,调试阶段下载bit文件,然后再开电脑。这样才能正确识别和后续测试工作正常开展。这里需要使用到DAQ7606数据采集卡。

利用波形发生器提供测试波形

7.6实验结果

上位机代码比较简单,可以自己阅读。下面给出测试结果。

标签:10,插件,缓存,07PCIE,IP,编译,qwt,BRAM
From: https://www.cnblogs.com/milianke/p/17936649.html

相关文章

  • 08PCIE数据卡DDR缓存中断采集
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!8.1概述上一个例子演示了用BRAM作为数据缓存,显然板卡的BRAM容量非常有限,如果需要更大量数据的缓存就得用到DDR作为缓......
  • 09使用fdma读写axi-bram
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!1概述    FDMA是米联客基于AXI4总线协议定制的一个DMA控制器。有了这个IP我们可以统一实现用FPGA代码直接读写PL......
  • 03使用fdma读写axi-bram测试
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!3.1概述    FDMA是米联客基于AXI4总线协议定制的一个DMA控制器。有了这个IP我们可以统一实现用FPGA代码直接读写P......
  • .Net Core WebAPI 缓存
    Asp.NetCoreWebAPI缓存 一、缓存缓存指在中间层中存储数据的行为,该行为可使后续数据检索更快。从概念上讲,缓存是一种性能优化策略和设计考虑因素。缓存可以显著提高应用性能,方法是提高不常更改(或检索成本高)的数据的就绪性。二、RFC9111在最新的缓存控制规范文件RFC91......
  • 27 浅谈XILINX BRAM的基本使用
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述对于BRAM详细的说明在XILINX官方文档,pg058中有说明,我们这里仅对课程涉及的内容讲解。Xlinx系列FPGA......
  • Apache Commons JCS缓存解决方案
    第1章:引言大家好,我是小黑!今天,咱们来聊聊ApacheCommonsJCS,一个Java界里的缓存大杀器。缓存技术,对于提高应用性能来说,就像是给它加了一剂兴奋剂,能让数据访问变得快如闪电。而ApacheCommonsJCS,作为一个开源的Java缓存框架,它的出现就像是给了咱们一个超级工具箱,不仅强大而且使用......
  • 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、
    文章目录Flink系列文章一、maven依赖二、广播变量BroadcastVariables示例1、介绍2、广播变量示例3、验证三、BroadcastState与BroadcastVariable区别本文简单的介绍了flink中关于广播变量的简单使用示例。一、maven依赖为避免篇幅过长,所有基础依赖均在第一篇文章中列出,具......
  • 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、
    文章目录Flink系列文章一、maven依赖二、Flinksink介绍三、sink到文件、console示例1、console输出2、sink到文件1)、sinktxt文件到hdfs上2)、sinkcsv文件到本地3)、sinktext文件到hdfs上(writeUsingOutputFormat)四、sink到socket示例(writeToSocket)五、Jdbc/mysql示例1、maven依......
  • 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、
    文章目录Flink系列文章一、maven依赖二、分布式缓存(DistributedCache)示例1、介绍2、maven依赖3、实现4、验证1)、验证步骤2)、验证本文介绍了flink关于分布式缓存的使用示例,比较简单。本文除了maven依赖外,没有其他依赖。本示例需要hadoop环境可用。一、maven依赖为避免篇幅过长,所......
  • 【flink番外篇】4、flink的sink(内置、mysql、kafka、redis、clickhouse、分布式缓存、
    文章目录Flink系列文章一、maven依赖二、sink到ClickHouse示例1、介绍2、maven依赖3、创建clickhouse表4、验证clickhouseweb页面是否正常5、实现1)、userbean2)、sink实现6、验证1)、nc输入2)、启动应用程序3)、观察应用程序控制台输出4)、查看clickhouse表中的数据本文介绍了nc作......