anchor.diff:     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;
  
positive.code: import PortalMemory::*;
  import Dma::*;
  import GetPutF::*;
  
  import RingTypes::*;
  import RingBuffer::*;
  
negative.code:       endseq
     endseq;
     
     rule finishCmdReads;
        let v <- completionBuffer.drain.get();
        cmdRing.popAck();
        $display("pop ack");
     endrule
     
     Stmt responseArbiter =
     seq
        while(True) seq
  