Output MemAddress is the output of combinational logic.  Outputs from modules should be registered unless there is a good reason for them not to be.  Besides, there should be a 1 clock delay from intput address to output address to match the latency of the control signals (which should be registered outputs of the state machine).