anchor.diff:  
       MIMOConfiguration mimoCfg = defaultValue;
       MIMO#(1,4,16,Bit#(32)) completionMimo <- mkMIMO(mimoCfg);
  -   Reg#(TLPLength) readBurstCount <- mkReg(0);
  -   rule completionHeader if (readBurstCount == 0 && readDataFifo.notEmpty() && completionMimo.deqReadyN(1));
  +   Reg#(TLPLength)             readBurstCount <- mkReg(0);
  +   Reg#(Bool)      readBurstCountGreaterThan4 <- mkReg(False);
  +   Reg#(Bool)                  readInProgress <- mkReg(False);
  +   rule completionHeader if (!readInProgress && readDataFifo.notEmpty() && completionMimo.deqReadyN(1));
         let hdr = readDataFifo.first;
         TLPLength rbc = hdr.length;
   
  
positive.code: 
        rbc = rbc - 1;
        readBurstCount <= rbc;
        if (rbc == 0) begin
  	 readDataFifo.deq;
        end
  
negative.code: 	  return 16'hffff;
      endfunction
  
     rule continuation if (readInProgress);
        let rbc = readBurstCount;
        let sendit = False;
        TLPData#(16) tlp = defaultValue;
        Vector#(4, Bit#(32)) dvec = unpack(0);
        tlp.sof = False;
        //$display("continuation rbc=%d", rbc);
        if (readBurstCountGreaterThan4) begin
  	 if (completionMimo.deqReadyN(4)) begin
  	    rbc = rbc - 4;
  	    dvec = completionMimo.first();
  