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.

TODO: insert figure!

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!).