Showing results for 
Search instead for 
Did you mean: 
Honored Contributor I

Using Avalon ST to Stream to Custom IP

Hello all, 


This seems like a question with a very obvious answer, but I can't seem to figure it out, so here it goes. 


I have an SOPC system with NIOS II processor, DDRII memory controller and some on-chip RAM. I have already successfully configured a custom Avalon MM slave to control a dual-port RAM module external to the SOPC system. 


The next step I want to take is using a custom Avalon Streaming interface to stream data from my system to some external IP (GiDEL MegaFIFO, in case you were wondering). 


The external IP accepts data every clock, and has the proper signals to support backpressure. I have created a custom Avalon Streaming Sink which exports the proper signals for use by the IP. 


My question is, what would I use as a Avalon Streaming source to feed the sink? Ideally I would like to transfer a large chunk of data from my DDRII memory to the custom Avalon Sink, but I can't seem to find which Avalon Streaming source I should use. Would the Scatter-Gather DMA controller fit the bill? This seems like the only logical solution available in the SOPC component library. 


Any thoughts, comments or suggestions are welcome. 


Thanks in advance, 


0 Kudos
1 Reply
Honored Contributor I

Yes the SGDMA is the component to use for that. It will be able to read a block of memory and send it as an Avalon stream. As an alternative you can also have a look at BadOmen's modular sgdma ( which has a simpler software API.