DMA channel not started on RFSoC 4x2

Hello, I’m trying to run this example for float data on RFSoC4x2.
I have changed all variable declarations according to the hls::axis library:

typedef hls::axis<float,2,5,6> outSdCh;
void example(hls::stream < outSdCh > &A, hls::stream < outSdCh > &B)

I’m able to generate a bitstream using the same block design (updated ip), but when I run it on RFSoC4x2, it generates the error “DMA channel not started” on the dma.recv_channel() command. The exact same code works on PYNQ Z2 board. Can someone give me ideas for potential issues?

moderator edit: split from Tutorial: PYNQ DMA (Part 1: Hardware design)

Hi @Riya_Sachdeva,

I split the post as I think this fits better in a separate thread. This issue is most likely due to the TLAST signal.

I recently wrote a piece about the common DMA issues.

Mario

Hello, I was able to narrow down the issue. It is because I was using the axis library incorrectly and float operations were not working properly. I found the correct usage of axis library here:
https://pp4fpgas.readthedocs.io/en/latest/axidma2.html

1 Like