LinuxDown

LinuxDown.com
Linux系统下载网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

基于XilinxA7FPGA实现PCIE接口功能功能

2023年4月12日 95点热度

目录

正文

0概述

最近因仪表项目需求,须要上位机PC端通过PCIE插口与FPGA功能子卡进行数据通讯,故开始研究基于XilinxA7FPGA实现PCIE插口功能。

1打算工作

要实现上位机Host端与FPGA子卡设备端通过pcie插口通讯,须要3个必备条件:

(1)上位机应用程序;

linux 图形调试_linux 图形串口调试工具_linux下的图形化串口调试工具

(2)pcie驱动程序;可以从Xilinx官网下载对应系统驱动linux下的图形化串口调试工具,之后进行二次开发,添加用户所需的驱动函数

(3)FPGA子卡端PCIE逻辑程序;

须要阅读的Specification和UserGuide如下:

1.PCI.Express.Base.Specification.v2.0-PCIE总线合同说明书

倘若仅从项目应用角度而言,只须要研读一遍,有个大约印象,熟悉高频专业术语即可,不用花大量时间去啃,由于Xilinx官方会提供PCIEIP核,将底层逻辑都封装好qq linux,开发者只需关注用户开发逻辑即可。PS:其实,假如有时间,深入研究肯定更好。

2.DMA/BridgeSubsystemforPCIExpressv4.1(pg195)

xilinx官方用户指南,讲解PCIEXDMAIP核的用法

PS:曾经用ISE开发软件的时侯,因为Xilinx官方提供的PCIEDMA方法是基于xapp1052文档述说的Demo解释器,须要用户去理解Demo工程,并自行降低用户所需的功能逻辑,我那种时侯研究了一段时间后,还是没有完全搞定,就搁置了。

如今Vivado开发软件提供的XDMAIP核封装的更简单linux下的图形化串口调试工具,使用更特别便捷,解决了我这些PCIE小白好多开发障碍,首推。

2.开发流程

(1)Xilinx提供的DMASubsystemforPCIExpressIP是一个高性能,可配置的适用于PCIE2.0,PCIE3.0的SG模式

DMA,提供用户可选择的AXI4插口或则AXI4-Stream插口。

PCIEXDMAIP核配置的关键参数为BAR参数设置。PCIEDMAinterface软件已默认使能,用户可以通过使能PCIEtoAXI_LiteMaster插口与主机端

进行寄存器的读写操作。XDMAIP核是基于AXI4.0总线进行插口封装的,须要用户对AXI总线基础知识有所了解更优。

(2)基于XDMAIP核进行FPGA工程开发,选择BlockDesign开发方法(类似于ISE原理图开发方法),其实直接通过RTL逻辑开发方法也可以,

然而各个模块的插口讯号须要自己去联接,太冗长且容易出错,不如图形化设计便捷。我是参考米联客/黑金开发板教程来设计的FPGA工程,主要实现

两个功能:

a.主机端与FPGA设备端通过DMA形式,进行数据包的发送&接收功能;

b.主机端与FPGA设备端通过BAR形式,进行寄存器的读写功能;

(3)插口说明如下:

BramPORTA_0(writeonly),BramPORTB_0(readonly)这个单向插口是DMA写数据包和回读数据包插口,那么设计而不直接用BlockRam联接linux 下载,是易于用户

降低自己的逻辑:比如用户通过BramPORTA_0写入数据包内容,之后主机端通过BramPORTB_0回读数据包内容。这是常见的用法,例如FPGA子卡为一个数据采集卡,须要将实时采集的视频数据组包后,通过中断形式,通知主机将已打算好的数据包回读到PC端。

3.测试结果

用户通过BramPORTA_0写入数据包内容:0x07_06_05_04_03_02_01_00(每位数据为64位显存)~0xff_fe_fd_fc_fb_fa_f9_f8,循环发送,共计512个数据。

主机通过BramPORTB_0回读数据包内容,之后将回读的数据写入bin文件,进行数据验证。

linux 图形串口调试工具_linux 图形调试_linux下的图形化串口调试工具

上图为FPGA写入的数据包内容。FPGA抓取数据点主频设置为32位,为了节约资源。可知,数据点从0x07_06_05_04_03_02_01_00开始。

上图为主机端回读的数据包内容。FPGA抓取数据点主频设置为32位,为了节约资源。可知,起始数据点从0x07_06_05_04_03_02_01_00开始,有一个时钟的延时。因为上位机写入回读数据的bin文件格式须要用UltraEditor来打开,就不贴图了。

4总结

