anchor.diff:        complBuff.deq(newName);
      endrule
         
  +   (* fire_when_enabled *)
      rule drain_resp;
         match {.data,.last} <- complBuff.first_resp;
         if (last)
  
positive.code:    FunnelPipe#(1, numServers, Tuple2#(Bit#(serverIdxSz), MemengineCmd),bpc) cmds_in_funnel <- mkFunnelPipesPipelined(map(toPipeOut,cmds_in));
     Vector#(numServers, FIFOF#(Bit#(dataWidth)))  write_data_buffs <- replicateM(mkSizedBRAMFIFOF(bufferSizeBeats));
     Vector#(numServers, PipeOut#(Bit#(dataWidth))) foo = map(toPipeOut, write_data_buffs); 
     BurstFunnel#(numServers,dataWidth) write_data_funnel <- mkBurstFunnel(bufferSizeBeats);
     zipWithM(mkConnection, foo, write_data_funnel.dataIn);
        
     Reg#(Bit#(8))                               respCnt <- mkReg(0);
  
negative.code: 	    ,Add#(c__, TLog#(numServers), TLog#(TMul#(cmdQDepth, numServers)))
  	    ,Add#(1, d__, dataWidth)
  	    ,FunnelPipesPipelined#(1, numServers, Tuple3#(Bit#(2),Bit#(dataWidth),Bool), TMin#(2, TLog#(numServers)))
  	    ,FunnelPipesPipelined#(1, numServers,Tuple3#(Bit#(TLog#(numServers)), Bit#(dataWidth), Bool), TMin#(2,TLog#(numServers)))
  	    );
     let rv <- mkMemwriteEngineBuff(256);
     return rv;
  