Hi,
Please help me to clarify the relationship among these terms...
1. Suppose I want to move a batch of data from SDRAM to the registers or BRAMs on a custom module using Avalon MM fabric. Currently I know I've got roughly two design options depending on whether or not using Nios. Please let me know whether my understanding is correct or not, in addition, what's the pros and cons of the two options.
1) Use Nios: So Nios works as Avalon master, both external memory controller and my custom module have Avalon slave interface. These three components are connected in qsys. Then a C program in the Nios will do the data transaction using IOWR/IORD macros. In this case the data is read from SDRAM to Nios (either on-chip memory or external memory attached to Nios) before being written from Nios to custom module.
2) Without Nios: I'm not sure about this but this time my custom module is wrapped by Avalon MM master interface and is connected directly to the Avalon slave interface that wrap the external memory controller. Because there's no place for software, I need to construct RTL code to control signals from Avalon master interface (Basically a DMA of my own?).
2. What is the benefits of using DMA controller? In one of the tutorials "Using PCI express on DE4 boards", it says the data can be transferred between PCIe IP core and on-chip memory either directly or through DMA controller. If data transfer can be performed using Avalon MM bus directly then why do ppl use DMA controller? Please help me to understand the concept behind this, a simple example will be great!
Please correct me if there's any mistake in the above description.
Thanks
Please help me to clarify the relationship among these terms...
1. Suppose I want to move a batch of data from SDRAM to the registers or BRAMs on a custom module using Avalon MM fabric. Currently I know I've got roughly two design options depending on whether or not using Nios. Please let me know whether my understanding is correct or not, in addition, what's the pros and cons of the two options.
1) Use Nios: So Nios works as Avalon master, both external memory controller and my custom module have Avalon slave interface. These three components are connected in qsys. Then a C program in the Nios will do the data transaction using IOWR/IORD macros. In this case the data is read from SDRAM to Nios (either on-chip memory or external memory attached to Nios) before being written from Nios to custom module.
2) Without Nios: I'm not sure about this but this time my custom module is wrapped by Avalon MM master interface and is connected directly to the Avalon slave interface that wrap the external memory controller. Because there's no place for software, I need to construct RTL code to control signals from Avalon master interface (Basically a DMA of my own?).
2. What is the benefits of using DMA controller? In one of the tutorials "Using PCI express on DE4 boards", it says the data can be transferred between PCIe IP core and on-chip memory either directly or through DMA controller. If data transfer can be performed using Avalon MM bus directly then why do ppl use DMA controller? Please help me to understand the concept behind this, a simple example will be great!
Please correct me if there's any mistake in the above description.
Thanks