anchor.diff:  	    if (hwenabled) 
   	       seq
   	       if (cmdRing.notEmpty()) 
  -		  seq
  +		  action
  +		     let ct <-  fetchComplete.reserve.get();
   		     $display ("cmdFetch handle=%h address=%h burst=%h tag=%h", 
  -		      cmdRing.mempointer, cmdRing.bufferlast, 8, cmdFetchTag);
  +		      cmdRing.mempointer, cmdRing.bufferlastfetch, 8, ct );
   		     cmd_read_chan.readReq.put(
   			DmaRequest{pointer: cmdRing.mempointer,
  -			   offset: cmdRing.bufferlast, burstLen: 8, tag: cmdFetchTagfetchCompletion.reserve()});
  +			   offset: cmdRing.bufferlastfetch, burstLen: 8, tag: zeroExtend(unpack(ct))});
   		     cmdRing.popfetch();
  -		  endseq
  +		  endaction
   	       endseq
   	 endseq
      endseq;
  
positive.code:    ServerF#(Bit#(64), Bit#(64)) copyEngine <- mkCopyEngine(dma_read_chan, dma_write_chan);   
     ServerF#(Bit#(64), Bit#(64)) nopEngine <- mkNopEngine();
     ServerF#(Bit#(64), Bit#(64)) echoEngine <- mkEchoEngine();
     CompletionBuffer#(4,Void) fetchComplete <mkCompletionBuffer;
     
     RingBuffer cmdRing <- mkRingBuffer;
     RingBuffer statusRing <- mkRingBuffer;
  
negative.code: 		     let rv <- copyEngine.response.get();
  		     status_write_chan.writeData.put(DmaData{data: rv, tag: statusTag});
  		  endaction
  	       statusRing.push();
  	       statusTag <= statusTag + 1;
  	    endseq
  
  