anchor.diff:  
   	(* fire_when_enabled *)
   	rule answerStimMemRead(!acqStarted);
  -		let resp <- stimMem.portB.response.get;
  +		let resp <- stimMem.portA.response.get;
   		avalon.busClient.response.put(extend(resp));
   		stimMemPendRead.deq;
   	endrule
  
positive.code: 	endrule
  
  	(* fire_when_enabled *)
  	rule queryStimMem(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
  
negative.code: 	FIFOF#(void) stimMemPendRead <- mkFIFOF;  // to enforce order on responses
  	Reg#(Bit#(TAdd#(StimMemAddrSize, 1))) stimMemSize <- mkReg(0);
  	Reg#(Bit#(TAdd#(StimMemAddrSize, 1))) stimIndex <- mkReg(0);
  
  	ProgrammableCycleCounter#(AvalonDataSize) binBoundary <-
  		mkProgrammableCycleCounter(fromInteger(defaultWordPeriod));
  