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:    rule load_ctxt_c if (load_in_progress);
        load_in_progress <= False;
        incr_loadIdx;
        match {.cmd,.cond0,.cond1} <- toGet(loadf_b).get;
        if (verbose) $display("mkMemreadEngineBuff::load_ctxt_c cmd.len %d idx %d cond0 %d cond1 %d", cmd.len, loadIdx, cond0, cond1);
        if  (cond0) begin
  	 let x = cmd.burstLen;
  	 if (cmd.len < extend(cmd.burstLen))
  	    x = truncate(cmd.len);
  	 loadf_c.enq(tuple2(truncate(loadIdx),cmd));
  	 if (cond1) begin
  	    if (verbose) $display("load_ctxt_b cond1 %d", cond1);
  	    outs1[loadIdx] <= False;
  	 end
  	 else begin
  
negative.code:    Vector#(numServers, Reg#(MemengineCmd))     cmdRegs <- replicateM(mkReg(unpack(0)));
     
     Reg#(Bool) load_in_progress <- mkReg(False);
     FIFO#(Tuple3#(MemengineCmd,Bool,Bool))              loadf_b <- mkSizedFIFO(1);
     FIFO#(Tuple3#(Bit#(serverIdxSz),MemengineCmd,Bool)) loadf_c <- mkSizedFIFO(valueOf(cmdQDepth));
     FIFO#(Tuple3#(Bit#(8),Bit#(serverIdxSz),Bool))        workf <- mkSizedBRAMFIFO(valueOf(cmdQDepth));
     
  
     Vector#(numServers, FIFO#(void))              outfs <- replicateM(mkSizedFIFO(valueOf(cmdQDepth)));
     Vector#(numServers, FIFO#(MemengineCmd))    cmds_in <- replicateM(mkFIFO());
  
     FIFOF#(MemData#(dataWidth))                             read_data <- mkFIFOF;
  