Connection TableΒΆ
The connection table maps out the way input/output devices are connected to each other in your lab, and the channels (individual inputs/outputs) they have. The devices in your lab should be connected in a similar way to that shown in the figure below.

Here we see two PseudoclockDevice
instances in the top tier of the diagram. They do not have a parent device that tells them when to update their output (this is true for all PseudoclockDevice
instances). However, all but one (the master pseudoclock device) must be triggered by an output clocked by the master pseudoclock device.
Each PseudoclockDevice
instance should have one or more Pseudoclock
children. Some PseudoclockDevice
instances may automatically create these children for you (check the device specific documentation). In turn, each Pseudoclock
will have one of more ClockLine
instances connected to it. These ClockLine
instances generally refer to physical outputs of a device which will be used to clock another device. However, in some cases, one or more ClockLine
instances may be internally created for you (check the device specific documentation).
If a device is not a PseudoclockDevice
, it must be connected to one via a clockline. such devices inherit from IntermediateDevice
. Inputs and outputs are then connected to these devices. If a PseudoclockDevice
also has outputs that are not used for a ClockLine
, then an IntermediateDevice
is internally instantiated, and should be made available through the PseudoclockDevice.direct_outputs
attribute (for example see PulseBlaster implementation TODO: link!).