def finish_async_rpc(self, address, rpc_id, response):
        """Finish a previous asynchronous RPC.

        This method should be called by a peripheral tile that previously
        had an RPC called on it and chose to response asynchronously by
        raising ``AsynchronousRPCResponse`` in the RPC handler itself.

        The response passed to this function will be returned to the caller
        as if the RPC had returned it immediately.

        The rpc response will be sent in the RPC thread.  By default this
        method will block until the response is finished.  If you don't
        want to block, you can pass sync=False

        Args:
            address (int): The tile address the RPC was called on.
            rpc_id (int): The ID of the RPC that was called.
            response (bytes): The bytes that should be returned to
                the caller of the RPC.
        """

        try:
            self.emulator.finish_async_rpc(address, rpc_id, response)
            self._track_change('device.rpc_finished', (address, rpc_id, None, response, None), formatter=format_rpc)
        except Exception as exc:
            self._track_change('device.rpc_exception', (address, rpc_id, None, response, exc), formatter=format_rpc)
            raise
Finish a previous asynchronous RPC.

        This method should be called by a peripheral tile that previously
        had an RPC called on it and chose to response asynchronously by
        raising ``AsynchronousRPCResponse`` in the RPC handler itself.

        The response passed to this function will be returned to the caller
        as if the RPC had returned it immediately.

        The rpc response will be sent in the RPC thread.  By default this
        method will block until the response is finished.  If you don't
        want to block, you can pass sync=False

        Args:
            address (int): The tile address the RPC was called on.
            rpc_id (int): The ID of the RPC that was called.
            response (bytes): The bytes that should be returned to
                the caller of the RPC.