1.参见上图可知,BramPORTA_0_clk该时钟讯号仍然为0,这一点很奇怪,理论上应当与s_axi_clk。所以我在用户逻辑部份,对BramPORTA_0端口操作,模块时钟选择的为axi_clk总线时钟。

2.BAR地址设置:PCIEtoAXITransiation为何设置为0x44A0_0000,是可以FPGA端随便设置,还是由PCIE驱动端与FPGA端共同商定,设置为相同的地址即可,我抽空实测一下。

经过实测可知,BAR地址PCIEtoAXITransiation设置是可以在FPGA端任意设置的,只需各个AXI总线子模块设置的地址范围不同即可。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: fpga pci 上位机 接口 用户接口
最后更新:2023年4月12日

Linux系统下载网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux系统下载网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
CentOS必备:高效编写代码,CodeBlocks安装教程 美国虚拟主机为什么钟情Linux操作系统,Linux有何优势 苹果电脑装Linux:实现双系统启动! 如何使用花生壳+SSH实现Linux服务的远程访问难题? Linux环境变量修改,让系统更智能 微软年度开发者大会Build2023:AI应用开发的关键一环 Linux基础命令大全,轻松掌握! 微软Build2023助力全球开发者共同把握新机遇 RedHat 6.5下载、安装配置,官网提供! 无需公网IP、不用路由器设置,就能实现Windows远程访问Linux系统办法 微软Build大会宣布了哪些重大产品和更新?回来了 Redhat启动界面问题解决,畅享系统体验! Linux解压zip文件9招 基于Linux系统的USBHOST驱动程序设计与实现(HC) Linux退出文本编辑,优雅又简单! 斑马智行王恺:智能网联汽车技术进步与商业化应用 安装必要工具**-- Linux内核24版源代码全解析! Linux系统管理 Fedora20安装指南:轻松上手
各个Linux系统设置开机自启动脚本示例代码:CentOS必备:高效编写代码,CodeBlocks安装教程轻松下载安装Linux操作系统ISO,快速上手!两年前的预言几乎都成为现实,Meizu魅族M9智能手机探秘Linux内核用户空间:你了解几个?(Linux基础知识)Linux系统安装ethtool固件版本的方法探究Linux网络操作系统各版本:详细分析8个方面如何在UbuntuLinux上安装Go开发环境嵌入式系统接口设计与Linux驱动开发:9方面详解Linux下配置JDK、Tomcat以及部署geowebcache配置地图发布环境掌握Linux系统调用头文件,轻松实现应用案例Linux操作系统的命令及管理命令汇总!!微软VisualStudio2015支持外接应用安装步骤和新功能Linux高效开发 | CodeBlocks编程利器node切换工具nvm安装并切换nodejs版本的注意事项!轻松查询20款主流Linux发行版本,全面了解最新动态韩国Linux多线程服务端编程使用C++网络库编程Linux也能玩安卓应用,9个简单安装步骤!掌握Linux查询版本命令,轻松获取系统信息Linux开机后自动运行用户的应用程序或启动系统服务的命令
linux rserve LinuxRserve:专业人士为何转投? 轻松掌握!Linux版本信息查找攻略 探究Linux内核版本,深入分析与讨论 各个Linux系统设置开机自启动脚本示例代码: 轻松查询Linux操作系统版本,八种方法全掌握 PDFelement6Promac版(万能编辑器编辑器)中文编辑工具 ❤️1.Linux用户的概念Linux下有Linux Linux如何安装fcitx输入法 掌握Linux串口驱动:原理、实现、应用与技巧 Linux如何指定复制文件? Linux系统安装串口转换驱动教程 Logic/HFS+文件系统修复固件故障的解决办法 深入探究桌面Linux操作系统的吸引力,想知道为什么? deb怎么安装deb文件deb包的2种安装方式介绍 轻松查看Linux系统版本,不同发行版通用技巧! Linux常用软件源,打造高效系统 深度剖析arm linux内核启动,图文详解! 实现U盘轻松使用,虚拟机中安装Linux系统教程 虚拟设备更好的秘诀与物理设备让IT界为之倾倒一样 Linux基础知识:软链接文件命令模式总结
标签聚合
电脑 linux系统 sudo 操作 linux服务器 文件目录 centos 软件 虚拟机 命令模式
书籍
课程
技术群
技术干货大合集↓
  • 2023年5月 / 114篇
  • 2023年4月 / 115篇
  • 2023年3月 / 265篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 LinuxDown.com ALL RIGHTS RESERVED.

京ICP备14023444号-2