anchor.diff:     Vector#(numServers, PipeOut#(MemDataF#(userWidth))) memDataPipes = zipWith(mem_data_out, map(toPipeOut,clientDataFifo), genVector);
   
      Reg#(Bit#(8))                    respCnt <- mkReg(0);
  +   Reg#(Bit#(TAdd#(1,serverIdxSz))) loadIdx <- mkReg(0);
      let beat_shift = fromInteger(valueOf(beatShift));
      let cmd_q_depth = fromInteger(valueOf(cmdQDepth));
      Reg#(Bit#(32)) counter <- mkReg(0);
  
positive.code:    interface MemReadClient dmaClient;
        interface Get readReq;
  	 method ActionValue#(MemRequest) get();
  	    match {.idx, .cmd_sglId, .cmd_base, .cmd_tag, .first_burst, .last_burst, .bl} <- toGet(serverRequest).get;
  	    serverProcessing.enq(tuple4(truncate(bl>>beat_shift), idx, first_burst, last_burst));
  	    if (verbose) $display("MemReadEngine::%d readReq idx %d offset %h burstLenBytes %h last_burst %d", counter, idx, cmd_base, bl, last_burst);
  	    return MemRequest { sglId: cmd_sglId, offset: cmd_base, burstLen:bl, tag: (cmd_tag << valueOf(serverIdxSz)) | extend(idx)
  `ifdef BYTE_ENABLES
  			       , firstbe: maxBound, lastbe: maxBound
  `endif
  
negative.code:    Vector#(numServers, Reg#(Bool))          clientInFlight <- replicateM(mkReg(False));
     Vector#(numServers, ConfigCounter#(16))  clientAvail <- replicateM(mkConfigCounter(fromInteger(bufferSizeBeats)));
     Vector#(numServers, Reg#(MemengineCmd))  clientCommand <- replicateM(mkReg(unpack(0)));
     Vector#(numServers, Reg#(Bool))          clientFirstBurst <- replicateM(mkReg(False));
     
     Reg#(Bool) load_in_progress <- mkReg(False);
     FIFO#(Tuple5#(MemengineCmd,Bool,Bool,Bool,Bit#(BurstLenSize)))              serverCheckAvail <- mkSizedFIFO(1);
     FIFO#(Tuple5#(Bit#(serverIdxSz),MemengineCmd,Bool,Bool,Bit#(BurstLenSize))) serverRequest <- mkSizedFIFO(valueOf(cmdQDepth));
     FIFO#(Tuple4#(Bit#(8),Bit#(serverIdxSz),Bool,Bool)) serverProcessing <- mkSizedFIFO(valueOf(cmdQDepth));
  
     Vector#(numServers, FIFO#(MemengineCmd)) clientRequest <- replicateM(mkFIFO());
  