# Synchronization of HDAWGs and UHFQA

 This tutorial is applicable to the PQSC when used with multiple HDAWG and UHFQA.

## Goals and Requirements

The goal of this tutorial is to demonstrate the multi-HDAWG and UHFQA synchronization with the PQSC for signal generation and signal acquisition. We demonstrate how to synchronize the clock reference and triggers of all the instruments, how to synchronously start the signal generation and how to align with the signal acquisition. This tutorial assumes that you are already familiar with the PQSC and the HDAWG, otherwise, please follow first the tutorial for multi-HDAWG synchronization in Synchronization of multiple HDAWGs . In order to visualize the multi-channel signals, an oscilloscope with sufficient bandwidth and channel number is required.

The equipment list is given below.

• 1 PQSC

• 2 or more HDAWGs

• 1 UHFQA

• 1 External 10 MHz reference clock

• 1 oscilloscope (min. 4 channels, bandwidth 500 MHz or more)

• 1 Ethernet switch

• 1 Ethernet cable per instrument (supplied with your PQSC, HDAWGs and UHFQA)

• 1 ZSync cable per HDAWG (supplied with your HDAWGs)

• 6 SMA coaxial cables

• 1 BNC coaxial cables

• 1 power splitter SMA for the reference clock

• 3 adaptors BNC male to SMA female

## Preparation

Connect the cables as illustrated below. The cables connecting the 10 MHz reference clock to the PQSC and the UHFQA must have the same length. Make sure that the instruments are powered on and connected by Ethernet to your local area network (LAN) where the host computer resides.

For best performance, the system should be placed in a climate-controlled environment with stable temperature and humidity. Avoid exposing the instruments to direct sunlight.

After starting LabOne, the default web browser opens with the LabOne graphical user interface. It’s advised to open a tab in the browser for each instrument.

Figure 1. Connections for the multiple HDAWG/UHFQA synchronization tutorial

The tutorial can be started with the default instrument configuration (e.g. after a power cycle or after loading the Factory Default preset from the 'Device' tab) and the default user interface settings (e.g. as is after pressing F5 in the browser).

 The PQSC needs to warm-up for 30 minutes after power-up. Do not lock to external reference clock or start triggering before it’s ready. The CLK LED on the bottom right of the LabOne interface will turn green when the instrument is warmed up and ready to use.

## Multi device synchronization

The first step to enable the device synchronization is to distribute the reference clocks to the instruments and enable the triggering. The PQSC and the UHFQA need an external 10 MHz reference clock, while the HDAWGs receive their reference clock over ZSync. It’s important to first enable the external reference clock on the PQSC and then on the HDAWGs/UHFQA, since a change of the clocking in the PQSC will cause a disconnection of the devices connected over ZSync. The following tables summarizes the necessary settings for each instrument.

Table 1. Settings: enable the external reference clock on the PQSC
Tab Sub-tab Section # Label Setting / Value / State

Device

Configuration

Reference clock Input Source

External

Table 2. Settings: enable the ZSync clock on the HDAWGs
Tab Sub-tab Section # Label Setting / Value / State

Device

Configuration

Reference clock Source

ZSync

Device

Configuration

Sample Clock Frequency (Hz)

2.4G

DIO

Digital I/O

Mode

QCCS

Table 3. Settings: enable the external reference clock on the UHFQA
Tab Sub-tab Section # Label Setting / Value / State

Device

Configuration

Settings Clock Source

10MHz

On the PQSC and the HDAWGs, after changing the selector, the ‘Status’ LED will turn yellow for few seconds and then green again to signal that the instruments successfully locked to the reference clock.

Then, check that the PQSC correctly recognized the HDAWGs. On the back of the instrument or in the Ports tab of the PQSC verify that the status LED of the used ZSync ports turned blue and the serial number of the HDAWG is displayed. You may assign an alias to for each instrument to easily recognize it later. The UHFQA is not visible on the PQSC.

