anchor.diff:        if (outs1[loadIdx] > 0) begin
   	 cmdBuf.first_req(loadIdx);
   	 loadf_a.enq(loadIdx);
  +	 //$display("load_ctxt_a %d", loadIdx);
         end
      endrule
   
      rule load_ctxt_b;
         let idx <- toGet(loadf_a).get;
         let cmd <- cmdBuf.first_resp;
  -      if (outs1[idx] > 0 && buffCap[idx].read() > unpack(extend(cmd.burstLen>>beat_shift))) begin
  -	 //$display("load_ctxt %h %d", cmd.base, idx);
  -	  buffCap[idx].decrement(unpack(extend(cmd.burstLen>>beat_shift)));
  +      if (outs1[idx] > 0 && buffCap[idx].read() >= unpack(extend(cmd.burstLen>>beat_shift))) begin
  +	 //$display("load_ctxt_b %h %d", cmd.base, idx);
  +	 buffCap[idx].decrement(unpack(extend(cmd.burstLen>>beat_shift)));
   	 loadf_b.enq(tuple2(idx,cmd));
   	 if (cmd.len <= extend(cmd.burstLen)) begin
   	    outs1[idx] <= outs1[idx]-1;
  
positive.code: 	     Min#(2,TLog#(numServers),bpc),
  	     FunnelPipesPipelined#(1,numServers,Tuple2#(Bit#(serverIdxSz),MemengineCmd),bpc),
  	     FunnelPipesPipelined#(1,numServers,Tuple2#(Bit#(dataWidth),Bool),bpc));
     let rv <- mkMemreadEngineBuff(64, 2);
     return rv;
  endmodule
  
  
negative.code:       match {.idx, .cmd} <- toGet(cmds_in_funnel[0]).get;
        outs1[idx] <= outs1[idx]+1;
        cmdBuf.enq(idx,cmd);
        //$display("store_cmd %d", idx);
     endrule
     
     rule load_ctxt_a;
  