anchor.diff:  	 dmaIndication.badAddr(req.pointer, extend(req.offset), extend(physAddr));
         end
         else begin
  -	 reqFifo.enq(IRec{req:req, rename_tag:tag_gen, pa:physAddr, chan:chan});
  -	 tag_gen <= tag_gen+1;
  +	 reqFifo.enq(IRec{req:req, rename_tag:truncate(chan), pa:physAddr, chan:chan});
         end
      endrule
   
  
positive.code:    Vector#(numWriteClients, Reg#(Bit#(64))) beatCounts <- replicateM(mkReg(0));
     let beat_shift = fromInteger(valueOf(beatShift));
     
     // the choice of 5 is based on PCIE limitations.   
     // uniqueness is enforced by the depth of dreqFIFO
     Reg#(Bit#(6))  tag_gen   <- mkReg(0); 
     // report a tag mismatch for oo completions (in which 
     // case we will need to introduce completion buffers)
     FIFO#(Tuple2#(Bit#(6),Bit#(6))) tag_mismatch <- mkSizedFIFO(32);
  
negative.code:    Vector#(numReadClients, Reg#(Bit#(64))) beatCounts <- replicateM(mkReg(0));
     let beat_shift = fromInteger(valueOf(beatShift));
  
     // report a tag mismatch for oo completions (in which 
     // case we will need to introduce completion buffers)
     FIFO#(Tuple2#(Bit#(6),Bit#(6))) tag_mismatch <- mkSizedFIFO(32);
  