Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎08-26-2014

Memory initialization for non-processor designs with data2mem (Vivado)



I have a non-processor design (no microblaze or similar) with a lot of BRAMs that I´m synthesizing in Vivado. After the bitfile generation, I´d like to change the content of the BRAMs. I think this was possible with ISE with the help of a .bmm file and the data2mem tool.


About a year ago, I asked here and also followed some other threads concerning this topic with Vivado, but the general answer was (quote):


Non processor based designs are not supported by the current code.  Memory initialization via data2mem for non-processor based designs is currently not supported, but this is covered by roadmap.


This is something, however, that is on the roadmap for a future release.


Has something changed since then?


My current workaround for Vivado ist to save a checkpoint after place&route and then open the checkpoint and then use this tcl command:

set_property INIT_00 {256'h0000000000000000000000000000000000000000000000000000000000000000} [get_gells {i_top/i_sub_block/i_ram_name/U0/*.ram}] 

to manipulate the contents of the BRAMs. This works more or less, but is not really convenient. I have to get my memory content into a set of tcl commands first, then open Vivado, read in the checkpoint and have to run the whole bitfile generation. This takes a lot longer than just patching a bitfile. 


So, are there any news on that topic?


Thanks in advance


0 Kudos
1 Reply
Registered: ‎03-31-2012

did you see this post:
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos