anchor.diff:     Reg#(Bit#(32))                                   iterCnt <- mkReg(0);
      Vector#(NumEngineServers, Reg#(Bit#(32)))       iterCnts <- replicateM(mkReg(0));
      Vector#(NumEngineServers, Reg#(Bit#(32)))        srcGens <- replicateM(mkReg(0));
  +   Vector#(NumEngineServers, Reg#(Bit#(32)))   valuesToRead <- replicateM(mkReg(0));
      Vector#(NumEngineServers, Reg#(Bit#(32))) mismatchCounts <- replicateM(mkReg(0));
      MemreadEngineV#(64,2,NumEngineServers)                re <- mkMemreadEngine;
      Vector#(NumEngineServers, FIFOF#(Bit#(32))) mismatchFifos <- replicateM(mkFIFOF);
  
positive.code:       rule finish;
  	 $display("finish %d", i);
  	 let rv <- re.readServers[i].response.get;
  	 // need to pipeline this also
  	 //mismatchCnt <= mismatchCnt+mismatchCounts[i];
  	 mismatchCounts[i] <= 0;
  	 mismatchFifos[i].enq(mismatchCounts[i]);
        endrule
        rule check;
  	 let bv <- toGet(mismatchPipes[i]).get();
  	 let misMatch = !bv[0] || !bv[1];
  	 mismatchCounts[i] <= mismatchCounts[i] + (misMatch ? 1 : 0);
  
        endrule
     end
  
negative.code: 	 for(Integer i = 0; i < valueOf(NumEngineServers); i=i+1) begin
  	    iterCnts[i] <= ic;
  	    mismatchCounts[i] <= 0;
  	    valuesToRead[i] <= truncate(chunk/4);
  	 end
        endmethod
     endinterface
  