FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP

SGDMA not Sending

Honored Contributor II

So i have been trying to use the SGDMA to send packet into a FIFO. I started with the reference design on the Altera wiki and even that one did not seem the send anything trough as the receiver DMA contained all 0. I did not understand Why this was happening so i hooked up the transmitting DMA directly the receiving one and again nothing would go trough. 


I then decided to make a "sink to export" block (all it is is a custom component that hooks up the an avalon source and outputs the results). from what i can tell the transfer dose not happen at all because the SOP(Start Of Packet) signal dose not even get fired witch leads me to believe that there is something wrong.  


So Would could be causing the SGDMA not to send?
0 Kudos
2 Replies
Honored Contributor II

So i have been working on this all Day now and still no luck. but here is a few more information i came up with: 


-the first descriptor control register is 1000 0101 witch i think is good and the last one is 0 

-the status register is 0 before and after the async transfer  

-the call back method never gets called  

-the actual bytes tranfered after the async call (even if i "sleep" a bit to let it work) is 0 

-now if i call alt_avalon_sgdma_check_descriptor_status(&transmit_descriptors[0]) then i get the hex result 0xFFFFFF89 (not sure what this means) 

-i check my descriptors size and they are 32 bytes  

-the DMA dose open properly and gives me the right base address 


i am going to keep trying because i really need this DMA to work but any help or advice would be great
Honored Contributor II

So i am embarraced to say but i have found my problem.  


because the only other SGDMA i used was for the TSE_mac core i thought you had to hook up the descriptor_in and out port to a dedicated memory block. But that is actually only for the TSE. Once i hooked those up to my main memory that problem was solved and its sending data correctly :)