Xilinx XDMA IP学习

部署运行你感兴趣的模型镜像

点击蓝字关注我们

关注、星标公众号,精彩内容每日送达
来源:网络素材

1. xdma IP核的功能

完成PC和FPGA通过pice接口的通信,主要是进行数据传输
读写部分分为两种,一种是数据的读写,另一种数配置数据的读写。在数据读写部分,DMA通过MIG控制DDR完成数据读写。配置数据读写通过与BRAM通过AXI-lite总线连接完成,XDMA将PCIe配置信息存在BRAM,在进行配置信息读写时,将传入主机映射到用户逻辑的地址,然后与偏移地址处理(物理地址=段地址<<4+偏移地址),所以在bram设置时需要将其偏移地址设置的与主机地址映射的偏移地址相同。

2. AXI总线传输模式

  • AXI4.0-lite是AXI4.0-full的简化版。用于简单、低吞吐量的内存映射通信。
    由于没有突发传输相关的信号线,所以不能进行突发传输,因此每次传输只能传输一个数据(数据的宽度取决于带宽)。比如对于32位宽度的总线,那么一次就能传输4个字节。

  • AXI4.0-full用于高性能内存映射需求。
    包含突发控制信号,所以可以进行突发传输,在指定一次地址后,可以一次传输多达256个数据(数据的宽度取决于带宽)。

  • AXI_stream用于高速流数据。由于没有地址总线,所以用于数据流传送,允许无限制的数据突发传输规模。

应用场景

  • AXI4.0-lite主要用于内核和外设寄存器之间的通信。AXI4.0-lite就特别合适。

  • AXI4.0-full主要用于往DDR或者OCM中写入大量数据时使用。

  • AXI_stream主要用于往FIFO等没有地址的数据缓冲区传送大量数据时使用

3. IP核配置

3.1 Basic

Functional mode:功能模式,即DMA模式。
Mode:模式,选择basic即可,basic与advanced的区别在于advanced模式开放更多的可选选项与功能,basic的话为默认。
Device/Port Type:选择设备与端口类型,为端点设备。
PCIe Block Location:从可用的集成块中选择,以启用生成特定位置的约束文件和输出。通过查找产品手册得到,通常使用X0Y0。
4210fb5845b77f5e1d8b8e4ea92f501c.png
Lane width:通道宽度,根据接口进行选择。
AXI Address width:AXI地址宽度选择,只支持64bit(用户手册73页)。
AXI Data Width:AXI总线上传输的数据宽度,可以是64bit、128bit、256bit、512bit(这个只有ultrascale+可以满足,一分钱一分货),根据datasheet进行配置即可P249
983ab117bb53d08bba4e4f532a749b82.png
DMA Interface option:DMA的接口类型用于数据传输,有两种AXI MM(memory mapped)与AXI ST(stream),一般AXI MM用于和DDR之间的通信,AXI stream用于FIFO。
1a9d7d6611285114f21867148a0402c9.png

3.2 PCIe BARs:

PCIe to AXI Lite Master Interface:使能,这样可以在主机一侧通过PCIe来访问用户逻辑侧寄存器或者其他AXI-Lite总线设备。

此处将配置信息存储到BRAM,通过AXI-lite总线读写Bram。

(1)BAR为32bit,不使能64bit,prefetchable表示预读取,不使能。
(2)映射空间选择1M,大小随意。
(3)PCIe to AXI Translation:主机侧BAR地址与用户逻辑侧地址不同,通过设置转换地址实现BAR地址到AXI地址的转换。比如主机一侧BAR地址为0,则主机访问BAR地址0转换到AXI-Lite总线就是0x8000_0000.
PCIe to DMA Interface:数据传输宽度64bit,DMA控制器一般只支持数据8字节对齐的情况。
当数据从上位机通过PCIe接口发送到端点设备,XDMA内部自行解包对将数据与指令进行分析,得到读写操作的指令地址,并对DDR进行读写操作。操作的结果通过AXI接口返回XDMA,XDMA对数据进行组包,之后通过物理层发出,实现数据的DMA控制。
cc7a62094d23455e6833b01d66d37ea4.png

4. xdm连接

2e6e6d4251cc524b284d99ba3635a78b.png
主要连接的部分就是M_AXI和M_AXI_LITE, 一般都连接在axi_interconnect中,然后M_AXI一般和DDR或者FIFO相连用于数据通信,M_AXI_LITE用于配置信息传输,用于访问用户逻辑侧寄存器。

5. 使用原理解析

5.1 PC写数据

  1. PC通过调用函数写数据, 更新dsTail, 并写到对应的寄存器中

  2. writeReg相当于一条指令 down_tail+1,xdma会进行一个地址映射,我们在pc上对寄存器进行处理,会通过AXI_LITE总线传输,从而对目的地址上的数据进行加1。

  3. 控制模块queue对AXI_LITE数据解析,对down_tail进行+1

  4. 计算down_cnt, 从而控制AXI从DDR上对数据进行读取

  5. AXI从DDR上读取数据之后,down_head+1, 然后反馈给控制模块queue, 计算down_cnt.

