Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional issues during pulse playback on HDAWG #774

Open
maxbeer99 opened this issue Jun 23, 2023 · 2 comments
Open

Additional issues during pulse playback on HDAWG #774

maxbeer99 opened this issue Jun 23, 2023 · 2 comments

Comments

@maxbeer99
Copy link

maxbeer99 commented Jun 23, 2023

This issue is a collection of pulse corruption I noticed. According to @Nomos11 these might not actually be cause by qupulse.

Example 1

from qupulse.pulses import *

default_params = {}

for ii in range(4):
    default_params[f't_read_{ii}'] = qupulse_inst.awg1.make_properly_quantized_time(int(4.5e06))

default_params = {**default_params,
    'V_read_0': 0,
    'V_read_1': 0,
    'V_read_2': 0,
    'V_read_3': 0,

    'f': 100e-9,
    }

shuttle_period = qupulse_inst.awg1.make_properly_quantized_time((1/(default_params["f"]*1e09)) * 1e09)
actual_frequency = 1 / shuttle_period

read_pls = PointPT([
    ('t_read_0', 'V_read_0'),
    ('t_read_1', 'V_read_1'),
    ('t_read_2', 'V_read_2'),
    ('t_read_3', 'V_read_3'),
    ], ["playback_channel_D"])

shuttle_out = FunctionPT(f'.75 * cos(2*pi*{actual_frequency}*t + pi/2)', duration_expression=shuttle_period, channel='playback_channel_D')

shuttle_and_read = shuttle_out @ read_pls

pulse_template = read_pls @ qupulse.pulses.RepetitionPT(shuttle_and_read, 15) @ read_pls

physical_pulse_template = pulse_template
_ = qupulse.pulses.plotting.plot(physical_pulse_template, default_params, sample_rate=500*(1/shuttle_period))

_.set_figwidth(50)
// program definitions
void renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_function() {
  var pos = 0;

  waitForSoftwareTrigger();
  playWaveIndexed(renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_0,renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_1,renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_2,renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_3, pos, 5744); pos = pos + 5744;
}

Sample rate: 24.41kHz (100M base)
image
image
image
image

The constant tail appears at random voltages from run to run.

Removing read_pls from both the start and end of pulse_template fixes it:

from qupulse.pulses import *

default_params = {}

for ii in range(4):
    default_params[f't_read_{ii}'] = qupulse_inst.awg1.make_properly_quantized_time(int(4.5e06))

default_params = {**default_params,
    'V_read_0': 0,
    'V_read_1': 0,
    'V_read_2': 0,
    'V_read_3': 0,

    'f': 100e-9,
    }

shuttle_period = qupulse_inst.awg1.make_properly_quantized_time((1/(default_params["f"]*1e09)) * 1e09)
actual_frequency = 1 / shuttle_period

read_pls = PointPT([
    ('t_read_0', 'V_read_0'),
    ('t_read_1', 'V_read_1'),
    ('t_read_2', 'V_read_2'),
    ('t_read_3', 'V_read_3'),
    ], ["playback_channel_D"])

shuttle_out = FunctionPT(f'.75 * cos(2*pi*{actual_frequency}*t + pi/2)', duration_expression=shuttle_period, channel='playback_channel_D')

shuttle_and_read = shuttle_out @ read_pls

pulse_template = qupulse.pulses.RepetitionPT(shuttle_and_read, 15)

physical_pulse_template = pulse_template
_ = qupulse.pulses.plotting.plot(physical_pulse_template, default_params, sample_rate=500*(1/shuttle_period))

_.set_figwidth(50)

image
image
This might be because it creates a repeat in seqc:

// program definitions
void renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_function() {
  var pos = 0;

  waitForSoftwareTrigger();
  repeat(15) {
    playWaveIndexed(renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_0,renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_1,renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_2,renamed__e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855_concatenated_waveform_3, pos, 368); // advance disabled do to parent repetition
  }
  pos = pos + 368;
}
@terrorfisch
Copy link
Member

Does this still appear with #772 ?

@maxbeer99
Copy link
Author

Unfortunately I only have a sample connected, but issues like in #770 should still be visible. Not sure whether the issues here and in #770 are of the same origin.

However the Issue still exists with #766

Before (branch https://github.com/maxbeer99/qupulse/tree/issues/751_hdawg_multiple_issues_during_elf_file_upload)
image

After (branch https://github.com/qutech/qupulse/tree/issues/751_selene_fixes)
image

It is clearly visible for both that the pulse halts at the end uncontrollably

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants