Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
18 years ago

mutiple DMA instantiations

Hi,

In my system I want to have DMA access between the following componenets

1) SDRAM <-> Ethernet(LAN91C111)

2) SDRAM <-> UART

3) SDRAM <-> On-Chip Memory

4) SDRAM <-> USB

5) SDRAM <-> Flash

6) SDRAM <-> Uart

SDRAM, Ethernet, Uart, Onchip memory, Flash used in my project are SOPC builder ready modules. USB is user interface module.

I have instantiated DMA module 6 times so that different DMA module is used between two peripherals. Please let me know whether my implementation is right? Or will this multiple instantiation of DMA causes some errors.What are the advantages and disadvantages of this kind of implementation.What is the best design practice?

1 Reply

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    1) Will this cause problems --> no

    2) Does this have any advantages --> in your case no

    3) Best practices... see below

    Having multiple DMA engines in your design is beneficial if you expect to be able to run them in parallel. In your case you have everything transferring to/from SDRAM. Since that&#39;s a single Avalon-MM slave port, parallel accesses are not possible.

    Are you sure you don&#39;t want to use the DMA only between SDRAM and the onchip memory, Ethernet, and USB? Direct memory access engines typically have the most impact when connected to high throughput components (like the ones I just listed).