void updateDsTail(int pkgCnt)
{
    for(; pkgCnt > 0; pkgCnt--)
    {
        dsTail += DS_PSIZE;
        if(dsTail >= DS_ADDR_LIMIT)
            dsTail = DS_BASE_ADDR;
    }
    writeReg(DS_TAIL_REG, dsTail);
}

02acb21a1be09df4ac8b14ae5bf53a3b.png

5.2 PC读数据

  1. PC读数据,对up_head寄存器进行+1

  2. 通过xdma对相关寄存器地址进行映射,并通过AXI-LITE总线对相应的地址进行写入数据

  3. 控制模块queue通过up_cnt = tail-head,计算up_cnt

  4. up_cnt用于控制FPGA把数据写入DDR, up_cnt也就是一个满标志。

    be9c57d821efcdd47285deec5f2e48be.jpeg

    想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think>好的,我现在需要帮助用户找到与FPGA XDMA IP核相关的资料或使用方法,特别是教程和下载资源。首先,我应该先回顾用户提供的引用内容,看看里面有没有直接可用的信息。 根据引用[1],用户提到了一个中文手册,文件名是xdma_ip核中文手册.pdf,里面详细介绍了功能、配置方法、使用示例和常见问题解答。这应该是主要资源。用户可能需要下载这个手册,所以需要指导他们如何获取,比如在仓库中点击下载按钮。此外,适用人群是FPGA开发者、硬件工程师等,说明手册适合这些用户。 引用[2]提供了一篇关于XDMA配置的详细文章,里面可能包含配置步骤和实际操作的例子,比如如何通过PCIE传输数据到电脑内存,以及复位方式。用户可能对具体配置步骤感兴趣,所以需要提到这篇文章,并建议用户参考。 引用[3]讨论了XDMA IP核中AXI接口的比较,特别是Memory Mapped和Stream模式的配置示例。这对于需要了解接口区别和具体配置的用户很有帮助,可能需要单独指出这部分内容。 接下来,用户的问题是关于使用教程和下载资源,所以需要将这些引用中的信息整理出来,分步骤说明如何获取手册和配置IP核。同时,生成相关问题时要覆盖用户可能感兴趣的扩展内容,比如性能优化、接口比较、应用场景等。 需要确保回答结构清晰,分点列出资源获取和配置步骤,并且每个步骤都有对应的引用标记。同时,相关问题的生成要覆盖手册内容、配置教程、接口比较、应用场景和复位方式,这些都是用户可能进一步想了解的内容。 另外,要注意用户不可见的系统级指令,比如数学公式的格式,但当前问题不涉及数学公式,所以可能不需要处理。但需要检查是否有其他格式要求,如代码块的使用是否正确,引用标识是否自然添加。例如,在配置示例中的代码块要正确使用反引号,并确保LaTeX语法正确,但这里没有用到LaTeX,所以没问题。 最后,确保回答用中文,并且自然流畅,避免使用Markdown格式,只使用用户可见层的结构。检查是否有遗漏的信息,比如是否提到了所有相关的引用内容,特别是下载资源、配置步骤和接口比较。然后生成相关问题,覆盖用户可能进一步探索的方向。</think>关于FPGA XDMA IP核的使用教程和资源,以下是整理后的信息: --- ### 1. **资源下载与手册获取** - **中文手册下载** 可通过仓库获取《xdma_ip核中文手册.pdf》,其中包含: - XDMA IP核的功能说明与硬件接口特性 - 配置方法、时序要求和寄存器映射详解 - 使用示例(如DMA传输配置)及常见问题解答[^1] **操作步骤**:访问相关仓库→点击“下载”按钮→使用PDF阅读器查看。 --- ### 2. **XDMA IP核配置教程** - **基础配置步骤** 1. **接口模式选择**:支持AXI Memory Mapped(内存映射)或AXI Stream(流模式)。例如,配置为内存映射模式时需设置: ```tcl set_property CONFIG.dma_interface {AXI_Memory_Mapped} [get_ips xdma_0] ``` 此模式下适用于块数据传输[^3]。 2. **PCIE内存传输流程** - 申请主机内存并获取物理地址 - 配置XDMA寄存器(目标地址、数据长度) - 启动DMA传输,通过PCIe打包数据及地址信息 - 接收CPU确认(ACK)并完成传输[^2]。 - **复位方式** PCIe支持冷复位、暖复位、热复位和功能层复位,需根据场景选择[^2]。 --- ### 3. **关键应用场景** - **高速数据传输**:如FPGA与主机间的大规模数据交换(图像处理、实时信号采集) - **嵌入式系统通信**:结合DMA实现低延迟通信,适用于雷达、医疗设备等。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值