anchor.diff:  import PortalMemory::*;
   import Dma::*;
   import GetPutF::*;
  +import CompletionBuffer::*;
   
   import RingTypes::*;
   import RingBuffer::*;
  
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: 
     Stmt cmdFetch =   
     seq
        $display("cmdFetch FSM TOP");
        while (True) 
  	 seq
  	    if (hwenabled) 
  	       seq
  	       if (cmdRing.notEmpty()) 
  		  seq
  		     $display ("cmdFetch handle=%h address=%h burst=%h tag=%h", 
  		      cmdRing.mempointer, cmdRing.bufferlast, 8, cmdFetchTag);
  		     cmd_read_chan.readReq.put(
  			DmaRequest{pointer: cmdRing.mempointer,
  			   offset: cmdRing.bufferlast, burstLen: 8, tag: cmdFetchTagfetchCompletion.reserve()});
  		     cmdRing.popfetch();
  		  endseq
  	       endseq
  	 endseq
  