# US 11,115,012 B2 · Software-defined pulse orchestration platform

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,115,012 B2
- Document ID: US11115012B2
- Status: Granted
- Kind: B2
- Application number: 17/095,944
- Filed: 2020-11-12
- Published: 2021-05-13
- Granted: 2021-09-07
- Earliest claimed: 2019-09-02
- Assignees: Quantum Machines
- Applicants: Quantum Machines
- Inventors: Yonatan Cohen; Nissim Ofek; Itamar Sivan; Tal Shani
- Web page: https://patentgrep.com/patent/US11115012B2

## CPC

- G06N 3/02: Neural networks
- H03K 3/38: by the use, as active elements, of superconductive devices
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 10/00: Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N 10/40: Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
- G06N 10/60: Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
- G06N 10/80: Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
- H03K 19/195: using superconductive devices
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H03K: PULSE TECHNIQUE (measuring pulse characteristics G01R; modulating sinusoidal oscillations with pulses H03C; transmission of digital information H04L; discriminator circuits detecting phase difference between two signals by counting or integrating cycles of oscillation H03D3/04; automatic control, starting, synchronisation or stabilisation of generators of electronic oscillations or pulses where the type of generator is irrelevant or unspecified H03L; coding, decoding or code conversion, in general H03M)

## Abstract

A system comprises pulse program compiler circuitry operable to analyze a pulse program that includes a pulse operation statement, and to generate, based on the pulse program, machine code that, if loaded into a pulse generation and measurement circuit, configures the pulse generation and measurement circuit to generate one or more pulses and/or process one or more received pulses. The pulse operation statement may specify a first pulse to be generated, and a target of the first pulse. The pulse operation statement may specify parameters to be used for processing of a return signal resulting from transmission of the first pulse. The pulse operation statement may specify an expression to be used for processing of the first pulse by the pulse generation and measurement circuit before the pulse generation and measurement circuit sends the first pulse to the target.

## Claims

### Claim 1

A system comprising:
a compiler operable to generate machine code from a program, wherein:
the program comprises a pulse operation statement,
the pulse operation statement specifies a pulse to be generated,
the pulse operation statement specifies a target of the pulse, and
if loaded into a hardware circuit, the machine code configures the hardware circuit to generate the pulse and send the pulse to the target.

### Claim 2 (depends on 1)

The system of claim 1, wherein:
the program comprises a declaration statement that defines a variable, and
the pulse operation statement references the variable.

### Claim 3 (depends on 2)

The system of claim 2, wherein the variable is part of an expression that determines a characteristic of the pulse.

### Claim 4 (depends on 3)

The system of claim 3, wherein the characteristic is one of an amplitude of the pulse and a duration of the pulse.

### Claim 5 (depends on 2)

The system of claim 2, wherein the machine code, if loaded into the hardware circuit, configures the hardware circuit to determine a value to be assigned to the variable during runtime of the machine code.

### Claim 6 (depends on 1)

The system of claim 1, wherein the compiler is operable to, during the generation of the machine code, determine an intermediate frequency of the pulse based on the target.

### Claim 7 (depends on 1)

The system of claim 1, wherein:
the pulse operation statement specifies parameters to be used for processing a return signal resulting from transmission of the pulse, and
the machine code, if loaded into the hardware circuit, configures the hardware circuit to process the return signal.

### Claim 8 (depends on 7)

The system of claim 7, wherein:
the processing of the return signal comprises integration of the return signal, and
the parameters specify integration weights for the integration.

### Claim 9 (depends on 7)

The system of claim 7, wherein the parameters comprise parameters of a neural network to be used for the processing of the return signal.

### Claim 10 (depends on 7)

The system of claim 7, wherein:
the processing of the return signal comprises integration of the return signal, and
the parameters specify time parameters to use for the integration.

### Claim 11 (depends on 7)

