Need help to use cdma in PYNQ Z2

Hi, I’m newbie for using PYNQ-Z2.
I heard that moving data from dram in ps area to bram in PL area, using cdma module can transfer more fast.

I’m not familiar with this so I found the below documents and follow the tutorial. but I can’t write any code with jupyter notebook.

Could someone please give me advice? thanks.

1 Like

Hi @louishin,

The allocate() API in pynq allocates memory physically contiguous in memory and then you can use the DMA to move the data.

https://pynq.readthedocs.io/en/latest/pynq_package/pynq.buffer.html#pynq.buffer.allocate

There’s a great tutorial about DMA here: Tutorial: PYNQ DMA (Part 1: Hardware design)

Mario

3 Likes

Thanks for your kind reply, mario.

I’ve already done that tutorial about using DMA. But I think DMA module do not support the data transfer from DDR to block memory in PL. So that I want to operate the AXI CDMA. It supports memory map to memory map transfers.
Do I misunderstand the usage of DMA?

What do you want to do with the data once it is in BRAM (block memory in PL)? How will your IP consume the data?

Cathal

Umm… there’s no plan about consuming data on bram. I heard that by using cmda, more fast data transfer could be possible (PS DDR <-> PL BRAM) compared to the mimo write.
I just want to check but it’s really important to me. Thanks, Cathal.