anchor.diff:     rule rl_rdata;
         let rdata <- memSlaveMux.read_server.readData.get();
         ind.readDone(rdata.data);
  +   endrule
  +
  +   rule rl_wdata;
  +      let wdata <- toGet(dfifo).get();
  +       memSlaveMux.write_server.writeData.put(MemData {data: wdata, tag: 0});
      endrule
   
      rule rl_writeDone;
  
positive.code:    PhysMemSlave#(18,32) axiEthMemSlave <- mkPhysMemSlave(axiEthSlaveLite);
     PhysMemSlave#(19,32) memSlaveMux    <- mkPhysMemSlaveMux(vec(axiDmaMemSlave, axiEthMemSlave));
  
     rule rl_axieth;
        axiEthBvi.signal.detect(1); // drive to 1 if not using optical transceiver, else use signal from transceiver
     endrule
  
negative.code:       endmethod
        method Action write(Bit#(32) addr, Bit#(32) value);
  	 memSlaveMux.write_server.writeReq.put(PhysMemRequest { addr: truncate(addr), burstLen: 4, tag: 0 });
  	 dfifo.enq(value);
        endmethod
     endinterface
     interface AxiEthPins pins;
  