Cant fit simple BRAM on pynq-Z2 board

Hi, I have a pynq-Z2 board and am trying to experiment with a BRAM in a custom overlay.
I have made this basic overlay:

since I am using the free version of vivado I am limited in choices for the BRAM, most are at their default resulting in the summary:

Now when I validate this design I get the error

 User configuration exceeds BRAM count in the selected device

However according to the summary there are only 8 36k BRAMs used, that should fit on the pynq-Z2 since it uses a zynq 7000. Also there are projects on the internet using a BRAM generator on Z2, like here. I am puzzled by this, anybody got any ideas on why this happens?

This looks strange. Are you sure you don’t have anything else in your system, or that this is the top level block design?

Perhaps try recreate a completely new project?


no that is the full block design there is nothing else. And that was already started from a fully blank project. I can try to do that again maybe some magical thing stops it for now haha.

@FrankB, as you are using a BRAM controller, the number of BRAM is given by the address range. Note: the ‘limited choices’ does not have anything to do with the webpack version.

What is the address range in your design? Check the Address Editor tab in the IPI and make sure that you are not exceeding the amount of on-chip memory


oh do you know why most options are greyed out in the bram block? I was really puzzled by that.

Checking the address editor is a good one. Will check that when Im back home.

Options are context sensitive. For example, depending on the mode you select, you will see a certain set of options.


The options are grayed out because they depend on the BRAM controller options and address range. These are not independent in this context.

this was indeed the case, my address was at 4M range. when I put it lower the design validates, the summary for the BRAM generator then shows “36K BRAM: 2” in stead of the 8 before. However I thought that 8 was also very low, according to the datasheet there should be more then that on the board?

I am not sure if the module is updating properly. You are right, that device has 140 BRAMs which account for 4.9 Mbits, which in the first instance is almost 8x less than requested.

I would suggest not to pay attention to the IP summary but rather synthesise and and do a report usage. That will be more accurate, and if you implement the design you’ll get the actual resource consumption.


Yes it seems that the summary only updates after I have clicked validation because then all the greyed out options are set. I cant change them myself only through address range -> validate -> everything updated. Then the summary says for address range of 512k there are 128 36k BRAMS used, which is the maximum as the next step in adress range 1024k will go beyond that.

this corresponds to the math of: 51281000=4.096.000 bits so within the 4.9Mbits. Thanks!

1 Like