anchor.diff:  	 pointer <= rp;
   	 cf.enq(?);
   	 numWords  <= nw;
  -	 burstLen  <= bl;
  +	 burstLenBytes  <= bl*4;
   	 itersToFinish <= ic;
   	 itersToStart <= ic;
   	 mismatchCounts <= 0;
  
positive.code:       let misMatch = v != expectedV;
        mismatchCounts <= mismatchCounts + (misMatch ? 1 : 0);
        let new_srcGens = srcGens+2;
        if (new_srcGens >= truncate(chunk/4))
  	 new_srcGens = 0;
        srcGens <= new_srcGens;
     endrule
  
negative.code: 
     Reg#(SGLId)   pointer <- mkReg(0);
     Reg#(Bit#(32))       numWords <- mkReg(0);
     Reg#(Bit#(32))  burstLenBytes <- mkReg(0);
     FIFO#(void)                cf <- mkSizedFIFO(1);
     Reg#(Bit#(32))  itersToFinish <- mkReg(0);
     Reg#(Bit#(32))   itersToStart <- mkReg(0);
     Reg#(Bit#(32))        srcGens <- mkReg(0);
     Reg#(Bit#(32)) mismatchCounts <- mkReg(0);
     MemreadEngine#(64,2,1)        re <- mkMemreadEngine;
     Bit#(MemOffsetSize) numBytes = extend(numWords)*4;
     
     
     rule start (itersToStart > 0);
        re.readServers[0].request.put(MemengineCmd{sglId:pointer, base:0, len:truncate(numBytes), burstLen:burstLenBytes});
        itersToStart <= itersToStart-1;
     endrule
  
  