1239 - Lattice ispLEVER: Lattice Diamond: Why do I get "invalid hex parity digit" errors with ispLEVER/Diamond bitgen?<br>

1239 - Lattice ispLEVER: Lattice Diamond: Why do I get "invalid hex parity digit" errors with ispLEVER/Diamond bitgen?<br>

Lattice ispLEVER: Lattice Diamond: This typically happens when you specify the Memory Initial Hex Value that is larger than the data-width of the Memory. All the Lattice EBR blocks need 18-bit initial data for each address location, but they internally use 5 Hexadecimal values (20-bit) to represent the initial data. This means that the most significant two bits of INITVAL must always be set to 0 as shown below:

hex[0] = bit[3:0];

hex[1] = bit[7:4];

hex[2] = bit[11:9];

hex[3] = bit[15:12];

hex[4] = {00,bit[17:16]

Make sure that the hex[4] value does not exceed 3 as this will make the initial value invalid. We recommend that you take advantage of the Memory Generation Tool (MemGen) to assist in creating and editing memory initialization (.mem) files.