Forum Discussion
Altera_Forum
Honored Contributor
21 years agoNios DMA (Not NiosII)
Hi, I have a DMA question. I designed an user_logic. There are two registers in it. The fisrt register is used to store the two 14-bit operands for calculation later. The second regis...
Altera_Forum
Honored Contributor
21 years agopipiwau,
I am a bit confused by your approach to this problem. The way you describe your peripheral dseign and register map sounds fine, but in this arrangement it sounds like the circuit operates as follows: - operands loaded (first reg) - peripheral start (second reg) - operatnds loaded (first reg) - peripheral start (second reg) Is this how it works?? The DMA is really designed to move a block of data, one word at a time, from place to place in memory. If you need to start the peripheral with the control register after each set of operands is loaded, the DMA is probably not the way to control this. On the other hand, if you need to only enable the peripheral once: - operands loaded (first reg) - peripheral started (second reg) - operands loaded - operands loaded ... ... ... Then in that case the DMA can be used, but you should use either the range_to_1 or 1_to_1 routines. The range_to_range routine will increment the address the DMA writes to after each transfer, and will thus run past your peripheral registers after the first operation. Hope this helps.