anchor.diff:  	     Add#(a__, serverIdxSz, cmdBuffAddrSz),
   	     Min#(2,TLog#(numServers),bpc),
   	     Add#(d__, TLog#(numServers), TAdd#(1, serverIdxSz)),
  -	     Add#(f__, serverIdxSz, 6));
  +	     Add#(f__, serverIdxSz, MemTagSize));
      let verbose = False;
      let beatShift = fromInteger(valueOf(beatShift));
   
  
positive.code: 	    ,Add#(busWidth, 0, userWidth)
  	    ,Add#(b__, TLog#(numServers), TAdd#(1, TLog#(TMul#(cmdQDepth,numServers))))
  	    ,Add#(c__, TLog#(numServers), TLog#(TMul#(cmdQDepth, numServers)))
  	    ,Add#(d__, TLog#(numServers), 6)
  	    );
     let rv <- mkMemReadEngineBuff(valueOf(cmdQDepth) * valueOf(TExp#(BurstLenSize)));
     return rv;
  
negative.code:       else begin
  	 respCnt <= new_respCnt;
        end
        clientDataFifo[idx].enq(MemDataF { data: d.data, tag: d.tag >> valueOf(serverIdxSz), first: (respCnt == 0), last: l});
     endrule
  
     Vector#(numServers, MemReadEngineServer#(userWidth)) rs;
  