I've read the papers about quantum hardware. These papers [1] [2] mention that native gates of IBM quantum computer are $R_x(\pi/2), R_z(\lambda)\space and \space CR \space (Cross Resonance)$

My questions are:

  1. Getting native gates in qikit, we use transpile(). So, does "rx" does it equal to $R_x(\pi/2)$?
  2. How to decompose CX to CR gates from that transpile()?
  3. For Ion trapped native qubits, there is $Rxy(\theta,\phi)$, so does it equal to "rx" and "ry" in transpile() ?

Code example:

from qiskit import QuantumCircuit, transpile
qc = QuantumCircuit(2)
qc = transpile(qc, basis_gates=['rx', 'ry', 'cx'])

1 Answer 1


About the native gates on IBM Quantum computers, you can see for example on ibmq_bogota here that the basis gates are CX, ID, RZ, SX, X :

  • CX is the usual 2-qubits CNOT gate;
  • ID is the single qubit identity gate;
  • X is the single qubit NOT gate and SX is its square root;
  • RZ is the single qubit rotation about the Z-axis, see here its definition, and it is the single parameterised gate of the basis gates set so technically it will be $RZ(\lambda)$ but we'll denote it via RZ by misuse of language since it's clear it is $RZ(\lambda)$.

To sum up you'll have to pass basis_gates=['cx', 'id', 'rz', 'x', 'sx'] to the transpiler to use basis gates of ibm machines.

Now about $R_{X,Y}$ I can't seem to find it on qiskit but if its definition is similar to $R_{Z,X}$ then by using this kind of tools you can implement it easily I think.

Finally, if you wish to play more with hardware, then you might be interested in qiskit pulse, see some tutos in the documentation or the textbook.


Not the answer you're looking for? Browse other questions tagged or ask your own question.