Method and system for generating a digital sample stream

The method and system generate a digital sample stream with time-shifted analog signals to address the challenge of precise pulse timing in quantum control systems, achieving flexible and accurate control of quantum devices with minimal hardware investment.

WO2025174242A1PCT designated stage Publication Date: 2025-08-21QBLOX BV
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/NL2025/050070
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-16
Filing Date
2025-02-13
Publication Date
2025-08-21

AI Technical Summary

Technical Problem

Existing quantum control systems face challenges in accurately timing control pulses due to hardware limitations, which are typically not feasible with the required 10 picosecond accuracy without significantly increasing hardware requirements.

Method used

A method and system for generating a digital sample stream that stores multiple time-shifted versions of analog signals, allowing for precise timing of control pulses by scheduling output at a fine time resolution, such as 1 ns, using a digital sample stream generator that retrieves sequences based on start signals, without requiring excessive hardware resources.

Benefits of technology

Enables accurate and flexible timing of control pulses for quantum devices, allowing for arbitrary time-shifts independent of the scheduled output resolution, thus improving the control of quantum systems without increasing hardware demands.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure NL2025050070_21082025_PF_FP_ABST
    Figure NL2025050070_21082025_PF_FP_ABST
Patent Text Reader

Abstract

This disclosure relates to a computer-implemented method for generating a digital sample stream for controlling and / or measuring a quantum device. The method comprises a memory system storing a plurality of sequences of digital samples. Each sequence out of the plurality of sequences represents an analog signal for controlling and / or measuring the quantum device. The plurality of sequences comprises one or more subsets of sequences. The one or more subsets of sequences comprise a first subset of sequences. Further, each subset of the one or more subsets is associated with an analog signal in that it comprises a first sequence representing a first version of that analog signal and a second sequence representing a second version of that analog signal, wherein the first version and second version have a time-shift relative to each other. The method also comprises a digital sample stream generator generating the digital sample stream based on one or more sequences of digital samples obtained from the memory system. The method further comprises scheduling output of digital samples from the digital sample stream generator at a first time resolution, e.g. at a time resolution of 1 ns. The step of the digital sample stream generator generating the digital sample stream comprises (i) the digital sample stream generator receiving a start signal indicating the second sequence of the first subset, and (ii) based on the received start signal, the digital sample stream generator retrieving the second sequence of the first subset from the memory system, and (iii) the digital sample stream generator outputting digital samples of the second sequence of the first subset.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Method and system for generating a digital sample stream

[0002] FIELD OF THE INVENTION

[0003] This disclosure relates to a computer-implemented method for generating a digital sample stream for controlling and / or measuring a quantum device. In particular, this disclosure relates to such method wherein a memory system has stored one or more subsets of digital sample sequences, wherein, in each subset, the different sequences represent respective time-shifted versions of the same analog signal. This disclosure further relates to a signal generator for generating a digital sample stream.

[0004] BACKGROUND

[0005] Quantum experiments require a classical control system to control a quantum device. This control system is in its core a digital system but requires digital-to-analog (DAC) conversion to create control pulses. The control pulse-shapes are stored in a digital memory connected to a DAC capable of converting the digital pulse shape into an analog pulse. To handle the stringent speed and accuracy requirements, the control system is typically implemented using a digital circuit such as a programmable gate array (FPGA) or a complex programmable logic device (CPLD) that connects the DAC to an on-board Block RAM memory or an external SDRAM memory chip. Most pulses are very short (tens of nanoseconds), have high-frequency content and therefore require high-speed DACs, e.g. 1 Giga samples per second (GSPS), to generate them.

[0006] Due to the short time-scales of quantum devices, the control pulses are preferably timed very accurately, for example with 10 picosecond accuracy. However, this is typically not feasible due to hardware limitations.

[0007] Hence, there is a need in the art for technology that enables to time control pulses of quantum devices with very high accuracy without significantly raising hardware requirements.

[0008] SUMMARY

[0009] Therefore, an aspect of this disclosure relates to a computer-implemented method for generating a digital sample stream for controlling and / or measuring a quantum device. The method comprises a memory system storing a plurality of sequences of digital samples. Each sequence out of the plurality of sequences represents an analog signal for controlling and / or measuring the quantum device. The plurality of sequences comprises one or more subsets of sequences. The one or more subsets of sequences comprise a first subset of sequences. Further, each subset of the one or more subsets is associated with an analog signal in that it comprises a first sequence representing a first version of that analog signal and a second sequence representing a second version of that analog signal, wherein the first version and second version have a time-shift relative to each other. The method also comprises a digital sample stream generator generating the digital sample stream based on one or more sequences of digital samples obtained from the memory system. The method further comprises scheduling output of digital samples from the digital sample stream generator at a first time resolution, e.g. at a time resolution of 1 ns. The step of the digital sample stream generator generating the digital sample stream comprises (i) the digital sample stream generator receiving a start signal indicating the second sequence of the first subset, and (ii) based on the received start signal, the digital sample stream generator retrieving the second sequence of the first subset from the memory system, and (iii) the digital sample stream generator outputting digital samples of the second sequence of the first subset.

[0010] One aspect of this disclosure relates to a signal generator for generating a digital sample stream for controlling and / or measuring a quantum device. The signal generator comprises a memory system for storing a plurality of sequences of digital samples, wherein each sequence out of the plurality of sequences represents an analog signal for controlling the quantum device. The plurality of sequences comprises one or more subsets of sequences, the one or more subsets of sequences comprising a first subset of sequences, wherein each subset of the one or more subsets is associated with an analog signal in that it comprises a first sequence representing a first version of that analog signal and a second sequence representing a second version of that analog signal. The first version and second version have a time-shift relative to each other. The signal generator further comprises a digital sample stream generator configured to generate the digital sample stream based on one or more sequences of digital samples obtained from the memory system. The signal generator is configured to schedule output of digital samples at a first time resolution, e.g. at a time resolution of 1 ns. The digital sample stream generator is configured to perform steps of:

[0011] -receiving a start signal indicating the second sequence of the first subset, and -based on the received start signal, retrieving the second sequence of the first subset from the memory system, and

[0012] - outputting digital samples of the second sequence of the first subset.

[0013] These methods and systems are highly advantageous in that they enable to employ arbitrary time-shifts that are independent from the time resolution at which output of digital samples is scheduled, even time-shifts that are smaller than this time resolution . The memory system namely stores various time-shifted versions of each analog signal. Based on a desired start time for an analog signal, the digital sample stream generator can retrieve from the memory system the sequence representing the version that has a time-shift such that the analog signal is provided to the quantum device at the correct time. This does not significantly increase hardware requirements because the retrieval of an indicated sequence is performed similarly irrespective whether it concerns a time-shifted sequence or a regular, non-time-shifted sequence. Thus, the method and systems disclosed herein enable great flexibility in timing the sequences as generated by the digital sample stream generator and thus for example great flexibility in timing the analog signals that are provided as control signals to a quantum system.

[0014] As referred to herein, the signal generator scheduling output of digital samples from the digital sample stream generator at for example a time resolution of 1 ns may be understood as that the digital sample stream generator outputs digital samples at a 1 ns time grid. Thus, as used herein, time resolution is expressed in units of time so that a relatively small time resolution indicates a relatively fine time resolution. Sampling rate for the digital sample stream generator may be understood to be the average number of digital samples per unit of time that the digital sample stream outputs and sampling period of the digital sample stream generator may be understood to be the inverse of sampling rate, namely the average time duration between digital samples in the digital sample stream. The first time resolution referred to herein would typically be equal to the sampling period of the digital sample stream generator when the digital sample stream generator is continuously outputting digital samples.

[0015] The reason that output of digital samples is scheduled at some time resolution may be because the generated digital sample stream is provided to a digital-to-analog converter (DAC) that has some maximum sample rate at which it can operate. Preferably, the time resolution at which output of digital samples is scheduled is greater than or, more preferably, matches the DAC’s sample interval, i.e. the inverse of the DAC’s sample rate. To illustrate, if the maximum sample rate of the DAC is 1 GHz, then output of digital samples from the digital sample stream generator are preferably scheduled at a time resolution of 1 ns so that the DAC receives 1 digital sample every nanosecond which it can process while operating at a 1 GHz sample rate. The DAC and the digital sample stream generator may receive, and operate based on, the same clock signal.

[0016] In an example, the digital sample stream generator operates at a clock frequency of 250 MHz and outputs 4 digital samples each clock cycle (the duration of a clock cycle being 4 ns). Even if this is the case, then still the output of digital samples may be understood to have been scheduled at a time resolution of 1 ns, for example in the sense that a particular digital sample is scheduled to be output in a certain clock cycle as either the first, second, third or fourth digital sample in that 4 ns clock cycle. Typically, each subset of sequences is associated with a single analog signal. Therefore, typically, the memory system has stored many subsets in order to be able to provide a great variety of analog control signals to the quantum device, for example at least two, at least three, at least five, at least ten, at least twenty. Further, each subset may comprise any arbitrary number of sequences, for example at least two, at least three, at least five, at least ten, at least twenty. In principle, the smaller the time-shifts between the versions of the analog signal respectively represented by the various sequences in a subset, the more sequences there are present in a subset. To illustrate, assuming that the signal generator used for generating the digital sample stream can schedule output of digital samples at a time resolution of 1 ns, then a subset of sequences may comprise 100 versions of an analog signal, wherein the versions are separated by a 10 ps time-shift. Alternatively, a subset may comprise 10 versions of an analog signal if the versions are separated by a 0.1 ns time shift, et cetera.

[0017] Apart from the time-shifts, the different versions of an analog signal may be identical or at least similar, for example in that they have the same or similar shape.

[0018] In an embodiment, the signal generator comprises a field-programmable device, such as a field-programmable gate array, FPGA, and / or an application-specific integrated circuit, ASIC. The field-programmable device, such as an FPGA, and / or on an ASIC, respectively, may then comprise the digital sample stream generator and / or the memory system. Implementing these components on a field-programmable device, such as an FPGA, and / or on an ASIC enables these components to operate at high speeds. In this embodiment, preferably no external memories, external to the field-programmable device and / or ASIC, are used for storing digital samples of any of the sequences, because accessing such external memory takes relatively long.

[0019] In an embodiment, for each subset, the time shift between the first version and the second version of the analog signal associated with the subset in question is not an integer multiple of the first time resolution. For example, for each subset, the time shift between the first version and the second version of the analog signal associated with the subset in question is smaller than the first time resolution. Such embodiments are advantageous in that they enable to schedule the output of the digital samples at a finer time resolution than the first time resolution.

[0020] A time-shift between the first and second version of each analog signal, as represented respectively by the first and second sequence in each subset of sequences, being smaller than for example the time resolution of 1 ns may be simply understood as that the time-shift is smaller than 1 ns. In an embodiment, the method further comprises a digital-to-analog converter, DAC, converting the digital sample stream into analog signals for controlling the quantum device. In an embodiment, the signal generator comprises a digital-to-analog converter, DAC, configured to convert the digital sample stream into analog signals for controlling the quantum device. These embodiments enable to easily generate analog signals to control the quantum device. The digital sample stream may be processed, e.g. amplified, filtered, et cetera, before it reaches the DAC.

[0021] In an embodiment, the computer-implemented method comprises an integrator receiving the digital sample stream and performing an integration based on the digital sample stream. One aspect of this disclosure relates to a signal acquisition system that comprises any of the signal generators disclosed herein and an integrator. In this aspect, the integrator is configured to receive the digital sample stream generated by the signal generator and to perform an integration based on the digital sample stream.

[0022] Such an integration is typically used when a quantum device is measured. Signals from the quantum device are typically integrated. The digital samples of the digital sample stream may then be used as weights in such integrations.

[0023] In an embodiment, each second sequence in each subset is obtainable by

[0024] -obtaining the first sequence of the subset, and

[0025] -upsampling the first sequence, and

[0026] -time-shifting the upsampled first sequence by the time-shift, and -downsampling the upsampled, time-shifted first sequence.

[0027] This embodiment makes use of a resampling technique to time-shift the second sequence relative to the first sequence. The first sequence may be understood as a reference sequence in this case.

[0028] The first sequence may for example have a sample rate of 1 digital sample per ns, whereas the upsampled first sequence may have a sample rate of 1 digital sample per ps. After the time-shift, the upsampled, time-shifted first sequence may be downsampled again to obtain the second sequence. The second sequence typically has the same sample rate as the first sequence, 1 digital sample per ns in the above example.

[0029] In an embodiment, time-shifting the upsampled first sequence by the time-shift comprises prepending digital samples to the upsampled first sequence. This embodiment provides for a convenient way of obtaining a second sequence that is time delayed relative to the first sequence.

[0030] The digital samples that are prepended may all be zero-valued. Alternatively, the digital samples that are prepended are all be non-zero-valued. Alternatively, some of the digitals samples that are prepended are zero-valued, while others are non-zero-valued. In an embodiment, the method further comprises a sequence selection module determining, with a second time resolution that is finer than the first time resolution, a first start time for the analog signal associated with the first subset. This embodiment also comprises the sequence selection module selecting, based on the first start time, the second sequence of the first subset, and the sequence selection module sending the start signal indicating the second sequence of the first subset to the digital sample stream generator.

[0031] In an embodiment, the signal generator comprises a sequence selection module that is configured to determine, with a second time resolution that is finer than the first time resolution, a first start time for the analog signal associated with the first subset. The sequence selection module is configured to select, based on the first start time, the second sequence of the first subset, and configured to send the start signal indicating the second sequence of the first subset to the digital sample stream generator.

[0032] Thus, the selection of a sequence within a subset may be performed based on the start time for that sequence. This is advantageous in that it allows for a convenient way to select the correct sequences.

[0033] The first start time may be a time at which no output of a digital sample can be scheduled, for example because the digital sample stream generator operates at a 1 ns time grid and the first start time is 3.6 ns.

[0034] In an embodiment, the step of the sequence selection module selecting the second sequence may comprise

[0035] -determining a time difference between a time at which output of a digital sample can be scheduled and the first start time, and

[0036] -based on the time difference, selecting the second sequence of the first subset.

[0037] Likewise, in an embodiment of the signal generator, the sequence selection module is configured to select the second sequence by performing steps of:

[0038] -determining a time difference between a time at which output of a digital sample can be scheduled and the first start time, and

[0039] -based on the time difference, selecting the second sequence of the first subset.

[0040] In an example, the signal generator is configured to schedule output of digital samples with a time resolution of 1 ns. Further, in this example, the first start time for the analog signal associated with the first subset is at t = 4.3 ns, which is a time at which the signal generator cannot schedule an output of a digital sample. Then, the sequence selection module may determine that the difference between the time point t=4.0 ns, which is a time at which the signal generator can schedule an output of a digital sample, and the first start time t=4.3 ns. In this example, this difference is 0.3 ns. Then, the sequence selection module may select the second sequence if the second sequence is time-shifted by 0.3 ns relative to the first sequence. Note that in this example, the first sequence may be understood to be a reference sequence in that the first sequence would be selected if the first start time would be a time at which the signal generator can schedule an output of a digital sample. In other words, the first sequence may be understood to be associated with a zero time-shift.

[0041] In an embodiment, the method comprises the sequence selection module receiving a command signal indicating the analog signal associated with the first subset and indicating the first start time, and the sequence selection module determining the first start time based on the received command signal.

[0042] In an embodiment of the system, the sequence selection module is configured to receive a command signal indicating the analog signal associated with the first subset and indicating the first start time, and configured to determine the first start time based on the received command signal. The first start time may be explicitly indicated by the command signal in the sense that the first start time is indicated relative to a start time of the experiment. In this case, the start times may be understood to be indicated absolutely and the step of the sequence selection module determining the first start time based on the received command signal may simply be performed by the sequence selection module interpreting the command signal.

[0043] In an embodiment, the method comprises the sequence selection module receiving a plurality of command signals. Each command signal of the plurality of command signals indicates an operation to be performed by the digital sample stream generator and indicates a duration associated with that operation. The plurality of command signals comprises a first command signal indicating the analog signal associated with the first subset.

[0044] Optionally, in this embodiment, the sequence selection module determines the first start time for the analog signal associated with the first subset based on the respective durations as indicated by one or more command signals out of the plurality of command signals.

[0045] In an embodiment of the signal generator, the sequence selection module is configured to receive a plurality of command signals referred to above. Optionally, in this embodiment, the sequence selection module is configured to determine the first start time for the analog signal associated with the first subset based on the respective durations as indicated by one or more command signals out of the plurality of command signals.

[0046] These embodiments enable that each operation can be timed accurately as is typically required in the context of controlling quantum devices. A duration that is associated with an operation may for example indicate a time period between the start of that operation and the start of a next operation as indicated by a next command signal. Thus, the duration may be longer than the actual operation with which it is associated. To illustrate, a command signal may indicate that some analog signal is to be played and a duration of 20.2 ns. In this example, the analog signal itself may only last 10 ns.

[0047] The first start time may be indicated by the first command signal. However, the first start time may have already been determined before the first command signal is received, e.g. based on previous command signals as described below.

[0048] In an embodiment, the plurality of command signals comprises one or more wait command signals that respectively indicate a wait duration during which the digital sample stream generator does not output digital samples and one or more play command signals. Each play command signal indicating a subset of sequences in association with a play duration. Since each subset is associated with an analog signal, a play command signal indicating a subset of sequences may be understood as the play command signal indicating the analog signal associated with that subset.

[0049] In an embodiment, the method comprises the sequence selection module determining, for each subset of sequences that is indicated by a play command signal, a start time based on a cumulative duration. The cumulative duration is a summation of one or more previous durations indicated by respective one or more previous command signals that are previous to the play command signal that indicates the subset in question. The start time is determined with a time resolution that is finer than the first time resolution. In this embodiment, the method may additionally or alternatively comprise the sequence selection module determining, for each subset of sequences that is indicated by a play command signal, a start time based on a remainder duration, which is equal to a remainder of a division of a cumulative duration by the first time resolution, the cumulative duration being the summation of one or more previous durations indicated by respective one or more previous command signals that are previous to the command signal that indicates the subset in question.

[0050] In an embodiment of the signal generator, the sequence selection module is configured to determine, for each subset of sequences that is indicated by a play command signal, a start time based on a cumulative duration. The cumulative duration is a summation of one or more previous durations indicated by respective one or more previous command signals that are previous to the play command signal that indicates the subset in question. The start time is determined with a time resolution that is finer than the first time resolution.

