Search code examples
vhdlvivadozynq

Store data into ram on a zynq device


I am at moment having some problems storing an image generated in the PS part of my Zynq into the DDR3 of my board, and then read that image into the PL side of the board such that the VGA driver created there can

The PS creates a 640x480 image, which ideally i want to store in the Dram. I've until now used the DMA to transfer the data back and forth and store it as in some way (not storing all pixels) into the block ram of my system. but that isn't a ideal solution and I know so too..

So my question is how do i access the DDR ram of my zynq board, i know it is located on the PS side, but cant seem to find any documentation explaining how it should be interfaced and so..


Solution

  • Usually on zynq you try to use Axi interface for the data. You can use that by the interconnects and the adress.

    In Vivado you have right of the block design diagram a tab called "Address Editor". In my case a simple test application (axi dma with fifo) is used. I configured the axi dma to the base address "0x4040_0000" Range of 64K so the High Adress is "0x4040_FFFF".

    In The SDK you can access this memory via a C/C++ program.

    Here is a short AXI DMA example: axi dma example

    This example was written for the zedboard but I tried it with the z-turn 7020 board and it worked in Vivado 2014.4 and 2016.1.

    I hope this helps you.