cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Adventurer
Adventurer
6,030 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
Highlighted
Xilinx Employee
Xilinx Employee
6,015 Views
Registered: ‎08-08-2007

Re: Create BMM for RAMB in IP blocks

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

 

0 Kudos
Highlighted
Adventurer
Adventurer
5,990 Views
Registered: ‎03-16-2010

Re: Create BMM for RAMB in IP blocks

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
Highlighted
Anonymous
Not applicable
5,959 Views

Re: Create BMM for RAMB in IP blocks

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
Highlighted
Adventurer
Adventurer
5,946 Views
Registered: ‎03-16-2010

Re: Create BMM for RAMB in IP blocks

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