anchor.diff:  
   	       tlp.data = pack(hdr_3dw);
   	    end
  -	    tlpWriteHeaderFifo.enq(tlp);
  -	    writeDwCountFifo.enq(tlplen);
  -	    writeIs3dwFifo.enq(writeIs3dw);
  -	    writeIsHeaderOnlyFifo.enq(writeIs3dw && tlplen == 1);
  +	    tlpWriteHeaderFifo.enq(TlpWriteHeaderInfo {tlp: tlp, dwCount: tlplen, is3dw: writeIs3dw, isHeaderOnly: (writeIs3dw && tlplen == 1) });
   	    writeBurstCountFifo.enq(extend(burstLen));
   	    writeTag.enq(extend(awid));
            endmethod
  
positive.code: import ClientServer :: *;
  import MemTypes     :: *;
  import Probe        :: *;
  
  interface MemSlaveEngine#(numeric type buswidth);
      interface Client#(TLPData#(16), TLPData#(16)) tlp;
  
negative.code: 
      FIFOF#(TLPData#(16)) tlpOutFifo <- mkFIFOF;
      FIFOF#(TLPData#(16)) tlpInFifo <- mkFIFOF;
      FIFO#(TlpWriteHeaderInfo) tlpWriteHeaderFifo <- mkFIFO;
  
      Reg#(Bit#(7)) hitReg <- mkReg(0);
      Reg#(Bool) use4dwReg <- mkReg(True);
  