几年前项目中,我们要用到Xilinx的XDMA(PCIe Direct Memory Access)IP核,以实现FPGA与主机之间的高效数据传输。XDMA它支持通过PCIe接口进行直接内存访问,非常适合高带宽的数据传输项目。
我的测试环境是Ubuntu20.04的上位机,以及我们自研的xilinx v7系列的数据采集卡。对于驱动一窍不通的我安装驱动就很头疼了,官网的驱动下载下来,linux环境中编译总是遇到编译不通过的问题,上网搜,那时候很少用这个ip的调试记录非常少。只能去官网论坛求助,提问等了好几天才等到网友的回复,才知道是回家中缺少各种库,对于linux系统小白,又得吭哧吭哧敲哪些不熟悉的linux命令去安装缺失的库文件。就光是装好驱动就搞了两周多。后面好不容易可以跑performance测试结果显示上行数据只有2个多G,检查IP确定应该是没设置错误,但是速率就是不对。最后开始怀疑硬件有问题了。怎么办,找到一个看PCIE接口的liux命令 lspci 这个命令是真有用啊(调试pcie会经常用的到),总算找到原因了原来是X8变X4了。拿酒精擦了擦金手指,主板插槽吹了吹,反复插拔了好几次总算认到时X8了。测试performance能到6G多点。前前后后搞了快一个月才基本上能跑起来了。不会驱动的FPGA工程师搞这个IP真费劲!
|