atomiq.components.electronics.voltagesource module

class atomiq.components.electronics.voltagesource.VoltageSource(min_voltage=-inf, max_voltage=inf, default_ramp_steps=30, *args, **kwargs)[source]

Bases: Component, Parametrizable

Voltage Source

This abstract class represents any device that can output a defined, controllable voltage.

Parameters:
  • min_voltage (TFloat) -- The minimum voltage the device can output [V]

  • max_voltage (TFloat) -- The maximum voltage the device can output [V]

  • default_ramp_steps (TInt32) -- The default number of steps that this device should use if the voltage is ramped. This value is only used if no ramp_steps are given in the ramp_voltage() method.

A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)

kernel_invariants = {'default_ramp_steps', 'max_voltage', 'min_voltage'}
set_voltage(voltage)[source]

Set the voltage delivered by the voltage source

Parameters:

voltage (artiq.compiler.types.TMono('float', OrderedDict())) -- Voltage in V

ramp_voltage(duration, voltage_start, voltage_end, ramp_timestep=-1.0, ramp_steps=-1)[source]

Ramp voltage over a given duration.

This method advances the timeline by duration

Parameters:
  • duration (artiq.compiler.types.TMono('float', OrderedDict())) -- ramp duration [s]

  • voltage_start (artiq.compiler.types.TMono('float', OrderedDict())) -- initial voltage [V]

  • voltage_end (artiq.compiler.types.TMono('float', OrderedDict())) -- end voltage [V]

  • ramp_timestep (artiq.compiler.types.TMono('float', OrderedDict()))

  • ramp_steps (artiq.compiler.types.TMono('int', OrderedDict([('width', artiq.compiler.types.TValue(32))])))

class atomiq.components.electronics.voltagesource.DAC(num_chan, *args, **kwargs)[source]

Bases: Component, Parametrizable

A DAC with multiple channels

Parameters:

num_chan (TInt32) -- Number of channels the DAC has

A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)

kernel_invariants = {'num_chan'}
set_channel_voltage(channel, voltage)[source]
Parameters:
  • channel (artiq.compiler.types.TMono('int', OrderedDict([('width', artiq.compiler.types.TValue(32))])))

  • voltage (artiq.compiler.types.TMono('float', OrderedDict()))

update()[source]
class atomiq.components.electronics.voltagesource.DACChannel(dac_device, channel, *args, **kwargs)[source]

Bases: VoltageSource

A single channel of a (possibly multichannel) DAC

A single channel of a DAC is a digitally controlled voltage source. Thus, this class inherits from VoltageSource.

Parameters:
  • dac_device (DAC) -- the DAC the channel belongs to

  • channel (TInt32) -- the number of the channel

kernel_invariants = {'channel', 'dac_device'}
ramp_voltage(duration, voltage_start, voltage_end, ramp_timestep=-1.0, ramp_steps=-1)

Ramp voltage over a given duration.

This method advances the timeline by duration

Parameters:
  • duration (artiq.compiler.types.TMono('float', OrderedDict())) -- ramp duration [s]

  • voltage_start (artiq.compiler.types.TMono('float', OrderedDict())) -- initial voltage [V]

  • voltage_end (artiq.compiler.types.TMono('float', OrderedDict())) -- end voltage [V]

  • ramp_timestep (artiq.compiler.types.TMono('float', OrderedDict()))

  • ramp_steps (artiq.compiler.types.TMono('int', OrderedDict([('width', artiq.compiler.types.TValue(32))])))

set_voltage(voltage)

Set the voltage delivered by the voltage source

Parameters:

voltage (artiq.compiler.types.TMono('float', OrderedDict())) -- Voltage in V