M9K Block RAM Endianess When Configured For Mixed Width Data Ports
- 4 years ago
With simulation of M9K Block RAM in simple or true dual port mode with mixed width data on a MAX10 FPGA, I have verified that the natural storage of the RAM is Little Endian. In the example above, a write to Port A at sixteen bits with data 0x1234 at address 0x0 results in a read on Port B at eight bits with data 0x34 at address 0x0. This is consistent with a RAM initialization file of 8 bit data words equal to the address such that the data sequence 0x00, 0x01, 0x02, 0x03, 0x04, ... reads back on both ports as data 0x0100 for sixteen bits on Port A at address 0x0 and data 0x00 for eight bits on Port B at address 0x0. This also make sense from the RAM storage view as a linear array. Additional circuitry would be required to convert the RAM storage array to Big Endian format between mix width ports. The Byte Enable signals, when used in that mode, also agree with the little end bytes at lower addresses.