anchor.diff:  	     return inpipe.first.data;
   	  endmethod
   	  method Action deq;
  +	     if (verbose) $display("check_out: idx %d data %h", i, inpipe.first.data);
   	     inpipe.deq;
   	     buffCap[i].increment(1);
   	     if (inpipe.first.last)
  
positive.code:    
     Reg#(Bool) load_in_progress <- mkReg(False);
     FIFO#(Tuple3#(MemengineCmd,Bool,Bool))         loadf_b <- mkSizedFIFO(1);
     FIFO#(Tuple2#(Bit#(serverIdxSz),MemengineCmd)) loadf_c <- mkSizedFIFO(1);
     FIFO#(Tuple3#(Bit#(8),Bit#(serverIdxSz),Bool))   workf <- mkSizedBRAMFIFO(32); // isthis the right size?
     
  
     Vector#(numServers, FIFO#(void))              outfs <- replicateM(mkSizedFIFO(valueOf(cmdQDepth)));
     Vector#(numServers, FIFOF#(MemengineCmd))   cmds_in <- replicateM(mkSizedFIFOF(valueOf(cmdQDepth)));
  
     FIFOF#(MemData#(dataWidth))                             read_data <- mkFIFOF;
     Vector#(numServers, FIFOF#(MemData#(dataWidth)))  read_data_buffs <- replicateM(mkSizedBRAMFIFOF(bufferSizeBeats));
  
negative.code:    rule load_ctxt_a (!load_in_progress);
        if (outs1[loadIdx]) begin
  	 load_in_progress <= True;
  	 if (verbose) $display("mkMemreadEngineBuff::load_ctxt_a %d", loadIdx);
  	 let cmd = cmdRegs[loadIdx];
  	 let cond0 <- buffCap[loadIdx].maybeDecrement(unpack(extend(cmd.burstLen>>beat_shift)));
  	 let cond1 = cmd.len <= extend(cmd.burstLen);
  	 loadf_b.enq(tuple3(cmd,cond0,cond1));
  	 if (verbose) $display("mkMemreadEngineBuff::load_ctxt_b %d %d", buffCap[loadIdx].read(), cmd.burstLen>>beat_shift);
        end
        else begin
  	 incr_loadIdx;
        end
     endrule
  
     // should use an EHR for outs1 to avoid the need for this pragma
     (* descending_urgency = "load_ctxt_c, store_cmd" *)
     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
  