anchor.diff:        writeAddr <= addr;
         if (bc == 0) begin
   	 req_aw_fifo.deq();
  -	 resp_b_fifo.enq(req.tag);
  +	 slaveBrespFifo.enq(req.tag);
         end
      endrule
   
  +   interface MemWriteServer write_server; 
  +      interface Put writeReq;
  +         method Action put(MemRequest#(32) req);
  +            req_aw_fifo.enq(req);
  +         endmethod
  +      endinterface
  +      interface Put writeData;
  +         method Action put(MemData#(32) resp);
  +            slaveWriteDataFifos.enq(resp);
  +         endmethod
  +      endinterface
  +      interface Get writeDone;
  +         method ActionValue#(Bit#(ObjectTagSize)) get();
  +            slaveBrespFifo.deq;
  +            return slaveBrespFifo.first;
  +         endmethod
  +      endinterface
  +   endinterface
      interface MemReadServer read_server;
         interface Put readReq;
            method Action put(MemRequest#(32) req);
  
positive.code: 
        let v = client.rd(unpack(addr >> 2));
        $display("MemSlave do_read addr=%h len=%d v=%h", addr, bc, v);
        resp_read_fifo.enq(MemData { data: v, tag: req.tag });
  
        addr = addr + 4;
        bc = bc - 1;
  
negative.code: 	 addr = truncate(req.addr);
        end
  
        let resp_write = slaveWriteDataFifos.first();
        slaveWriteDataFifos.deq();
  
        client.wr(unpack(addr >> 2), resp_write.data);
  
  