[0051] In this embodiment, the sequence selection module may additionally or alternatively be configured to determine, for each subset of sequences that is indicated by a play command signal, a start time based on a remainder duration, which is equal to a remainder of a division of a cumulative duration by the first time resolution, the cumulative duration being the summation of one or more previous durations indicated by respective one or more previous command signals that are previous to the command signal that indicates the subset in question. The start time being determined with a time resolution that is finer than the time resolution may be understood as that the start time may be a time that does not lie on the time grid at which the signal generator is scheduling output of digital samples.

[0052] There may be a counter involved in the method that keeps track of total time elapsed during an experiment. The counter may simply add up the durations as indicated by all incoming command signals. This allows to determine for each operation the exact start time based on all previous durations as indicated by all previous command signals.

[0053] In an embodiment, the sequence selection module determines the first start time for the analog signal associated with the first subset based on a first cumulative duration. The first cumulative duration in this case is a summation of first one or more previous durations indicated by respective first one or more previous command signals that are previous to the first command signal. Then, at least one of the first one or more previous durations is indicated with a time resolution that is finer than the first time resolution.

[0054] In an embodiment of the signal generator, the sequence selection module is configured to determine the first start time for the analog signal associated with the first subset based on a first cumulative duration. The first cumulative duration in this case is a summation of first one or more previous durations indicated by respective first one or more previous command signals that are previous to the first command signal. Then, at least one of the first one or more previous durations is indicated with a time resolution that is finer than the first time resolution.

[0055] These embodiments allow to accurately determine the first start time.

[0056] In an embodiment, the sequence selection module selects, based on a first remainder duration, the second sequence of the first subset, and sends the start signal indicating the second sequence of the first subset to the digital sample stream generator. The first remainder duration is equal to a remainder of a division of a first cumulative duration by the first time resolution. The first cumulative duration being the summation of first one or more previous durations indicated by respective first one or more previous command signals that are previous to the first command signal. This embodiment may comprise the sequence selection module determining the first remainder duration.

[0057] In an embodiment of the signal generator, the sequence selection module is configured to select, based on a first remainder duration, the second sequence of the first subset, and to send the start signal indicating the second sequence of the first subset to the digital sample stream generator. The first remainder duration is equal to a remainder of a division of a first cumulative duration by the first time resolution. The first cumulative duration being the summation of first one or more previous durations indicated by respective first one or more previous command signals that are previous to the first command signal. In this embodiment, the sequence selection module may be configured to determine the first remainder duration.

[0058] These embodiments enable to select the appropriate sequence in a straightforward manner. The sequence selection module for example determines the remainder of the division of the first cumulative duration by the first time resolution. This remainder then indicates the time-shift for the analog signal relative to a time point at which the signal generator can schedule output of a digital sample.

[0059] In an embodiment, the method comprises the sequence selection module determining the first remainder duration. This step may comprise performing a sequence of steps for each duration indicated by the respective first one or more previous command signals. The sequence of steps comprises:

[0060] (i) increasing the duration in question by a previous remainder duration, and

[0061] (ii) determining a remainder duration of the increased duration, the remainder duration being the remainder of a division of the increased duration by the first time resolution.

[0062] The remainder duration determined in step (ii) is used as the previous remainder duration in the next sequence of steps performed for the next duration. This embodiment also comprises determining the remainder duration determined in step (ii) in the sequence of steps that is performed for the duration indicated by the command signal that precedes, preferably directly precedes, the first command signal, as the first remainder duration.

[0063] In an embodiment of the signal generator, the sequence selection module is configured to determine the first remainder duration by performing the above sequence of steps.

[0064] These embodiments are advantageous in that they allow to determine the remainder of the division of the first cumulative duration by the first time resolution without having to keep track of total elapsed time (since the beginning of the experiment), which would require significant resources, such as memory resources.

[0065] Optionally, these embodiments comprise determining a rounded-off relative start time, which may be obtainable by subtracting from the increased duration the determined remainder duration.

[0066] It should be appreciated that the durations referred to herein are typically fixed point numbers stored as bit strings and that subtracting one duration from another duration may be performed by truncating a bit string. To illustrate, the start time expressed in the first time resolution, e.g. 1 ns, can be determined by truncating bits representing sub-ns time durations.

[0067] In an embodiment, the method comprises the sequence selection module determining the first remainder duration. This step may comprise performing a sequence of steps for each duration indicated by the respective first one or more previous command signals. The sequence of steps comprises:

[0068] (i) determining a remainder duration of the duration in question, the remainder duration being the remainder of a division of the duration in question by the first time resolution, and

[0069] (ii) increasing a counter value by the determined remainder duration, and

[0070] (iii) determining that the counter value is equal to or larger than the first time resolution and, based on this determination, lowering the counter value by the first time resolution or determining that the counter value is lower than the first time resolution and, based on this determination, refraining from lowering the counter value.

[0071] The counter value resulting from step (iii) is used as counter value in step (ii) in a next sequence of steps performed for a next duration. In other words, the counter value is not reset to zero at the start of each sequence of steps. This embodiment also comprises determining the counter value resulting from step (iii) in the sequence of steps that is performed for the duration indicated by a command signal that precedes, e.g. directly precedes, the first command signal, as the first remainder duration.

[0072] In an embodiment of the signal generator, the sequence selection module is configured to determine the first remainder duration by performing the above sequence of steps.

[0073] These embodiments are advantageous in that they allow to determine the remainder of the division of the first cumulative duration by the first time resolution without having to keep track of total elapsed time, which would require significant memory resources. In these embodiments, the counter value cannot become large, because it is lowered if it exceeds the first time resolution. Since the counter value remains relatively small, only limited memory resources are required for storing this counter value.

[0074] Optionally these embodiments comprise setting the counter value to zero at the beginning of the experiment.

[0075] Preferably, these embodiments comprise not only lowering the counter value by the first time resolution based on determining that the counter value is equal to or larger than the first time resolution, but also increasing a rounded-off start time by the time resolution, as for example explained with reference to step 360 in figure 3B and step 476 in figure 4B.

[0076] In an embodiment, the method comprises a data processor receiving a first instruction signal comprising an indication of the first subset and a first duration value and a first unit of time. In this embodiment, the method comprises the data processor determining the first command signal based on the first instruction signal, this step comprising determining the duration to be indicated by the first command signal based on the first duration value and the first unit of time. This embodiment also comprises the data processor sending the first command signal to the sequence selection module. This embodiment may also comprise the data processor receiving a second instruction signal comprising an indication of a second subset out of the one or more subsets of sequences and a second duration value and a second unit of time, wherein the second unit of time is different from the first unit of time. Then, the data processor may determine a second command signal based on the second instruction signal, this step comprising determining the duration to be indicated by the second command signal based on the second duration value and the second unit of time. Further, this embodiment may comprise the data processor sending the second command signal to the sequence selection module.

[0077] In an embodiment, the signal generator comprises a data processor that is configured to perform the steps referred to in the previous paragraph.

[0078] These embodiments are advantageous in that a user may input durations using various units of time, for example a number of nanoseconds for a first operation and a number of 10 picoseconds for a second operation. The data processor will then determine the correct command signal indicating the correct duration for the operation.

[0079] In an embodiment, the one or more subsets of sequences comprises a third subset associated with a third analog signal. In this embodiment, for the first subset, the first version and the second version of the analog signal associated with the first subset have a first timeshift relative to each other, and for the third subset, the first version and the second version of the analog signal associated with the third subset have a second time-shift relative to each other that is different from the first time-shift.

[0080] Different signals may thus be timed at different time resolutions. This is advantageous in that different analog signals may require different timing resolutions. To illustrate, a first analog signal may need to be timeable with a time resolution of 100 ps while a second analog signal may need to be timeable with a time resolution of 10 ps. In such case, storing 10 ps time-shifted versions of the first analog signal would be a waste of memory resources.

[0081] One aspect of this disclosure relates to a computer comprising a computer readable storage medium having computer readable program code embodied therewith, and a processor, preferably a microprocessor, coupled to the computer readable storage medium, wherein responsive to executing the computer readable program code, the processor is configured to perform any of the methods disclosed herein.

[0082] One aspect of this disclosure relates to a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out any of the computer-implemented methods described herein.

[0083] One aspect of this disclosure relates to a computer-readable data carrier having stored thereon any of the computer programs described herein. The computer-readable data carrier may be a hard disk, for example, or a signal. One aspect of this disclosure relates to a data carrier signal carrying any of the computer programs described herein.

[0084] One aspect of this disclosure relates to a computer readable storage medium having computer readable program code embodied therewith, and a processor, preferably a microprocessor, coupled to the computer readable storage medium, wherein responsive to executing the computer readable program code, the processor is configured to perform any of the computer-implemented methods described herein.

[0085] One aspect of this disclosure relates to a non-transitory computer-readable storage medium storing at least one software code portion, the software code portion, when executed or processed by a computer, is configured to perform any of the computer-implemented methods described herein.

[0086] One aspect of this disclosure relates to a computer program or suite of computer programs comprising at least one software code portion or a computer program product storing at least one software code portion, the software code portion, when run on a computer system, being configured for executing any of the computer-implemented methods described herein.

