From 35200387b55025990952816029633793418433c4 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Sat, 3 Dec 2016 11:24:40 +0800 Subject: [PATCH] manual: precisions about TTL sampling --- doc/manual/rtio.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/manual/rtio.rst b/doc/manual/rtio.rst index 25ad9e0f1..81359fb30 100644 --- a/doc/manual/rtio.rst +++ b/doc/manual/rtio.rst @@ -133,6 +133,8 @@ The :meth:`artiq.coredevice.ttl.TTLInOut.count` method of an input channel can l The :meth:`artiq.coredevice.ttl.TTLInOut.gate_rising` method leaves the timeline cursor at the closure time of the gate and ``count()`` must necessarily wait until the gate closing event has actually been executed which is sometime with ``rtio_counter > now``. In these situations where ``count()`` leads to a synchronization of timeline cursor and wall clock, a ``delay()`` is necessary to reestablish positive slack so that output events can be placed. +Similar situations arise with methods such as :meth:`artiq.coredevice.ttl.TTLInOut.sample_get` and :meth:`artiq.coredevice.ttl.TTLInOut.watch_done`. + .. wavedrom:: { signal: [ @@ -151,10 +153,10 @@ In these situations where ``count()`` leads to a synchronization of timeline cur Overflow exceptions ------------------- -The RTIO input channels buffer input events received while an input gate is open. -The events are kept in a FIFO until the CPU reads them out via ``count()`` (or :meth:`artiq.coredevice.ttl.TTLInOut.timestamp_mu`). +The RTIO input channels buffer input events received while an input gate is open, or at certain points in time when using the sampling API (:meth:`artiq.coredevice.ttl.TTLInOut.sample_input`). +The events are kept in a FIFO until the CPU reads them out via e.g. :meth:`artiq.coredevice.ttl.TTLInOut.count`, :meth:`artiq.coredevice.ttl.TTLInOut.timestamp_mu` or :meth:`artiq.coredevice.ttl.TTLInOut.sample_get`. If the FIFO is full and another event is coming in, this causes an overflow condition. -The condition is converted into an :class:`artiq.coredevice.exceptions.RTIOOverflow` exception that is raised on a subsequent invocation of one of the readout methods (``count()`` or ``timestamp_mu()``). +The condition is converted into an :class:`artiq.coredevice.exceptions.RTIOOverflow` exception that is raised on a subsequent invocation of one of the readout methods (e.g. ``count()``, ``timestamp_mu()``, ``sample_get()``). Seamless handover -----------------