cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
718 Views
Registered: ‎06-05-2019

How to program a DMA

Jump to solution

Hello Forum!

I want to load data (containing a given pattern) into a ZCU111 board memory to eventually stream it as AXIS packages to feed a DAC (RFDC). In short, I want to achieve synthesysing different analog waves by uploading a digital pattern to the board.

I have questions regarding what must be done in the PS and what is done in the PL. The setup I plan to use, based on DMA doc, is the following (AXI Ethernet replaced by RFDC):

DMA.jpg

What is the simplest way to load the pattern into the memory and access it through the DMA? Is that made in the SDK script (PS)? If you know a similar example of a program that does this, that would be helpful too. It is the first time I use this module so I am confused on where to start.

 

Thanks

1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
643 Views
Registered: ‎10-04-2016

Hi @nicolas05 ,

The best place to start is with the AXI DMA example C code. There are several basic programs that demonstrate how to use the AXI DMA in a loop back mode.

Once you are comfortable with the basics of loopback, it is pretty straightforward to modify the examples to just have the transmit (MM2S path) that your final design requires.

These example are built into SDK. You can also view them on GitHub.

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/axidma

An explanation of the bare metal driver is here:

https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/src/xaxidma.h

Regards,

Deanna

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

2 Replies
Highlighted
Xilinx Employee
Xilinx Employee
644 Views
Registered: ‎10-04-2016

Hi @nicolas05 ,

The best place to start is with the AXI DMA example C code. There are several basic programs that demonstrate how to use the AXI DMA in a loop back mode.

Once you are comfortable with the basics of loopback, it is pretty straightforward to modify the examples to just have the transmit (MM2S path) that your final design requires.

These example are built into SDK. You can also view them on GitHub.

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/axidma

An explanation of the bare metal driver is here:

https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/axidma/src/xaxidma.h

Regards,

Deanna

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

Highlighted
Scholar
Scholar
81 Views
Registered: ‎12-07-2018

Hello, thank you for your post. I am trying to use the ZCU-106 to test out the SFP+ connectors with fiber-optic transceivers. I have decided to use the Aurora 64B/66B IP core to do this. I understand that I need to DMA the data from the PS processor to the Aurora IP core on the PL side. I first need to understand how to code the DMA on the processor. Can you please suggest an example at the site:

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/axidma/examples

Thank you

Joe

0 Kudos