anchor.diff:  	 loadf_c.enq(tuple2(truncate(loadIdx),cmd));
   	 write_data_funnel.loadIdx(truncate(loadIdx));
   	 if (cond1) begin
  -	    outs1[loadIdx] <= outs1[loadIdx]-1;
  -	    cmdBuf.deq(truncate(loadIdx));
  +	    outs1[loadIdx] <= False;
   	 end
   	 else begin
   	    let new_cmd = MemengineCmd{sglId:cmd.sglId, base:cmd.base+extend(cmd.burstLen), burstLen:cmd.burstLen, len:cmd.len-extend(cmd.burstLen), tag:cmd.tag};
  -	    cmdBuf.upd_head(truncate(loadIdx),new_cmd);
  +	    cmdRegs[loadIdx] <= new_cmd;
   	 end
         end
      endrule
  
positive.code: 	  loadIdx <= loadIdx+1;
         endaction);
  
     rule store_cmd;
        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 (!load_in_progress);
        if (outs1[loadIdx] > 0) begin
  	 load_in_progress <= True;
  	 cmdBuf.first_req(truncate(loadIdx));
        end
        else begin
  	 incr_loadIdx;
        end
     endrule
  
     rule load_ctxt_b;
        let cmd <- cmdBuf.first_resp;
        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));
     endrule
     
     rule load_ctxt_c;
        load_in_progress <= False;
        incr_loadIdx;
        match {.cmd,.cond0,.cond1} <- toGet(loadf_b).get;
  
negative.code:    
     
     Integer bufferSizeBeats = bufferSizeBytes/valueOf(dataWidthBytes);
     Vector#(numServers, Reg#(Bool))               outs1 <- replicateM(mkReg(False));
     Vector#(numServers, Reg#(Bit#(outCntSz)))     outs0 <- replicateM(mkReg(0));
     Vector#(numServers, ConfigCounter#(16))        buffCap <- replicateM(mkConfigCounter(0));
     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);
  