I'm going to refer to the SGDMA on the ACDS as "SGDMA" and the modular SGDMA as "mSGDMA". The main differences are as follows:
- mSGDMA is only 9.1 and beyond while the SGDMA supports 7.1 and up (mSGDMA requires newer .tcl features)
- SGDMA requires a descriptor linked-list to be present in memory, mSGDMA just requires a host (Nios II) to write descriptors into the hardware directly
- SGDMA is a single component while the mSGDMA is made up of 2 or 3 components that can be interchanged
By swapping the DMA engines basically you will be able to do the same thing only on the software side it'll become much simpler. If you have ever used the standard DMA in the ACDS then you can think of the mSGDMA as being the same thing only it buffers multiple descriptors internally. With the elimination of the descriptor linked-list it becomes much easier to manage the hardware since you just send descriptors into the DMA engine and wait for it to complete (or shove more descriptors in while the DMA is operating).
Building up custom masters is a sensible approach as well. As a matter of fact the mSGDMA started off as being a mastering frontend for a USB 2.0 interface before I became distracted and glued them together to form a DMA :) Does your host basically ask for samples from a specific interface? If so you might not even need Nios II at all can can have the host select which sampling device directly over USB.