I am using the PYNQ-Z2 Board and made a simple Design with Vivado. Also I am debuging my design with ILA Cores via the Micro USB Connection. I just want to peform a simple FFT with a width of 8 samples.
This is the jupyter python code for transferring and receiving the data:
Have you tried using an AXI-Stream Data FIFO on the read and write channels of the DMA? I made a simply passthrough example with Zynq → DMA(read) → FIFO → DMA(write) → Zynq and was able to stream data continously. In my experience, the FIFO is necessary to prevent the DMA from stalling.
I tried to recreate your project, but wasn’t sure how you removed the S_AXIS_CONFIG port from the FFT IP. How did you do that?
It looks like the TREADY signal has dropped off your FFT block which looks odd. If this is really the case, this might be why you see problems.
If you think this is the problem, you could try regenerating the design, or removing, and adding the FFT block again.
Thank you very much. The problem seems to be that I configured the FFT IP as “Real Time”. If you do so the block doesn’t have a TREADY at the MAXIS_DATA port. Now I configured the block as “Non Real Time” and it works also withe the dma.recvchannel.wait() command.
Also I gave some constants for the S_AXIS_CONFIG port of the FFT block.
Can i ask you which values did you put inside the constant for the S_AXIS_CONFIG of the fft block? I am configuring my module following the documentation, but i can’t understand what does it expect in those 7 bits of t_data