anchor.diff:        end
      endrule
   
  +   Reg#(TLPTag) lastTag <- mkReg(0);
      rule handleTlpIn;
         let tlp = tlpInFifo.first;
         Bool handled = False;
         TLPMemoryIO3DWHeader h = unpack(tlp.data);
         hitReg <= tlp.hit;
         TLPMemoryIO3DWHeader hdr_3dw = unpack(tlp.data);
  +      TLPCompletionHeader hdr_completion = unpack(tlp.data);
         Vector#(4, Bit#(32)) vec = unpack(0);
         Vector#(4, Bit#(32)) tlpvec = unpack(tlp.data);
   
  
positive.code: 	    && completionTagMimo.enqReadyN(fromInteger(count)))
  	    begin
  	       completionMimo.enq(fromInteger(count), vec);
  	       completionTagMimo.enq(fromInteger(count), replicate(lastTag));
  	       handled = True;
  	    end
        end
  
negative.code:     MIMO#(4,busWidthWords,8,Bit#(32)) completionMimo <- mkMIMO(mimoCfg);
      MIMO#(4,busWidthWords,8,TLPTag) completionTagMimo <- mkMIMO(mimoCfg);
      MIMO#(busWidthWords,4,8,Bit#(32)) writeDataMimo <- mkMIMO(mimoCfg);
      Reg#(Bit#(9)) writeBurstCount <- mkReg(0);
      Reg#(TLPLength)  writeDwCount <- mkReg(0);
      Reg#(TLPTag) writeTag <- mkReg(0);
  