anchor.diff:     
      rule read_data_rule;
         let d <- toGet(read_data).get();
  -      match {.rc, .idx, .last} = workf.first;
  +      match {.rc, .idx, .last_burst} = workf.first;
         let new_respCnt = respCnt+1;
         let l = False;
  -      if (verbose) $display("%h new_respCnt %d rc %d last_burst %d idx %d outs1 %d", d.data, new_respCnt, rc, last, idx, outs1[idx]);
  +      if (verbose) $display("%h new_respCnt %d rc %d last_burst %d idx %d outs1 %d eob %d", d.data, new_respCnt, rc, last_burst, idx, outs1[idx], d.last);
         if (new_respCnt == rc) begin
   	 respCnt <= 0;
   	 workf.deq;
   	 //$display("eob %d", idx);
  -	 l = last;
  +	 l = last_burst;
         end
         else begin
   	 respCnt <= new_respCnt;
         end
  +      d.last = l;
         read_data_buffs[idx].enq(d);
      endrule
   
  
positive.code:    interface MemReadClient dmaClient;
        interface Get readReq;
  	 method ActionValue#(MemRequest) get();
  	    match {.idx, .cmd} <- toGet(loadf_c).get;
  	    Bit#(BurstLenSize) bl = cmd.burstLen;
  	    let last = False;
  	    if (cmd.len <= extend(bl)) begin
  	       last = True;
  	       bl = truncate(cmd.len);
  	    end
  	    workf.enq(tuple3(truncate(bl>>beat_shift), idx, last));
  	    if (verbose) $display("MemreadEngine::readReq %d, %h %h %h", idx, cmd.base, bl, last);
  	    return MemRequest { sglId: cmd.sglId, offset: cmd.base, burstLen:bl, tag: (cmd.tag << valueOf(serverIdxSz)) | extend(idx)};
  	 endmethod
        endinterface
  
negative.code:    rule load_ctxt_c if (load_in_progress);
        load_in_progress <= False;
        incr_loadIdx;
        match {.cmd,.cond0,.last_burst} <- toGet(loadf_b).get;
        if  (cond0) begin
  	 if (verbose) $display("mkMemreadEngineBuff::load_ctxt_c cmd.len %d idx %d cond0 %d last_burst %d", cmd.len, loadIdx, cond0, last_burst);
  	 let x = cmd.burstLen;
  	 if (cmd.len < extend(cmd.burstLen))
  	    x = truncate(cmd.len);
  	 loadf_c.enq(tuple3(truncate(loadIdx),cmd,last_burst));
  	 if (last_burst) begin
  	    if (verbose) $display("load_ctxt_b last_burst %d", last_burst);
  	    outfs[loadIdx].enq(?);
  	    outs1[loadIdx] <= False;
  	 end
  	 else begin
  