anchor.diff:     method Bit#(idWidth) writeId();
   
      method ActionValue#(Bit#(busWidth)) writeData();
  +   method Bit#(idWidth) writeWid();
      method Bit#(busWidthBytes) writeDataByteEnable();
      method Bit#(1) writeLastDataBeat(); // last data beat
      method Action writeResponse(Bit#(2) responseCode, Bit#(idWidth) id);
  
positive.code:     endrule
      rule writeData;
          let data <- axiw.writeData;
          let byteEnable = axiw.writeDataByteEnable;
          let last = axiw.writeLastDataBeat;
          axiSlave.write.writeData(data, byteEnable, last);
  
negative.code:    // method Action readResponse(Bit#(2) responseCode);
  endinterface
  
  //FIXME: should have transaction ID's
  interface AxiSlaveWrite#(type busWidth, type busWidthBytes);
     method Action writeAddr(Bit#(32) addr, Bit#(8) burstLen, Bit#(3) burstWidth,
                             Bit#(2) burstType, Bit#(3) burstProt, Bit#(4) burstCache);
  