[0087] Elements and aspects discussed for or in relation with a particular embodiment may be suitably combined with elements and aspects of other embodiments, unless explicitly stated otherwise. Embodiments of the present invention will be further illustrated with reference to the attached drawings, which schematically will show embodiments according to the invention. It will be understood that the present invention is not in any way restricted to these specific embodiments.

[0088] BRIEF DESCRIPTION OF THE DRAWINGS

[0089] Aspects of the invention will be explained in greater detail by reference to exemplary embodiments shown in the drawings, in which:

[0090] FIG. 1 illustrates a signal generator according to an embodiment;

[0091] FIG. 2 illustrate a subset of sequences according to an embodiment;

[0092] FIG. 3A is a flow chart illustrating a method according to an embodiment comprising keeping track of total elapsed time;

[0093] FIG. 3B is a flow chart illustrating a method according to an embodiment comprising determining whether a counter value is equal to or larger than the first time resolution;

[0094] FIG. 30 is a flow chart illustrating a method according to an embodiment comprising increasing a duration as indicated by a command signal by a previous remainder duration;

[0095] FIG. 3D is a flow chart illustrating a method according to an embodiment wherein the command signals indicate absolute start times; FIG. 3E shows part of a digital sample stream that will be generated by any of the embodiments shown in figures 3A, 3B, 30, 3D;

[0096] FIG. 4A is a flow chart illustrating a method according to an embodiment comprising keeping track of total elapsed time;

[0097] FIG. 4B is a flow chart illustrating a method according to an embodiment comprising determining whether a counter value is equal to or larger than the first time resolution;

[0098] FIG. 40 is a flow chart illustrating a method according to an embodiment comprising increasing a duration as indicated by a command signal by a previous remainder duration;

[0099] FIG. 5 illustrates a signal generator according to an embodiment;

[0100] FIG. 6 illustrates how, according to an embodiment, the sequences may be stored in the memory system;

[0101] FIG. 7 illustrates a data processing system according to an embodiment.

[0102] DETAILED DESCRIPTION OF THE DRAWINGS

[0103] In the figures, identical reference numbers indicate identical or similar elements. Further, reference numbers that differ by 100 or that differ by integer multiples of 100 indicate identical or similar elements.

[0104] Delivering instructions to a quantum processor is a complicated process. A quantum processor uses quantum elements, such as quantum bits (qubits), which are based on quantum systems such as trapped ions, trapped electrons, superconducting Josephson junctions, photons, quantum dots, etc, to process information based on quantum mechanical processes such as superposition and quantum entanglement. The information stored and processed by qubits is represented by the physical quantum states of the quantum bits. Typically, these quantum devices are located in a screened, cooled cryogenic environment to suppress the thermal noise that distorts the quantum state of the quantum bits.

[0105] In most implementations, a classical control system is used to translate instructions into physical and / or analog pulses for controlling the quantum processor to perform quantum logic operations, and to measure quantum states of the quantum bits. In addition, a computer may be used to upload the control program to the control system and after the execution of the control program, the measured states of the quantum bits may then be reported in digital form back to this computer. To alter and readout quantum states digital-to-analog (DAC) and analog-to-digital converters (ADC) are used. In particular, physical signals, also referred to as control pulses and / or analog signals, with specific shapes need to be generated to change the state of a quantum element, such as a qubit. The quantum state is measured by sending a specifically shaped pulse to the quantum device and reading back its reflection or transmission. This measurement needs to be digitized and interpreted by the control system which then - in response - decides to generate further control pulses.

[0106] Figure 1 illustrates a signal generator 100 according to an embodiment for generating a digital sample stream 102 for controlling and / or measuring a quantum device (not shown). The signal generator 100 comprises a memory system 104 for storing a plurality of sequences 106 of digital samples. In the embodiment of figure 1, the memory system 104 comprises a main memory 111 storing the plurality of sequences 106 and an optional address memory 109 which will be explained with reference to figure 5. Each sequence out of the plurality of sequences 106 represents an analog signal for controlling and / or measuring the quantum device. The analog signals may for example be approx. 10 - 1000 ns long. A predetermined sequence of analog pulses of particular shape and duration may represent a sequence of single or double qubit operations (gate operations) to perform a certain task on the quantum device. Each gate operation represents a particular manipulation of the qubits of the quantum device.

[0107] The plurality of sequences 106 comprises subsets of sequences 108. Although only two subsets 108a and 108b are indicated in figure 1 , the memory system 104 typically stores many, such as hundreds of those subsets 108. Each subset 108 is associated with an analog signal in that it comprises a first sequence representing a first version of that analog signal and a second sequence representing a second version of that analog signal. In figure 1 , subset 108a is associated with an analog signal “#1” and subset 108b is associated with an analog signal “#2”. Figure 1 shows that both subset 108a and 108b comprise four different versions of their associated analog signal. Typically, a subset comprises many more versions of its analog signal, for example hundreds or thousands of versions. Within each subset, the different versions of the analog signal have a time-shift relative to each other. In the embodiment of figure 1 , the different versions of the analog signal #1 in subset 108a are time-shifted relative to each other in steps of 0.1 ns and the different versions of the analog signal #2 in subset 106b are time-shifted relative to each other in steps of 0.01 ns.

[0108] The signal generator 100 further comprises a digital sample stream generator 110 configured to generate the digital sample stream 102 based on one or more sequences 106 of digital samples obtained from the memory system 104. The signal generator 100 is configured to schedule output of digital samples at a first time resolution. In the embodiment of figure 1 , the signal generator is configured to schedule output at a time resolution of 1 ns as indicated. Thus, the time shift between two versions of the analog signal stored by memory system 104 is not an integer multiple of 1 ns. In this example, the time shift is smaller than the time resolution of 1 ns. The digital sample stream generator 110 is configured to perform steps of receiving a start signal indicating one of the sequences in one of the subsets, e.g. indicating the sequence “signal #1; +0.1 ns” in subset 108a, and then, based on the received start signal, retrieving the indicated sequence from the memory system 104. To this end, the digital sample stream generator 110 may send a request to the memory system and may receive the requested sequence in response. Thereafter, the digital sample stream generator 110 can output digital samples 102 of that sequence.

[0109] The signal generator may be configured to time the output of digital samples from the digital sample stream generator by correctly timing the start signal.

[0110] The generated digital sample stream 102 can then be fed into a digital-to-analog converter (DAC) with an appropriate sampling rate to convert the digital sample stream into an analog signal that can be used for controlling a quantum device. Before the digital sample stream 102 reaches such DAC, it may be further processed, such as filtered, amplified et cetera. The generated digital sample stream 102 in figure 1 has one digital sample per nanosecond so that an appropriate sampling rate of a DAC that needs to convert the digital sample stream 102 into an analog signal would be 1 Giga sample per second.

[0111] Additionally or alternatively, the digital sample stream 102 is fed into an integrator for performing an integration based on the digital sample stream. The digital samples in the digital sample stream may be used as weights in the integration. For measuring the quantum device, for example for determining a state of the quantum device, typically an analog-to- digital converter (ADC) using a fixed sample rate in the range of Giga samples per second, for example 1 GSPS, is used that is configured to receive analog signals originating from the quantum device and convert those analog signals into a digital sample stream, hereinafter referred to as measured digital sample stream. Those analog signals are indicative of a state of the quantum device, e.g. after application of a sequence of pulses to the quantum device. The integrator may then receive both the measured digital sample stream as well as the digital sample stream 102 generated by a signal generator disclosed herein.

[0112] Such integration may be based on Mode- Matched filtering scheme or an optimal integration filtering scheme, wherein typically the length of the integration function, represented by the digital sample stream 102 generated by the signal generator disclosed herein , is of the same length as the pulse signals that were sent to the quantum device to initiate a readout. An example of a dispersive readout scheme using such integration function and weight functions is described in the article by Bultink et al, General method for extracting the quantum efficiency of dispersive qubit readout in circuit QED, Appl. Phys. Lett. 112, 092601 (2018), which is herewith incorporated by reference in this application. Before such integration is performed, the measured digital sample stream may be delayed and / or a gain may be applied to it and / or may be demodulated, for example demodulated using a mixer that operates based on a sine wave generated by a numerically controlled oscillator (NCO). The demodulated signal originating from the mixer may be subjected to a decimation function as well before integration.

[0113] Figure 2 illustrates how a subset of sequences that is associated with an analog signal, can be obtained.

[0114] Figure 2A is a graph illustrating a sequence of digital samples. The horizontal axis indicates digital sample number and the vertical axis indicates amplitude. The sequence of figure 2A comprises 20 digital samples and represents an analog signal that is approximately 20 ns long. It is assumed here that the digital sample stream generator that will generate the digital sample stream based on this sequence will output (on average) 1 digital sample per nanosecond.

[0115] In order to obtain another sequence that represents the same, yet time-shifted, analog signal, the sequence of figure 2A may be upsampled. This upsampling may be performed using any upsampling method known in the art. Figure 2B is a graph illustrating an upsampled sequence which is the result of upsampling the sequence of figure 2A. The upsampled sequence comprises 200 digital samples. If it is considered that this upsampled sequence also represents an analog signal of 20 ns long, then a shift of the upsampled sequence by one digital sample represents a time-shift of 0.1 ns.

[0116] The upsampled, time-shifted sequence can subsequently be downsampled again to obtain a sequence that is different from the original sequence of figure 2A and that represents the same, yet time-shifted analog signal. The downsampling may be performed using any downsampling method known in the art. Preferably, the downsampling yields the same number of digital samples as the original

