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:
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.