AR# 8873: 2.1i COREGEN, DISTRIBUTED MEMORY: Unable to open file for Memory Initialization: MIF file - radix error : <value>
2.1i COREGEN, DISTRIBUTED MEMORY: Unable to open file for Memory Initialization: MIF file - radix error : <value>
Keywords: coregen, RAM, mif, binary, virtex, rom, distributed, memory, init, single port, dual port
When trying to generate a Single Port or Dual Port Virtex Block RAM memory core in the 2.1i release, you may see the following error message if you direct the module to read in a non-binary MIF initialization file:
Unable to open file for Memory Initialization: MIF file - radix error : AEF1 ERROR: ERROR: Caught general Throw during netlist generation ERROR: An internal error has occurred. Please call Xilinx support. ERROR: Sim has a problem implementing the selected core. Implementation netlist will not be generated. ERROR: SimGenerator: Failure of Sim to implement customization parameters core v_spdramhex256x16 WARNING: Core v_spdramhex256x16 did not generate product ImpNetlist. ERROR: SimElaborator.computePortSizes(): Core v_spdramhex256x16 has no ports. ERROR: Failure to get VHDL port dimensions vector. WARNING: Core v_spdramhex256x16 did not generate product VHDLSim. ERROR: Verilog Output Generator. Empty port dimensions vector. WARNING: Core v_spdramhex256x16 did not generate product VerilogSim. ERROR: Errors encountered while generating v_spdramhex256x16 (Distributed_Memory 1.0). No output files have been generated.
The EDIF implementation netlist does not get written.
One possible cause of this error may be that the values in the MIF file are specified in a format other than binary format--i.e., in hexadecimal or decimal format. According to the Distributed Memory datasheet, MIF file data must be specified in binary format.
For versions 1.0.2 and 1.0.3 of the Distributed Memory:
If you would like to specify the initialization values in HEX or decimal format, you can do so by specifying the values as arguments to a "MEMORY_INITIALIZATION_VECTOR" parameter in a .COE file rather than in the MIF.
Otherwise, if you are using an MIF file, make sure the MIF file data is specified in binary format. This should not be confused with the RADIX option in popup from the "Initial Contents" button, which gives you a choice of Binary, Decimal, and Hexadecimal formats, as this only applies to the value you specify in this popup as the "default value".
The value in the "default value" field is the value assigned to a memory location that is not otherwise assigned within an MIF file.