:基于xdma的工程搭建)
写在最前面Vivado的版本后面验证是错误的思路可以不用看XDMA PCIE开发期间两个版本问题的解决https://blog.csdn.net/kris_paul/article/details/128131527我说实话在这里卡了很久哪怕是最简单的bram的测试。我的板子是ALINX的AKU60FPGA芯片为xcku060-ffva1156-2-i。我前两周的开发环境是vivado2020.2这是我实验室电脑上安装的版本。但是一直跑不通我一直以为是程序的问题。后面重新弄了几次还是不行。运行xilinx官方的simple_xdma,exe时甚至会出现蓝屏卡死重启的状况。后面我查看了ALINX的开发手册将他们提供的pcie测试历程烧录进板卡可以成功正常通信然后我将这个例程用我当前的开发环境vivado2020.2打开什么都不操作只是进行了ip核升级然后重新进行了bitstream的生成再烧录进去就不行了后面我用了ALINX手册中的开发环境重新装了一个vivado2017.4就可以了所以我一直卡在了版本问题。大家的开发板如果有例程的话建议用对应的开发环境。我将这个问题在xilinx的中文社区进行了提问等待大佬能够解决。解决了哈哈哈解决了不是版本问题是xdma的参考时钟需要进行约束总结少了一句约束在这居然卡了两三周我真是。以后得注意xdma约束https://adaptivesupport.amd.com/s/feed/0D54U00008xrzf6SAA?languagezh_CN这是在amd官网找到的解决方案。我一开始是在综合的时候进行的io口分配导致xdc中的约束是这样的然后进行implement也没时序报错就一直修改bd设计了没关注这里了。后面我又生成了一个xdma的例程因为一直在进行bd设计所以没有考虑这个步骤属实是粗心了。提供了一个约束文件里面是这样的然后王博的xdc中也是这样然后就瞬间懂了加了一个时序约束终于在我的vivado2020.2上测试成功了前面的疑问就不删了vivado版本问题也算是自己探索的一步骤。0参考大家一定要去学下下这个花个3,4天简单通读有一个简单的结构在脑子中后面使用的时候随时查询各自详细的部分。PCIe扫盲系列博文连载目录篇第一阶段-Felix-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台 (chinaaet.com)https://blog.chinaaet.com/justlxy/p/5100053251记录一下在学习过程中参考的资料1xdma网上一般推荐在block_design里面实现所以关于地址映射需要考虑block design中关于地址映射问题https://blog.csdn.net/m0_61298445/article/details/1263235442板卡与pc机的pcie确认在上电时就会确认所以需要将程序烧写进板卡的flash中烧写程序进flashhttps://blog.csdn.net/weixin_42837669/article/details/121625188擦除flash中程序https://blog.csdn.net/AlibabaApple/article/details/1231143043XDMA因为其接口众多建议使用block_design开发网上查询的资料都是BD为主。参考模块搭建Xilinx XDMA说明和测试-MMhttps://blog.csdn.net/weixin_43956013/article/details/128608551【FPGA干货教程】10分钟上手Xilinx XDMA IP核 手把手搭建测试工程https://www.bilibili.com/video/BV1QsU7Y8EgS/?spm_id_from333.337.search-card.all.clickvd_sourceab9cce66f1d596ced0a60f784d99d3654站内很好的关于xdma的模块介绍新手学习Vivado XDMA (1) - 配置详细分析https://blog.csdn.net/qq_18553915/article/details/136524372PCIE XDMA调试记录https://blog.csdn.net/hy_520520/article/details/1205451285GitHub的王博WangXuan95 / Xilinx-FPGA-PCIe-XDMA-Tutorialhttps://github.com/WangXuan95/Xilinx-FPGA-PCIe-XDMA-Tutorial?tabreadme-ov-file工程编写xdma使用gen3.0x81xcku060_bd_xdma_bram1bram_bar与xdma的bar_axi_lite接口相连接用于测试bar空间的使用。2bram_ddr与xdma相连接用于数据交互。3几个ila用于上板时抓取数据。2xcku060_bd_xdma_ddr上图为我搭建的xdma测试用例包括1bram与xdma的bar_axi_lite接口相连接用于测试bar空间的使用。2ddr4与xdma相连接用于数据交互。3几个ila用于上板时抓取数据。上板测试推荐使用两台电脑一台用于抓取ila数据帮助我们更好的去了解xdma的数据流向与详情。另一台用于插FPGA板卡。实物连接1xcku060_bd_xdma_bram一开是认为是版本问题在vivado2017.4中开发的。后续也成功的在vivado2020.2中实现。这个模块实现的是基于bram的xdma测试模块bd设计框图如下使用一个bam与xdma的M_AXI相连接进行交互数据的处理。另外一个bram与AXI-LITE相连接作为bar空间的存储单元。ila抓取使用Drive Wizard进行bar空间的写入写入12345678速度测试数据AXI抓取2xcku060_bd_xdma_ddr与前面相比只是将存储数据的容器从bram换成了ddr这也间接证明了bd在设计带AXI接口时的快速开发能力。mig pass:xilinx官方例程测速计算与后续基本一致ila抓取数据ila抓取axi_litebar空间测速软件可以看到相比与bram 写速率快了很多读写同时测试只读测试只写测试调试完毕。