Altera_Forum
Honored Contributor
9 years agoDMA Speed Issues
Hi all,
I have a QSYS design with the basic DMA controller. I have found numerous issues with this DMA controller and have managed to work around most of the issues but stuck at one last one. Avalon to Avalon I can do an A2A transfer with bursting on or bursting off at 220MB/sec doing WORD transfers. With bursting I can do a max of 1024 word transaction. So everything looks good with the A2A transaction. Avalon to Physical memory issues. A2P doing WORD transfers there is a significant difference bursting and non-bursting mode. When bursting is on I can get 220MB/sec. I notice the address does not keep on increasing and it has to go thru the address translation table only once. However with bursting off the address keeps on increasing and it goes thru the address translation table every change in address which reduces the transfer rate to around 50MB/sec. If you look at the Signal Tap with burst off we can see the address changes every 4-6 clock ticks hence the reduced data rate, where as with bursting the address changes every clock tick. However with bursting ON, reading and writing to a constant address does not work i.e. RCON and WCON settings on the DMA core does not work and the address still keep on incrementing. This means with bursting on I cannot read and write to a FIFO. How can I prevent the address increment when I want to read from a FIFO and still achieve good speed. I intend to transfer upto 2KBytes of data at a fast rate. FYI for those who intend to use this DMA core, one major issue is that you cannot have all the options Byte, HalfWord, Word, DW, QW checked. Only check the one you intended to use others wise the system hangs. I have managed to get only Word and DW working. The QW does not work.