diff --git a/doc/manual/core_drivers_reference.rst b/doc/manual/core_drivers_reference.rst new file mode 100644 index 000000000..d1fcf289f --- /dev/null +++ b/doc/manual/core_drivers_reference.rst @@ -0,0 +1,23 @@ +Core drivers reference +====================== + +These drivers are for peripherals closely integrated into the core device, which do not +follow the controller paradigm. + +:mod:`artiq.coredevice.rtio` module +----------------------------------- + +.. automodule:: artiq.coredevice.rtio + :members: + +:mod:`artiq.coredevice.dds` module +---------------------------------- + +.. automodule:: artiq.coredevice.dds + :members: + +:mod:`artiq.coredevice.runtime_exceptions` module +------------------------------------------------- + +.. automodule:: artiq.coredevice.runtime_exceptions + :members: diff --git a/doc/manual/core_reference.rst b/doc/manual/core_language_reference.rst similarity index 100% rename from doc/manual/core_reference.rst rename to doc/manual/core_language_reference.rst diff --git a/doc/manual/drivers_reference.rst b/doc/manual/drivers_reference.rst index 3ed1311b7..15e74a009 100644 --- a/doc/manual/drivers_reference.rst +++ b/doc/manual/drivers_reference.rst @@ -1,20 +1,18 @@ Drivers reference ================= -:mod:`artiq.coredevice.rtio` module ------------------------------------ +These drivers are for "slow" devices that are directly controlled by a PC, typically over a non-realtime channel such as USB. -.. automodule:: artiq.coredevice.rtio - :members: +Certain devices (such as the PDQ2) may still perform real-time operations by having certain controls physically connected to the core device (for example, the trigger and frame selection signals on the PDQ2). For handling such cases, parts of the drivers may be kernels executed on the core device. -:mod:`artiq.coredevice.dds` module +Each driver is run in a separate "controller" that exposes a RPC interface (based on :class:`artiq.management.pc_rpc`) to its functions. The master never does direct I/O to the devices, but issues RPCs to the controllers when needed. As opposed to running everything on the master, this architecture has those main advantages: + +* Each driver can be run on a different machine, which alleviates cabling issues and OS compatibility problems. +* Reduces the impact of driver crashes. +* Reduces the impact of driver memory leaks. + +:mod:`artiq.devices.pdq2` module ---------------------------------- -.. automodule:: artiq.coredevice.dds - :members: - -:mod:`artiq.coredevice.runtime_exceptions` module -------------------------------------------------- - -.. automodule:: artiq.coredevice.runtime_exceptions +.. automodule:: artiq.devices.pdq2 :members: diff --git a/doc/manual/index.rst b/doc/manual/index.rst index 0abdde060..a76ff296f 100644 --- a/doc/manual/index.rst +++ b/doc/manual/index.rst @@ -8,6 +8,7 @@ Contents: installing getting_started - core_reference - drivers_reference + core_language_reference + core_drivers_reference management_reference + drivers_reference