anchor.diff:        endseq
      endseq;
      
  -   
  -
  +   rule finishCmdReads;
  +      let v <- completionBuffer.drain.get();
  +      cmdRing.popAck();
  +      $display("pop ack");
  +   endrule
  +   
      Stmt responseArbiter =
      seq
         while(True) seq
  
positive.code:    Stmt cmdDispatch = 
     seq
        while (True) seq
  //	 $display("cmdDispatch FSM TOP");
  	 seq
  	    action
  	       let rv <- cmd_read_chan.readData.get();
  	       cmd <= rv;
  	    endaction
  	    // wait a cycle so cmd is valid!
  //	    $display("cmdDispatch 0 tag=%h %h", cmd.tag, cmd.data);
  
negative.code: import PortalMemory::*;
  import Dma::*;
  import GetPutF::*;
  import CompletionBuffer::*;
  
  import RingTypes::*;
  import RingBuffer::*;
  