{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "33f4bb3c",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Visualiser la synchronisation des circuits\"\n",
        "description: \"Visualisez le timing des circuits générés en créant une figure que vous pouvez consulter, télécharger ou les deux.\"\n",
        "---\n",
        "\n",
        "{/* cspell:ignore mactex, backgroundcolor, lightgreen */}\n",
        "\n",
        "<span id=\"visualize-circuit-timing\" />\n",
        "\n",
        "# Visualiser la synchronisation des circuits\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "bfada4f0",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "{/*\n",
        "  DO NOT EDIT THIS CELL!!!\n",
        "  This cell's content is generated automatically by a script. Anything you add\n",
        "  here will be removed next time the notebook is run. To add new content, create\n",
        "  a new cell before or after this one.\n",
        "  */}\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"Versions de package\">\n",
        "    Le code figurant sur cette page a été développé selon les exigences suivantes.\n",
        "    Nous recommandons d'utiliser ces versions ou des versions plus récentes.\n",
        "\n",
        "    ```\n",
        "    qiskit[all]~=2.5.1\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c3240c62",
      "metadata": {},
      "source": [
        "Outre [la](/docs/guides/visualize-circuits) visualisation des instructions d'un circuit, vous pouvez également visualiser la planification d'un circuit à l'aide de la méthode [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) Qiskit. Cette visualisation pourrait vous aider à repérer rapidement les temps d'inactivité des qubits, par exemple. Cependant, cette méthode ne donne pas de résultats précis pour les circuits dynamiques.  Pour visualiser la planification dynamique des circuits, utilisez la `draw_circuit_schedule_timing` méthode décrite dans le guide « [Visualisation de la synchronisation des circuits](/docs/guides/qiskit-runtime-circuit-timing) ».\n",
        "\n",
        "<span id=\"examples\" />\n",
        "\n",
        "## Exemples\n",
        "\n",
        "Pour visualiser un programme de circuit programmé, vous pouvez appeler cette fonction avec un ensemble d'arguments de contrôle. La plupart des aspects de l'image de sortie peuvent être modifiés par une feuille de style, mais ce n'est pas obligatoire.\n",
        "\n",
        "<span id=\"draw-with-the-default-stylesheet\" />\n",
        "\n",
        "### Dessiner avec la feuille de style par défaut\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "5b21b8c1",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<Image src=\"/docs/images/guides/visualize-circuit-timing/extracted-outputs/5b21b8c1-0.svg\" alt=\"Output of the previous code cell\" />"
            ]
          },
          "execution_count": 1,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "from qiskit.visualization.timeline import draw\n",
        "from qiskit.providers.fake_provider import GenericBackendV2\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "\n",
        "backend = GenericBackendV2(5)\n",
        "\n",
        "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n",
        "isa_circuit = pm.run(qc)\n",
        "\n",
        "draw(isa_circuit, target=backend.target)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "37f62ecd",
      "metadata": {},
      "source": [
        "<span id=\"draw-with-a-stylesheet-suited-for-program-debugging\" />\n",
        "\n",
        "### Dessiner avec une feuille de style adaptée au débogage de programmes\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "907dc46c",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<Image src=\"/docs/images/guides/visualize-circuit-timing/extracted-outputs/907dc46c-0.svg\" alt=\"Output of the previous code cell\" />"
            ]
          },
          "execution_count": 2,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit import QuantumCircuit\n",
        "from qiskit.visualization.timeline import draw, IQXDebugging\n",
        "from qiskit.providers.fake_provider import GenericBackendV2\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "qc.measure_all()\n",
        "\n",
        "backend = GenericBackendV2(5)\n",
        "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n",
        "isa_circuit = pm.run(qc)\n",
        "draw(isa_circuit, style=IQXDebugging(), target=backend.target)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "5406fe18",
      "metadata": {},
      "source": [
        "Vous pouvez créer des fonctions de générateur ou de mise en page personnalisées et mettre à jour une feuille de style existante avec les fonctions personnalisées. De cette manière, vous pouvez contrôler la plupart des aspects de l'image de sortie sans modifier la base de code du tiroir de circuit programmé.  Voir la référence de l [`timeline_drawer`](/docs/api/qiskit/qiskit.visualization.timeline_drawer) Pour plus d'exemples.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9daa7cf7",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## Etapes suivantes\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Recommandations\">\n",
        "  * [Visualisation de la synchronisation des circuits](/docs/guides/qiskit-runtime-circuit-timing) lors de l'utilisation du service de calcul « IBM Quantum »\n",
        "  * [Visualiser les circuits](/docs/guides/visualize-circuits)\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}