PYNQ Driver for Xilinx Central Direct Memory Access IP
pip install pynq-cdma
Currently, we only support simple DMA transfer
First import CDMA
from pynq_cdma import CDMA
Now if your design contains CDMA IP, Pynq will automatically bind it to a CDMA
instance.
You can check its status by accessing the idle
property:
from pynq import Overlay
ol = Overlay('top.bit')
print(ol.axi_cdma_0.idle)
import numpy as np
from pynq import allocate
input_buffer = allocate(shape=(8,), dtype=np.uint8)
output_buffer = allocate(shape=(8,), dtype=np.uint8)
for i in range(8):
input_buffer[i] = i
ol.axi_cdma_0.transfer(input_buffer, 0xF000_0000)
ol.axi_cdma_0.transfer(0xF000_0000, output_buffer)
print(output_buffer)