Forum Discussion
Memory initialization is useful for many things: test and debug, error insertion, source code and source data. It's also required if you are creating a ROM (vs. a RAM).
Your initial question mentioned nothing about Nios, so I was answering based on just the use of memory blocks on their own in an FPGA design.
Sorry I reopen the post away a long time.
I'm using a 10M02SCE144I7G device. I tried to configure a 24bit - 64 words ROM with the Megawizard by inserting the .MIF initialization file, but when I compile the project, I got the error "Error (16031): Current Internal Configuration mode does not support memory initialization or ROM. Select Internal Configuration mode with ERAM."
So ERAM is an External Ram and therefore it is not possible to configure the internal flash for the memory configuration?
How can I do?
Where am I wrong?
What is the right configuration to use?
Thanks
Giovanni
- FvM1 year ago
Super Contributor
Hi,
ERAM means embedded RAM, I presume. Problem is limited flash capacity of SC (single supply, compact) MAX10 device types. Unfortunately, they don't provide memory initialization at all. The "solution" to select a different configuration scheme doesn't exist for this device. ROM table can be nevertheless emulated in logic cells, not sure if 10M02 has sufficient free resources. .mif initialization is probably not supported, try inferred ROM with initialization function, see Quartus HDL templates.Regards
Frank
- FvM1 year ago
Super Contributor
Another way to initialize ROM is to store the data in UFM and copy UFM data to RAM during startup. 10M02 UFM can hold up to 96 kbit of data. - GSica1 year ago
New Contributor
Hi,
it's true. I changed the device and put the 10M04SAE144I7G and in fact the error disappeared and it allows me the initial configuration of the ROM.
Thanks
Giovanni