手把手教你学会 Xilinx PCIE/XDMA 读写DDR系列(一) DDR/MIG配置详细步骤

因最近想通过PCIE把数据从FPGA传到PC,借此机会和大家一起学习XDMA读写DDR

制作不易,记得三连哦,给我动力,持续更新!!!

完整工程文件下载:XDMA读写DDR工程   提取码:4sxh

----------------------------------------------------------------------------------------

在实现FPGA和处理器、PC、ARM打交道的时候,有很多种方式进行通信,具体有以下几种实现方式:

由上图可以看的出来,PCIE的优势远远大于其他的通信方式,并且通信速度也是最快的一种,最高可以达到128Gbps。

Xilinx从15年前,V4系列开始,一直在PCIe的解决方案上深耕,提供众多的应用方案级的解决方案,方便用户专注于自己的应用。早期,Xilinx提供的有Application Notes,例如XAPP859,XAPP1052等,构建了基本的双向数据传输。当时一些第三方公司,类似于PLDA,NwLogic也出针对Xilinx FPGA的PCIe传输方案。

后来,Xilinx团队2017年附近推出XDMA解决方案,并持续增加功能、修正Bug,到目前为止,XDMA已经成为一个功能强大、成熟稳定的Xilinx FPGA解决方案。功能上涵盖了SG功能,AXI-Lite功能,多通道分离,AXI-MM和AXI-Stream支持等。稳定性上,经过4年的逐步完善,目前已经有众多的客户基于这套方案实现产品,涵盖医疗、电力、通讯、数据中心等各种应用。
最重要的是,XDMA是免费的!!

多余的废话我也不多说了,我知道大家最想看的是如何实现这种通信方式,直接上干货,手把手教大家实现PCIE/XDMA 读取DDR:

一、DDR/MIG配置详细步骤

首先本节先给大家介绍DDR/MIG的配置步骤

1、硬件设备

本次设计我采用的是Xilinx家的zynq100芯片:xc7z100ffg900-2,本次设计只用到PL部分,所以支持PCIE的FPGA开发板也可以按照我的步骤进行实现,vivado版本为vivado2018.3

首先基于你的芯片,建立一个工程

2、建立工程

本次设计采用BD块进行设计,设计起来更加方便

1、在第一步的基础上,建立一个BD块

2、并添加MIG这个IP到设计中:

3、配置MIG

1、双击MIG这个ip:

2、创建一个新的设计,选择AXI4接口

3、选择兼顾其他的FPGA型号,这里选择不兼容

4、选择DDR3:

5、时钟配置、DDR选型:

端口名称   

说明

Clock Period

IP的主时钟频率,由MIG内部PLL生成400MHz

PHY to Controller Clock Ratio

物理侧到控制器时钟的比例

        400M / 4 = 100M

        这个100M为MIG IP 输出的ui_clk 

4:1

Memory Type

存储设备类型Components

Memory Part

DDR型号MT41K256M16-107

Data Width

数据位宽(取决于有几片DDR,和M*判断)

例如:板子有4片MT41K256M16的DDR

           16 * 4 = 64       

也可以根据你的DDR引脚分配中的dq来看    

64

6、DDR内部的选项:

Data Width:此时这个为MIG IP的读写位宽,这个如果和前面保持一致,肯定没问题,但是也可以提高一点(提高后性能更快),但是也不能太高,太高可能会出现问题。(这个DATA Width是你的IP例化的时候的端口位宽)

不和前面位宽一致,并不会影响DDR读写数据,因为前面的interconnect IP 会把位宽转化为MIG IP的位宽

7、系统时钟:

选择你开发板给DDR的时钟,我的板子给的是200M,其余保持默认

8、参考时钟、复位类型:

1、System Clock:输入时钟类型,根据板子自身选择,我这里选择查分类型

2、Reference Clock:参考时钟类型,跟随系统时钟

3、System Reset Polarity :系统复位类型,选择低电平复位

4、NEXT

9、电气属性:

根据自己的硬件选择,此次设计保持默认50Ohms

10、管脚分配模式:

选择第二个,可以导入.ucf文件

11、导入.ucf文件:

1、首先读取.ucf文件

2、然后需要验证这个文件,才可以点击next

3、NEXT

12、时钟、复位管脚分配:

可以直接在这里分配DDR的约束,如果在这里勾选过了,在xdc文件就不需要约束了

我这边选择一下我的DDR时钟引脚(根据原理图选择自己的)

13、然后就是一路next,这样MIG的ip就已经配置完了

完整工程文件下载:XDMA读写DDR工程   提取码:4sxh


下一节讲解 XDMA这个IP的配置,并连接这两个IP