The next step is to enable the distribution of the triggers from the PQSC to the other instruments. The HDAWGs receive triggers over the ZSync port directly from the PQSC. The UHFQA receives them indirectly via the HDAWG over the DIO port. Here the HDAWG serves as a bridge to the PQSC. First we enable the interface; the following tables summarizes the necessary settings for the UHFQA and the HDAWG 2. The HDAWG 1 doesn’t need any further configuration since it has no UHFQA connected and thus does not have to operate as a bridge.

 When an HDAWG is used as bridge for the UHFQA, its sample rate must be 2.4 GSa/s. As consequence, also the other HDAWGs in the system must use this sample rate, since the sample rates 2.0 GSa/s and 2.4 GSa/s can’t be mixed.
Table 4. Settings: configure the DIO interface on the UHFQA
Tab Sub-tab Section # Label Setting / Value / State

DIO

Digital I/O

Mode

Manual

DIO

Digital I/O

All

Drive

OFF

DIO

Digital I/O

Clock

Internal 50 MHz

Table 5. Settings: configure the DIO interface on the HDAWG 2
Tab Sub-tab Section # Label Setting / Value / State

DIO

Digital I/O

Interface

LVCMOS

DIO

Digital I/O

31…​24

Drive

ON

DIO

Digital I/O

23…​16

Drive

ON

DIO

Digital I/O

15…​8

Drive

OFF

DIO

Digital I/O

7…​0

Drive

OFF

Figure 2. LabOne UI HDAWG and UHFQA: DIO tabs

Next, the AWG sequencers on the HDAWGs and the UHFQA need to be configured with the right DIO trigger signal assignment. A complete description of the signals on the DIO port can be found in the HDAWG or UHFQA manuals. The following tables summarize the correct assignments for this tutorial.

Table 6. Settings: configure the DIO triggers on the sequencer of the HDAWG 2
Tab Sub-tab Section # Label Setting / Value / State

AWG Sequencer

Trigger

DIO Trigger

1

Strobe Slope

None

AWG Sequencer

Trigger

DIO Trigger

1

Valid Polarity

None

Table 7. Settings: configure the DIO triggers on the sequencer of the UHFQA
Tab Sub-tab Section # Label Setting / Value / State

AWG

Trigger

DIO Trigger

Strobe Slope

None

AWG

Trigger

DIO Trigger

Valid Index

16

AWG

Trigger

DIO Trigger

Valid Polarity

High

Now all the sequencers are ready to receive triggers issued by the PQSC synchronously.

## Multi device signal generation

We configure the AWG sequencers to play a square waveform as soon as the trigger from the PQSC is received. The necessary settings are summarized in the following tables.

Table 8. Settings: configure the HDAWG sequencers
Tab Sub-tab Section # Label Setting / Value / State

Output

Waveform Generators

4x2 channels

Output

Waveform Generators

1

Output Amplitude Wave 1

1.0

Output

Waveform Generators

1

Modulation

OFF

Output

Wave Outputs

1

Range

2 V

Output

Wave Outputs

1

On

ON

Table 9. Settings: configure the UHFQA sequencer
Tab Sub-tab Section # Label Setting / Value / State

In / Out

Signal Outputs

2

50 Ω

ON

In / Out

Signal Outputs

2

Range

750 mV

In / Out

Signal Outputs

2

On

ON

AWG

Control

Rerun

OFF

AWG

Control

Output 2

Amplitude (FS)

1.0

AWG

Control

Output 2

Mode

Plain

The following sequence programs should be loaded in the sequencers and then started. For the UHFQA:

const WAVE_GRANULARITY_UHFQA = 24;
wave w = ones(WAVE_GRANULARITY_UHFQA*2);

while(true) {
waitZSyncTrigger();
playWave(2, w);
}

And for the HDAWG:

const WAVE_GRANULARITY_HDAWG = 32;
wave w = 0.75*ones(WAVE_GRANULARITY_HDAWG*2);

while(true) {
waitZSyncTrigger();
playWave(w);
}

The AWG status LED will turn yellow, meaning that is ready and waiting for the trigger. Configure the scope as described in Synchronization of multiple HDAWGs . Finally, we configure the periodic trigger generation in the Ports tab of the PQSC and then start it by clinking on the button.

Table 10. Settings: configure the periodic trigger generation on the PQSC
Tab Sub-tab Section # Label Setting / Value / State

