Forum Discussion
Altera_Forum
Honored Contributor
15 years agoI think you want to use a DMA that accepts streaming data and writes it to memory which can then be sent later to flash or over Ethernet. There is a scatter-gather DMA that comes installed with the IP suite that gets used for various things like feeding streaming video to the screen or moving Ethernet packets back and forth in various designs that are installed with the Nios II EDS or on the Altera Nios II design examples page: http://www.altera.com/support/examples/nios2/exm-nios2.html
Here is an alternative SGDMA that you might find suites your needs better called the modular SGDMA: http://www.altera.com/support/examples/nios2/exm-modular-scatter-gather-dma.html Here is an example of how I'm using it to implement dirt simple frame buffering to a streaming video pipeline: http://www.nioswiki.com/exampledesigns/modular_sgdma_video_frame_buffer Streaming is a really simple standard to use especially if you have no 'ready latency' Most of the time when I use streaming I use only three signals: data (payload data) ready (tells the data source that the sink is ready for data) valid (tells the data sink that the source is sending valid data) Data flows from the source to the sink in only one direction. Assuming that there is no ready latency then the handshaking is literally 'valid == 1' and 'ready == 1' --> move data. In other words the source says "here's some data" and the sink says "I'm ready for some data", when that case occurs the data moves from the source to the sink and the next 1+ cycles this all starts again. Ready latency makes things a little more complicated and it's intended to factor in latency into the handshake. You can read more about it here: http://www.altera.com/literature/manual/mnl_avalon_spec.pdf Since you are working with ADC you will probably use FIFOs to provide buffering so if the FIFO is configured for lookahead mode then you shouldn't have any ready latency to deal with. *edit: I forgot about these too, I think DMAs would be better for you but just in case: http://www.altera.com/support/examples/nios2/exm-avalon-mm.html