M9K memories are Altera's embedded high-density memory arrays. Nearly all modern FPGAs include something similar of varying sizes.
The M9Ks contain 8192 bits per block (9216 including parity bits) and are capable of very flexible port configurations. The best place to begin reading for more M9K memory block details are the M9K Handout and documentation covering the Max 10 FPGA.
To properly initialize the M9K blocks, Quartus must be set up to include memory initialization data with the device's programming data (bitstream) by following these steps in Quartus before compiling:
Click Assignments → Device...
Click Device and Pin Options...
Go to the Configuration tab.
From the Configuration Mode drop-down, select Single Uncompressed Image with Memory Initialization. (typically Quartus is not set to use memory initialization by default)
2018/06/06 Minor edits (BB) Written by Bevan Baas