Ports

Control

Repetitions

2

Ports

Control

Holdoff (s)

100n

On the scope we can now see two identical pulses with both channels aligned in time. The inter-channel alignment can be further adjusted by changing the delay of the HDAWG Wave output in the field "Output > Wave Outputs > Delay (s)".

Figure 3. Pulses as generated by the HDAWG 2 and the UHFQA and captured by the scope

To obtain two identical pulses we had to adjust both the wave amplitude and range as well as the pulse length. The HDAWG range is the peak-to-peak voltage, while the UHFQA range is defined as the peak voltage, so there is factor of 2 to take into account. In the tutorial the waveform amplitude has been selected to be exactly 750 mV.

The sample rate of the two instruments are different, 2.4 GSa/s for the HDAWG and 1.8 GSa/s for the UHFQA. The common frequency is 600 MHz, so approximately every 1.66 ns they align. In other words, two channels align respectively every 4 samples and 3 samples, as shown in this sketch

Figure 4. Time alignment of the HDAWG and UHFQA

The waveform granularity is 16 samples on the HDAWG and 8 samples on the UHFQA. If we design our sequence programs such that they respect a waveform granularity of 32 samples on the HDAWG and 24 samples on the UHFQA, the output will be always aligned. In units of time, this correspond to a granularity of approximately 13.33 ns. The waveform playback instruction playWave should follow immediately after the instruction waitZSyncTriggger() to ensure the alignment. The playback should be also gapless, so it’s necessary to avoid long wait instructions or too short waveform in complex loops.

To introduce efficient spacers, it’s possible to use the playZero instruction. The length of the spacer pulse should respect the same granularity rules and match the length of the pulses played on the other instruments. For example, if in the previous example we want the pulses to occur one after the other, we can modify the UHFQA sequence program as follow:

const WAVE_GRANULARITY_UHFQA = 24;
wave w = ones(WAVE_GRANULARITY_UHFQA*2);

while(true) {
waitZSyncTrigger();
playZero(WAVE_GRANULARITY_UHFQA*2);
playWave(2, w);
}
Figure 5. Shifted pulses with playZero

## Multi-device signal generation and acquisition

The loopback connection on the UHFQA can be used to simulate the response of the device under test. In this example we use a single PQSC trigger to mark the start, the timing of the following signals will be controlled by the sequencers on the HDAWGs and the UHFQA. We simulate a simple experiment where a generic drive pulse is generated by the HDAWG. This pulse is immediately followed by a readout pulse generated by the UHFQA, which is also triggered for the readout. The control pulse is modulated at 150 MHz and the readout pulse is modulated at 50 MHz. Signal input 1 of the UHFQA is used to acquire the signal. The holdoff time is increased, so the PQSC will be running during the play of all the waveforms. Configure the PQSC as follows:

Table 11. Settings: configure the start trigger generation on the PQSC
Tab Sub-tab Section # Label Setting / Value / State

Ports

Control

Repetitions

1

Ports

Control

Holdoff (s)

1m

The following sequence programs should be uploaded to the AWG sequencers and then started. For the UHFQA:

// Constants declaration
const WAVE_GRANULARITY_UHFQA = 24;
const DRIVE_PULSE_LEN = WAVE_GRANULARITY_UHFQA*5;
const AVERAGES = 1024;

// Waveform declaration

// Execution
var i;
while(true) {
waitZSyncTrigger();
for (i = 0; i < AVERAGES; i++) {
playZero(DRIVE_PULSE_LEN);

playWave(1, w_sine, 2, w_sine);
startQA(QA_INT_ALL, true);

}
}

And for the HDAWG:

// Constants declaration
const WAVE_GRANULARITY_HDAWG = 32;
const DRIVE_PULSE_LEN = WAVE_GRANULARITY_HDAWG*5;
const DRIVE_FREQ = 150e6;
const AVERAGES = 1024;

// Waveform declaration
wave w_drive = cosine(DRIVE_PULSE_LEN, 0, DRIVE_FREQ*DRIVE_PULSE_LEN/DEVICE_SAMPLE_RATE);
w_drive *= gauss(DRIVE_PULSE_LEN, DRIVE_PULSE_LEN/2, DRIVE_PULSE_LEN/6);

