Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  • This page gives an overview of the bare-metal driver support for the Xilinx® LogiCORE™ IP AXI
VDMA Standalone Driver
  • Video Direct Memory Access (AXI VDMA)soft IP.   


    Table of Contents

    Table of Contents
AXI VDMA Standalone Driver
  • excludeTable of Contents

    Introduction

This page gives an overview of axi vdma driver which is available as part of the Xilinx Vivado and SDK distribution.

  • The

Xilinx® LogiCORE™ IP
  • AXI VDMA core is a soft Xilinx IP core for use with the Xilinx Vivado® Design Suite. It provides high-bandwidth direct Memory access between memory and AXI4-Stream video type target peripherals including peripherals which support the AXI4-Stream Video protocol as described in the Video IP:AXI Feature Adoption section of the Vivado AXI Reference Guide (UG1037)

Source Path for the driver
  • For more information, please refer to the AXI VDMA product page which includes links to the official documentation and resource utilization. 

    Driver Sources

    The source code for the driver is included with the Vitis Unified Software Platform installation, as well as being available in the Xilinx Github repository. 

    <If there are multiple drivers supporting this IP, we should make that statement here and add to the table>


    Driver NamePath in VitisPath in Github
    axivdma<Vitis Install Directory>/data/embedded/XilinxProcessorIPLib/drivers/axivdma_<version>https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/axivdma

Driver Below diagram
  •   The table below shows the axivdma driver source organization


AXI VDMA
├── doc:  

  • DirectoryDescription
    doc

    Provides the API and data structure details

├──
  • data
:
  • Driver .tcl and
MDD files
  • .
 Reference application to
  • mdd file
├── examples:  
  • examplesExample applications that show how to use the driver
APIs and calling sequence
  • features
└── Standalone Driver Supported
  • srcDriver source files
Features Supported

Controller Features

  • AXI4 Compliant
  • Primary AXI4 data width support of 32, 64, 128, 256, 512, and 1,024 bits
  • Primary AXI4-Stream data width support of multiples of 8 up to 1,024 bits
  • Optional Data Realignment Engine
  • Optional Genlock Synchronization
  • Independent, asynchronous channel operation
  • Dynamic clock frequency change of AXI4-Stream interface clocks
  • Optional frame advance or repeat on error
  • Supports up to 32 frame buffers
  • Supports up to 64-bit address space

  • Driver Implementation

    For a full list of features supported by this IP, please refer to the AXI VDMA product page.  


    Features

    The AXI VDMA Standalone driver supports the
below things.
  • following features: 
    • Supports 64-bit Addressing
    • Supports Gen-Lock Synchronization
    • Supports up to 32 frame buffers
    • Supports frame advance or repeat on error
    • Supports Parking Mode
    • Supports Circular Buffer Mode

Test cases

  • Refer below pah for testing different examples for each feature of the IP.

    Known Issues and Limitations

    The following is a list of known limitations of the driver and features of the IP that are not currently implemented: 

    • When H/w is configured without DRE driver will throw an error if the user sends an unaligned buffer address.
    • User application should handle buffer address alignment in case h/w is configured without DRE

    Example Design Architecture 

    The examples assumes AXI VDMA IP is configured in loopback mode. 


    Image Added


    Example Applications

    Refer to the driver examples directory for various example applications that exercise the different features of the driver. Each application is linked in the table below. The following sections describe the usage and expected output of the various applications.  These example applications can be imported into the Vitis IDE from the Board Support Package  settings tab. 

    Links to Examples

    Examples Path: https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/axivdma/examples


    Test NameExample SourceDescription
    Self Testxaxivdma_example_selftest.c
:
  • This example does a basic reset of the core and checks core is coming out of reset or not.
    Video Frame transfer with interruptsxaxivdma_example_intr.c
:
  • This example demonstrates how to
use the AXI Video DMA with other video IP's to do video transfer.This example won't work by itself it needs two other video IP's, One for writing frames to memory and one for reading the video frames from memory
vdma.c and vdma_api.c : This example demonstrates how to use triple frame buffer feature in the AXI Video DMA

Known issues and Limitations

  • When H/w is configured without DRE driver will throw an error if the user sends an unaligned buffer address.
  • User application should handle buffer address alignment in case h/w is configured without DRE

Change Log

2020.2

  • Consolidate debug header files.
  • Support parallel make execution. 
  • Read frame store from user-defined config parameter. 
  • In example add frame data check support.

257c0d9e3742 BSP: Consolidate and add the drivers xdebug.h data to common xdebug.h
4dc85994d6fb Makefile: Remove realpath command
5736883911ba axivdma: Update Makefile to support parallel make execution
a24706fde355 axivdma: Add workaround to fix the mismatch of frame store value
1bed2b805d3a axivdma: Revert to fix the compilation failure
e6b652880478 axivdma: Make Exiting main as the last print
2639f23b02b1 axivdma: To add frame data check support
0b19e93d8617 axivdma: Fix to read frame store from user-defined config parameter

2020.1
  • Fix xaxivdma_example_intr example failure in release mode
  • Clean up old versions for axivdma driver

ca4088c axivdma: Fix xaxivdma_example_intr example failure in release mode
fef351c  axivdma: Clean up old versions for axivdma driver

2019.2
  • None
2019.1
  • None
2018.3
  • Add vertical programming support.

Commit Id's

9b66e32 examples: Set vertical flip default state

81b08c0 Enable VDMA S2MM vertical flip support

2018.2
  • None
2018.1
  • Fix compilation error in selftest example
  • Align default TX/RX framebuffer count with IP configuration
Commit Id's
63368d9 vdma: Align default TX/RX framebuffer count with IP configuration
a3d2180 axivdma: Fix compilation error in selftest example
2017.4
  • None
2017.3
  • None
2017.2
  • None
2017.1
  • Fixed compilation errors in the driver when compiled the driver with C++ compiler
  • Modified text file to generate doxygen for examples
Commit Id's
578c86f : Fixed compilation errors in the driver when compiled the driver with C++ compiler
e9b7aed : Modified text file to generate doxygen for examples