************* Vivace manual ************* .. warning:: This is the documentation for the old Vivace API. For the newer API compatible with both the Vivace and the Presto microwave platforms, `see here `_. Pulsed output ============= The image below shows a schematic, functional representation of one output channel of Vivace during :mod:`pulsed ` operation. The same configuration is then repeated independently on each of the 8 output channels. This section provides a summary of how the methods of the :class:`Pulsed ` interact with the hardware. .. image:: images/pulsed_output.svg :width: 400 :align: center :alt: Alternative text Each output has 16 slots to store output templates. Each template can be programmed with up to 4088 arbitrary values at the full `4 GSamples/s` sampling rate, equivalent to `1022 ns`. The vertical resolution is 16 bits. Templates can be output directly, or be used as envelopes to modulate the two carrier generators. The first 8 templates can modulate the first carrier generator, the last 8 templates can modulate the second carrier generator. The method :meth:`setup_template ` is used to program the templates and to choose whether they should be used as envelopes. The method also takes car of splitting templates that are too long into shorter, concatenated templates. In the case of long but "flat" signals, the convenience method :meth:`setup_long_drive ` can be used to create arbitrarily long pulsed using as little as one template. Templates can be output all together, or at different times, with `2 ns` resolution using the :meth:`output_pulse ` method. Each carrier generator has 40 bits frequency and phase resolution, equivalent to `4 mHz` and `6 prad`, respectively. They can each be programmed with up to 512 frequencies and phases with the method :meth:`setup_freq_lut `. During the experiment, the generators can quickly step through the programmed frequencies and phases with the methods :meth:`select_frequency ` and :meth:`next_frequency `. The change can be made with `2 ns` resolution. The output of all active pulses is then summed, and there is a final scale stage. The output scaler has 17 bit resolution and can be programmed with up to 512 values (also negative) with the method :meth:`setup_scale_lut `. During the experiment the scale can be changed with `2 ns` resolution with :meth:`select_scale ` and :meth:`next_scale `. The global scale can be bypassed setting the optional argument `use_scale=False` in calls to :meth:`setup_template ` and :meth:`setup_long_drive `.