anchor.diff:  	    handled = True;
         end
         //$display("tlpIn handled=%d tlp=%h\n", handled, tlp);
  -      if (handled)
  -	 tlpInFifo.deq();
  +      if (handled) begin
  +	 tlpDecodeFifo.deq();
  +	 tlpWordCountFifo.deq();
  +      end
      endrule
   
       interface Client        tlp;
  
positive.code:    endrule
  
     Reg#(TLPTag) lastTag <- mkReg(0);
     rule handleTlpIn;
        let tlp = tlpInFifo.first;
        Bool handled = False;
        TLPMemoryIO3DWHeader h = unpack(tlp.data);
        hitReg <= tlp.hit;
  
negative.code:       Vector#(4, Bit#(32)) tlpvec = unpack(tlp.data);
  
        if (!tlp.sof) begin
  	 vec = reverse(tlpvec);
  	 // 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(count)
  	    && completionTagMimo.enqReadyN(count))
  	    begin
  	       completionMimo.enq(count, vec);
  	       Vector#(4, TLPTag) tagvec = replicate(lastTag);
  	       completionTagMimo.enq(count, tagvec);
  	       handled = True;
  	    end
        end
  