General Description: I am attempting to run NGDBuild 4.1i on a design netlist generated by LeonardoSpectrum 2001 or 2002.a. My design contains a RAM memory element that is initialized within the HDL code. The following error message occurs:
"ERROR:NgdBuild:514 - The INIT_3C value of "1100110011001100110011001100110011001100110011001100110011001100 0100010001001000100010001000100010001000100010001000100010001001 0001000100100010001000100100010001000100010001000100010001000000 0000000000000000000000000000000000000000000000000000000000000", on the RAMB16_S4_S4 symbol "blockram_inst/blkram", contains more data than is appropriate. For a RAMB16_S4_S4 symbol, the INIT_3C value should not exceed 64 hexadecimal digit(s)."
The error message is correct -- the INIT value should contain only 64 hexadecimal values. The problem is that Leonardo is incorrectly interpreting the INIT values as decimal and assigning a binary value to represent the initialization values.
There are two ways to work around this problem: - Instead of initializing within the HDL code, specify the initial RAM contents in your UCF. - Manually edit the netlist, converting the binary values back into hexadecimal values.
NOTE: This was fixed in the 5.1i time frame by Leonardo.