anchor.diff:  	    end
   	 endfunction
   	 vec = genWith(f);
  -	 //$display($format(fshow("completionMimo.enq vec=")+fshow(vec)));
  +	 // The MIMO implicit guard only checks for space to enqueue 1 element
  +	 // so we explicitly check for the number of elements required
  +	 // otherwise elements in the queue will be overwritten.
   	 if (completionMimo.enqReadyN(fromInteger(count))
   	    && completionTagMimo.enqReadyN(fromInteger(count)))
   	    begin
  
positive.code:       end
        else begin
  	 // wait for more data in writeDataMimo
  	 $display("waiting for more data dwCount=%d count=%d writeBurstCount=%d enqReady=%d", writeDwCount, writeDataMimo.count(), writeBurstCount, writeDataMimo.enqReadyN(fromInteger(valueOf(busWidthWords))));
        end
        if (sendit) begin
  	 for (Integer i = 0; i < 4; i = i + 1)
  
negative.code:     Reg#(Bit#(7)) hitReg <- mkReg(0);
      Reg#(Bool) use4dwReg <- mkReg(True);
  
      // default configuration for MIMO is for guarded enq() and deq().
      // However, the implicit guard only checks for space for 1 element for enq(), and availability of 1 element for deq().
      MIMOConfiguration mimoCfg = defaultValue;
      MIMO#(4,busWidthWords,8,Bit#(32)) completionMimo <- mkMIMO(mimoCfg);
      MIMO#(4,busWidthWords,8,TLPTag) completionTagMimo <- mkMIMO(mimoCfg);
  