Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

warning with on chip memory data items width

hello,

I use quartus II 8.0 and statixII gx ep2s60GX.

I made a modification in my current design (which works well) in .vhd file.

Now I've got this warning from onchip memory.

Warning: Width of data items in "memory_0.hex" is greater than the memory width. Wrapping data items to subsequent addresses.

Warning: Data at line (2) of memory initialization file "init_file_0.hex" is too wide to fit in one

memory word. Wrapping data to subsequent addresses.

.

.

.

.

.

it continues to Data at line (11).

When I have this warning my design doesn't work well and some functionalities are missing.

Is there someone who can help me to solve my probleme.

Of course I want to know what happened.

Thanks. If you have any question please ask.

ps: This not a probleme with the size of the on-chip memory with ".hex" file.

12 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Hi,

    I'm having similar warnings. My hex file is being generated by NIOS ii SBT for eclipse. From this link (https://www.altera.com/support/support-resources/knowledge-base/solutions/rd03252015_881.html) altera shows the solution.

    "Description

    You may see this warning when using memory initialization files generated by the mem_init make target in the makefile generated by the Nios® II Embedded Design Suite (EDS).

    The reason for this warning is that the Quartus® II software expects the record length within .hex files to match the data port width of the memory that is initialized.

    Workaround/Fix

    To change the generated .hex files to have a record length that matches the memory data port width, modify the mem_init.mk file within the BSP directory:

    Find the ELF_TO_HEX_CMD_NO_BOOTLOADER command

    add the following switch:

    --record=/8

    This problem is scheduled to be resolved in a future release of the Quartus II software."

    Based on the solution above, I'm not sure where to add the switch that was mentioned above.

    The boot loader command I found on my mem_init.mk file is below

    "ELF_TO_HEX_CMD_NO_BOOTLOADER = $(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_hex_width)

    $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@"

    Question is where to add the --record=/8?

    --- Quote End ---

    Hello I am facing the same problem. The question is where to add it;

    The boot loader command I found on my mem_init.mk file is below

    "ELF_TO_HEX_CMD_NO_BOOTLOADER = $(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_hex_width)

    $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@"

    Question is where to add the --record=/8?

    As you can see in the following, I have appended it but still the same warning

    ELF_TO_HEX_CMD_NO_BOOTLOADER = $(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_hex_width) --record=/8

    $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@

    Need help.

    Thank you all.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    ELF_TO_HEX_CMD_NO_BOOTLOADER = $(ELF2HEX) --record=4 $< $(mem_start_address) $(mem_end_address) --width=$(mem_hex_width)

    $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@

    I get the idea from the reply of @erics96

    "In the elf2hex converter, there is an option called "--record=<length>" where you can set the maximum number of words per line...

    Changing my makefiles to use --record=4 created a .hex file that had only 4 bytes per line and produced no warnings."