如果感觉文章对您有用,麻烦三连支持一下,方便下次用到的时候,就可以快速找到我,非常感谢您的支持!!!

  • 34
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 基于xdmaPCIe读写DDR是一种在计算机系统中使用的数据传输和存储技术。xdma是一种PCIe总线DMA控制器,它通过PCIe接口实现计算机系统与外围设备之间的高速数据传输。 在这种技术中,DDR(双数据率)是一种存储器类型,它具有高速的数据读写能力。PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机总线接口,用于连接计算机的主机和外围设备。 基于xdmaPCIe读写DDR技术的主要原理是,通过PCIe总线将数据传输到DDR存储器中或从DDR存储器中读取数据。首先,计算机的主机通过PCIe接口与xdma控制器进行通信,将要读取或写入DDR的数据传输给xdma控制器。xdma控制器负责将数据传输到DDR存储器中或从DDR存储器中读取数据,并将传输结果返回给主机。 这种技术有许多优点。首先,基于xdmaPCIe读写DDR技术具有高速的数据传输能力,可以实现快速的读写操作。其次,由于采用了PCIe接口,可以有效地减少系统延迟和提高数据吞吐量。此外,由于xDMA控制器支持DMA(直接内存访问)功能,数据可以直接从存储器传输到存储器,无需经过主机处理器的中间环节,从而提高了系统效率。 基于xdmaPCIe读写DDR技术在许多应用中被广泛使用,如高性能计算、数据中心和网络设备等。它可以提供稳定可靠的数据传输和存储能力,并帮助提高系统的性能和吞吐量。 ### 回答2: 基于xdmaPCIE读写DDR是一种通过PCIe总线和xdma引擎来实现对DDR(双数据率)内存进行读写操作的方法。PCIe(Peripheral Component Interconnect Express)是一种用于连接计算机内部硬件的高速串行总线,而xdma表示可扩展的直接存储器访问,它是一种硬件模块,可优化对外部DDR内存的读写。 基于xdmaPCIE读写DDR的过程大致如下: 首先,通过PCIe总线将需要访问DDR内存的请求发送给xdma引擎。这个请求可以是读取操作或写入操作。 xdma引擎收到请求后,通过执行读取或写入DMA(直接内存访问)操作将数据传输到或从DDR内存。 读取操作时,xdma引擎将DDR内存中指定地址的数据传输到PCIE总线上,然后将数据传输给请求的设备或主机。这样,数据可以在不直接使用CPU的情况下从DDR内存中读取。 写入操作时,xdma引擎会从PCIE总线接收到的数据传输到DDR内存中指定的位置。这样,数据可以在不直接使用CPU的情况下写入DDR内存。 通过使用xdma引擎进行PCIE读写DDR,可以减轻CPU的负荷,提高数据传输的效率。此外,xdma引擎还可以通过通道间的数据并行传输和深度存储器层次结构等技术实现高性能数据传输的优化。因此,基于xdmaPCIE读写DDR在高速数据传输和大容量存储访问的应用中具有广泛的应用前景。 ### 回答3: 基于xdmaPCIE读写DDR是一种在计算机系统中通过PCI Express总线与外设之间传输数据的技术。该技术使用xdma控制器作为数据传输的中介,实现了将数据从DDR(双数据率)存储器读取到计算机系统中,或者将数据从计算机系统写入DDR存储器中。 在使用基于xdmaPCIE读写DDR技术时,首先需要配置xdma控制器,包括设置寄存器、分配内存等操作,以确保控制器能够正确地读写DDR存储器。 在读取DDR存储器时,xdma控制器会发送读取请求到DDR存储器的地址,并等待DDR存储器返回相应的数据。一旦DDR存储器返回数据,控制器就会将数据传输到计算机系统中。 在将数据写入DDR存储器时,xdma控制器会将待写入数据发送到DDR存储器的地址,并将数据存储在DDR存储器中。 基于xdmaPCIE读写DDR技术具有以下优点: 1. 高速数据传输:由于使用PCI Express总线进行数据传输,因此具有较高的数据传输速率,能够满足对数据传输速度要求较高的应用场景。 2. 灵活性:通过xdma控制器的配置,可以灵活地选择读取和写入DDR存储器的地址,从而满足不同的数据读写需求。 3. 可靠性:基于xdmaPCIE读写DDR技术经过了严格的测试和验证,具有较高的稳定性和可靠性,能够保证数据的准确传输。 总之,基于xdmaPCIE读写DDR技术是一种在计算机系统中实现高速数据传输的有效方法,可以广泛应用于需要大量数据读写的领域,如数据处理、图像处理、人工智能等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值