Skip to content

Instantly share code, notes, and snippets.

@proppy
Created December 12, 2022 00:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save proppy/11ef0a0a59ac291dd99f5fc6a9f3d8dc to your computer and use it in GitHub Desktop.
Save proppy/11ef0a0a59ac291dd99f5fc6a9f3d8dc to your computer and use it in GitHub Desktop.
klayout-0.28-playground.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"name": "klayout-0.28-playground.ipynb",
"authorship_tag": "ABX9TyOdVJU9ZLC2pqYLBddpqj63",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/proppy/11ef0a0a59ac291dd99f5fc6a9f3d8dc/klayout-0-28-load_layout-1146.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "U7VX-W_7LYsc",
"outputId": "7145ed1b-04c9-4fca-94ea-8f13b16f665a"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
"Collecting klayout\n",
" Downloading klayout-0.28.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.9 MB)\n",
"\u001b[K |████████████████████████████████| 21.9 MB 1.4 MB/s \n",
"\u001b[?25hInstalling collected packages: klayout\n",
"Successfully installed klayout-0.28.post1\n"
]
}
],
"source": [
"!python -m pip install klayout"
]
},
{
"cell_type": "code",
"source": [
"!curl -L -O https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_sc_mcu9t5v0/raw/main/cells/addf/gf180mcu_fd_sc_mcu9t5v0__addf_1.gds\n",
"!curl -L -O https://raw.githubusercontent.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/main/tech/klayout/gf180mcu.lyp\n",
"!curl -L -O https://raw.githubusercontent.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/main/tech/klayout/gf180mcu.lyt"
],
"metadata": {
"id": "0sw3N6M6Lm3H",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "698ebaa7-860f-478e-b989-040a2b68ea3b"
},
"execution_count": 82,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
" % Total % Received % Xferd Average Speed Time Time Time Current\n",
" Dload Upload Total Spent Left Speed\n",
" 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n",
"100 7218 100 7218 0 0 20050 0 --:--:-- --:--:-- --:--:-- 20050\n",
" % Total % Received % Xferd Average Speed Time Time Time Current\n",
" Dload Upload Total Spent Left Speed\n",
"100 54220 100 54220 0 0 313k 0 --:--:-- --:--:-- --:--:-- 311k\n",
" % Total % Received % Xferd Average Speed Time Time Time Current\n",
" Dload Upload Total Spent Left Speed\n",
"100 8330 100 8330 0 0 50484 0 --:--:-- --:--:-- --:--:-- 50484\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import klayout.db as db\n",
"import klayout.lay as lay\n",
"from IPython.display import Image\n",
"\n",
"lv = lay.LayoutView()\n",
"lv.load_layer_props('gf180mcu.lyp')\n",
"lv.load_layout('gf180mcu_fd_sc_mcu9t5v0__addf_1.gds')\n",
"lv.max_hier()\n",
"lv.timer()\n",
"pixels = lv.get_pixels_with_options(500, 500)\n",
"Image(pixels.to_png_data(), width=500, height=500)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 517
},
"id": "97mJSqNZLsxc",
"outputId": "a58fddc9-8aea-4b16-fb68-5cde2c98c3cf"
},
"execution_count": 83,
"outputs": [
{
"output_type": "execute_result",
"data": {
"image/png": "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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {
"image/png": {
"width": 500,
"height": 500
}
},
"execution_count": 83
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment