12-22-2016 11:43 AM
Good Morning,I am running a C program on Linux (builded with buildroot) on the HPS (Cyclone V, DE1-SoC Board), now I want to replace a function with a custom FPGA circuit. This function reads two matrix, then gives a resulting matrix. This custom hcircuit read the two matrix from the SDRAM of the HPS, than rewrite the result on the same SDRAM. 1- I want to know if I can use a DMA controller to do this or I must transfer the data using the CPU. 2- If I can use the DMA controller, is there any documentation about it, how to use it with a custom circuit. Thanks
12-24-2016 01:48 AM
The DMA on the Cyclone V can definitely deal with this.I can't comment on how to implement this on Linux, but here's the key information for a "bare-metal" implementation. - The DMA is the "ARM PrimeCell" PL330 module from ARM. You can retrieve the technical manual from the ARM web-site. - The Cyclone V handbook also has a section that greatly help understand how to use & program the PL330. - Your requirements involves triggers and these are listed in the DMA section of the Cyclone V handbook. - You can find the base address of the DMA registers in the Appendix section of the Cyclone V handbook. - You should be able to use the hwlib in the SocEDS do program the PL330 for your specific needs; if not, then it should be easily modifiable Regards
03-31-2017 02:39 PM
Old topic but in case anyone is interested to obtain an example of transferring the data from FPGA (using DMA soft IP) to the HPS SDRAM, here is the link:https://www.altera.com/support/support-resources/design-examples/soc/fpga-to-hps-bridges-design-exam...