anchor.diff:        let physAddr <- mmus[request.req.sglId[31:16]].response.get;
         let rename_tag <- tag_gen.getTag;
         let burstLenBeats = request.req.burstLen >> beat_shift;
  -      clientBurstLen.upd(truncate(rename_tag), burstLenBeats);
  +      clientBurstLen.upd(truncate(rename_tag), tuple2(burstLenBeats == 1, burstLenBeats));
         
         serverRequest.enq(RRec{req:request.req, pa:physAddr, client:request.client, rename_tag:extend(rename_tag)});
         if (verbose) $display("mkMemReadInternal::checkMmuResp: client=%d, tag=%d rename_tag=%d burstLen=%d", request.client, request.req.tag, rename_tag, burstLenBeats);
  
positive.code:       end
        last_readData <= cycle_cnt;
        if (verbose) $display("mkMemReadInternal::read_data cyclediff %d", cycle_cnt-last_readData);
        clientBurstLen.upd(truncate(response.tag), burstLen-1);
        firstReg <= last;
        lastReg  <= burstLen-1 == 1;
     endrule
  
     rule tag_completed;
  
negative.code:       let response <- toGet(serverData).get();
        let drq <- serverProcessing.portA.response.get;
        let tag = drq.req_tag;
        match { .last, .burstLen } = clientBurstLen.sub(truncate(response.tag));
        let first   = firstReg;
        if (first) begin
  	 dynamicAssert(last == (burstLen==1), "Last incorrect");
        end
        if (last && burstLen != 1)
  