anchor.diff:        else begin
   	 let chan = chanFifo.first;
   	 // overwrite user-supplied tag and store the original for the responses
  -	 reqFifo.enq(DmaRequest{pointer:req.pointer, offset:req.offset, burstLen:req.burstLen, tag:{0,tag_gen[chan]}});
  -	 tag_gen[chan] <= tag_gen[chan]+1;
  -	 tag_store[chan].enq(req.tag);
  +	 if (valueOf(numWriteClients) > 0) begin
  +	    reqFifo.enq(DmaRequest{pointer:req.pointer, offset:req.offset, burstLen:req.burstLen, tag:{0,tag_gen[chan]}});
  +	    tag_gen[chan] <= tag_gen[chan]+1;
  +	    tag_store[chan].enq(req.tag);
  +	 end
   	 paFifo.enq(physAddr);
         end
      endrule
  
positive.code: 	    if (resp.id != tag)
  	       tag_mismatch.enq(True);
  	    respFifo.deq();
  	    tag_store[activeChan].deq;
  	    if (valueOf(numWriteClients) > 0)
  	       writeClients[activeChan].writeDone.put(extend(tag_store[activeChan].first));
  	 endmethod
        endinterface
     endinterface
  
negative.code: 	    beatCount <= beatCount+1;
  	    
  	    Bit#(1) last = burstLen == 1 ? 1'b1 : 1'b0;
  	    if(valueOf(numWriteClients) > 0)
  	       dynamicAssert(tagdata.tag == tag_store[activeChan].first, "mkAxiDmaWriteInternal badness");
  
  	    return Axi3WriteData { data: tagdata.data, byteEnable: maxBound, last: last, id: req.tag };
  	 endmethod
  