{ "cells": [ { "cell_type": "markdown", "id": "eec98542", "metadata": {}, "source": [ "# 2.23 Modify chip options" ] }, { "cell_type": "markdown", "id": "ab1a7b3b", "metadata": {}, "source": [ "When creating a new design using Qiskit Metal, a default set of information related to the chip is specified. This includes chip size, which defines the active simulation area in the electromagnetic simulator of your choice. " ] }, { "cell_type": "markdown", "id": "2c22bcf4", "metadata": {}, "source": [ "In this notebook we will see how to access and change some of these chip-related specifications to allow you the flexibility of designing your custom quantum chip. We will start by drawing a simple planar design, and then we will play around with chip parameters to highlight the different features accessible through the API." ] }, { "cell_type": "markdown", "id": "69f93736", "metadata": {}, "source": [ "Now, let's import Qiskit Metal:" ] }, { "cell_type": "code", "execution_count": 1, "id": "d577b49e", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:53.388434Z", "iopub.status.busy": "2026-08-09T21:17:53.388334Z", "iopub.status.idle": "2026-08-09T21:17:55.087333Z", "shell.execute_reply": "2026-08-09T21:17:55.086773Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "

Welcome to Qiskit Metal!

\n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import qiskit_metal as metal\n", "import qiskit_metal as qm # alias for qm.gui / qm.view\n", "from qiskit_metal import designs, draw\n", "from qiskit_metal import Dict, open_docs\n", "\n", "%metal_heading Welcome to Qiskit Metal!" ] }, { "cell_type": "markdown", "id": "9ad76ca5", "metadata": {}, "source": [ "Let us draw our simple planar design: " ] }, { "cell_type": "code", "execution_count": 2, "id": "3c9e56ce", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:55.089873Z", "iopub.status.busy": "2026-08-09T21:17:55.089708Z", "iopub.status.idle": "2026-08-09T21:17:56.354694Z", "shell.execute_reply": "2026-08-09T21:17:56.354164Z" } }, "outputs": [], "source": [ "design = designs.DesignPlanar()" ] }, { "cell_type": "code", "execution_count": 3, "id": "6e8034e1", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.356277Z", "iopub.status.busy": "2026-08-09T21:17:56.356170Z", "iopub.status.idle": "2026-08-09T21:17:56.359636Z", "shell.execute_reply": "2026-08-09T21:17:56.359199Z" } }, "outputs": [], "source": [ "# Select a QComponent to create (The QComponent is a python class named `TransmonPocket`)\n", "from qiskit_metal.qlibrary.qubits.transmon_pocket import TransmonPocket" ] }, { "cell_type": "code", "execution_count": 4, "id": "caae2502", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.361056Z", "iopub.status.busy": "2026-08-09T21:17:56.360961Z", "iopub.status.idle": "2026-08-09T21:17:56.372922Z", "shell.execute_reply": "2026-08-09T21:17:56.372526Z" } }, "outputs": [], "source": [ "# Create a new qcomponent object with name 'Q1'\n", "q1 = TransmonPocket(design, \"Q1\")" ] }, { "cell_type": "markdown", "id": "79d7ebaf", "metadata": {}, "source": [ "Now that we have defined a simple planar design, we can use the following commands to access the dictionary keys to locate a chip and then access the chip-related parameters avaialble to be modified:" ] }, { "cell_type": "code", "execution_count": 5, "id": "19cb2184", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.374487Z", "iopub.status.busy": "2026-08-09T21:17:56.374402Z", "iopub.status.idle": "2026-08-09T21:17:56.376877Z", "shell.execute_reply": "2026-08-09T21:17:56.376466Z" } }, "outputs": [ { "data": { "text/plain": [ "dict_keys(['main'])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.chips.keys()" ] }, { "cell_type": "code", "execution_count": 6, "id": "07457d3b", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.378369Z", "iopub.status.busy": "2026-08-09T21:17:56.378274Z", "iopub.status.idle": "2026-08-09T21:17:56.380530Z", "shell.execute_reply": "2026-08-09T21:17:56.380144Z" } }, "outputs": [ { "data": { "text/plain": [ "{'material': 'silicon',\n", " 'layer_start': '0',\n", " 'layer_end': '2048',\n", " 'size': {'center_x': '0.0mm',\n", " 'center_y': '0.0mm',\n", " 'center_z': '0.0mm',\n", " 'size_x': '9mm',\n", " 'size_y': '6mm',\n", " 'size_z': '-750um',\n", " 'sample_holder_top': '890um',\n", " 'sample_holder_bottom': '1650um'}}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.chips.main" ] }, { "cell_type": "markdown", "id": "6c06edd4", "metadata": {}, "source": [ "> 💡 **Editing chip options from the desktop GUI**\n", ">\n", "> Everything below is shown through the Python API, but the desktop `MetalGUI` has a **Chip** dock (the toolbar icon labeled \"Chip\") that shows this same `design.chips` structure as an editable tree — `material`, `layer_start`, `layer_end`, and `size` (with `size_x`, `center_x`, etc. as expandable children), one entry per chip. It starts expanded with its column auto-fit, since a chip stack is usually just a couple of entries you want to see immediately rather than click open. Editing a value there triggers the same full `design.rebuild()` as editing `design.chips` directly in code — the two are the same underlying dictionary, just two ways to reach it." ] }, { "cell_type": "markdown", "id": "fa799323", "metadata": {}, "source": [ "Here, we can see there are four different parameters available for us to change:\n", "- Material\n", "- Layer_start\n", "- Layer_end\n", "- Size" ] }, { "cell_type": "markdown", "id": "50fd0f17", "metadata": {}, "source": [ "If you want to change your wafer material from silicon to germanium, for example, you can run the following code block: " ] }, { "cell_type": "code", "execution_count": 7, "id": "17ff7500", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.381874Z", "iopub.status.busy": "2026-08-09T21:17:56.381781Z", "iopub.status.idle": "2026-08-09T21:17:56.391979Z", "shell.execute_reply": "2026-08-09T21:17:56.391523Z" } }, "outputs": [], "source": [ "design.chips.main.material = [\"germanium\"]\n", "design.rebuild()" ] }, { "cell_type": "markdown", "id": "a8691e3f", "metadata": {}, "source": [ "Now, if we check our chip parameters again, we will see a different item under material. Let's try it out!" ] }, { "cell_type": "code", "execution_count": 8, "id": "6e2b9ff9", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.393310Z", "iopub.status.busy": "2026-08-09T21:17:56.393234Z", "iopub.status.idle": "2026-08-09T21:17:56.396308Z", "shell.execute_reply": "2026-08-09T21:17:56.395781Z" } }, "outputs": [ { "data": { "text/plain": [ "{'material': ['germanium'],\n", " 'layer_start': '0',\n", " 'layer_end': '2048',\n", " 'size': {'center_x': '0.0mm',\n", " 'center_y': '0.0mm',\n", " 'center_z': '0.0mm',\n", " 'size_x': '9mm',\n", " 'size_y': '6mm',\n", " 'size_z': '-750um',\n", " 'sample_holder_top': '890um',\n", " 'sample_holder_bottom': '1650um'}}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.chips.main" ] }, { "cell_type": "markdown", "id": "dac23c4c", "metadata": {}, "source": [ "We now know how to modify the arguments related to the chip. The most common parameter we may find ourselves dealing with is the chip size. Once we have an idea about our experimental design, choosing a chip size that allows us sufficent space to place all the components as desired is important. Here are the different parameters related to the chip size. " ] }, { "cell_type": "code", "execution_count": 9, "id": "7cd72d77", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.397524Z", "iopub.status.busy": "2026-08-09T21:17:56.397436Z", "iopub.status.idle": "2026-08-09T21:17:56.399647Z", "shell.execute_reply": "2026-08-09T21:17:56.399338Z" } }, "outputs": [ { "data": { "text/plain": [ "{'center_x': '0.0mm',\n", " 'center_y': '0.0mm',\n", " 'center_z': '0.0mm',\n", " 'size_x': '9mm',\n", " 'size_y': '6mm',\n", " 'size_z': '-750um',\n", " 'sample_holder_top': '890um',\n", " 'sample_holder_bottom': '1650um'}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.chips.main.size" ] }, { "cell_type": "markdown", "id": "51657c58", "metadata": {}, "source": [ "The parameters 'sample_holder_top' and 'sample_holder_bottom' are placeholders for parameters that specify the top and bottom coordinates of the 'vacuum box' in a multilevel system. The other parameters are self-explanatory. " ] }, { "cell_type": "markdown", "id": "5cdfa484", "metadata": {}, "source": [ "Now, let us play around with chip-size and export these files to GDS to look at the effects of our commands. " ] }, { "cell_type": "code", "execution_count": 10, "id": "3e7f0852", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.400988Z", "iopub.status.busy": "2026-08-09T21:17:56.400908Z", "iopub.status.idle": "2026-08-09T21:17:56.884388Z", "shell.execute_reply": "2026-08-09T21:17:56.884001Z" } }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# We will begin by resetting the wafer material to silicon\n", "\n", "design.chips.main.material = [\"silicon\"]\n", "design.rebuild()\n", "\n", "# We will then export the current file to a GDS file\n", "a_gds = design.renderers.gds\n", "a_gds.options[\"path_filename\"] = \"../resources/Fake_Junctions.GDS\"\n", "\n", "design.renderers.gds.export_to_gds(\"Before_size_change.gds\")" ] }, { "cell_type": "markdown", "id": "a1172c51", "metadata": {}, "source": [ "Now we will change the size of the chip in x and y dimensions, and then export it as a second GDS file. This can be done as follows:" ] }, { "cell_type": "code", "execution_count": 11, "id": "5e2c816a", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.885786Z", "iopub.status.busy": "2026-08-09T21:17:56.885706Z", "iopub.status.idle": "2026-08-09T21:17:56.896815Z", "shell.execute_reply": "2026-08-09T21:17:56.896298Z" } }, "outputs": [], "source": [ "design.chips.main.size[\"size_x\"] = \"15mm\"\n", "design.chips.main.size[\"size_y\"] = \"10mm\"\n", "design.rebuild()" ] }, { "cell_type": "code", "execution_count": 12, "id": "4ea6b658", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:17:56.898225Z", "iopub.status.busy": "2026-08-09T21:17:56.898123Z", "iopub.status.idle": "2026-08-09T21:18:00.023162Z", "shell.execute_reply": "2026-08-09T21:18:00.022681Z" } }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.renderers.gds.export_to_gds(\"After_size_x_y_change.gds\")" ] }, { "cell_type": "markdown", "id": "94c075a1", "metadata": {}, "source": [ "We will now move the center of the chip and see the effect it has on the qubit design. We will export this change as a third GDS file." ] }, { "cell_type": "code", "execution_count": 13, "id": "004f86e2", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:18:00.024621Z", "iopub.status.busy": "2026-08-09T21:18:00.024505Z", "iopub.status.idle": "2026-08-09T21:18:00.531588Z", "shell.execute_reply": "2026-08-09T21:18:00.531214Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "06:52PM 09s WARNING [_cheese_buffer_maker]: The bounding box for no-cheese is outside of chip size.\n", "Bounding box for chip is (0.0, -1.0, 9.0, 5.0).\n", "Bounding box with no_cheese buffer is (-0.35000000000000003, -0.35000000000000003, 0.35000000000000003, 0.35000000000000003).\n" ] }, { "data": { "text/plain": [ "1" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# First we will rest to the original settings\n", "\n", "design.chips.main.size[\"size_x\"] = \"9mm\"\n", "design.chips.main.size[\"size_y\"] = \"6mm\"\n", "\n", "# Next we will shift the center of the chip\n", "\n", "design.chips.main.size[\"center_x\"] = \"4.5mm\"\n", "design.chips.main.size[\"center_y\"] = \"2mm\"\n", "design.rebuild()\n", "\n", "# We next export it to GDS\n", "\n", "design.renderers.gds.export_to_gds(\"After_center_x_y_change.gds\")" ] }, { "cell_type": "markdown", "id": "0d90e2da", "metadata": {}, "source": [ "Now is a good time to take a look at the three GDS files we have created so far. In our previous run we intentionally centered the chip such that the entire device is not on the chip. This triggers a warning and enables you to make a correction. \n", "\n", "This warning is triggered by no-cheese check which is always 'ON' by default for the 'main' chip and for level '1'. Cheesing is the process of adding flux holes to the wafer to allow access to the ground plane. So, no_cheese is the “keep-out” region on the chip where the holes would not be implemented. If you have a multiple chip device, this option needs to be modified to match your configuration. We will see how to access and change this setting below. We first look at the GDS rendering options." ] }, { "cell_type": "code", "execution_count": 14, "id": "0b259fcd", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:18:00.532982Z", "iopub.status.busy": "2026-08-09T21:18:00.532882Z", "iopub.status.idle": "2026-08-09T21:18:00.535786Z", "shell.execute_reply": "2026-08-09T21:18:00.535073Z" } }, "outputs": [ { "data": { "text/plain": [ "{'short_segments_to_not_fillet': 'True',\n", " 'check_short_segments_by_scaling_fillet': '2.0',\n", " 'gds_unit': 0.001,\n", " 'ground_plane': 'True',\n", " 'negative_mask': {'main': []},\n", " 'fabricate': 'False',\n", " 'corners': 'natural',\n", " 'tolerance': '0.00001',\n", " 'precision': '0.000000001',\n", " 'width_LineString': '10um',\n", " 'path_filename': '../resources/Fake_Junctions.GDS',\n", " 'junction_pad_overlap': '5um',\n", " 'max_points': '199',\n", " 'cheese': {'datatype': '100',\n", " 'shape': '0',\n", " 'cheese_0_x': '25um',\n", " 'cheese_0_y': '25um',\n", " 'cheese_1_radius': '100um',\n", " 'view_in_file': {'main': {1: True}},\n", " 'delta_x': '100um',\n", " 'delta_y': '100um',\n", " 'edge_nocheese': '200um'},\n", " 'no_cheese': {'datatype': '99',\n", " 'buffer': '25um',\n", " 'cap_style': '2',\n", " 'join_style': '2',\n", " 'view_in_file': {'main': {1: True}}},\n", " 'bounding_box_scale_x': '1.2',\n", " 'bounding_box_scale_y': '1.2'}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a_gds.options" ] }, { "cell_type": "markdown", "id": "d1519246", "metadata": {}, "source": [ "We notice the dictionary called 'cheese' and 'no_cheese' above. We are interested in the 'view_in_file' option. We show how to access this option below. For a multilayer device, each chip and layer needs to be set to 'True'. If this 'view_in_file' check is 'False', we will not see the warning message we saw above. Let us try it out!" ] }, { "cell_type": "code", "execution_count": 15, "id": "a29b9348", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:18:00.537197Z", "iopub.status.busy": "2026-08-09T21:18:00.537109Z", "iopub.status.idle": "2026-08-09T21:18:00.538978Z", "shell.execute_reply": "2026-08-09T21:18:00.538597Z" } }, "outputs": [], "source": [ "a_gds.options.no_cheese[\"view_in_file\"][\"main\"] = {1: False}\n", "a_gds.options.cheese[\"view_in_file\"][\"main\"] = {1: False}" ] }, { "cell_type": "markdown", "id": "febbccdb", "metadata": {}, "source": [ "Now when we export to GDS, we do not see a warning message." ] }, { "cell_type": "code", "execution_count": 16, "id": "b48c5f30", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:18:00.540240Z", "iopub.status.busy": "2026-08-09T21:18:00.540157Z", "iopub.status.idle": "2026-08-09T21:18:00.556070Z", "shell.execute_reply": "2026-08-09T21:18:00.555594Z" } }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "design.renderers.gds.export_to_gds(\"After_center_x_y_change_no_warning.gds\")" ] }, { "cell_type": "markdown", "id": "709fd96b", "metadata": {}, "source": [ "Next, we revert back the 'cheese' and 'no_cheese' dictionaries and overwrite our last GDS with a modified one so that the device is within the chip." ] }, { "cell_type": "code", "execution_count": 17, "id": "873d9598", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:18:00.557391Z", "iopub.status.busy": "2026-08-09T21:18:00.557314Z", "iopub.status.idle": "2026-08-09T21:18:01.042732Z", "shell.execute_reply": "2026-08-09T21:18:01.042271Z" } }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Restore a_gds options\n", "\n", "a_gds.options.no_cheese[\"view_in_file\"][\"main\"] = {1: True}\n", "a_gds.options.cheese[\"view_in_file\"][\"main\"] = {1: True}\n", "\n", "# We will shift the center of the chip to origin\n", "\n", "design.chips.main.size[\"center_x\"] = \"0mm\"\n", "design.chips.main.size[\"center_y\"] = \"0mm\"\n", "design.rebuild()\n", "\n", "# We next export it to GDS\n", "\n", "design.renderers.gds.export_to_gds(\"After_reverting_x_y_change.gds\")" ] }, { "cell_type": "code", "execution_count": 18, "id": "c54978fe", "metadata": { "execution": { "iopub.execute_input": "2026-08-09T21:18:01.044262Z", "iopub.status.busy": "2026-08-09T21:18:01.044161Z", "iopub.status.idle": "2026-08-09T21:18:01.197783Z", "shell.execute_reply": "2026-08-09T21:18:01.196881Z" }, "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "image/png": "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YKo3HwAAAMhusR1ophG1cN93333ugQcecI899tjogEkNjqytrfUFtvpuH3fccb5lW2elPOGEE2jJBgAAQOZFLbaTwswjmuJv+/bt/mcNgtQASJ2uXS3a+h0AAACoFJkptgEAAIBqk8rp2gEAAABQbAMAAACpoWUbAAAASAnFNgAAAJASim0AAAAgJRTbAAAAQEootgEAAICUUGwDAAAAKaHYBgAAAFJCsQ0AAACkhGIbAAAASAnFNgAAAJASim0AAAAgJRTbAAAAQEootgEAAICUUGwDAAAAKaHYBgAAAFJCsQ0AAACkhGIbAAAASAnFNgAAAJASim0AAAAgJRTbAAAAQEootgEAAICUUGwDAAAAKaHYBgAAAFJCsQ0AAACkhGIbAAAASAnFNgAAAJASim0AAAAgJRTbAAAAQEootgEAAICUUGwDAABUiI9//OPuP//zP6fs/j70oQ+53//+9/7n2267zV1//fUuKz796U+73/72ty7r6mNvAAAAADBZ73//+10loGUbAAAAOAj79+8f9zq0bAMAAFSQ7du3uy984Qtu27ZtbvHixe6Nb3yja25u9n/r7e11t9xyi/vd737nampq3J/8yZ+4888/39XX17u9e/e6b3/72+7pp592Q0NDbtGiRe41r3mNvw0ZHh52t99+u/v5z3/uamtr3Z//+Z+PuR1j3dfu3bvd+vXr3RNPPOFGRkbcggUL3Jvf/GbX0tLiNm7c6O9H/z99+nT3Z3/2Z+4Vr3hFwe1/9rOfdatXr3YrV64cXfe1r33NHX300X7b1KXm1a9+tXve857n//b444+7DRs2+Mdn7ty57txzz3Unn3yy6+np8de9/PLL/f397Gc/czfffLNvGT/88MN9VxT93/ve974xb0e++93v+n3VY7lp0yb3qle9yp1xxhljPk4U2wAAABVExeratWtdU1OT++d//mffl/oNb3iDL2qvu+46t2zZMveP//iPbt++fe7rX/+6u+OOO9w555zj//7CF77QXXzxxb6YvvXWW903v/lN94EPfMAXkA8++KC//N3f/Z0v3m+66SZfVBYz3n3dfffdvnj/p3/6J198d3R0+EJXt6eC9R3veIc75phj3J49e3xRW8yLXvQiv6+h2FbRrML+L//yLwuuu3XrVveNb3zDF/S63aeeespde+217u///u/dYYcd5ov9J598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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gui = qm.gui(design)\n", "gui.autoscale()\n", "gui.screenshot()" ] }, { "cell_type": "markdown", "id": "41ec6c7d", "metadata": {}, "source": [ "Now that the GUI is open, click the **Chip** dock (left toolbar) to see the restored `main` chip's `material`, `layer_start`/`layer_end`, and `size` values live — they match `design.chips.main` above exactly, since it's the same dictionary. Try editing `size_x` there instead of in code; the canvas rebuilds the same way either path." ] }, { "cell_type": "markdown", "id": "ae45412b", "metadata": {}, "source": [ "You have now restored the chip to its original configuration!" ] } ], "metadata": { "celltoolbar": "Tags", "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.11.14" } }, "nbformat": 4, "nbformat_minor": 5 }