The system of claim 7, wherein:
the processing of the return signal comprises demodulation of the return signal, and
the parameters specify a frequency to use for the demodulation.

### Claim 12 (depends on 7)

The system of claim 7, wherein:
the return signal comprises a series of pulses and the processing of the return signal comprises one of:
counting a number of pulses in a given time window, and
identifying an arrival time of each pulse relative to a beginning of a specified time window.

### Claim 13 (depends on 1)

The system of claim 1, wherein:
the program comprises a declaration statement that defines a variable,
the pulse operation statement references the variable,
the machine code, if loaded into the hardware circuit, configures the hardware circuit to process a return signal, and
the pulse operation statement specifies that a result of processing the return signal is to be associated with the variable and stored to memory.

### Claim 14 (depends on 1)

The system of claim 1, wherein:
the pulse operation statement specifies an expression to be used for processing the pulse by the hardware circuit before the hardware circuit sends the pulse to the target, and
the machine code, if loaded into the hardware circuit, configures the hardware circuit to perform the processing of the pulse before sending the pulse to the target.

### Claim 15 (depends on 1)

The system of claim 1, wherein:
the pulse operation statement specifies a condition expression that is evaluated during runtime by the hardware circuit, and
the condition expression must evaluate to a determined value before the pulse is sent to the target.

### Claim 16 (depends on 1)

The system of claim 1, wherein the program comprises a phase alteration statement that specifies an expression for an angle by which to alter a phase of a local oscillator of the hardware circuit that is associated with the target.

### Claim 17 (depends on 1)

The system of claim 1, wherein the program comprises an update frequency statement that specifies an expression for the frequency to which to set a local oscillator of the hardware circuit that is associated with the target.

### Claim 18 (depends on 1)

The system of claim 1, wherein:
the program comprises a flow control statement, and
the machine code, if loaded into the hardware circuit, configures the hardware circuit to wait for a signal before resuming execution of the program.

### Claim 19 (depends on 1)

The system of claim 1, wherein:
the program comprises a conditional statement that specifies a condition expression and one or more conditioned statements, and
the one or more conditioned statements are executed, at runtime, only if the condition expression evaluates to a determined value.

### Claim 20 (depends on 19)

The system of claim 19, wherein:
the conditioned expression comprises a variable, and
the machine code, if loaded into the hardware circuit, configures the hardware circuit to process a return signal and determine a value of the variable based on the processing of the return signal.

### Claim 21 (depends on 1)

The system of claim 1, wherein the compiler is operable to:
parse a machine specification that comprises a definition of the pulse and a definition of the target, and
generate the machine code based on the machine specification.

### Claim 22 (depends on 1)

The system of claim 1, wherein:
the pulse operation statement specifies a break condition, and
the machine code, if loaded into the hardware circuit, configures the hardware circuit to stop generation of the pulse when the break condition evaluates to a determined value.

### Claim 23 (depends on 1)

The system of claim 1, wherein:
the program comprises an align statement that specifies a plurality of pulse targets, and
the machine code, if loaded into the hardware circuit, configures the hardware circuit to wait for execution of instructions involving any of the plurality of pulse targets to complete before beginning execution of subsequent instructions involving any of the plurality of pulse targets.

### Claim 24 (depends on 1)

The system of claim 1, wherein:
the program comprises a wait statement that specifies a target and an amount of time to wait before sending a pulse to the target.

### Claim 25 (depends on 1)

The system of claim 1, wherein:
the program comprises a variable assignment statement that assigns an expression to a variable that is associated with a register that can be read from and/or written to by a programming subsystem during runtime of the machine code, and
the pulse operation statement references the variable.

### Claim 26 (depends on 1)

The system of claim 1, wherein:
the program comprises a variable declaration statement that assigns a first variable to a second variable, where the second variable is a reserved variable reference to a register that can be read from and/or written to by a programming subsystem during runtime of the machine code, and
the pulse operation statement references the second variable.
