• 0

Using memory on Zybo Z7010 tutorial


Hi everyone,

I am currently working with a Zybo Z7010 board on Vivado 2018.3 and am trying to implement a memory access in both reading and writing modes.

More precisely, I'd like to enable the user to enter a number of coordinates that define a random waveform (sine table...) and to store it somewhere so that the PL can access it in reading mode and display it through a DAC. Please note that it is essential that the reading process is fast for further applications.

Now, have been reading many things but I'm a little confused about the "different types of memories that exist". I'm not sure if I should use the BRAM module, the DDR, SRAM... What are the differences of these components and which one would you suggest to use?

Finally, would you have a tutorial that goes through the different steps of the implementation?

Thanks a lot,


Share this post

Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Apologies for the late response.

From the hardware's point of view, BRAM is placed within the PL itself, and reading from it is both fast and consistent. DDR is also fast, but located off-chip, and the bus to it is shared by PS. This means that if the PS is doing some kind of memory-intensive operation, bandwidth from DDR to PL may be limited. Typically in Zynq applications, DDR memory is dumped to PL BRAMs in bursts, through a DMA controller. When DMAing data, BRAM-based FIFOs are used to ensure that data can be read at the time it is needed. This means that the two approaches could be summarized as BRAM or DDR+BRAM.

To do the "BRAM only" approach pretty much requires you to create a custom AXI4-Lite slave. There are various examples around, including a number of threads here on the forum. Here's an example.

To do the DMA approach means that you would be using Xilinx's AXI DMA IP, with a custom DAC controller that pulls data from the DMA through an AXI Stream Interface. The DMA Audio Demo for the Zybo Z7 is a decent example of how this approach can be used.





Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now