XDMA IP核配置

XDMA 是2017 年 Xilinx 针对 FPGA 平台推出的 PCI-E 数据传输的 IP 核。此IP核可以实现PCI-E SGDMA的功能,可以快速的在FPGA板卡上完成PCIE 接口的调试。

双击打开IP,首先是IP 的主界面,

  1. 我们在主界面将IP的配置模式设置为“Advanced”(这个就是配置模式,basic也可以)
  2. X0Y0为板卡上PCIe的物理位置
  3. 标号 3 处为 PCIe 的 Lane 宽度设定,但是 ZYNQ7035 实际宽度是X4,因此选择X4。
  4. 标号4处,是PCIe最大的传输速率,PCIe-V1.0的最大传输速率为 2.5GT/S,PCIe-V2.0 的最大传输速率为 5GT/S。因此我们要选择最大的传输速率,我们选择为5GT/S。
  5. 标号5处为参考时钟频率的选择,常用100MHz。
  6. 标号 6 处是我们的 AXI 地址位宽,如果我们的PCIe 的写地址>4GB,我们需要选择 64bits。我们这里选择 64bits。
  7. 标号 7 处是 AXI 用户端口位宽的选择,我们选择 64bit。也可以选择为 128bit,但 64bit 对于程序开发来说更好处理。
  8. 标号8处是AXI用户端口的时钟频率,它和AXI用户端口位宽成反比。
  9. 标号9处是AXI接口形式的选择,我们选择AXI-MM。
    在这里插入图片描述
    配置好第一页后,我们开始配置第二页。第二页主要是 PCIe 配置空间中的基础信息的配置。比如说厂商 ID,设备 ID,设备大类等等。这些信息都是存在于PCIe 的配置空间中的,我们在配置IP时,将这些信息填写完整,最终这些信息会以ROM的形式存储在FPGA中。

在这里插入图片描述
在第三页中,主要配置 BAR 的信息于DMA Bypass 的信息。首先BAR的设置我们应该都比较了解了,XDMA将BAR空间用于内部的寄存器空间。我们可以勾选“PCIe to AXI Lite Master Interface”
将 BAR 空间扩展到我们的用户程序中。这样上位机可以通过访问“PCIe to AXI Translation”处的偏移地址,就可以将BAR数据通过AXI-Lite输出给用户逻辑,这样我们就可以灵活的设计BAR空间了。
在这里插入图片描述
在第四页“PCIe:MISC”中我们可以设置中断相关的信息。在 PCIe 总线中有3种中断方式。分别是“Legacy Interrupt Settings”;“ MSI”;“ MSI-X”。其中第一种方式叫做传统中断,它是PCI时期遗留下来的中断方式,这种中断方式是使用引脚传输高低电平触发中断的,非常的原始,这种方式也有很多的弊端,不建议使用。第二种“MSI”,是在 PCIe 初期新增加的中断方式,这种中断方法使用 TLP 报文去上报中断信息,灵活性更高。但在“MSI”种最多支持8 个中断向量,并且向量必须连续。在“MSI”的基础上,提出了”MSI-X”中断机制,它最大的优点是支持更多的中断向量,并且可以不连续。我们在XDMA种推荐使用“MSI”或者“MSI-X”。
在这里插入图片描述
在第五页“PCIe:DMA”中主要设置我们的 DMA 模式。DMA 是需要和上位机进行配合使用的,在Xilinx 的 Github 上提供了两个版本的 XDMA 驱动,一个是 WINDOWS 版本的,另一个是 Linux 版本的。我们可以在此页里设置DMA 的一些信息。其中最需要我们关注的就是“H2C”与“C2H”。那么先让
我们来看看什么是“H2C”,“ H2C”是 Xilinx 文档中的一个术语,他表示 Host到 Card 的传输方向,那么“H2C”其实就是表示数据从主机传输到设备。“C2H”正好与其相反,“C2H”表示数据从Card传输到Host,也就是将数据从设备传输到主机。我们在“Number of DMA Read Channel”与“Number of DMA Write Channel”两处可以设置“H2C”和“C2H”的数量,这个数量就代表了我们传输通道数量,我们如果用两个不同的数据来源,比如一个是光纤,另一个是 ADC,那么我们就可以开两个通道分别传输不同的事物。这样上位机很容易区别数据的来源和类型。
在这里插入图片描述
最后一页中是设置共享时钟的,一个MGT-BANK 的参加时钟可以用于相邻的3个MGT-BANK上。那么我们PCIe的输入参考时钟也可以共享,但我们此处没有共享的需求,因此在最后一页中我们没有设置共享时钟。详细配置见图 20。
在这里插入图片描述
到这里我们IP核的配置就结束了,后续会更新搭建XDMA的block design工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值