{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a1b2c3d4",
   "metadata": {},
   "source": [
    "# Supported architecture in Boulder Opal\n",
    "\n",
    "**Identify the supported QPU models and controller vendor models that are supported in the Boulder Opal platform**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a1b2body",
   "metadata": {},
   "source": [
    "Boulder Opal integrates three layers: the quantum processor (QPU), the classical control electronics, and a software wiring abstraction that maps logical operations to physical hardware channels.\n",
    "\n",
    "This document covers each supported QPU model and the control electronics families within the Boulder Opal platform."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "sec01-md",
   "metadata": {},
   "source": [
    "## 1. Supported quantum processors\n",
    "\n",
    "Boulder Opal supports QuantWare superconducting processors in several form factors. Each model defines a fixed qubit count, connectivity topology, and coupling mechanism.\n",
    "\n",
    "<table>\n",
    "  <thead>\n",
    "    <tr>\n",
    "      <th>Vendor</th>\n",
    "      <th>Model</th>\n",
    "      <th>Qubit count</th>\n",
    "    </tr>\n",
    "  </thead>\n",
    "  <tbody>\n",
    "    <tr>\n",
    "      <td rowspan=\"4\" style=\"text-align: center; vertical-align: middle;\">QuantWare</td>\n",
    "      <td>Soprano-D</td>\n",
    "      <td>5</td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "      <td>Contralto-A</td>\n",
    "      <td>17</td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "      <td>Contralto-D</td>\n",
    "      <td>17–21</td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "      <td>Tenor-D</td>\n",
    "      <td>64</td>\n",
    "    </tr>\n",
    "    <tr>\n",
    "      <td style=\"text-align: center; vertical-align: middle;\">Rigetti</td>\n",
    "      <td>Novera</td>\n",
    "      <td>9</td>\n",
    "    </tr>\n",
    "  </tbody>\n",
    "</table>\n",
    "\n",
    "Other custom or private device models may also be supported. Please discuss with your Q-CTRL point of contact to verify any additional supported devices.\n",
    "\n",
    "See [Device Configuration](https://docs.q-ctrl.com/boulder-opal/autocalibration/get-started-with-boulder-opal-autocalibration) reference documents for specific details of each supported device"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "sec02-md",
   "metadata": {},
   "source": [
    "## 2. Supported control electronics\n",
    "\n",
    "The platform supports two controller families. Both provide the RF drive, readout, and DC flux channels required for superconducting qubit control."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "sec02a-md",
   "metadata": {},
   "source": [
    "### 2.1 Qblox\n",
    "\n",
    "Qblox instruments provide modular control through dedicated RF and baseband modules:\n",
    "\n",
    "| Module | Role |\n",
    "| --- | --- |\n",
    "| QCM-RF | Qubit drive: generates IQ-modulated microwave pulses |\n",
    "| QRM-RF | Readout: transmits probe tones and digitizes the return signal |\n",
    "| QCM (baseband) | Flux control: outputs DC and fast-flux pulses |\n",
    "\n",
    "Register a Qblox system through a `QbloxSystemInfo` object.\n",
    "You can find more information in our [tutorial for Qblox](https://docs.q-ctrl.com/boulder-opal/autocalibration/discover/setting-up-boulder-opal-with-qblox-controllers)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "sec02b-md",
   "metadata": {},
   "source": [
    "### 2.2 Quantum Machines\n",
    "\n",
    "Quantum Machines OPX controllers handle drive, readout, and flux from a single programmable platform; the Octave companion module provides up- and down-conversion for microwave frequencies.\n",
    "\n",
    "| Module | Role |\n",
    "| --- | --- |\n",
    "| OPX+ / OPX1000 | Drive, readout, and flux on a programmable pulse processor |\n",
    "| Octave | IQ mixing for up- and down-conversion as a companion to OPX |\n",
    "\n",
    "Register a Quantum Machines system by providing the OPX host, cluster name, and any attached Octave units.\n",
    "You can find more information in our [tutorial for Quantum Machines](https://docs.q-ctrl.com/boulder-opal/autocalibration/discover/setting-up-boulder-opal-with-quantummachines-opx-controllers)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "sec03-md",
   "metadata": {},
   "source": [
    "## 3. Component model\n",
    "\n",
    "The virtual device stores a `SuperconductingProcessor` containing all physical components and their calibrated parameters.\n",
    "You can find more information in our [virtual devices topic](https://docs.q-ctrl.com/boulder-opal/autocalibration/discover/understanding-virtual-devices-in-boulder-opal) and in the reference documentation."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.12.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