[0117] Figure 2C shows the result of time-shifting the sequence of figure 2B by +0.0 ns (corresponding to shifting the sequence of figure 2B by 0 digital samples) and then downsampling it, which yields the original sequence of figure 2A.

[0118] Figure 2D shows the result of time-shifting the sequence of figure 2B by +0.1 ns (corresponding to shifting the sequence of figure 2B by 1 digital sample) and then downsampling it.

[0119] Figure 2E shows the result of time-shifting the sequence of figure 2B by +0.5 ns (corresponding to shifting the sequence of figure 2B by 5 digital samples) and then downsampling it. Figure 2F shows the result of time-shifting the sequence of figure 2B by +0.9 ns (corresponding to shifting the sequence of figure 2B by 9 digital samples) and then downsampling it.

[0120] Time-shifting an upsampled sequence as referred to herein may comprise prepending or appending zero-valued and / or non-zero-valued digital samples to the upsampled sequence.

[0121] Figure 3A is a flow chart illustrating a method for generating a digital sample stream for controlling and / or measuring a quantum device according to an embodiment. Figure 3A shows the signals that may be exchanged between elements of a signal generator disclosed herein, namely between a data processor 316, a sequence selection module 318, digital sample stream generator 310 and memory system 304.

[0122] The data processor 316 is configured to send command signals 320 to the sequence selection module 318. Figure 3A shows four command signals 320a, 320b, 320c, 320d. Each command signal indicates an operation that is to be performed by the digital sample stream generator 310 and includes a duration for each operation. In this embodiment, each duration that is indicated for an operation indicates that the duration between the time at which the digital sample stream generator 310 starts the operation in question and the time at which the digital sample stream generator should start the next operation (if there is any).

[0123] Command signal 320a is a wait command signal that indicates a wait operation. This wait command signal 320a indicates that the digital sample stream generator should not output digital samples for a duration of 18.50 ns. Command signal 320b is a play command signal and indicates that the digital sample stream generator 310 should generate a digital sample stream representing signal #1. The indication of signal #1 is also an indication of subset 108a as stored by the memory system 304 (also see figure 1), because signal #1 is associated with subset of sequences 108a in that subset 108a comprises various sequences each of which represents a time-shifted version of signal #1. Command signal 320b also indicates a play duration of 20.10 ns. As explained above, this play duration indicates that the digital sample stream generator 310 should start a next operation when 20.10 ns have passed since it started outputting digital samples representing signal #1.

[0124] For clarity, figure 3A shows that a next command signal is only received once the current command signal has been processed by the sequence selection module, for example once the sequence selection module 318 has sent a start signal to the digital sample stream generator 310 for a current play command signal. However, the sequence selection module 318 may comprise a command signal buffer that can receive and store command signals. This buffering of command signals allows to send command signals to the sequence selection module at any given time. In the embodiment of figure 3A, the sequence selection module 318 is configured to determine, with a finer time resolution than the first time resolution, i.e. finer than the time resolution with which the signal generator is scheduling the digital samples, start times for the respective analog signals. As referred to herein, a start time for a particular analog signal may be understood as a time at which the digital sample stream generator starts outputting digital samples representing that particular analog signal. Figure 3A indeed shows that the sequence selection module 318 determines start time 18.50 ns for signal #1 in step 322 and determines start time 57.21 ns for signal #2 in step 338.

[0125] In the embodiment of figure 3A, the sequence selection module determines the start times for respective operations based on the durations as indicated by command signals, in particular based on a summation of previous durations as indicated by the previous command signals indicating previous operations. To illustrate, the start time 18.50 ns for the operation indicated by command signal 320b is equal to, and thus based on, the summation of the (only) previous duration indicated by previous command signal 320a. Start time 57.21 ns for the operation indicated by command signal 320d, determined in step 338, is equal to, and thus based on, the summation of the previous durations 18.50 ns and 20.10 ns and 18.61 ns of respective previous command signals 320a and 320b and 320c. This summation may also be referred to as cumulative duration and may be understood to indicate total elapsed time since the beginning of the experiment.

[0126] In the embodiment of figure 3A, the sequence selection module 318 is configured to select, based on a start time determined for an analog signal, the appropriate sequence from the appropriate subset of sequences. In the depicted embodiment, the signal generator is configured, like in figure 1 , to schedule output at a time resolution of 1 ns, which in this case may be understood that it can only schedule output of digital samples at 1 ns, 2 ns, 3 ns, et cetera and cannot schedule output of digital samples at for example 1.3 ns. In the depicted embodiment, the sequence selection module 318 is configured to determine, for each start time, the time difference between a time at which the signal generator can schedule output and the start time in question.

[0127] To illustrate, start time 18.50 ns for signal #1 is a time at which the signal generator cannot schedule output. Step 324 indicates that the sequence selection module 318 determines a time at which output of digital samples can be scheduled, namely 18 ns. The sequence selection module then determines in step 326 the time difference between 18 ns and 18.50 ns, which is equal to 0.50 ns. The appropriate sequence from subset 108a should thus be the sequence that represents a version of analog signal #1 that has been timeshifted by 0.50 ns relative to some reference version of analog signal #1 , which would be selected if the start time for signal #1 would be exactly 18 ns. Thus, based on the time difference determined in step 326, the sequence selection module 318 determines the appropriate sequence.

[0128] Once the appropriate sequence has been determined, a countdown module in the sequence selection module may countdown from 18 ns and may send, at the moment that it reaches zero, a start signal 328 to the digital sample stream generator 310. The start signal indicates the sequence as selected by the sequence selection module. In the depicted embodiment, the start signal 328 comprises an indication of subset 108a in that it comprises an indication “signal #1”, and comprises an indication of the sequence “+0.50ns” within subset 108a. Once the digital sample stream generator 310 has received start signal 328, it can retrieve the indicated sequence from memory system 304. In figure 3A, this is performed by the digital sample stream generator 310 sending a request comprising an indication of the sequence to memory system 304 (step 330) and receiving (step 334) the request from the memory system 304.

[0129] Once the digital sample stream generator 310 has retrieved the sequence of digital samples from the memory system 104, it can start outputting (step 336) the digital samples herewith generating the digital sample stream.

[0130] Similar as in step 326, the sequence selection module determines in step 342 the time difference between the start time 57.21 ns and a time (57 ns), determined in step 340, at which the signal generator can schedule output. In step 342, this time difference is determined 0.21 ns. As a side note, in this embodiment, each of the determined time differences (step 326 and step 342) is equal to the remainder of the division of the cumulative duration by the first time resolution. In step 326, since the first time resolution is 1 ns and the cumulative duration is 18.50 ns, the remainder is 0.50 ns (i.e. the remainder of 18.501 1). In step 342, since the first time resolution is 1 ns and the cumulative duration is 57.21 ns, the remainder is 0.21 ns (i.e. the remainder of 57.21 1 1). In any case, based on the determined time difference of 0.21 ns, can the sequence selection module 318 determine the appropriate sequence from subset 108b.

[0131] In step 344, the sequence selection module 318 sends start signal 344 to the digital sample stream generator 310. Start signal 344 comprises indication “signal #2” to indicate subset 108b and “+0.21ns” to indicate the appropriate sequence of samples within subset 108b

[0132] Similar as in steps 330, 334 and 336, the digital sample stream generator in steps 346, 348 and 350 requests the sequence from the memory system 304, receives it in step 348 and starts outputting it in step 350.

[0133] Figure 3B is a flow chart illustrating a method according to an embodiment for generating a digital sample stream for controlling and / or measuring a quantum device. In this embodiment, the start times that are determined by the sequence selection module 318 are relative start times in that they indicate the time at which the digital sample stream generator 310 should start an operation relative to the start time of the operation before it.

[0134] In the embodiment of figure 3B, the sequence selection module 318 is configured to determine the remainder of the cumulative duration in a manner that requires only limited memory resources. This manner of determining the remainder of the cumulative duration does not involve keeping track of a total elapsed time as would be the case for the embodiment of figure 3A and which would use a fair amount of memory resources, especially if the experiment has a long total elapsed time.

[0135] In the depicted embodiment, the sequence selection module determines, for each duration indicated by a command signal 320, a remainder duration. This remainder duration is the remainder of a division of the duration by the time resolution at which the signal generator is scheduling output of the digital samples. The remainder of the duration 18.50 ns as indicated by command signal 320a is 0.50 ns, the remainder of duration 20.10 ns as indicated by command signal 320b is 0.10 ns, the remainder of duration 18.61 ns as indicated by command signal 320c is 0.61 ns, the remainder of duration 50.10 ns as indicated by command signal 320d is 0.10 ns.

[0136] Thereafter, a counter value is increased by the determined remainder duration. Figure 3B shows this in steps 326, 354 and 358. Since the counter value is increased for the first time in step 326, it is increased from 0 (the initial counter value set at the beginning of an experiment) to 0.50 ns.

[0137] Further, for each increased counter value, the sequence selection module checks whether its value is still smaller than the first time resolution or not. If the counter value indeed still has a lower value than the first time resolution, then the counter value will remain unchanged. If the counter value is equal to or larger than the first time resolution, then the counter value is lowered by the first time resolution. This happens for example in step 362. In step 358, the counter value reaches the value 1.21 ns. Since this is larger than the time resolution of 1 ns, the counter value is lowered in step 362 by 1 ns to 0.21 ns.

