.bmm Problems


OhmSweetOhm

Recommended Posts

Hi

 

I was trying to a add a custom peripheral to the AVR8 core and I wanted to use a schematic to connect it all.

 

I simply copied the AVR8 250k Xilinx project and made a schematic symbol out of the AVR8 core, I commented the DCM out and added an external to better control the clocks of my project later.

 

But I now have trouble to compile the hohle thing. I get a lot of errors.

 

a picture:https://www.dropbox.com/s/v9ndbidje15g5rg/Neues%20Bild.bmp?dl=0

 

Processing BMM file "Papilio_AVR8.bmm" ...
ERROR:NgdBuild:989 - Failed to process BMM information Papilio_AVR8.bmm

 

and a lot of memory allocation leak errors.

 

I changed nothing in the vhdl files, exept the DCM, I tried with the original DCM setup it isn't the reason for the errors.

 

I don't know if this could be a reason, but the bmm file isn't in the same place in the hierarchy view of ISE, it is now outside of the Papilio_AVR8 and now part of the main schematic. (see picture)

 

If someone has a clue..

 

Thanks

 

 

Link to comment
Share on other sites

>> If someone has a clue..

Hi,

 

it's the xilinx data2mem utility that is broken and segfaults.

Its purpose is to set initial values to block rams in the bit stream, without having to re-synthesize everything.

 

Usually this happens when I'm trying to configure a memory that doesn't exist. The typical reason for that is that my design is broken and the memory got optimized away.

What I'd do is to check the .bmm file for block memory names. Look them up from the FPGA editor (or planAhead), check that they exist. If not, investigate why.

It may be easiest to do this the first time with an example project that builds correctly, so you know what you're looking for.

 

There may be other reasons, but the described problem is quite common. At least in my designs.

 

PS: Don't call any memory "memory" (the instance name in RTL). Use any name you like, "gumbo", "helloWorld", whatever. But not "memory"...

Link to comment
Share on other sites

Yes, that is exactly it. When you changed the structure of the project you changed the location of the memory. You will need to update the bmm file to reflect the new memory location. You can find the new location with FPGA editor.

 

Jack.

 Thanks for the help but the error occures in the translation process, the FPGA editor only has the option for: post map, post place & route. Plan Ahead won't start, i tried to start it via tcl commands, but there is an JAVA error.

Is there another way to update the bmm and find out the memory loc.

 

In the meantime I tried this tutorial:http://jimselectronicsblog.blogspot.co.at/2014/03/implementing-microblaze-mcs-on-papilio.html

 

Works great, now i have a microblaze in my design, but no longer the cool arduino lib.

 

Ohm.

Link to comment
Share on other sites

You could try to remove the .bmm file from the project, temporarily.

Then it should build but the design won't work without memory contents. The only purpose is to check, whether the memories have been placed and routed, or optimized away.

 

You might also read through the warnings. Usually, most are useless but ocasionally one will point right to the problem.

Link to comment
Share on other sites

Yes, thank you offroad, that is what I remember doing too. You just need to find a way to get the path to the memory so it doesn't choke.

 

Thank you for all of the help, my wife just had our baby on Wednesday and I've been in the hospital with her while she recovers from the c-section and getting the baby situated. Been hard to get much work done. :)

 

Jack.

Link to comment
Share on other sites

Thanks guys

 

I managed to resolve it. In the bmm file there is e.g. PM_Inst/RAM_Word0 but I instantiated the AVR8 as block in the schematic with the name softproc.

So I just had to add softproc/PM_Inst/RAM_Word0 for every entery in the bmm file.

 

I am still a noob, soo... till next time. ;)

 

By the way, congratulations for you and your wife.

 

Ohm

Link to comment
Share on other sites

  • 3 years later...

Hello everyone 

I also have the same error. I understand the problem is related memory. but I am not getting how to find a way to get the path to the memory so it doesn't choke?

ERROR:NgdBuild:989 - Failed to process BMM information
   ipcore_dir/microblaze_mcs.bmm
INTERNAL_ERROR::45 - Memory allocation leak of 112 bytes at 0x06EC0A58 for a 'AddressMappingType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 58 bytes at 0x06E43E20 for a StrNew.
INTERNAL_ERROR::45 - Memory allocation leak of 88 bytes at 0x06F41F08 for a 'AddressMapType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 40 bytes at 0x06E43D98 for a 'symbol_context' record.
INTERNAL_ERROR::45 - Memory allocation leak of 38 bytes at 0x06E74F10 for a StrDup.
INTERNAL_ERROR::45 - Memory allocation leak of 16 bytes at 0x06E721A0 for a 'DataFileNameListType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 24 bytes at 0x06E74E08 for a 'AddressSpaceLinkType' record.
INTERNAL_ERROR::45 - Memory allocation leak of 96 bytes at 0x06F41FD0 for 'void *' data.
 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.