精华内容
下载资源
问答
  • axidma的BD工程,亲测可以利用此工程在myir的开发板上进行AXIDMA测试,本资源主要是axidma的sg模式回环测试
  • XIlinx Vivado AXI DMA简介

    2020-12-07 15:05:30
    XIlinx Vivado AXI DMA 1 简介 AXI直接内存访问(AXI DMA)内核是一个软Xilinx IP核,可与Xilinx Vivado®设计套件配合使用。AXI DMA在内存和AXI4流目标外围设备之间提供高带宽直接内存访问。它可选的分散/收集功能...

    XIlinx Vivado AXI DMA

    1 简介

    AXI直接内存访问(AXI DMA)内核是一个软Xilinx IP核,可与Xilinx Vivado®设计套件配合使用。AXI DMA在内存和AXI4流目标外围设备之间提供高带宽直接内存访问。它可选的分散/收集功能也减轻了中央处理器(CPU)的数据移动任务。

    2 特征

    •符合AXI4标准
    •可选分散/收集直接存储器访问(DMA)支持
    •支持32、64、128、256512和1024位的AXI4数据宽度
    •AXI4流数据宽度支持8、16、32、64、128、256、512和1024位
    •可选锁孔支架
    •可选的数据重新对齐支持流数据宽度高达512位
    •可选的AXI控制和状态流
    •可选Micro DMA支持
    •支持最多64位寻址

    通过AXI4读主机到AXI4内存映射到流(MM2S)主机,并与AXI              流到内存映射(S2MM)从设备到AXI4写入主机。AXI DMA还支持              中的MM2S和S2MM路径上的16个多通道数据移动              分散/聚集模式。              MM2S信道和S2MM信道独立工作。AXI DMA提供4 KB              地址边界保护(在非Micro DMA中配置时),自动突发              映射,以及提供使用              AXI4流总线的全带宽功能。此外,AXI DMA              提供字节级数据重新排列,允许从任何字节开始进行内存读写              偏移位置。            

    展开全文
  • Xilinx设计中,特别是7系列SOC设计,诸如ZYNQ系列,在FPGA与DDR交互时会用到VDMA、CDMA、ADMA等,此为其驱动部分代码
  • Xilinx官方AXI DMA技术文档,从事ZYNQ的DMA开发必备。
  • xilinx DMA IP核(二) —— 文档阅读

    千次阅读 2019-03-09 11:34:00
    本笔记不记录DMA的Scatter/Gather特性。DMA上有三种总线:AXI4-LIte(对寄存器进行配置),AXI4-Memory Map(用于与内存交互)和AXI4 Stream(用于与外设交互)。在寄存器模式下,寄存器分为两部分:MM2S和S2MM,每...

      本笔记不记录DMA的Scatter/Gather特性。DMA上有三种总线:AXI4-LIte(对寄存器进行配置),AXI4-Memory Map(用于与内存交互)和AXI4 Stream(用于与外设交互)。在寄存器模式下,寄存器分为两部分:MM2S和S2MM,每个部分包括Control Register, Status Register, Source Address, 和Transfer Length四个寄存器部分。

    表:DMA在Direct Register模式下的Register Address Map

    其中Soure Addresss和Destation Address指的是内存地址。

      下图是控制寄存器MM2S_DMACR,bit0用来控制DMA的开启和关闭。

    图:MM2S_DMACR

    图:控制寄存器的bit0详细介绍

    该控制寄存器的第12,13和14bit是有关中断设置的,分别是完成中断,延迟中断和错误中断。

    表:控制寄存器有关中断的bit位

      下一个比较重要的寄存为状态寄存器MM2S_DMASR,如下图所示。

    图:DMA的状态寄存器(SR)

    其中第12,13和14bit位表示中断的状态,写1可以清除中断。从表格可以看出,这三个寄存器分别与控制寄存器中的三个中断一一对应的。

    表:DMA状态寄存器中用来表示中断状态的bit位

      另外两个寄存器MM2S_SA和MM2S_LENGTH分别表示地址和长度,如下图所示。

     在DMA的IP设置时,会设置Width of Buffer Length Register(8-23),默认的是14。这里设置的就是上面的MM2S_LENGTH Register,如果设置为23,那么最大传输就是2^23=8388608byte。

    转载于:https://www.cnblogs.com/yiwenbo/p/10500060.html

    展开全文
  • PS 使用官方的 dma-proxy-test.c,注释掉 tx 部分,只保留rx 部分。 PL 自己模拟发数据。 AXI DMA 设置如下 Memory Map Data Width: 32 Stream Data Width: 32 Max Burst Size: 128 AXIS CLK 为 250M, 一次发 32’...

    续上一篇文章,
    PS 使用官方的 dma-proxy-test.c,注释掉 tx 部分,只保留rx 部分
    PL 自己模拟发数据

    AXI DMA 设置如下
    Memory Map Data Width: 32
    Stream Data Width: 32
    Max Burst Size: 128

    AXIS CLK 为 250M,
    一次发 32’h400 长度的数据,因为是位宽是 32bit,那么每次发送 4096Byte

    在Linux 下,CPU占用大概 15%,速度160MByte/s 左右

    #./dma-proxy-test 1000000 4096
    DMA proxy test
    speed: 162 MByte/s
    DMA proxy test complete
    

    注:如果测试官方的tx+rx的例子,在4096的包大小下,速度要低一点点,CPU要高一点点,毕竟他是tx+rx同时的

    在每次传输之后如果加 usleep(1000); // 1ms
    CPU占用大概 0.5%

    #./dma-proxy-test 1000000 4096
    DMA proxy test
    speed: 3 MByte/s
    DMA proxy test complete
    

    如果不加 usleep,把
    AXI DMA 的 CLK 改为1M
    AXI Interconnect 的 CLK 改为 100M
    传输速度会降低到 2MByte/s,但CPU会高到 5% 左右

    这里有个要注意的,如果linux 这边不开始收数据,PL端是发不出去的
    按上面的设置,发送4个时钟周期之后 AXIS_TREADY 就被拉低了
    正好是 Burst_Size / Data_Width = 4

    展开全文
  • xilinx_axidma-master.zip

    2019-05-16 12:57:13
    zynq板PS跟PL交互 DMA驱动源文件,petalinux工程移植DMA驱动源文件
  • Xilinx DMA IP使用

    千次阅读 2020-07-30 10:30:20
    Xilinx共提供三种类型的DMA IP,AXI DMA,AXI CDMA,AXI VDMA,分别适配于AXI-MM,AXI-Stream等相互搬运场合。 AXI DMA 发送端通过Start of Frame bit (TXSOF)和End of Frame bit (TXEOF)来界定AXI-Stream上的包边界...

    作者

    QQ群:852283276
    微信:arm80x86
    微信公众号:青儿创客基地
    B站:主页 https://space.bilibili.com/208826118

    Xilinx共提供三种类型的DMA IP,AXI DMA,AXI CDMA,AXI VDMA,分别适配于AXI-MM,AXI-Stream等相互搬运场合。

    AXI DMA

    发送端通过Start of Frame bit (TXSOF)End of Frame bit (TXEOF)来界定AXI-Stream上的包边界。TXSOFTXEOF可以跨描述符,接收端也是类似,当包长度超过一个描述符长度时,会自动取下一个描述符来接收数据,通过RXSOFRXEOF来界定一个包。
    首先设置DMACR.RS为1,通过设置TAILDESC_PTR来指示开始发送或接收,可以动态修改TAILDESC_PTR寄存器,达到循环搬运的效果,类似于FIFO操作。

    SG描述符

    地址偏移必须是16个32位数对齐,即64字节。

    中断

    有三种类型的中断,

    • IOC_Irq:SG模式下,每一个描述符完成都会触发,中断太频繁导致包处理性能太低,coalesce寄存器可用来调节中断频率。
    • Dly_Irq:配合coalesce使用。
    • Err_Irq:错误中断。
    展开全文
  • 前言 最近公司项目中使用到了zynq7000系列(7030)平台,产品中需要在arm(PS)与fpga(PL)之间进行大批量数据传输,还要考虑效率问题...https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842418/Linux+...
  • K7_PCIE_DMA_XILINX

    2017-12-28 16:24:54
    xilinx 的pcie dma 开发资料,希望对工程师有参考做用,
  • Xilinx DMA IP参考驱动程序 赛灵思QDMA Xilinx PCI Express多队列DMA(QDMA)IP通过PCI Express提供了高性能的直接内存访问(DMA)。 可以在UltraScale +设备中实现PCIe QDMA。 linux内核驱动程序和DPDK驱动程序都...
  • xilinx_dma

    2017-07-27 22:07:38
    dma_performance_demo
  • PDMA的设计基于Xilinx V6 FPGA器件,支持PCIE2.0X4接口,目前已通过了大批量长时间数据传输测试。PDMA可广泛用于各类PCIE数据采集卡,存储卡等设备。PDMA可在PCIE2.0x4链路上实现读写双向450MByte/s以上的数据带宽。...
  • https://xilinx.github.io/embeddedsw.github.io/axidma/doc/html/api/index.html BD组成 Within the ring, the driver maintains four groups of BDs. Each group consists of 0 or more adjacent BDs: Free: The ...
  • PL透过bram 向PL传递 0-9的数据,PL进行数据处理后( 在此为了简化,就将所取得的数据 + 100 返回) 透过dma 传回PS https://blog.csdn.net/howard789/article/details/111194482
  • Xilinx的两款FPGA平台xdma和qdma

    千次阅读 2021-07-28 09:41:08
    之前使用过xdma和qdma,但是未对其流程梳理,今天对其DMA操作流程梳理下,以备记录。 首先说一下流式DMA映射和一致性DMA映射: 流式DMA映射:缓冲区来自叫上层的比如,kmalloc,__get_free_pages 等申请的,一般使用...
  • This project is Xilinx's sample Windows driver for 'DMA/Bridge Subsystem for PCI Express v4.0' (XDMA) IP. *Please note that this driver and associated software are supplied to give a basic generic ...
  • 1、Xilinx PG021_AXI_DMA英文文档翻译。 2、AXI_DMA V7.1 LogiCORE IP Product GUide 3、提供三份文档:1、PG021官方英文文档;2、PG021 AXI DMA 中文翻译WORD版本;3、PG021 AXI DMA中文翻译PDF版本
  • xilinx dma调试笔记

    千次阅读 2019-01-17 17:06:47
    按照官方案例,启动接收传输: u32 Status = XAxiDma_SimpleTransfer(&AxiDma, (UINTPTR)RxDMAPtr, (u32)(1024), XAXIDMA_DEVICE_TO_DMA); if (Status != XST_SUCCESS) { prin...
  • Xilinx HLS实现AXI DMA

    2021-09-09 14:00:55
    在本文中,我们将通过HLS自己动手实现一个AXI DMA,仿照的是官方AXI DMA IP核的直接模式,即给定发送起始地址和发送长度,以及接收起始地址和接收长度,就能进行一次DMA传输。 HLS设计 代码如下 dma.cpp #include...
  • 一:前言 好久没写博客了,前段时间有个朋友加微信请教...这篇博客是应部分网友的要求写的,Xilinx升级到7系列后,原来的pcie ip核trn接口统统转换成了axis接口,这可愁坏了之前用xapp1052的朋友,一下子不好用了
  • pcie dma 相关知识整理(xilinx平台)

    千次阅读 2019-11-28 10:59:44
    PCIE的DMA和PIO介绍 DMA数据传输方式 DMA(Direct Memory Access),直接内存访问,在该模式下,数据传送不是由CPU负责处理,而是由一个特殊的处理器DMA控制器来完成,因此占用极少的CPU资源。 DMA读过程 1、驱动...
  • xilinx fpga PCIe IP核DMA传输参考代码。
  • 2020.5.20 Xilinx FPGA Zynq DMA驱动

    千次阅读 2020-05-20 09:09:13
    http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html https://blog.csdn.net/qq_20091945/article/details/70194026 github: *使用 vivado2018.2 ,linaro15.4,设备树卡一半内存,设置一半...
  • xilinx平台dma分析

    千次阅读 2019-07-11 14:59:10
    linux内核皆使用dmaengine架构来管理dma,未了解的可通过以下链接熟悉下: https://blog.csdn.net/were0415/article/details/54095899 现以视频输出为例进一步分析: 1.FPGA分配了一个显存空间,如下设备树所示:...
  • http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html https://blog.csdn.net/qq_20091945/article/details/70194026 github: *使用 vivado2018.2 ,linaro15.4,设备树卡一半内存,设置一半...
  • Xilinx SDK 2018.3 Linux版本 建立bsp项目,经过编译,生成system-top.dts,pl.dsti文件等,编译好axi-dma驱动后加载出现如下错误 axidma: axidma_dma.c: axidma_request_channels: 651: Unable to get slave ...
  • xilinx DMA中断不响应

    2020-09-20 21:11:00
    本人习惯使用ADI公司开源的DMA IP核,最近有个项目使用ADI的ip将数据从PS发往PL时有点问题,发现PS的数据有时不更新,暂时没找到问题的原因,所以寻思直接采用xilinx的IP,但是使用之初发现无法实现数据搬移,最终...
  • Xilinx PCIE DMA 仿真环境搭建

    千次阅读 热门讨论 2019-06-03 22:55:44
    4、xapp1052DMA仿真 4.1 testcase 4.2 配置cfg_bus_mstr_enable 4.3 WR DMA仿真 4.4 RD DMA仿真 1、前言 在阅读本文之前,建议刚接触PCIE的读者,请按顺序逐一阅读下面几个内容: 五、X...
  • 软件版本 win 10系统 ISE 10.1 modelsim 10.1a win32 注:xapp859官方文档说明了xapp859的编译环境为ISE10.1版本,然后modelsim必须是32位的。 方案框图 主要参考 xapp859说明文档 ...DMA读 ...DMA读...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,923
精华内容 769
关键字:

dmaxilinx