anchor.diff:  	  endmethod
   	  method Bool notEmpty = x.notEmpty;
          endinterface);
  -   Vector#(numServers, PipeOut#(Bit#(dataWidth))) read_data_pipes = zipWith(check_out, read_data_unfunnel, genVector);
  +   Vector#(numServers, PipeOut#(Bit#(dataWidth))) read_data_pipes = zipWith(check_out, read_data_unfunnel_buffs, genVector);
      
      Reg#(Bit#(8))                               respCnt <- mkReg(0);
      Reg#(Bit#(serverIdxSz))                     loadIdx <- mkReg(0);
  
positive.code: import Assert::*;
  import ClientServer::*;
  import BRAM::*;
  
  import PortalMemory::*;
  import MemTypes::*;
  
negative.code:       tail[idx] <= new_tail;
        outs1[idx] <= outs1[idx]+1;
        cmdBuf.portA.request.put(BRAMRequest{write:True, responseOnWrite:False, address:tail[idx], datain:cmd});
        dynamicAssert(cmd.burstLen>>beat_shift <= maxBurstLen,  "mkMemreadEngineV.store_cmd::unsupportedBurstLen");
        //$display("MemreadEngineV.store_cmd: %d %h", idx, tail[idx]);
     endrule
     
     rule load_ctxt;
        loadIdx <= loadIdx+1;
        if (outs1[loadIdx] > 0 && buffCap[loadIdx] > 0) begin
  	 buffCap[loadIdx] <= buffCap[loadIdx]-1;
  	 cmdBuf.portA.request.put(BRAMRequest{write:False, responseOnWrite:False, address:head[loadIdx], datain:?});
  	 loadf.enq(loadIdx);
  	 //$display("MemreadEngineV.load_ctxt: %d, %h", loadIdx, head[loadIdx]);
  