Does PYNQ framework support Multi Channel DMA (MCDMA)?

I create a block design by this Adam Taylor’s MicroZed Chronicles, Part 235: Multi Channel DMA and Zynq SoC XADC Streaming—Low-overhead data acquisition .
It use standalone C code to verify the bitstream.
I want to use this bitstream in PYNQ framework. Is there any PYNQ class support MCDMA?

1 Like

No, there isn’t a Python class for this, but it shouldn’t take too much effort to create one.

You would need to write the correct values to the registers that you can find in the data sheet.
https://docs.xilinx.com/v/u/en-US/pg288-axi-mcdma
You could include the C drivers for the IP in a Python wrapper.

Cathal

1 Like

Hi Cathal,
Indeed there seems to be no straightforward support for MCDMA and I also need to create a MCDMA driver. Is it meaningful to base this new class on the DMA one?
Could you provide us with a couple of tips for achieving this task properly and maybe indicate the main pitfalls to avoid?
Thank you in advance,
JM