I'm not sure in the case of the non-Avalon mode, but in the Avalon mode local_ready (or waitrequest_n using Avalon naming) must be used to throttle reads and writes to the memory controller port. So if the read or write signal is asserted but local_ready is deasserted then you must prolong your access by keeping the same address, write data (assuming you are writing to memory), local burst count, and write/ready asserted until local_ready is asserted once again. local_ready == 0 means that the interface cannot handle any more accesses and so your logic accessing the memory must wait until the interface is ready to accept more requests. The reasons for local_ready being low could be due to a refresh cycle and the command queue is full, or the memory is in the middle of calibration, etc...