Demonstration project for the AXI DMA Engine on the ZedBoard
This project is designed for Vivado 2020.2. If you are using an older version of Vivado, then you MUST use an older version of this repository. Refer to the list of commits to find links to the older versions of this repository.
This project demonstrates the use of the AXI DMA Engine IP for transferring data between a custom IP block and memory. A tutorial for recreating this project from the Vivado GUI can be found here:
http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html
To use the sources in this repository, please follow these steps:
build-zedboard.bat
if you are using the ZedBoard.
This will generate a Vivado project for your hardware platform.File->Export->Export Hardware
.
In the window that opens, tick "Include bitstream" and "Local to project".build-vitis.bat
batch file. The batch file will run the
build-vitis.tcl
script and build the Vitis workspace containing the hardware
design and the software application.Xilinx Tools->Program FPGA
.This project uses an example application for the AXI DMA that is located here:
C:\Xilinx\Vitis\<version>\data\embeddedsw\XilinxProcessorIPLib\drivers\axidma_v<ver>\examples\xaxidma_example_sg_poll.c
The Vitis build script creates an application and copies that source file into the application. See the readme in the Vitis directory for more information.
Check the following if the project fails to build or generate a bitstream:
Check the version specified in the Requirements section of this readme file. Note that this project is regularly maintained to the latest version of Vivado and you may have to refer to an earlier commit of this repo if you are using an older version of Vivado.
All the projects in the repo are built, synthesised and implemented to a bitstream before being committed, so if you follow the instructions, there should not be any build issues.
Vivado doesn't cope well with long directory structures, so copy/clone the repo into a short directory structure such as
C:\projects\
. When working in long directory structures, you can get errors relating to missing files, particularly files
that are normally generated by Vivado (FIFOs, etc).
Feel free to modify the code for your specific application.
If you port this project to another hardware platform, please send me the code or push it onto GitHub and send me the link so I can post it on my website. The more people that benefit, the better.
This project was developed by Opsero Inc., a tight-knit team of FPGA experts delivering FPGA products and design services to start-ups and tech companies. Follow our blog, FPGA Developer, for news, tutorials and updates on the awesome projects we work on.