Qiskit / qiskit

Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.
https://www.ibm.com/quantum/qiskit
Apache License 2.0
5.23k stars 2.36k forks source link

Add QASM3 stretch operation #13279

Open mtreinish opened 1 month ago

mtreinish commented 1 month ago

In OpenQASM 3 there is a concept of a timing stretch:

https://openqasm.com/language/delays.html#duration-and-stretch-types

that are like delays which can grow to account for other timing constraints. As we move to add more dynamic circuits where qiskit is unable to know the timing constraints around the evaluation and execution of a control flow block having a stretch will provide a useful tool for having scheduling passes that work in a dynamic circuit. We should add a new operation that models the concept of a stretch similar (if not exactly) as defined in openqasm3 that we can use for this purpose (we can split this out into a separate issue as needed).

mtreinish commented 1 month ago

The other thing is this probably depends on #12966 as we'll want to add this new operation directly to rust like the existing Delay instruction. So this will depend on how we decided to add non-gate standard operations to rust.