Esempio n. 1
0
    def readout_frequency(self, freq=None):
        """Sets or gets the readout frequency for this channel.

        Readout frequency in Hz of the readout channel. If the AWG
        :class:`SequenceProgram` is of type "Readout", this Parameter
        is used to generate a readout tone at the given readout
        frequency for all readout channels that are enabled. This
        frequency is also used in the signal acquisition for digital
        demodulation if the readout channel is enabled. The frequency
        must be positive.

        """
        if freq is None:
            return self._readout_frequency
        else:
            Parse.greater(freq, 0)
            self._readout_frequency = freq
            self._set_int_weights()
            return self._readout_frequency
Esempio n. 2
0
 def _init_scope_params(self):
     self._enable = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/enable"),
         device=self._parent,
         set_parser=Parse.set_true_false,
         get_parser=Parse.get_true_false,
     )
     self.channel1 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/0/enable"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     self.channel2 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/1/enable"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     self.channel3 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/2/enable"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     self.channel4 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/3/enable"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     self.input_select1 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/0/inputselect"),
         device=self._parent,
         auto_mapping=True,
     )
     self.input_select2 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/1/inputselect"),
         device=self._parent,
         auto_mapping=True,
     )
     self.input_select3 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/2/inputselect"),
         device=self._parent,
         auto_mapping=True,
     )
     self.input_select4 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/3/inputselect"),
         device=self._parent,
         auto_mapping=True,
     )
     self._wave1 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/0/wave"),
         device=self._parent,
     )
     self._wave2 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/1/wave"),
         device=self._parent,
     )
     self._wave3 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/2/wave"),
         device=self._parent,
     )
     self._wave4 = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/channels/3/wave"),
         device=self._parent,
     )
     self.trigger_source = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/trigger/channel"),
         device=self._parent,
         auto_mapping=True,
     )
     self.trigger_delay = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/trigger/delay"),
         device=self._parent,
         set_parser=lambda v: Parse.multiple_of(v, 2e-9, "nearest"),
     )
     self.length = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/length"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.greater_equal(v, 16),
             lambda v: Parse.smaller_equal(v, 2 ** 18),
             lambda v: Parse.multiple_of(v, 16, "down"),
         ],
     )
     self.time = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/time"),
         device=self._parent,
         auto_mapping=True,
     )
     self._segments_enable = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/segments/enable"),
         device=self._parent,
         set_parser=Parse.set_true_false,
         get_parser=Parse.get_true_false,
     )
     self._segments_count = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/segments/count"),
         device=self._parent,
         set_parser=lambda v: Parse.greater(v, 0),
     )
     self._averaging_enable = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/averaging/enable"),
         device=self._parent,
         set_parser=Parse.set_true_false,
         get_parser=Parse.get_true_false,
     )
     self._averaging_count = Parameter(
         self,
         self._parent._get_node_dict(f"scopes/0/averaging/count"),
         device=self._parent,
         set_parser=lambda v: Parse.greater(v, 0),
     )
Esempio n. 3
0
 def _init_awg_params(self):
     self._enable = Parameter(
         self,
         self._parent._get_node_dict(f"awgs/{self._index}/enable"),
         device=self._parent,
         set_parser=Parse.set_true_false,
         get_parser=Parse.get_true_false,
     )
     self.output1 = Parameter(
         self,
         self._parent._get_node_dict(f"sigouts/{2*self._index}/on"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     self.output2 = Parameter(
         self,
         self._parent._get_node_dict(f"sigouts/{2*self._index+1}/on"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     self.modulation_freq = Parameter(
         self,
         self._parent._get_node_dict(f"oscs/{4 * self._index}/freq"),
         device=self._parent,
         set_parser=lambda v: Parse.greater(v, 0),
     )
     self.modulation_phase_shift = Parameter(
         self,
         self._parent._get_node_dict(
             f"sines/{2 * self._index + 1}/phaseshift"),
         device=self._parent,
         set_parser=Parse.phase,
     )
     self.gain1 = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/outputs/0/gains/0"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1.0),
             lambda v: Parse.greater_equal(v, -1.0),
         ],
     )
     self.gain2 = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/outputs/1/gains/1"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1.0),
             lambda v: Parse.greater_equal(v, -1.0),
         ],
     )
     self.single = Parameter(
         self,
         self._parent._get_node_dict(f"awgs/{self._index}/single"),
         device=self._parent,
         set_parser=Parse.set_true_false,
         get_parser=Parse.get_true_false,
     )
     self.zsync_register_mask = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/register/mask"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 15),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_register_shift = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/register/shift"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 3),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_register_offset = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/register/offset"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1023),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_decoder_mask = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/decoder/mask"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 255),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_decoder_shift = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/decoder/shift"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 7),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_decoder_offset = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/decoder/offset"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1023),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
Esempio n. 4
0
 def _init_awg_params(self):
     self._enable = Parameter(
         self,
         self._parent._get_node_dict(f"awgs/{self._index}/enable"),
         device=self._parent,
         set_parser=Parse.set_true_false,
         get_parser=Parse.get_true_false,
     )
     self.output1 = Parameter(
         self,
         self._parent._get_node_dict(f"sigouts/{2*self._index}/on"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     self.output2 = Parameter(
         self,
         self._parent._get_node_dict(f"sigouts/{2*self._index+1}/on"),
         device=self._parent,
         set_parser=Parse.set_on_off,
         get_parser=Parse.get_on_off,
     )
     # If the HDAWG has the MF option, the oscillator assignment
     # per core is different
     if "MF" in self._parent.options:
         oscs_multiplier = 4
     else:
         oscs_multiplier = 1
     self.modulation_freq = Parameter(
         self,
         self._parent._get_node_dict(
             f"oscs/{oscs_multiplier* self._index}/freq"),
         device=self._parent,
         set_parser=lambda v: Parse.greater(v, 0),
     )
     self.modulation_phase_shift = Parameter(
         self,
         self._parent._get_node_dict(
             f"sines/{2 * self._index + 1}/phaseshift"),
         device=self._parent,
         set_parser=Parse.phase,
     )
     self.gain1 = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/outputs/0/gains/0"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1.0),
             lambda v: Parse.greater_equal(v, -1.0),
         ],
     )
     self.gain2 = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/outputs/1/gains/1"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1.0),
             lambda v: Parse.greater_equal(v, -1.0),
         ],
     )
     self.single = Parameter(
         self,
         self._parent._get_node_dict(f"awgs/{self._index}/single"),
         device=self._parent,
         set_parser=Parse.set_true_false,
         get_parser=Parse.get_true_false,
     )
     self.zsync_register_mask = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/register/mask"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 15),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_register_shift = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/register/shift"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 3),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_register_offset = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/register/offset"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1023),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_decoder_mask = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/decoder/mask"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 255),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_decoder_shift = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/decoder/shift"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 7),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )
     self.zsync_decoder_offset = Parameter(
         self,
         self._parent._get_node_dict(
             f"awgs/{self._index}/zsync/decoder/offset"),
         device=self._parent,
         set_parser=[
             lambda v: Parse.smaller_equal(v, 1023),
             lambda v: Parse.greater_equal(v, 0),
         ],
     )