DMA MM2S stuck at first data and not Changing

Hello

I am working with RFSoC ZCU111. I am new to working with PYNQ, that too with DMA, I don’t have any prior experience. I want to transfer large data say like 50000 samples, each sample of 16 bit width from DDR to PL. So I made a project with simple DMA mode. Currently, I am transferring the MM2S stream data through a FIFO and observing on ILA. The block design (I followed the PYNQ DMA tutorials) is shown below

The DMA settings are as follows

To check initially, I am running the following code

data_size = 8192
input_buffer = allocate(shape=(data_size,), dtype=np.uint32)
for i in range(data_size):
    input_buffer[i]=i+0x00007000

The data is getting written into the buffer

image

Now I send this data on channel to PL,

dma=ol.axi_dma_0
dma.sendchannel.transfer(input_buffer)

When I observe the output of MM2S on ILA, i can see only the first data 0x7000 as follows:

The FIFO output is all zeros.

Where am I making mistake? Please help.

I have a similar issue with the KR260 board. I think the pynq buffer is not working on the lattest version of the ubuntu image.
It works on older versions.

As a workaround, I am not using pynq.allocate anymore but just directly a memory space

Can you please share how to do it?

Hi @sramk,

The FIFO reset is not connected, hence TREADY is always 0, so no data is transfered. Similar comment for the ILA.

Also, the M_AXIS of the FIFO is not connected to a consumer, hence at some point the FIFO will get full and there will be no more data transfer.

Mario

1 Like

Thank you for sharing this…
NCEdCloud

Thank you @marioruiz for the reply. Your suggestion worked.

1 Like