with buffering added to MemreadEngineV, we can remove the FIFOs from MemreadVectorSource and the temporary flow control FIFOs from Matrix