[0138] The sequence selection module then selects that appropriate sequence, namely sequence “+0.21 ns” from the subset of sequences associated with signal #2 and will send the start signal at the appropriate time in step 364 to the digital sample stream generator 310. The start signal 364 comprises an indication of the second subset of sequences 108b, namely “signal #2”, an indication of the appropriate sequence within that subset, namely “+0.21 ns”.

[0139] In the embodiment of figure 3B, the duration that is indicated by each command signal is a relative start time in that it indicates the start time of the next operation relative to the start time of the present operation. The sequence selection module may determine a rounded-off relative start time, which may involve subtracting from the duration, i.e. the relative start time in this embodiment, the remainder duration determined for this duration. This for example happens in steps 352 and 356.

[0140] The sequence selection module may further, if it determines that the counter value has become equal to or larger than the first time resolution, not only lower the counter value by the first time resolution, but also increase the rounded-off relative start time by the first time resolution. This is why the relative start time that is determined in step 360 is 19 ns, although the rounded-off relative start time that is determined based on the duration 18.61 ns would be 18 ns. At this point, the small time delays that could not be accounted for in the scheduling by the signal generator add up to a value for which the signal generator can at least partially account in its scheduling.

[0141] Figure 3C is a flow chart illustrating a method for generating a digital sample stream according to an embodiment. In this embodiment, the sequence selection module performs a sequence of steps for each duration as indicated by a respective command signal 320. This sequence comprises steps 385, 386 and optionally 387.

[0142] Step 385 comprises adding a previous remainder duration to the duration in question to obtain an increased duration. In step 385a, the previous remainder duration is 0, because command signal 320a is the first command signal of the experiment. Hence, in step 385a the increased duration is determined to be 18.50 ns.

[0143] Step 386 comprises determining a remainder of the increased duration. This remainder duration is the remainder of the division of increased duration by the first time resolution. In step 386a, the remainder duration is 0.50 ns. After all, the first time resolution is 1 ns.

[0144] Optional step 387 comprises determining a rounded off relative start time, which may be understood to be a relative start time at which the signal generator can schedule output of a digital sample. Determining this rounded off relative start time may involve subtracting the remainder determined in step 386 from the increased duration determined in step 385. To illustrate, in step 387a, the rounded off relative start time is determined as 18 ns.

[0145] The remainder duration determined in step 386 may then be included in the start signal for the operation as indicated by the next command signal. To illustrate, start signal 328 that is sent for play command signal 320b comprises an indication of the subset of sequences “signal #1”, and an indication of the appropriate sequence within that subset, namely “+0.50ns”. The “+0.50ns” would typically be an indication of the sequence representing a time-shifted, e.g. time-delayed, version of signal #1 that has been time-shifted by 0.50 ns relative to a reference signal #1. This reference signal would typically be the signal as represented by the sequence that would be selected if the remainder duration determined in step 386a would be 0. The rounded off start time is for example provided to a countdown module that is part of the sequence selection module and counts a relative start time expressed in the first time resolution, to zero. The sequence selection module may be configured to, once the countdown module reaches zero, send the start signal to the digital sample stream generator.

[0146] The sequence of steps is also performed for the duration as indicated by command signal 320b, namely for duration 20.10 ns. The increased duration is determined in step 385b as 20.60 ns. The “previous remainder duration” 0.50 ns is the remainder duration that was determined in step 386a. The remainder of this increased duration is determined in step 386b to be 0.60 ns and the rounded off relative start time is determined as 20 ns in step 387b.

[0147] The sequence of steps is performed for the durations indicated by command signals 320c and 320d as well, as shown.

[0148] Figure 3D is a flow chart illustrating a method for generating a digital sample stream as referred to herein. The command signals 320 indicate the respective start times for their respective operations. This eases the determination of the start times for the sequence selection module in that the sequence selection module 318 can determine the start times based on the command signals in a more direct manner.

[0149] In this embodiment, the wait command signals may be omitted, because the play command signals already indicate the appropriate start times. The start times in figures 3A and 3B may be referred to as absolute start times in that each start time indicates a time point relative to a reference time point, which would typically be the start of the experiment.

[0150] Figure 3E shows part of a digital sample stream that will be generated by any of the embodiments shown in figures 3A, 3B, 3C, 3D. After a period of 18 ns of not outputting any digital samples, the digital sample stream generator outputs the first digital sample of sequence “SEQ1(50)”. Herein, “SEQ1” may be understood to indicate the first subset of sequences 108a associated with a first analog signal in that the sequences in this subset “SEQ1” represent time-shifted versions of this first analog signal. Further, the “(50)” may be understood to indicate the particular sequence in subset SEQ1 that represents a version of the first analog signal that has a time-shift of +0.50 ns relative to a reference version. The analog signal represented by SEQ1(50) is time-shifted by +0.50 ns, which is correct, because the first command signal 320a indicated a wait duration of 18.50 ns. As a side note, the reference version of this first analog signal would be the version that would be selected if the wait duration would be 18 ns. If that would be the case, then no time-shift would be required since the signal generator is able to schedule output of the first digital sample at 18 ns. Sequence SEQ1(50) is shown to consist of 21 digital samples, which means that the last digital sample of this sequence is output at 38 ns.

[0151] The play command signal 320b indicated that the next operation should be performed 20.10 ns later. Further, wait command signal 320c indicated a wait period of 18.61 ns.

[0152] The sequence “SEQ2(21)” is from the subset of sequences SEQ2 which is associated with the second analog signal and is the sequence that represents a version of the second analog signal that is time-shifted by +0.21 ns relative to the reference version of the second analog signal. This is also correct, since the exact start time of the second analog signal should be 57.21 ns (see figure 3A) so it is appropriate that the first digital sample of SEQ2(21) is output at 57 ns.

[0153] Figure 4A illustrates a method as may be performed by the sequence selection module in the embodiment of figure 3A. The method starts at step 468. Thereafter, in step 469, a “next” command signal is selected for processing. If step 469 is performed for the first time, the next command signal will be the first command signal of the experiment. The command signal indicates an operation to be performed by the digital sample stream generator and a duration in association with that operation.

[0154] In step 471 , the duration is added to a total duration value which is the sum of all previous durations as indicated by all previous command signals. Step 470 comprises determining a remainder duration based on this total duration value. This remainder duration is the remainder of the division of the total duration value by the first time resolution, which is 1 ns in the depicted embodiment. This remainder duration is then subsequently used for the start signal of the next operation as indicated by the next command signal. The sequence selection module may namely determine the appropriate sequence from a subset of sequences based on this remainder duration.

[0155] Step 474 comprises determining a rounded off absolute start time. In the depicted embodiment, this step comprises subtracting the remainder duration as determined in step 470 from the total duration determined in step 471. This will yield a rounded off absolute time based on which the sequence selection module can send the start signal to the digital sample stream generator at the correct time.

[0156] The dashed line between step 474 and 469 represents a signal indicating that step 469 can be performed again or, in other words, that the next command signal can be processed. If this next command signal is a play command signal, then step 477 may be performed in which a start signal is sent for this operation. This step may also comprise the sequence selection module selecting, based on the remainder duration determined in step 470 for the previous command signal, the correct sequence from the subset of sequences that is associated with the signal indicated by the command signal that is currently processed. Figure 4B illustrates a method as may be performed by the sequence selection module in figure 3B. The method starts at step 468. Thereafter, in step 469, a “next” command signal is selected for processing. If step 469 is performed for the first time, the next command signal will be the first command signal of the experiment. The command signal indicates an operation to be performed by the digital sample stream generator and a duration in association with that operation. In the embodiment of figure 4B, this duration is involved both in step 470 and in step 474. Step 470 comprises determining a remainder of the duration, for example by determining the remainder of the division of the duration by the time resolution, which in this embodiment is 1 ns. In step 471 , this determined remainder is added to a counter value.

[0157] Step 474 comprises determining a rounded off relative start time, which may be understood to be a start time at a time resolution at which the signal generator can schedule output of digital samples, e.g. a start time at the first time resolution. Based on this relative start time the sequence selection module can determine when to exactly send the next start signal to the digital sample stream generator.

[0158] Step 472 comprises comparing the counter value with the first time resolution, in particular determining whether the counter value is smaller than the first time resolution. In the depicted embodiment, the first time resolution is 1 ns, so that step 471 comprises determining whether the counter value is smaller than 1 ns. If this is the case, then the counter value is not lowered and fed back to step 471 so that a next remainder determined in the next iteration can be added to it. The counter value may then be used in step 477. In particular, the sequence selection module may select the appropriate sequence from a subset of sequences based on the counter value. Further, the rounded off relative start time determined in step 474 may then be input in step 473 which comprises a countdown module counting down this rounded off relative start time and causing transmission of the start signal once it reaches zero.

[0159] Alternatively, if the counter value is equal to or larger than 1 ns, then the counter value is lowered by 1 ns (step 475) and this lowered counter value is fed back to step 471 so that a next remainder as determined in the next iteration can be added to it. Further, step 476 is performed which comprises increasing the relative start time as determined in step 474 by 1 ns. The lowered counter value and the increased relative start time are then used in steps 473 and 477 similarly as described above.

