Exemple #1
0
def set_capture_sequence(awg_sa_cmd, seq_0, seq_1):
    """
    キャプチャシーケンスを AWG にセットする
    """
    capture_0 = awgsa.AwgCapture(
        time = seq_0.get_wave(step_id = 0).get_duration() + 20,
        delay = 440,
        do_accumulation = False)

    capture_1 = awgsa.AwgCapture(
        time = seq_1.get_wave(step_id = 0).get_duration() + 20,
        delay = 440,
        do_accumulation = False)

    # キャプチャシーケンスの定義
    capture_sequence_0 = (awgsa.CaptureSequence(ADC_FREQ, is_iq_data = False)
        .add_step(step_id = 0, capture = capture_0))

    capture_sequence_1 = (awgsa.CaptureSequence(ADC_FREQ, is_iq_data = False)
        .add_step(step_id = 0, capture = capture_1))

    # キャプチャシーケンスとキャプチャモジュールを対応付ける
    capture_config = (awgsa.CaptureConfig()
        .add_capture_sequence(awgsa.AwgId.AWG_0, capture_sequence_0)
        .add_capture_sequence(awgsa.AwgId.AWG_1, capture_sequence_1))

    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
def set_capture_sequence(awg_sa_cmd, awg_id_to_wave_sequence):
    """
    キャプチャシーケンスを AWG にセットする
    """
    capture_config = awgsa.CaptureConfig()

    for awg_id, wave_sequence in awg_id_to_wave_sequence.items():
        # キャプチャ時間は, キャプチャする波形の長さ + 35 ns とする.
        # delay が波形ステップの開始から終了までの時間を超えないように注意.
        capture_0 = awgsa.AwgCapture(
            time=wave_sequence.get_wave(step_id=0).get_duration() + 35,
            delay=345,
            do_accumulation=True)

        capture_1 = awgsa.AwgCapture(
            time=wave_sequence.get_wave(step_id=1).get_duration() + 35,
            delay=345,
            do_accumulation=True)

        # キャプチャシーケンスの定義
        capture_sequence = (awgsa.CaptureSequence(ADC_FREQ).add_step(
            step_id=0, capture=capture_0).add_step(step_id=1,
                                                   capture=capture_1))

        # キャプチャシーケンスとキャプチャモジュールを対応付ける
        capture_config.add_capture_sequence(awg_id, capture_sequence)

    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
Exemple #3
0
def set_capture_sequence(awg_sa_cmd, awg_to_wave_sequence):
    """
    キャプチャシーケンスを AWG にセットする
    """
    capture_config = awgsa.CaptureConfig()
    for awg_id, wave_sequence in awg_to_wave_sequence.items():
        capture_0 = awgsa.AwgCapture(
            time=wave_sequence.get_wave(step_id=0).get_duration(),
            delay=0,
            do_accumulation=do_accumulation)
        capture_1 = awgsa.AwgCapture(
            time=wave_sequence.get_wave(step_id=1).get_duration(),
            delay=0,
            do_accumulation=do_accumulation)
        # キャプチャシーケンスの定義
        tile = awg_sa_cmd.get_adc_tile_id_by_awg_id(awg_id)
        sampling_rate = tile_to_sampling_rate[tile]
        capture_sequence = (awgsa.CaptureSequence(sampling_rate).add_step(
            step_id=0, capture=capture_0).add_step(step_id=1,
                                                   capture=capture_1))

        # キャプチャシーケンスとキャプチャモジュールを対応付ける
        capture_config.add_capture_sequence(awg_id, capture_sequence)
    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
def set_capture_sequence(awg_sa_cmd, seq):
    """
    キャプチャシーケンスを AWG にセットする
    """
    # キャプチャ時間は, キャプチャする波形の長さ + 40 ns とする.
    # delay が波形ステップの開始から終了までの時間を超えないように注意.
    capture_0 = awgsa.AwgCapture(time=seq.get_wave(step_id=0).get_duration() +
                                 40,
                                 delay=CAPTURE_DELAY,
                                 do_accumulation=True)

    capture_1 = awgsa.AwgCapture(time=seq.get_wave(step_id=1).get_duration() +
                                 40,
                                 delay=CAPTURE_DELAY,
                                 do_accumulation=True)

    # キャプチャシーケンスの定義
    capture_sequence_0 = (awgsa.CaptureSequence(
        ADC_FREQ, is_iq_data=False).add_step(
            step_id=0, capture=capture_0).add_step(step_id=1,
                                                   capture=capture_1))

    # キャプチャシーケンスとキャプチャモジュールを対応付ける
    capture_config = (awgsa.CaptureConfig().add_capture_sequence(
        awgsa.AwgId.AWG_0, capture_sequence_0))

    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
def set_capture_sequence(awg_sa_cmd, awg_id_to_wave_sequence):
    """
    キャプチャシーケンスをキャプチャモジュールにセットする
    """
    capture_config = awgsa.CaptureConfig()
    for awg_id, wave_sequence in awg_id_to_wave_sequence.items():
        capture_sequence = awgsa.CaptureSequence(ADC_FREQ)
        for step_id in wave_sequence.get_step_id_list():
            # delay が波形ステップの開始から終了までの時間を超えないように注意.
            capture = awgsa.AwgCapture(
                time=wave_sequence.get_wave(step_id).get_duration() + 35,
                delay=CAPTURE_DELAY,
                do_accumulation=False)
            # キャプチャシーケンスへのキャプチャステップの追加
            capture_sequence.add_step(step_id, capture)
        # キャプチャシーケンスとキャプチャモジュールを対応付ける
        capture_config.add_capture_sequence(awg_id, capture_sequence)
    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
