XILINX 7系列XDMA使用_IP核介绍以及工程搭建

news2025/2/25 10:06:37

文章目录

  • 一、XDMA IP核
    • 1.1、接口说明
    • 1.2、配置页说明
  • 二、XDMA工程搭建
    • 2.1、BD搭建
    • 2.2 Linux下XDMA驱动安装
    • 2.3 Linux下使用XDMA进行数据传输

一、XDMA IP核

在这里插入图片描述

1.1、接口说明

sys_clk:主机给PCIE提供的时钟信号,通过原理图查看
sys_rst_n:主机提供的冷复位,原理图查看
usr_irq_req:用户中断请求
M_AXI:主机通过该AXI接口访问FPGA的存储空间,一般接DDR
M_AXI_LITE:用户自己拓展的BAR空间
pcie_mgt:PCIE的GT收发器通道
user_link_up:拉高表示FPGA与主机连接正常
axi_aclk:AXI接口时钟
axi_aresetn:AXI接口复位
usr_irq_ack:用户中断请求的响应,表示主机接收到了中断请求
msi_enable:表示主机支持MSI中断
msi_vector_width:支持的MSI中断向量个数

1.2、配置页说明

在这里插入图片描述
PCIE Block Location:PCIe 的物理位置,根据原理图的位置选择,本实验为ZYNQ7100,PCIE位置为X0Y0,由于是X8,占俩个GT BANK,但这好像只能选一个。
Lane Width:根据板卡实际选择,我这里是PCIE2.0 X 8
Link Speed: PCIe 最大的传输速率,PCIe-1.0 的最大传输速率为 2.5GT/S,PCIe-2.0 的最大传输速率为 5GT/S。选择为 5GT/S。
reference clock:参考时钟频率的选择,常用 100MHz。
剩余都是AXI的一些配置

在这里插入图片描述
第二页为PCIe 配置空间中的基础信息的配置。如说厂商 ID,设备 ID,设备类型等。这些信息都是存于 PCIe 的配置空间中。

在这里插入图片描述
第三页中主要配置 BAR 的信息与DMA Bypass 的信息。

在这里插入图片描述
中断信息配置,后续说明

在这里插入图片描述
传输通道数选择

二、XDMA工程搭建

2.1、BD搭建

在这里插入图片描述
添加DDR和一个AXI_LITE从机接口用于测试主机通过XDMA读写FPGA存储空间,并且添加了一些ILA进行上板观察。
注意以下几点:

  1. 在BD当中进行地址分配时,AXI_LITE的基地址要与XDMA当中填写一致。
  2. DDR单独给一个复位信号,不要用PCIE的冷复位信号
  3. 有些板卡的PCIE LANE 线序是反的,得在IP核的XDC文件当中修改一下

2.2 Linux下XDMA驱动安装

我使用的Linux系统为ubuntu22,所以官方驱动要改一下才能用,网上有一个可以用于22的:https://github.com/MischaBaars/dma_ip_drivers
至于其他测试都很简单,关于驱动的东西我个人了解较少,后续再慢慢学习吧。

测试流程:

  1. 下载bit流到板卡

  2. 连接好主机和FPGA的PCIE,保持FPGA上电状态,重启电脑
    在终端输入lspci查看PCIE设备,出现以下内容说明成功识别板卡
    在这里插入图片描述

  3. 编译驱动

ubuntu22:~/xdma_driver/dma_ip_drivers/XDMA/linux-kernel/xdma$ make all
  1. 安装驱动
~/xdma_driver/dma_ip_drivers/XDMA/linux-kernel/tests$ ./load_driver.sh
  1. 驱动测试
~/xdma_driver/dma_ip_drivers/XDMA/linux-kernel/tests$ ./run_test.sh

出现以下内容则说明驱动安装成功。
在这里插入图片描述

2.3 Linux下使用XDMA进行数据传输

  1. 寄存器读写
    使用/tool文件当中的reg_rw工具,输入./reg_rw -h查看使用方法
    在这里插入图片描述
    读写示例如下图:
    在这里插入图片描述
    注意:这个寄存器读写工具,是读写我们在设置IP核的时候自己添加的BAR0空间,也就是AXI_LITE接口,所以最大位宽为32,地址也不能超过我们设置的大小,下图是我设置的AXI_LITE地址大小:
    在这里插入图片描述
    可从0x000写到0xFFF,每次读的地址必须是4的整数倍,不然读出来是错的,最大写地址不可以超过0xFFF,如:

在这里插入图片描述

  1. 文件读写
    使用/tool文件当中的dma_to_device和dma_from_device工具,输入./dma_to_device -h可查看使用说明
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1824020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flowable工作流中会签节点处理回退并清除审批意见

文章目录 1,操作方法及步骤2,实现细节3,总结 1,操作方法及步骤 在Flowable工作流会签流程中,如果最后一个人选择回退流程,想要清除前面用户A和B填写的审批意见,需要通过Flowable提供的API来操作…

LVS_Director + KeepAlived + 邮件报警

目录 一. 环境准备 二. 对master和backup操作 三. 配置master主机 四. 配置backup主机 六. 验证虚拟IP 七. 配置后端两个web服务器 对web1和web2主机都进行如下操作: 单独修改web1主机 单独修改web2主机 验证 八. 设置邮件报警 一. 环境准备 KeepAlive…

【CT】LeetCode手撕—102. 二叉树的层序遍历

目录 题目1-思路2- 实现⭐102. 二叉树的层序遍历——题解思路 3- ACM实现3-1 二叉树构造3-2 整体实现 题目 原题连接:102. 二叉树的层序遍历 1-思路 1.借助队列 Queue ,每次利用 ①while 循环遍历当前层结点,②将当前层结点的下层结点放入 …

[大模型]Qwen2-7B-Instruct 接入 LangChain 搭建知识库助手

环境准备 在 autodl 平台中租赁一个 3090 等 24G 显存的显卡机器,如下图所示镜像选择 PyTorch–>2.1.0–>3.10(ubuntu20.04)–>12.1 接下来打开刚刚租用服务器的 JupyterLab,并且打开其中的终端开始环境配置、模型下载和运行 demo。 pip 换源…

图文RAG组件:360LayoutAnalysis中文论文及研报图像分析

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

ripro主题如何使用memcached来加速

ripro主题是个很不错的资源付费下载主题。主题自带了缓存加速开关,只要开启了缓存加速功能,正常情况下能让网站访问的速度提升很大。 但好多人这么做了却发现没啥加速效果,原因就在于wordpress里缺少了memcache文件。只需要把object-cache.ph…

电脑怎么录制游戏视频?轻松捕捉每一帧精彩

随着游戏产业的蓬勃发展,越来越多的玩家不仅满足于在游戏世界中的探索与冒险,更希望将自己的游戏精彩瞬间记录下来,分享给更多的朋友。可是电脑怎么录制游戏视频呢?本文旨在为广大游戏爱好者提供一份详细的电脑游戏视频录制攻略&a…

MySQL员工练习

MySQL员工练习 1.数据显示 员工信息表emp: 字段:员工id,员工名字,工作岗位,部门经理,受雇日期,薪水,奖金,部门编号 英文名:EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,BONUS,DEPTNO 部门信息表dept: 字段:部门编号,部门名称,部…

vscode 终端无法正常执行脚本命令如何解决

我们经常需要在vscode的中安装第三方依赖包,npm是前端目前最大的Node.js模块化管理系统,它能帮助开发者管理和发布Node.js模块。但很多时候我们在vscode的终端中执行npm install命令时经常会报以下错误: 但是在Windows的cmd命令提示符中执行n…

VM映像构建实践

概述 VM映像做为创建VM的必要条件,各类云环境映像市场均有提供最基础的映像。创建VM后,通常还需要根据组织或用户的需求,安装一些软件、修改配置后才能满足使用需求。这类需求通常可以手动部署或者借助一些配置管理工具,如ansibl…

KVM+GFS分布式存储系统构建高可用群集

KVMGFS 分布式存储系统构建 KVM 高可用群集 一:理论概述 1.1:Glusterfs 简介 Glusterfs 文件系统是由 Gluster 公司的创始人兼首席技术官 Anand Babu Periasamy编写。 一个可扩展的分布式文件系统, 用于大型的、 分布式的、 对大量数据进行访…

Java版SaaS模式云HIS系统源码Java+Spring+SpringBoot+SpringMVC 基层卫生健康云HIS源码

Java版SaaS模式云HIS系统源码JavaSpring+SpringBoot+SpringMVC 基层卫生健康云HIS源码 云HIS全称为基于云计算的医疗卫生信息系统(Cloud-BasedHealthcareInformationSystem),是运用云计算、大数据、物联网等新兴信息技…

宝藏速成秘籍(6)归并排序法

一、前言 1.1、概念 归并排序(Merge Sort)是一种基于分治思想的排序算法。它将数组分成两个子数组,分别对这两个子数组进行排序,然后再将它们合并成一个有序的数组。归并排序是一种经典的分治算法,它的核心思想是将待…

Elasticsearch搜索引擎(高级篇)

3.1 查询语法 | 《ElasticSearch入门到实战》电子书 (chaosopen.cn) day09-Elasticsearch02 - 飞书云文档 (feishu.cn) 目录 第一章 DSL查询 1.1 基本语法 1.2 叶子查询 全文检索查询 精确查询 1.3 复合查询 算分函数查询 bool查询 1.4 排序 1.5 分页 基础分页 深度分…

Visual Studio Code连接VMware虚拟机

1.安装VS Code插件 在拓展中安装插件 Remote-SSH 2.在虚拟机中安装OpenSSH服务器 使用超级用权限(root)更新软件包列表,Debian系统和Ubuntu系统使用apt包管理工具: sudo apt update CentOS系统使用yum或dnf包管理工具: sudo yum update …

618全面开战,抖音电商头部品牌罗拉密码突然“不干”了?

前言: 随着618电商大战的硝烟渐浓,各大电商平台纷纷摩拳擦掌,准备在这场年度购物盛宴中大展拳脚。然而,在这热闹非凡的氛围中,一个熟悉的名字却显得格外低调——罗拉密码。作为抖音电商领域的头部品牌,罗拉…

el-table 多选回显,分页回显

实现el-table多选分页回显功能&#xff0c;左侧是分页的数据源&#xff0c;右侧是选择后的人员数据&#xff0c;切换下一页&#xff0c;选中的数据会在左侧表格回显。 实现&#xff1a; <template><el-dialog :title"title" :visible.sync"show"…

C#开发-集合使用和技巧(二)Lambda 表达式介绍和应用

C#开发-集合使用和技巧 Lambda 表达式介绍和应用 C#开发-集合使用和技巧介绍简单的示例&#xff1a;集合查询示例&#xff1a; 1. 基本语法从主体语句上区分&#xff1a;1. 主体为单一表达式2. 主体是代码块&#xff08;多个表达式语句&#xff09; 从参数上区分1. 带输入参数的…

【LeetCode:2786. 访问数组中的位置使分数最大 + 递归 + 记忆化缓存 + dp】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…