[0160] The dashed lines from steps 472 and 476 indicate that after step 472 or 476 has been performed, a next command signal may be processed (step 469).

[0161] Figure 4C illustrates a method as may be performed by the sequence selection module in figure 3C. Herein, the duration as indicated by a command signal is added to a previous remainder duration in step 471 to obtain an increased duration. Based on this increased duration, a remainder duration is determined in step 470, which may be understood to be the remainder of the division of the increased duration by the first time resolution, which is 1 ns in the depicted embodiment. This remainder duration is then used in step 477, in which the sequence selection module selects the appropriate sequence from a subset of sequences based on this remainder duration. In step 474, a rounded off relative start time is determined, for example by subtracting the remainder duration determined in step 470 from the increased duration determined in step 471. This rounded off relative start time may then be provided to a countdown module that performs step 473 of counting down to zero and causing transmission of a start signal once it reaches zero.

[0162] Figure 5 schematically illustrates a signal generator 500 according to an embodiment. The signal generator may comprise a field-programmable device 580, such as a field- programmable gate array (FPGA), having programmed thereon several components of the signal generator 500. As known, a field-programmable device 500 may be configured using hardware description language and can achieve high processing speeds, which is very useful in the context of controlling quantum devices, especially if the quantum devices have relatively short coherence times. Additionally or alternatively, the signal generator 500 comprises an ASIC comprising at least part of the memory system 504.

[0163] In the embodiment of figure 5, the field-programmable device 580 comprises an address memory 509, a main memory 511, a digital sample stream generator 510a, a further digital sample stream generator 510b, arbitrary waveform generator path 582, a DAC 584a and a DAC 584b. It should be appreciated that achieving the technical advantages of the signal generator disclosed herein does not necessarily require these components to be implemented on a field-programmable device.

[0164] The signal generator 500 comprises a memory system 504 that comprises a main memory 511 that stores the plurality of sequences of digital samples. Preferably, the sequences that are to be converted into analog control signals are dynamically selected, for example in the sense that the selection depends on a current state of the quantum device. Hence, the memory system preferably stores many sequences in order to be able to appropriately control the quantum device as desired for any given state of the quantum device.

[0165] The digital sample stream generators 510 are configured to generate respective digital sample streams based on sequences of digital samples obtained from the memory system 504. Each of the digital sample stream generators 510 may thus have to obtain digital samples from the main memory 511 in order to obtain all digital samples of a sequence. To this end, the digital sample stream generators 510 receive respective start signals from the sequence selection module 518. Each start signal preferably indicates a sequence of digital samples and is preferably accurately timed by the sequence selection module.

[0166] In order to correctly retrieve digital samples from the main memory 511, the digital sample stream generators 510 may make use of address memory 509. The address memory 509, if present, may namely store, for each sequence stored in the main memory 511 , a sequence indicator of the sequence in association with an address indicator indicative of a location in the main memory of the first sample of the sequence. Preferably, the address memory would also store, for each stored sequence indicator, a length indicator indicative of how many digital samples are in the sequence indicated by the sequence indicator. The digital sample stream generators 510 may then, upon being instructed to incorporate a particular sequence of digital samples into the digital sample stream that it generates, retrieve the address indicator and length indicator for that particular sequence from the address memory 509 and may be able to determine the memory locations of all digital samples of that particular sequence in the main memory 511.

[0167] In the embodiment of figure 5, the digital sample stream generators 510 provide their generated digital sample streams to an arbitrary waveform generator path 582. Arbitrary waveform generator path 582 is optional and may be configured to add features like a dynamically settable offset and gain as well as IQ mixing with a dynamically settable frequency and phase.

[0168] In turn, the arbitrary waveform generator path 582 provides the digital sample streams to respective DACs, each of which is configured to convert the digital sample stream into analog signals represented by the sequences of digital samples obtained from the memory system. The analog signals can then be provided to a quantum device for controlling the quantum device, for example for performing gate operations. The DAC 584a and the DAC 584b would typically be identical, but this is not strictly required.

[0169] Figure 5 shows a data processor 588 that is configured to receive instruction signals. Each instruction signal comprises an indication of a subset of sequences and a duration value and a unit of time. The data processor is configured to determine, for each received instruction signal, a command signal based on the instruction signal in question. Herein, determining the command signal comprises determining the duration to be indicated by the command signal based on the duration value and the unit of time. Thereafter, the data processor sends the command signal to the sequence selection module.