def set_capture_sequence(awg_sa_cmd, seq_0, seq_1):
    """
    キャプチャシーケンスを AWG にセットする
    """
    # キャプチャ時間は, キャプチャする波形の長さ + 20 ns とする.
    # delay が波形ステップの開始から終了までの時間を超えないように注意.
    capture_0 = awgsa.AwgCapture(
        time=seq_0.get_wave(step_id=0).get_duration() + 20,
        delay=CAPTURE_DELAY,
        do_accumulation=False)

    capture_1 = awgsa.AwgCapture(
        time=seq_0.get_wave(step_id=1).get_duration() + 20,
        delay=CAPTURE_DELAY,
        do_accumulation=False)

    # 波形シーケンス 1 全体をキャプチャするため, キャプチャ時間は,
    # シーケンス 1 全体の長さ - 余分にとった時間 (POST_BLANK) + 20 ns とする.
    capture_2 = awgsa.AwgCapture(time=seq_1.get_whole_duration() - POST_BLANK +
                                 20,
                                 delay=CAPTURE_DELAY,
                                 do_accumulation=False)

    # キャプチャシーケンスの定義
    capture_sequence_0 = (awgsa.CaptureSequence(
        ADC_FREQ, is_iq_data=False).add_step(
            step_id=0, capture=capture_0).add_step(step_id=1,
                                                   capture=capture_1))

    capture_sequence_1 = (awgsa.CaptureSequence(
        ADC_FREQ, is_iq_data=False).add_step(step_id=0, capture=capture_2))

    # キャプチャシーケンスとキャプチャモジュールを対応付ける
    capture_config = (awgsa.CaptureConfig().add_capture_sequence(
        awgsa.AwgId.AWG_0,
        capture_sequence_0).add_capture_sequence(awgsa.AwgId.AWG_1,
                                                 capture_sequence_1))

    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
Exemple #7
0
def set_capture_sequence(awg_sa_cmd, awg_id_to_wave_sequence):
    """
    キャプチャシーケンスを AWG にセットする
    """
    capture_config = awgsa.CaptureConfig()

    for awg_id, wave_sequence in awg_id_to_wave_sequence.items():
        # delay が波形ステップの開始から終了までの時間を超えないように注意.
        capture_0 = awgsa.AwgCapture(time=wave_sequence.get_whole_duration() +
                                     1000,
                                     delay=CAPTURE_DELAY,
                                     do_accumulation=False)

        # キャプチャシーケンスの定義
        capture_sequence = (awgsa.CaptureSequence(ADC_FREQ).add_step(
            step_id=0, capture=capture_0))

        # キャプチャシーケンスとキャプチャモジュールを対応付ける
        capture_config.add_capture_sequence(awg_id, capture_sequence)

    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
Exemple #8
0
def set_capture_sequence(awg_sa_cmd, awg_id_to_wave_sequence):
    """
    キャプチャシーケンスを AWG にセットする
    """
    capture_0 = awgsa.AwgCapture(time=500,
                                 delay=CAPTURE_DELAY,
                                 do_accumulation=False)
    capture_1 = awgsa.AwgCapture(
        time=awg_id_to_wave_sequence[awg_list[1]].get_whole_duration() -
        POST_BLANK + 100,
        delay=CAPTURE_DELAY,
        do_accumulation=False)

    # キャプチャシーケンスの定義
    capture_sequence_0 = awgsa.CaptureSequence(ADC_FREQ).add_step(
        step_id=0, capture=capture_0)
    capture_sequence_1 = awgsa.CaptureSequence(ADC_FREQ).add_step(
        step_id=0, capture=capture_1)
    # キャプチャシーケンスとキャプチャモジュールを対応付ける
    capture_config = awgsa.CaptureConfig()
    capture_config.add_capture_sequence(awg_list[0], capture_sequence_0)
    capture_config.add_capture_sequence(awg_list[1], capture_sequence_1)
    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)
Exemple #9
0
def set_capture_sequence(awg_sa_cmd, awg_id_to_wave_sequence):
    """
    キャプチャシーケンスを AWG にセットする
    """
    capture_config = awgsa.CaptureConfig()

    for awg_id, wave_sequence in awg_id_to_wave_sequence.items():
        # DAC から出力する波形の NUM_CYCLES_IN_WINDOW サイクル分の期間をキャプチャ時間とする
        num_dac_wave_samples = int(DAC_FREQ /
                                   wave_sequence.get_wave(0).get_frequency())
        capture = awgsa.AwgWindowedCapture(time=1000 * NUM_CYCLES_IN_WINDOW *
                                           num_dac_wave_samples / ADC_FREQ,
                                           num_windows=NUM_WINDOWS,
                                           delay=CAPTURE_DELAY)

        # キャプチャシーケンスの定義
        capture_sequence = (awgsa.CaptureSequence(ADC_FREQ).add_step(
            step_id=0, capture=capture))

        # キャプチャシーケンスとキャプチャモジュールを対応付ける
        capture_config.add_capture_sequence(awg_id, capture_sequence)

    # キャプチャモジュールにキャプチャシーケンスを設定する
    awg_sa_cmd.set_capture_config(capture_config)