anchor.diff:  		     address: statusRing.bufferfirst, burstLen: 8, tag: 0});
   	       statusRing.push(64);
   	       for (respCtr <= 0; respCtr < 8; respCtr <= respCtr + 1)
  -		  status_write_chan.writeData.put(
  -		     DMAData{data:echoEngine.get(), tag: 0});
  +		  action
  +		     let rv <- echoEngine.response.get();
  +		     status_write_chan.writeData.put(DMAData{data: rv, tag: 0});
  +		  endaction
   	    endseq
   
  -	       action
  -		  status_write_chan.writeData.put(echoEngine.get());
  -		  statusRing.push(8);
  -	       endaction
         endseq
      endseq;
      
  
positive.code: 
        method Action set(Bit#(1) _cmd, Bit#(2) regist, Bit#(32) addr);
  	 if (_cmd == 1)
  	    cmdRing.set(regist, addr);
  	 else
  	    statusRing.set(regist, addr);
  	 indication.ringIndication.setResult(cmd, regist, addr);
        endmethod
     
        method Action get(Bit#(1) _cmd, Bit#(2) regist);
  	 if (_cmd == 1)
  	    indication.ringIndication.getResult(1, regist, cmdRing.get(regist));
  	 else
  	    indication.ringIndication.getResult(0, regist, 
  	       statusRing.get(regist));
        endmethod
  
        method Action hwenable(Bit#(1) en);
  
negative.code:    Stmt cmdDispatch = 
     seq
        while (True) seq
  	 action
  	    let rv <- cmd_read_chan.readData.get();
  	    cmd <= rv.data;
  	    cmdifc.request.put(rv.data);
  	 endaction
  	 for (dispCtr <= 1; dispCtr < 8; dispCtr <= dispCtr + 1)
  	    action
  	       let rv <- cmd_read_chan.readData.get();
  	       cmdifc.request.put(rv.data);
  	    endaction
        endseq
     endseq;
     
  