If your HDL code infers a memory block that is deeper than the maximum memory depth supported by the device, the Quartus II software may be unable to implement your memory using output registers.
For example, the maximum available depth for M10K is 8K. If your HDL code infers a memory block with 16K depth, output registers will not be included.
To work around this limitation, first create a low level memory file with a smaller depth which can infer the output register. Then, make a wrapper file to combine multiple low level memory files into the larger desired memory.
To verify the maximum supported memory depth, refer to the internal memory chapter for the appropriate device handbook.