[0170] To illustrate, a first instruction signal may be of the form {timescale = 100 ps; signal = signal #1 ; duration = 202}. The value 202 thus indicates 202 * 100 ps = 20.2 ns. In an embodiment, the duration as indicated by any command signal is always expressed using the same timescale, for example 1 ns. In that case, the command signal that the data processor would determine based on the first instruction signal could be in the form {play signal #1; duration = 20.2}. Thereafter, a second instruction signal may be received of the form {timescale = 1ms; wait; duration = 1}. In this case, value 1 thus indicates 1.000.000 ns. The command signal that would be determined based on the second instruction signal could be in the form {wait; duration = 1.000.000}.

[0171] Figure 6 illustrates how the sequences may be stored in the memory system. The memory system 604 stores three individual sequences 689a, 689b, 689c. These sequences are not part of a subset of sequences. The memory system 604 stores two subsets of sequences 608a and 608b. Subset 608a comprises four sequences and subset 608b also comprises four sequences. Thus, each of waveforms 2, 3, 4, 5 is the same signal, yet a differently time-shifted version thereof and each of waveforms 7, 8, 9, 10 is also the same signal yet a differently time-shifted version thereof. Of course, the signal of waveforms 2, 3, 4, 5 is different from the signal of waveforms 7, 8, 9, 10.

[0172] In an embodiment, each sequence stored in memory system 604 is stored in association with one or more further indicators. In figure 6, three such further indicators are shown, namely a further indicator “Set” indicating whether the sequence in question belongs to a subset of sequences or not, a further indicator “Set start” indicating whether the sequence in question is the first sequence of a subset, and a further indicator “Scale” indicating the time-shifts between the different versions of the signal as represented by the sequence in the subset in question. In figure 6, within a subset of sequences, the time-shift between the two signals as represented by any two subsequent sequences is the same. However, this is not strictly required.

[0173] Figure 6 does show that the timescale for the subset 608a “Y” is different from the timescale for the subset 608b “Z”. Thus, the time-shift between waveform 2 and waveform 3 is different from the time-shift between waveform 7 and waveform 8.

[0174] The further indicator “Scale” eases the retrieval of the correct sequence from the memory system. The digital sample stream generator may for example receive a start signal {signal #1 ;+0.50ns}. For this example, it is assumed that this signal #1 is associated with subset 608a. It is also assumed that the reference sequence in each subset is the first sequence of a subset and that the sequences are stored contiguously. The further indicator “timescale” may then indicate that the time-shift between the different versions of the signal in subset 608a is 0.25ns. Then, the digital sample stream generator can easily determine the index of the sequence that should be retrieved. The first sequence of the subset has index 2. Now, since 0.5010.25 =2, the sequence that is to be retrieved can be determined as 2+ 2 = 4. Fig. 7 depicts a block diagram illustrating a data processing system according to an embodiment. This data processing system may represent any of the data processing systems referred to herein, such as the signal generator, data processor, sequence selection module, digital sample stream generator, memory system, countdown modules, referred to herein.

[0175] As shown in Fig. 7, the data processing system 788 may include at least one processor 782 coupled to memory elements 788 through a system bus 797. As such, the data processing system may store program code within memory elements 788.

[0176] Further, the processor 780 may execute the program code accessed from the memory elements 788 via a system bus 797. In one aspect, the data processing system may be implemented as a computer that is suitable for storing and / or executing program code. It should be appreciated, however, that the data processing system 780 may be implemented in the form of any system including a processor and a memory that is capable of performing the functions described within this specification.

[0177] The memory elements 788 may include one or more physical memory devices such as, for example, local memory 789 and one or more bulk storage devices 792. The local memory may refer to random access memory or other non-persistent memory device (s) generally used during actual execution of the program code. A bulk storage device may be implemented as a hard drive or other persistent data storage device. The processing system 780 may also include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from the bulk storage device 792 during execution.

[0178] Input / output (I / O) devices depicted as an input device 794 and an output device 795 optionally can be coupled to the data processing system. Examples of input devices may include, but are not limited to, a keyboard, a pointing device such as a mouse, any of the memories described herein, or the like. Examples of output devices may include, but are not limited to, a monitor or a display, speakers, DACs, or the like. Input and / or output devices may be coupled to the data processing system either directly or through intervening I / O controllers.

[0179] In an embodiment, the input and the output devices may be implemented as a combined input / output device (illustrated in Fig. 7 with a dashed line surrounding the input device 794 and the output device 795) . An example of such a combined device is a touch sensitive display, also sometimes referred to as a "touch screen display" or simply "touch screen". In such an embodiment, input to the device may be provided by a movement of a physical object, such as e.g. a stylus or a finger of a user, on or near the touch screen display. A network adapter 796 may also be coupled to the data processing system to enable it to become coupled to other systems, computer systems, remote network devices, and / or remote storage devices through intervening private or public networks. The network adapter may comprise a data receiver for receiving data that is transmitted by said systems, devices and / or networks to the data processing system 780, and a data transmitter for transmitting data from the data processing system 780 to said systems, devices and / or networks. Modems, cable modems, and Ethernet cards are examples of different types of network adapter that may be used with the data processing system 780.

[0180] As pictured in Fig. 7, the memory elements 788 may store an application 790. In various embodiments, the application 790 may be stored in the local memory 789, the one or more bulk storage devices 792, or apart from the local memory and the bulk storage devices. It should be appreciated that the data processing system 780 may further execute an operating system (not shown in Fig. 7) that can facilitate execution of the application 790. The application 790, being implemented in the form of executable program code, can be executed by the data processing system 780, e.g., by the processor 780. Responsive to executing the application, the data processing system 780 may be configured to perform one or more operations or method steps described herein.

[0181] Various embodiments of the invention may be implemented as a program product for use with a computer system, where the program(s) of the program product define functions of the embodiments (including the methods described herein). In one embodiment, the program(s) can be contained on a variety of non-transitory computer-readable storage media, where, as used herein, the expression "non-transitory computer readable storage media" comprises all computer-readable media, with the sole exception being a transitory, propagating signal. In another embodiment, the program(s) can be contained on a variety of transitory computer-readable storage media.

[0182] Illustrative computer-readable storage media include, but are not limited to: (i) non- writable storage media (e.g., read only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive, ROM chips or any type of solid- state non-volatile semiconductor memory) on which information is permanently stored; and (ii) writable storage media (e.g., flash memory, floppy disks within a diskette drive or hard disk drive or any type of solid-state random-access semiconductor memory) on which alterable information is stored. The computer program may be run on the processor 782 described herein.

[0183] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and / or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments.

Claims

CLAIMS1. A computer-implemented method for generating a digital sample stream for controlling and / or measuring a quantum device, the method comprising a memory system storing a plurality of sequences of digital samples, wherein each sequence out of the plurality of sequences represents an analog signal for controlling and / or measuring the quantum device, wherein the plurality of sequences comprises one or more subsets of sequences, the one or more subsets of sequences comprising a first subset of sequences, wherein each subset of the one or more subsets is associated with an analog signal in that it comprises a first sequence representing a first version of that analog signal and a second sequence representing a second version of that analog signal, wherein the first version and second version have a time-shift relative to each other, the method further comprising a digital sample stream generator generating the digital sample stream based on one or more sequences of digital samples obtained from the memory system, and the method comprising scheduling output of digital samples from the digital sample stream generator at a first time resolution, e.g. at a time resolution of 1 ns, wherein wherein the step of the digital sample stream generator generating the digital sample stream comprises-the digital sample stream generator receiving a start signal indicating the second sequence of the first subset, and-based on the received start signal, the digital sample stream generator retrieving the second sequence of the first subset from the memory system, and-the digital sample stream generator outputting digital samples of the second sequence of the first subset.

2. The computer-implemented according to claim 1 , wherein, for each subset, the time shift between the first version and the second version of the analog signal associated with the subset in question is not an integer multiple of the first time resolution.

3. The computer-implemented method according to claim 1 or 2, wherein, for each subset, the time shift between the first version and the second version of the analog signal associated with the subset in question is smaller than the first time resolution.

4. The computer-implemented method according to any of the preceding claims, further comprising a digital-to-analog converter, DAC, converting the digital sample stream into analog signals for controlling the quantum device.

5. The computer-implemented method according to any of the preceding claims, further comprising an integrator receiving the digital sample stream and performing an integration based on the digital sample stream.

6. The computer-implemented method according to any of the preceding claims, wherein each second sequence in each subset is obtainable by-obtaining the first sequence of the subset, and-upsampling the first sequence, and-time-shifting the upsampled first sequence by the time-shift, and -downsampling the upsampled, time-shifted first sequence.

7. The computer-implemented method according to the preceding claim, wherein timeshifting the upsampled first sequence by the time-shift comprises prepending digital samples, e.g. zero-valued digital sample and / or non-zero-valued digital samples, to the upsampled first sequence.

8. The computer-implemented method according to any of the preceding claims, further comprising a sequence selection module determining, with a second time resolution that is finer than the first time resolution, a first start time for the analog signal associated with the first subset, and the sequence selection module selecting, based on the first start time, the second sequence of the first subset, and the sequence selection module sending the start signal indicating the second sequence of the first subset to the digital sample stream generator.

9. The method according to the preceding claim, wherein the step of the sequence selection module selecting the second sequence comprises-determining a time difference between a time at which output of a digital sample can be scheduled and the first start time, and-based on the time difference, selecting the second sequence of the first subset.

10. The computer-implemented method according to claim 8 or 9, further comprising the sequence selection module receiving a command signal indicating the analog signal associated with the first subset and indicating the first start time, and the sequence selection module determining the first start time based on the received command signal.

11. The computer-implemented method according to any of the preceding claims, further comprising a or the sequence selection module receiving a plurality of command signals, wherein each command signal of the plurality of command signals indicates an operation to be performed by the digital sample stream generator and indicates a duration associated with that operation, wherein the plurality of command signals comprises a first command signal indicating the analog signal associated with the first subset.

12. The computer-implemented method according to claim 11 , wherein the plurality of command signals comprises one or more wait command signals that respectively indicate a wait duration during which the digital sample stream generator does not output digital samples and one or more play command signals, each play command signal indicating a subset of sequences in association with a play duration.

13. The computer-implemented method according to claim 11 or 12, wherein the sequence selection module determines the first start time for the analog signal associated with the first subset based on a first cumulative duration, the first cumulative duration being a summation of first one or more previous durations indicated by respective first one or more previous command signals that are previous to the first command signal, wherein at least one of the first one or more previous durations is indicated with a time resolution that is finer than the first time resolution.

14. The computer-implemented method according to any of the preceding claims 11 - 13, the method comprising the sequence selection module selecting, based on a first remainder duration, the second sequence of the first subset, and the sequence selection module sending the start signal indicating the second sequence of the first subset to the digital sample stream generator, whereinthe first remainder duration is equal to a remainder of a division of a or the first cumulative duration by the first time resolution, the first cumulative duration being a or the summation of first one or more previous durations indicated by respective first one or more previous command signals that are previous to the first command signal.

15. The computer-implemented method according to claim 14, further comprising the sequence selection module determining the first remainder duration, this step comprising performing a sequence of steps for each duration indicated by the respective first one or more previous command signals, wherein the sequence of steps comprises:(i) increasing the duration in question by a previous remainder duration, and(ii) determining a remainder duration of the increased duration, the remainder duration being the remainder of a division of the increased duration by the first time resolution, wherein the remainder duration determined in step (ii) is used as the previous remainder duration in a next sequence of steps performed for a next duration, the method further comprising determining the remainder duration that is determined in step (ii) in the sequence of steps that is performed for the duration indicated by a command signal that precedes, e.g. directly precedes, the first command signal, as the first remainder duration.

16. The computer-implemented method according to claim 14, further comprising the sequence selection module determining the first remainder duration, this step comprising performing a sequence of steps for each duration indicated by the respective first one or more previous command signals, wherein the sequence of steps comprises:(i) determining a remainder duration of the duration in question, the remainder duration being the remainder of a division of the duration in question by the first time resolution, and(ii) increasing a counter value by the determined remainder duration, and(iii) determining that the counter value is equal to or larger than the first time resolution and, based on this determination, lowering the counter value by the first time resolution or determining that the counter value is lower than the first time resolution and, based on this determination, refraining from lowering the counter value, wherein the counter value resulting from step (iii) is used as counter value in step (ii) in a next sequence of steps performed for a next duration, the method further comprising determining the counter value resulting from step (iii) in the sequence of steps that is performed for the duration indicated by a command signal that precedes, e.g. directly precedes, the first command signal, as the first remainder duration.

17. The computer-implemented method according to any of the preceding claims, wherein the one or more subsets of sequences comprises a third subset associated with a third analog signal, wherein for the first subset, the first version and the second version of the analog signal associated with the first subset have a first time-shift relative to each other, and for the third subset, the first version and the second version of the analog signal associated with the third subset have a second time-shift relative to each other that is different from the first time-shift.

18. A signal generator for generating a digital sample stream for controlling and / or measuring a quantum device, the signal generator comprising a memory system for storing a plurality of sequences of digital samples, wherein each sequence out of the plurality of sequences represents an analog signal for controlling the quantum device, wherein the plurality of sequences comprises one or more subsets of sequences, the one or more subsets of sequences comprising a first subset of sequences, wherein each subset of the one or more subsets is associated with an analog signal in that it comprises a first sequence representing a first version of that analog signal and a second sequence representing a second version of that analog signal, wherein the first version and second version have a time-shift relative to each other, the signal generator further comprising a digital sample stream generator configured to generate the digital sample stream based on one or more sequences of digital samples obtained from the memory system, wherein the signal generator is configured to schedule output of digital samples at a first time resolution, e.g. at a time resolution of 1 ns, wherein the digital sample stream generator is configured to perform steps of:-receiving a start signal indicating the second sequence of the first subset, and-based on the received start signal, retrieving the second sequence of the first subset from the memory system, and- outputting digital samples of the second sequence of the first subset.

Citation Information

Patent Citations

  • Techniques for control of quantum systems and related systems and methods

    US20190049495A1

  • Dynamic control for a quantum computer

    US20230170916A1

  • Quantum computing apparatus and associated methods

    US20230316118A1