anchor.diff:  	endrule
   
   	(* fire_when_enabled *)
  -	rule queryStimMem(wordMatched);
  +	rule queryStimMem(acqStarted && wordMatched);
   		stimMem.portA.request.put(BRAMRequest{
   			write: False,
   			address: truncate(stimIndex),
   			datain: ?,
   			responseOnWrite: False
   		});
  -        stimFromMem.enq(truncate(stimIndex));
   		wordMatched <= stimIndex + 1 < stimMemSize;
   		stimIndex <= stimIndex + 1;
   	endrule
  
positive.code: 	endrule
  
  	(* fire_when_enabled *)
  	rule stimLoadMem(stimRate.ticked);
          let data <- stimMem.portA.response.get;
  		stimOut[1] <= data;//stimFromMem.first;
  		stimFromMem.deq;
  	endrule
  
  	rule jtag_get_addr(acqStarted);
  		let stimIndex <- jtag_addr.get;
  		stimMem.portB.request.put(BRAMRequest{
  			write: False,
  			address: stimIndex,
  			datain: ?,
  			responseOnWrite: False
  		});
  	endrule
  
  	rule jtag_put_data(acqStarted);
  		let data <- stimMem.portB.response.get;
  		jtag_data.put(data);
  	endrule
  
  	(* fire_when_enabled *)
  
negative.code: 
  	(* fire_when_enabled *)
  	rule answerStimMemRead(!acqStarted);
  		let resp <- stimMem.portA.response.get;
  		avalon.busClient.response.put(extend(resp));
  		stimMemPendRead.deq;
  	endrule
  