cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
cyberwizzard
Adventurer
Adventurer
6,133 Views
Registered: ‎03-16-2010

Create BMM for RAMB in IP blocks

We have a project where a custom RAM block is used. Because of this (I assume), PlatGen generates a BMM file which only contains the 2 toplevel Microblazes and their memory.

 

The result is that BitGen complains about an 'Internal database corruption' and bails out. When I empty the BMM file, the bitfile is created but Data2Mem doesn't like the BMM either.

 

How do I describe my embedded RAMB36E1 blocks in a BMM file? Note that I do not want to initialize them, I only want the tooling to be able to program the existing RAMB.

 

Is there some documentation on BMM that I missed?

 

I am using version 12.1 of the tooling.

Tags (2)
0 Kudos
4 Replies
elzinga
Xilinx Employee
Xilinx Employee
6,118 Views
Registered: ‎08-08-2007

There is a data2mem user guide found in C:\Xilinx\12.1\ISE_DS\ISE\doc\usenglish\isehelp\data2mem.pdf

 

0 Kudos
cyberwizzard
Adventurer
Adventurer
6,093 Views
Registered: ‎03-16-2010

Cheers :-)

 

I didn't find what I was looking for yet though: I have 2 RAMB36E1 components in an IP - the resulting BMM does not show these RAM memories (which is correct as they are not part of the project). It does have the RAM blocks from the project.

 

When building this design, BitGen complains about an Corrupted Internal Database and Data2Mem errors out as well. As soon as I remove the IP with the RAM or clear out the BMM file - bitgen succeeds.

 

The resulting design is dead because the other RAM blocks did not get initialised. So how do I tell BitGen and Data2Mem to ignore the 'other' RAM?

0 Kudos
Anonymous
Not applicable
6,062 Views

I have a design with 8 RAMB36E1 (used as dual port RAMs) and 4 RAMB18E1 (used as single port ROMs) blocks in an IP. I have never seen any of those in .bmm files.  I use INIT in Verilog to initialize. It is interesting to know if there is way to load the contents using data2mem.

 

0 Kudos
cyberwizzard
Adventurer
Adventurer
6,049 Views
Registered: ‎03-16-2010

By looking at the Data2Mem documentation, it looks like it should be possible - the only thing needed is the location constraints. Possibly, these can be retrieved from the 'xdl' output.

 

Strange thing is, as long as you have only RAM in your project *or* only ram in IPs - all is well. But mix the two and all the tools go haywire...

0 Kudos