anchor.diff:  
   typedef struct {ObjectRequest req;
   		Bit#(TLog#(numTags)) rename_tag;
  -		Bit#(TLog#(numClients)) client; } DRec#(numeric type numClients, numeric type numTags, numeric type addrWidth) deriving(Bits);
  +		Bit#(TLog#(numClients)) client;
  +		Bool last; } DRec#(numeric type numClients, numeric type numTags, numeric type addrWidth) deriving(Bits);
   
   typedef struct {Bit#(6) orig_tag;
   		Bit#(TLog#(numClients)) client; } RResp#(numeric type numClients, numeric type numTags, numeric type addrWidth) deriving(Bits);
  
positive.code:    FIFO#(Tuple2#(DRec#(numClients,numTags,addrWidth),MemData#(dataWidth))) readDataPipelineFifo <- mkFIFO;
     FIFO#(MemData#(dataWidth)) responseFifo <- mkFIFO;
     Vector#(numTags, Reg#(Bit#(8)))           burstRegs <- replicateM(mkReg(0));
     Reg#(Bit#(64))  beatCount <- mkReg(0);
     let beat_shift = fromInteger(valueOf(beatShift));
     
  
negative.code: 	    let rename_tag = reqFifo.first.rename_tag;
  	    if (False && physAddr[31:24] != 0)
  	       $display("req_ar: funny physAddr req.pointer=%d req.offset=%h physAddr=%h", req.pointer, req.offset, physAddr);
  	    dreqFifos[rename_tag].enq(DRec{req:req, client:client, rename_tag:rename_tag, last:(req.burstLen == beat_shift)});
  	    //$display("readReq: client=%d, rename_tag=%d, physAddr=%h", client,rename_tag,physAddr);
  	    return MemRequest{addr:physAddr, burstLen:req.burstLen, tag:extend(rename_tag)};
  	 endmethod
  