Memory arrays should not be reset. Only the output of the RAM can tolerate a reset. The reset must be synchronous in order for inference of the output register into the RAM primitive. An asynchronous reset will cause the register to not be inferred into the RAM primitive. Additionally, the output signal can only be reset to 0.
The following figure highlights an example of what to avoid to ensure correct inference of RAMs and output registers.
Figure 1. Checking for Reset On Address/Read Data Registers