Vivace manual


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 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 Pulsed interact with the hardware.

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 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 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 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 setup_freq_lut. During the experiment, the generators can quickly step through the programmed frequencies and phases with the methods select_frequency and 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 setup_scale_lut. During the experiment the scale can be changed with 2 ns resolution with select_scale and next_scale. The global scale can be bypassed setting the optional argument use_scale=False in calls to setup_template and setup_long_drive.