// Execution
var i;
while(true) {
waitZSyncTrigger();
for (i = 0; i < AVERAGES; i++) {
playWave(w_drive);

// Trigger the readout (on the UHFQA)
//startQA(QA_INT_ALL, true);

}
}

The UHFQA sequence generates a trigger signal to start the QA Weighted Integration unit and the QA Input Monitor. While the command to generate such trigger may look like a violation of the rule to have identical gapless sequences, it’s indeed still valid. The execution time of these instructions is approximately 4 clock cycles of the sequencer, significantly less then the length of the previous waveform. The sequencer has enough time to do that while playing the first waveform, so the playback is gapless and the equal timing on the sequencers is respected. In order to trigger correctly the readout, we have to configure the integration unit in accordance with the generated signal:

Table 12. Settings: configure the UHFQA for the readout
Tab Sub-tab Section # Label Setting / Value / State

QA Setup

Integration

Mode

Standard

QA Setup

Integration

Length

240

QA Setup

Integration

Trigger Signal

AWG Integration Trigger

The generated signal shows two modulated pulses aligned in time. In contrast to the previous example, the two-fold repetition of the pulses is controlled by loops in the sequence programs and not by the periodic trigger generation on the PQSC.

Figure 6. Control pulse and readout pulse generated by the HDAWG and the UHFQA

To acquire the time trace of the signal on the channel 1 we have to configure the UHFQA as follows:

Table 13. Settings: configure the UHFQA Input Monitor
Tab Sub-tab Section # Label Setting / Value / State

In / Out

Signal Outputs

1

50 Ω

ON

In / Out

Signal Outputs

1

Range

750 mV

In / Out

Signal Outputs

1

On

ON

AWG

Control

Output 1

Amplitude (FS)

1.0

AWG

Control

Output 1

Mode

Plain

QA Setup

Deskew

Delay (Sample)

192

QA Input

Control

Input Monitor

Length (Sample)

500

QA Input

Control

Input Monitor

Averages

1024

QA Input

Control

Run/Stop

click

QA Input

Control

Reset

click

When the PQSC trigger is sent again, we can observe that the QA Input Monitor gets triggered by the sequencer. It acquires and averages all the 1024 pulses. The trigger and the pulses are correctly aligned since they average out all correctly, otherwise the signal would have been distorted. The alignment can be further adjusted with the Delay setting in the QA Setup tab, the value given in this tutorial is for a very short loopback cable.

Figure 7. Signal as captured by the QA Monitor Input

The Monitor is good to visualize the pulses, but for the real acquisition we need to configure the integration unit to demodulate our signal. We will demodulate the signal only on channel 1, like in a typical lock-in measurement. Configure the QA as follows and start the PQSC trigger again.

Table 14. Settings: configure the UHFQA for the weighted integration readout
Tab Sub-tab Section # Label Setting / Value / State

QA Setup

Integration

1

Signal Input Mapping

1→ Real, 1→ Imag

QA Input

Control

Weights / Generate

Amplitude

1

QA Input

Control

Weights / Generate

Frequency

50 M

QA Input

Control

Weights / Generate

Window Length

240

QA Input

Control

Weights / Generate

Channel

1

QA Input

Control

Weights / Generate

Set

click

QA Result

Control

Result Wave

Source

Integration

QA Result

Control

Result Wave

Length (Sample)

1024

QA Result

Control

Result Wave

Averages

1

QA Result

Control

Run/Stop

click

QA Result

Control

Reset

click

All 1024 results are identical up to the noise, as is evident from the scatter plot in the complex plane shown in Figure 8.

Figure 8. Signal as displayed in the QA Results tab

In this case, the acquired value is approximately $$0.021 + 89.34i$$, which is compatible with the expected value $$0 + 90i = A/2⋅N$$, where $$A$$ is the peak amplitude of the acquired signal (750 mV) and $$N$$ is the number of acquired points (240). The signal is all in quadrature because we are generating a signal all in quadrature (sine instead of cosine). For more details, please refer to the UHFQA User Manual