I'm using the mem-to-stream configuration of the SGMDA IP. I'm using SignalTap to monitor the transfers. I do see the data transferring but there is no sop or eop with the transfer. I am using the API so this looks like it should be easy:alt_avalon_sgdma_construct_mem_to_stream_desc ( &TxMemPktsToCaviumDesc_DMA[k][i], // descriptor i==0?&TxMemPktsToCaviumDesc_DMA[k][i+1]:0, // next descriptor TxMemPacketsToCaviumBuf[i+(k*8)], // read pointer 0, // buffer length (in bytes) 0, // write not fixed 1, // SOP enabled for avalon-st interface 1, // EOP enabled for avalon-st interface 0 /* there is only 1 channel */ ); I can get just an eop if I specify GENERATE_EOP in the DESC_CONTROL BIT Map. Does anyone know what the issue might be?
I didn't get any ideas from the forum but what I found out is the descriptor is controlling the SOP/EOP generation. After I set the WRITE_FIXED_ADDRESS bit in the descriptor.control field I started getting SOP/EOPs. I'm still confused why I have to set the descriptor.control fields instead of the API parameters for SOP and EOP.