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