Pulse operations & conversion#
Provides a Qrisp frontend for IQM’s IQMClient pulse-level compiler. This module does
not perform pulse-level compilation itself — it lets you construct pulse-aware
Qrisp circuits, extract them as IQM Circuit objects, and then
hand them to IQMClient for compilation into a pulse-level playlist. For more info
on how to modify and build pulse level compilation schedules, please see the
IQMClient documentation.
A typical workflow:
import os
from qrisp import QuantumVariable, h, cx, measure
from iqm.qrisp_iqm import IQMBackend, extract_iqm_pulse, quantum_op_to_qrisp_func
from iqm.pulse.quantum_ops import QuantumOp
os.environ["IQM_SERVER_URL"] = "https://resonance.iqm.tech/"
os.environ["IQM_QUANTUM_COMPUTER"] = "garnet"
os.environ["IQM_TOKEN"] = "<YOUR_TOKEN>"
backend = IQMBackend()
dqa = backend.iqm_client.get_dynamic_quantum_architecture()
# Define a custom pulse operation (e.g. a delay)
delay = quantum_op_to_qrisp_func(QuantumOp(name="delay", params={"duration": (float,)}))
@extract_iqm_pulse(dqa=dqa)
def my_circuit():
qv = QuantumVariable(2)
h(qv[0])
delay(qv[0], duration=300e-9) # survives transpilation as a native pulse op
cx(qv[0], qv[1])
return measure(qv)
# Extract as IQM pulse Circuit
meas_keys, iqm_pulse_qc = my_circuit()
from iqm.iqm_client import IQMClient
iqm_client = IQMClient()
# Compile to a pulse playlist via IQMClient
compiler = iqm_client.get_standard_compiler()
playlist, context = compiler.compile([iqm_pulse_qc])
extract_iqm_pulse() traces a Qrisp function via Jasp and converts it to an
IQM Pulse Circuit. IQMPulseOperation lets you embed native
pulse instructions (delays, barriers, custom gates) that survive transpilation unchanged.
Circuit conversion#
Converts a Qrisp QuantumCircuit to an IQM |
Pulse operations#
A Qrisp |
|
|
Convenience function that converts an IQM |
|
Decorator that traces a Qrisp quantum function via Jasp, transpiles the
resulting circuit, and converts it to an IQM |
Custom pulse operations#
A pre-built delay operation that inserts idle time into the circuit.
This is a |