Forum Discussion
Altera_Forum
Honored Contributor
11 years ago --- Quote Start --- You need to use one of the dma controllers to do the burst writes into the Avalon slave interface of the PCIe block. Before requesting the transfer you'll need to set the address translation tables so that the correct physical address bits are used. Last time I looked none of the DMA controllers supported 64bit addressing on one port, so it isn't possible to avoid the address translation tables in the PCIe block. I also remember having difficulty configuring 32bit address transparancy. I can't imagine that you'd want to link the PCIe Avalon slave to a normal master (like a nios cpu) - since you really don't want to stall while the transfer tales place. Better would be a 'single transfer (degenerate) DMA controller' to which you write the physical address and data and then poll for completion. Another useful item would be a memory block that is dual ported as an Avalon slave and to 'PCIe dma logic'. You could then arrange for the data to be in this special memory block and directly request a PCIe transfer to/from it. This would save resources and reduce latency. Unfortunately Altera don't seem to be making this easy to use. --- Quote End --- Hi dsl Thanks for you reply! Yes, altera doesn't seem to be easy to use. When my data is ready inside dual-port ram, how can i iniate(request or start) a PCIe transfer? Is there any status or flag signal for application software to poll for this data transfer?