Mismatch of PYNQ Data Stream from DMA on Ultrascale+

-PYNQ Version 3.0.1
-Board: Ultra 96
-Vivado & VITIS HLS 2022.0.2

I tried to imitate this tutorial Tutorial: using a HLS stream IP with DMA (Part 3: Using the HLS IP from PYNQ) on Ultrascale+. The results are all 0 when I run PYNQ script.

I used both HP0, HP2 for Ultrascale + and set them to 64 bits. This is my axi dma config:

Can anyone help me with this?

Hi,
Which script are you running on the board? Is it a python code?

Hi Matthew, this is my python script:

I also had incorrect output when running this tutorial Tutorial: PYNQ DMA (Part 1: Hardware design) also I got it correct in the first time. Is it because of some cache problems with PYNQ?

also I got it correct in the first time. Is it because of some cache problems with PYNQ?
Do you still have a problem with the DMA block? If yes, which error is displayed? Or is the python code freezing during the data transfer?

The results are all 0 when I run PYNQ script.
So your problem is that the line :
for i in range(10):
print(‘0x’ + format(output_buffer[i], ‘02x’))

Is displaying only ten 0 in hexadecimal, so ten 0x00? Am I understanding correctly?

Do you still have a problem with the DMA block? If yes, which error is displayed? Or is the python code freezing during the data transfer?
There are no frozen or errors, this is my result:


The setting is still the same as my first post.

Is displaying only ten 0 in hexadecimal, so ten 0x00? Am I understanding correctly?
Yes, its correct.

Can you please send the dma.py code?

I am sorry, I did not understand your issue. It is normal that the DMA, the output is empty before the transfer as DMA is empty when initialized. Then it is filled after the transfer.

Is your problem the fact that the values in the DMA after the transfer are not corresponding to your inputs?

Hi, I got the correct results for both tutorials but I only used HP0 port and then let the auto connection do the rest. My dma.py is exactly the same as this tutorial Tutorial: PYNQ DMA (Part 2: Using the DMA from PYNQ).

So what is your problem? Do you want to use a port different than the HP0 port?

Is it normal that your output after transfer is different than your input? They should be the same like in (Tutorial: PYNQ DMA (Part 2: Using the DMA from PYNQ))

Because using two ports does not work, so I just switched to 1 port to move on with my school project. I still don’t know why two ports do not work in my case.

As your architecture is working with 1 port HP0, do you still need assistance? Or do you want to close this request?

Yes, we can close this.