From c40efa1b643fb74747412cdb72ea1c2573f55ffd Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Sat, 24 Jun 2023 00:38:27 -0400 Subject: [PATCH 01/64] gds-factory gen, add generators --- dependencies.mk | 2 +- dependencies.sh | 34 +- docker/conda/scripts/xyce_install_centos.sh | 6 +- openfasoc/generators/gdsfactory-gen/Makefile | 2 +- .../PDK/gf180_mapped/gf180_mapped.py | 278 ++++++++++- .../PDK/gf180_mapped/gf180mcu.drc | 10 +- .../gdsfactory-gen/PDK/mappedpdk.py | 90 ++-- .../PDK/sky130_mapped/sky130_mapped.py | 16 +- .../gdsfactory-gen/PDK/util/__init__.py | 0 .../gdsfactory-gen/PDK/util/print_rules.py | 99 ++++ .../gdsfactory-gen/current_mirror.py | 235 +++++---- .../gdsfactory-gen/differential_pair.py | 450 +++++++++++------- .../generators/gdsfactory-gen/guardring.py | 137 ++++++ openfasoc/generators/gdsfactory-gen/nfet.py | 123 +++++ .../gdsfactory-gen/rectangular_ring.py | 37 ++ .../generators/gdsfactory-gen/via_stack.py | 87 ++++ .../flow/scripts/openfasoc/custom_place.tcl | 6 +- .../ldo-gen/tools/generate_verilog.py | 11 +- openfasoc/generators/ldo-gen/tools/ldo-gen.py | 230 +++++---- .../generators/ldo-gen/tools/processing.py | 114 +++-- 20 files changed, 1496 insertions(+), 471 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/util/__init__.py create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py create mode 100644 openfasoc/generators/gdsfactory-gen/guardring.py create mode 100644 openfasoc/generators/gdsfactory-gen/nfet.py create mode 100644 openfasoc/generators/gdsfactory-gen/rectangular_ring.py create mode 100644 openfasoc/generators/gdsfactory-gen/via_stack.py diff --git a/dependencies.mk b/dependencies.mk index a78b26f31..aea082167 100644 --- a/dependencies.mk +++ b/dependencies.mk @@ -18,7 +18,7 @@ update: # # Target for cleaning up generated files # clean: -# # Command to clean up generated files goes here, but +# # Command to clean up generated files goes here, but # # currently this makefile does not generate new files in the first place # # Target for cleaning up and reinstalling dependencies diff --git a/dependencies.sh b/dependencies.sh index 520b85b10..e6bb12350 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -1,13 +1,13 @@ -#!/bin/bash +#!/bin/bash -printf "Function: \nIf this script runs smoothly, all necessary dependencies for OpenFASoC will be -downloaded at once. If you've already downloaded all dependencies with this script, +printf "Function: \nIf this script runs smoothly, all necessary dependencies for OpenFASoC will be +downloaded at once. If you've already downloaded all dependencies with this script, you can run this script again to update the installed dependencies.\n -Basic Requirements (not exhaustive): +Basic Requirements (not exhaustive): (1) Python 3.6 or higher is required. (2) Intel x86 architecture is required, as this script will use Conda to download several Python packages for which versions compatible with ARM architecture currently do not -exist for installation in Conda's package repository. If your machine does not run +exist for installation in Conda's package repository. If your machine does not run on Intel x86 architecture, this script will likely not work. (3) CentOS and Ubuntu are the only operating systems this script has been verified to work on. We cannot guarantee successful compilation on other systems.\n\n" @@ -16,12 +16,12 @@ proceed_confirmed=false update_confirmed=false while ! $proceed_confirmed do - echo "[OpenFASoC] Do you wish to proceed with the installation? + echo "[OpenFASoC] Do you wish to proceed with the installation? [y] Yes. Install for the first time. [u] Yes. Update already-installed dependencies. -[n] No. Exit this script." +[n] No. Exit this script." read -p "Select the desired option: " selection - if [ "$selection" == "y" ] || [ "$selection" == "Y" ]; then + if [ "$selection" == "y" ] || [ "$selection" == "Y" ]; then echo "Beginning installation..."; proceed_confirmed=true elif [ "$selection" == "n" ] || [ "$selection" == "N" ]; then echo "Quitting script."; exit @@ -45,10 +45,10 @@ if $update_confirmed; then if [ $? == 0 ] then printf "\n\n[OpenFASoC] Conda updated successfully with: conda update conda -y." - else + else printf "\n\n[OpenFASoC] Failed to update Conda using: conda update conda -y." printf "[OpenFASoC] Attempting instead to update Conda using: install -c anaconda conda -y" - conda install -c anaconda conda -y; if [ $? == 0 ]; then + conda install -c anaconda conda -y; if [ $? == 0 ]; then printf "\n\n[OpenFASoC] Conda updated successfully with: install -c anaconda conda -y" else printf "\n\n[OpenFASoC] Conda could not be updated."; fi @@ -57,9 +57,9 @@ if $update_confirmed; then update_successful=true printf "\n\n[OpenFASoC] Attempting to update packages using: conda update --all -y \n" conda update --all -y - if [ $? == 0 ]; then + if [ $? == 0 ]; then printf "[OpenFASoC] Packages updated successfully with: conda update --all -y" - else + else printf "\n\n[OpenFASoC] Failed to update packages using: conda update --all -y." printf "Attempting instead to install core packages individually..." conda install -c litex-hub magic -y; if [ $? != 0 ]; then update_successful=false; echo "magic could not be updated"; fi @@ -73,15 +73,15 @@ if $update_confirmed; then # echo "Updating ngspice..." # cd ngspice # git pull - # ./compile_linux.sh + # ./compile_linux.sh # if [ $? == 0 ]; then # ngspice_updated=true # echo "ngspice updated successfully." - # else + # else # echo "nspice could not be updated." # fi # cd .. - + # cd ./docker/conda/scripts/Xyce # echo "Updating xyce..." # SRCDIR=$PWD/Trilinos-trilinos-release-12-12-1 @@ -101,7 +101,7 @@ if $update_confirmed; then # make install # if [ $? == 0 ]; then # echo "xyce updated successfully." - # else + # else # echo "xyce could not be updated." # fi @@ -188,7 +188,7 @@ if which pip3 >> /dev/null then echo "[OpenFASoC] Pip3 exists" pip3 install -r requirements.txt - if [ $? == 0 ]; then + if [ $? == 0 ]; then echo "[OpenFASoC] Python packages installed successfully." else echo "[OpenFASoC] Python packages could not be installed." diff --git a/docker/conda/scripts/xyce_install_centos.sh b/docker/conda/scripts/xyce_install_centos.sh index 3fb57b9e4..4f6df7e09 100755 --- a/docker/conda/scripts/xyce_install_centos.sh +++ b/docker/conda/scripts/xyce_install_centos.sh @@ -13,7 +13,7 @@ #Install Dependancies ########################################################################### -yum install -y wget git make gcc-c++ python3 +yum install -y wget git make gcc-c++ python3 yum install -y gcc-gfortran bison flex libtool-ltdl-devel yum install -y fftw-devel suitesparse-devel blas-devel lapack-devel yum install -y openmpi-devel openmpi @@ -42,7 +42,7 @@ source /opt/rh/devtoolset-8/enable #Install Trilinos from source ########################################################################### -wget https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz +wget https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz tar zxvf trilinos-release-12-12-1.tar.gz SRCDIR=$PWD/Trilinos-trilinos-release-12-12-1 @@ -107,4 +107,4 @@ mkdir -p $INSTALLDIR make install #Test installation -$INSTALLDIR/bin/Xyce \ No newline at end of file +$INSTALLDIR/bin/Xyce diff --git a/openfasoc/generators/gdsfactory-gen/Makefile b/openfasoc/generators/gdsfactory-gen/Makefile index 614f20331..27c05e4d9 100755 --- a/openfasoc/generators/gdsfactory-gen/Makefile +++ b/openfasoc/generators/gdsfactory-gen/Makefile @@ -63,7 +63,7 @@ run_flow: # Via Chain and Line Resistance targets -# +# # met1 = layer 68, width = via_dim + 2 * 0.06, spacing = seg_length = width + 0.14 (met1 spacing) lr_vc__met1: python3 ./scripts/line-res_via-chain/via_chain_gen.py --dimension 40 --spacing 0.43 --width 0.29 --res_sets 40 --via_sets 20 --seg_length 0.43 --seg_width 0.2 --via_dim 0.17 --wire_layer 68 --output_dir=./result_dir/line-res_via-chain diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index 09aaa065f..cf8ea5f76 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -10,7 +10,7 @@ import sys from pathlib import Path -sys.path.append(Path(__file__).resolve().parent.parent) +sys.path.append(str(Path(__file__).resolve().parent.parent)) from mappedpdk import MappedPDK @@ -24,7 +24,8 @@ "met1": "metal1", "mcon": "contact", "poly": "poly2", - "active": "comp", + "active_diff": "comp", + "active_tap": "comp", "n+s/d": "nplus", "p+s/d": "pplus", "nwell": "nwell", @@ -32,9 +33,280 @@ "dnwell": "dnwell", } +# note for DRC, there is mim_option 'A' which runs by default or mim_option 'B' + +gf180_lydrc_file_path = Path(__file__).resolve().parent / "gf180mcu_drc.lydrc" + +grulesobj = dict() +for glayer in MappedPDK.valid_glayers: + grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) + +grulesobj["dnwell"]["dnwell"] = {"min_width": 1.7, "min_seperation": 5.42} +grulesobj["dnwell"]["pwell"] = {"min_enclosure": 2.5} +grulesobj["dnwell"]["nwell"] = {"min_seperation": 3.1, "min_enclosure": 0.5} +grulesobj["dnwell"]["p+s/d"] = {} +grulesobj["dnwell"]["n+s/d"] = {} +grulesobj["dnwell"]["active_diff"] = {"min_enclosure": 0.93} +grulesobj["dnwell"]["active_tap"] = {"min_enclosure": 0.62, "min_seperation": 2.5} +grulesobj["dnwell"]["poly"] = {} +grulesobj["dnwell"]["mcon"] = {} +grulesobj["dnwell"]["met1"] = {} +grulesobj["dnwell"]["via1"] = {} +grulesobj["dnwell"]["met2"] = {} +grulesobj["dnwell"]["via2"] = {} +grulesobj["dnwell"]["met3"] = {} +grulesobj["dnwell"]["via3"] = {} +grulesobj["dnwell"]["met4"] = {} +grulesobj["pwell"]["dnwell"] = {} +grulesobj["pwell"]["pwell"] = {"min_width": 0.6, "min_seperation": 1.4} +grulesobj["pwell"]["nwell"] = {"min_seperation": 0.0} +grulesobj["pwell"]["p+s/d"] = {} +grulesobj["pwell"]["n+s/d"] = {} +grulesobj["pwell"]["active_diff"] = {"min_enclosure": 0.43} +grulesobj["pwell"]["active_tap"] = {"min_enclosure": 0.12} +grulesobj["pwell"]["poly"] = {} +grulesobj["pwell"]["mcon"] = {} +grulesobj["pwell"]["met1"] = {} +grulesobj["pwell"]["via1"] = {} +grulesobj["pwell"]["met2"] = {} +grulesobj["pwell"]["via2"] = {} +grulesobj["pwell"]["met3"] = {} +grulesobj["pwell"]["via3"] = {} +grulesobj["pwell"]["met4"] = {} +grulesobj["nwell"]["dnwell"] = {} +grulesobj["nwell"]["pwell"] = {} +grulesobj["nwell"]["nwell"] = {"min_width": 0.86, "min_seperation": 1.4} +grulesobj["nwell"]["p+s/d"] = {} +grulesobj["nwell"]["n+s/d"] = {} +grulesobj["nwell"]["active_diff"] = {"min_enclosure": 0.43} +grulesobj["nwell"]["active_tap"] = {"min_enclosure": 0.12} +grulesobj["nwell"]["poly"] = {} +grulesobj["nwell"]["mcon"] = {} +grulesobj["nwell"]["met1"] = {} +grulesobj["nwell"]["via1"] = {} +grulesobj["nwell"]["met2"] = {} +grulesobj["nwell"]["via2"] = {} +grulesobj["nwell"]["met3"] = {} +grulesobj["nwell"]["via3"] = {} +grulesobj["nwell"]["met4"] = {} +grulesobj["p+s/d"]["dnwell"] = {} +grulesobj["p+s/d"]["pwell"] = {} +grulesobj["p+s/d"]["nwell"] = {} +grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} +grulesobj["p+s/d"]["n+s/d"] = {} +grulesobj["p+s/d"]["active_diff"] = {} +grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.16} +grulesobj["p+s/d"]["poly"] = {} +grulesobj["p+s/d"]["mcon"] = {} +grulesobj["p+s/d"]["met1"] = {} +grulesobj["p+s/d"]["via1"] = {} +grulesobj["p+s/d"]["met2"] = {} +grulesobj["p+s/d"]["via2"] = {} +grulesobj["p+s/d"]["met3"] = {} +grulesobj["p+s/d"]["via3"] = {} +grulesobj["p+s/d"]["met4"] = {} +grulesobj["n+s/d"]["dnwell"] = {} +grulesobj["n+s/d"]["pwell"] = {} +grulesobj["n+s/d"]["nwell"] = {} +grulesobj["n+s/d"]["p+s/d"] = {} +grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} +grulesobj["n+s/d"]["active_diff"] = {} +grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.16} +grulesobj["n+s/d"]["poly"] = {} +grulesobj["n+s/d"]["mcon"] = {} +grulesobj["n+s/d"]["met1"] = {} +grulesobj["n+s/d"]["via1"] = {} +grulesobj["n+s/d"]["met2"] = {} +grulesobj["n+s/d"]["via2"] = {} +grulesobj["n+s/d"]["met3"] = {} +grulesobj["n+s/d"]["via3"] = {} +grulesobj["n+s/d"]["met4"] = {} +grulesobj["active_diff"]["dnwell"] = {} +grulesobj["active_diff"]["pwell"] = {} +grulesobj["active_diff"]["nwell"] = {} +grulesobj["active_diff"]["p+s/d"] = {} +grulesobj["active_diff"]["n+s/d"] = {} +grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_seperation": 0.28} +grulesobj["active_diff"]["active_tap"] = { + "0.3)": "*****FIXTHIS!!!MANUALLY!*****", + "min_seperation": 0.28, + "max_seperation": 20.0, +} +grulesobj["active_diff"]["poly"] = {"overhang": 0.24, "min_seperation": 0.1} +grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.07} +grulesobj["active_diff"]["met1"] = {} +grulesobj["active_diff"]["via1"] = {} +grulesobj["active_diff"]["met2"] = {} +grulesobj["active_diff"]["via2"] = {} +grulesobj["active_diff"]["met3"] = {} +grulesobj["active_diff"]["via3"] = {} +grulesobj["active_diff"]["met4"] = {} +grulesobj["active_tap"]["dnwell"] = {} +grulesobj["active_tap"]["pwell"] = {} +grulesobj["active_tap"]["nwell"] = {} +grulesobj["active_tap"]["p+s/d"] = {} +grulesobj["active_tap"]["n+s/d"] = {} +grulesobj["active_tap"]["active_diff"] = {} +grulesobj["active_tap"]["active_tap"] = {"min_width": 0.22, "min_seperation": 0.28} +grulesobj["active_tap"]["poly"] = {"min_seperation": 0.1} +grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.07} +grulesobj["active_tap"]["met1"] = {} +grulesobj["active_tap"]["via1"] = {} +grulesobj["active_tap"]["met2"] = {} +grulesobj["active_tap"]["via2"] = {} +grulesobj["active_tap"]["met3"] = {} +grulesobj["active_tap"]["via3"] = {} +grulesobj["active_tap"]["met4"] = {} +grulesobj["poly"]["dnwell"] = {} +grulesobj["poly"]["pwell"] = {} +grulesobj["poly"]["nwell"] = {} +grulesobj["poly"]["p+s/d"] = {} +grulesobj["poly"]["n+s/d"] = {} +grulesobj["poly"]["active_diff"] = {} +grulesobj["poly"]["active_tap"] = {} +grulesobj["poly"]["poly"] = {"min_width": 0.28} +grulesobj["poly"]["mcon"] = {"min_enclosure": 0.07, "min_seperation": 0.17} +grulesobj["poly"]["met1"] = {} +grulesobj["poly"]["via1"] = {} +grulesobj["poly"]["met2"] = {} +grulesobj["poly"]["via2"] = {} +grulesobj["poly"]["met3"] = {} +grulesobj["poly"]["via3"] = {} +grulesobj["poly"]["met4"] = {} +grulesobj["mcon"]["dnwell"] = {} +grulesobj["mcon"]["pwell"] = {} +grulesobj["mcon"]["nwell"] = {} +grulesobj["mcon"]["p+s/d"] = {} +grulesobj["mcon"]["n+s/d"] = {} +grulesobj["mcon"]["active_diff"] = {} +grulesobj["mcon"]["active_tap"] = {} +grulesobj["mcon"]["poly"] = {} +grulesobj["mcon"]["mcon"] = {"min_seperation": 0.28, "width": 0.22} +grulesobj["mcon"]["met1"] = {"min_enclosure": 0.12} +grulesobj["mcon"]["via1"] = {} +grulesobj["mcon"]["met2"] = {} +grulesobj["mcon"]["via2"] = {} +grulesobj["mcon"]["met3"] = {} +grulesobj["mcon"]["via3"] = {} +grulesobj["mcon"]["met4"] = {} +grulesobj["met1"]["dnwell"] = {} +grulesobj["met1"]["pwell"] = {} +grulesobj["met1"]["nwell"] = {} +grulesobj["met1"]["p+s/d"] = {} +grulesobj["met1"]["n+s/d"] = {} +grulesobj["met1"]["active_diff"] = {} +grulesobj["met1"]["active_tap"] = {} +grulesobj["met1"]["poly"] = {} +grulesobj["met1"]["mcon"] = {} +grulesobj["met1"]["met1"] = {"min_width": 0.23, "min_seperation": 0.3} +grulesobj["met1"]["via1"] = {"min_enclosure": 0.12} +grulesobj["met1"]["met2"] = {} +grulesobj["met1"]["via2"] = {} +grulesobj["met1"]["met3"] = {} +grulesobj["met1"]["via3"] = {} +grulesobj["met1"]["met4"] = {} +grulesobj["via1"]["dnwell"] = {} +grulesobj["via1"]["pwell"] = {} +grulesobj["via1"]["nwell"] = {} +grulesobj["via1"]["p+s/d"] = {} +grulesobj["via1"]["n+s/d"] = {} +grulesobj["via1"]["active_diff"] = {} +grulesobj["via1"]["active_tap"] = {} +grulesobj["via1"]["poly"] = {} +grulesobj["via1"]["mcon"] = {} +grulesobj["via1"]["met1"] = {} +grulesobj["via1"]["via1"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via1"]["met2"] = {"min_enclosure": 0.12} +grulesobj["via1"]["via2"] = {} +grulesobj["via1"]["met3"] = {} +grulesobj["via1"]["via3"] = {} +grulesobj["via1"]["met4"] = {} +grulesobj["met2"]["dnwell"] = {} +grulesobj["met2"]["pwell"] = {} +grulesobj["met2"]["nwell"] = {} +grulesobj["met2"]["p+s/d"] = {} +grulesobj["met2"]["n+s/d"] = {} +grulesobj["met2"]["active_diff"] = {} +grulesobj["met2"]["active_tap"] = {} +grulesobj["met2"]["poly"] = {} +grulesobj["met2"]["mcon"] = {} +grulesobj["met2"]["met1"] = {} +grulesobj["met2"]["via1"] = {} +grulesobj["met2"]["met2"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met2"]["via2"] = {"min_enclosure": 0.12} +grulesobj["met2"]["met3"] = {} +grulesobj["met2"]["via3"] = {} +grulesobj["met2"]["met4"] = {} +grulesobj["via2"]["dnwell"] = {} +grulesobj["via2"]["pwell"] = {} +grulesobj["via2"]["nwell"] = {} +grulesobj["via2"]["p+s/d"] = {} +grulesobj["via2"]["n+s/d"] = {} +grulesobj["via2"]["active_diff"] = {} +grulesobj["via2"]["active_tap"] = {} +grulesobj["via2"]["poly"] = {} +grulesobj["via2"]["mcon"] = {} +grulesobj["via2"]["met1"] = {} +grulesobj["via2"]["via1"] = {} +grulesobj["via2"]["met2"] = {} +grulesobj["via2"]["via2"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via2"]["met3"] = {"min_enclosure": 0.12} +grulesobj["via2"]["via3"] = {} +grulesobj["via2"]["met4"] = {} +grulesobj["met3"]["dnwell"] = {} +grulesobj["met3"]["pwell"] = {} +grulesobj["met3"]["nwell"] = {} +grulesobj["met3"]["p+s/d"] = {} +grulesobj["met3"]["n+s/d"] = {} +grulesobj["met3"]["active_diff"] = {} +grulesobj["met3"]["active_tap"] = {} +grulesobj["met3"]["poly"] = {} +grulesobj["met3"]["mcon"] = {} +grulesobj["met3"]["met1"] = {} +grulesobj["met3"]["via1"] = {} +grulesobj["met3"]["met2"] = {} +grulesobj["met3"]["via2"] = {} +grulesobj["met3"]["met3"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met3"]["via3"] = {"min_enclosure": 0.12} +grulesobj["met3"]["met4"] = {} +grulesobj["via3"]["dnwell"] = {} +grulesobj["via3"]["pwell"] = {} +grulesobj["via3"]["nwell"] = {} +grulesobj["via3"]["p+s/d"] = {} +grulesobj["via3"]["n+s/d"] = {} +grulesobj["via3"]["active_diff"] = {} +grulesobj["via3"]["active_tap"] = {} +grulesobj["via3"]["poly"] = {} +grulesobj["via3"]["mcon"] = {} +grulesobj["via3"]["met1"] = {} +grulesobj["via3"]["via1"] = {} +grulesobj["via3"]["met2"] = {} +grulesobj["via3"]["via2"] = {} +grulesobj["via3"]["met3"] = {} +grulesobj["via3"]["via3"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via3"]["met4"] = {"min_enclosure": 0.12} +grulesobj["met4"]["dnwell"] = {} +grulesobj["met4"]["pwell"] = {} +grulesobj["met4"]["nwell"] = {} +grulesobj["met4"]["p+s/d"] = {} +grulesobj["met4"]["n+s/d"] = {} +grulesobj["met4"]["active_diff"] = {} +grulesobj["met4"]["active_tap"] = {} +grulesobj["met4"]["poly"] = {} +grulesobj["met4"]["mcon"] = {} +grulesobj["met4"]["met1"] = {} +grulesobj["met4"]["via1"] = {} +grulesobj["met4"]["met2"] = {} +grulesobj["met4"]["via2"] = {} +grulesobj["met4"]["met3"] = {} +grulesobj["met4"]["via3"] = {} +grulesobj["met4"]["met4"] = {"min_width": 0.28, "min_seperation": 0.3} + gf180_mapped_pdk = MappedPDK( name="gf180", glayers=gf180_glayer_mapping, - layers=LAYER.dict() + layers=LAYER.dict(), + klayout_lydrc_file=gf180_lydrc_file_path, + grules=grulesobj, ) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu.drc b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu.drc index 7fe40b1ac..4c86b4027 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu.drc +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu.drc @@ -453,13 +453,9 @@ else end # BEOL # connectivity rules -if $conn_drc == "true" - CONNECTIVITY_RULES = $conn_drc - logger.info("connectivity rules are enabled.") -else - CONNECTIVITY_RULES = false - logger.info("connectivity rules are disabled.") -end # connectivity rules +CONNECTIVITY_RULES = true +logger.info("connectivity rules are enabled.") + # METAL_TOP if $metal_top diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py index 7b6e84eac..6155361aa 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py @@ -13,16 +13,17 @@ class MappedPDK(gf.pdk.Pdk): """Inherits everything from the PDK class but also requires mapping to glayers glayers are generic layers which can be returned with get_glayer(name: str) - validate_glayers(list[str]) is used to verify all required generic layers are + has_required_glayers(list[str]) is used to verify all required generic layers are present""" - valid_glayers: ClassVar[list[str]] = [ + valid_glayers: ClassVar[tuple[str]] = ( "dnwell", "pwell", "nwell", "p+s/d", "n+s/d", - "active", + "active_diff", + "active_tap", "poly", "mcon", "met1", @@ -32,17 +33,18 @@ class MappedPDK(gf.pdk.Pdk): "met3", "via3", "met4", - ] + ) glayers: dict[StrictStr, StrictStr] + # friendly way to implement a graph + grules: dict[StrictStr, dict[StrictStr, Optional[dict]]] + klayout_lydrc_file: Optional[Path] = None - klayout_lydrc_file_path: Optional[Path] = None - - # force people to pick glayers from a finite set of string layers that you define - # if someone tries to pass a glayers dict that has a bad key, throw an error @validator("glayers") def glayers_check_keys(cls, glayers_obj: dict[StrictStr, StrictStr]): - """checks glayers to ensure valid keys,type. Glayers must be passed as dict[str,str]""" + """force people to pick glayers from a finite set of string layers that you define + checks glayers to ensure valid keys,type. Glayers must be passed as dict[str,str] + if someone tries to pass a glayers dict that has a bad key, throw an error""" for glayer, mapped_layer in glayers_obj.items(): if (not isinstance(glayer, str)) or (not isinstance(mapped_layer, str)): raise TypeError("glayers should be passed as dict[str, str]") @@ -52,11 +54,12 @@ def glayers_check_keys(cls, glayers_obj: dict[StrictStr, StrictStr]): ) return glayers_obj - @validator("klayout_lydrc_file_path") + @validator("klayout_lydrc_file") def lydrc_file_exists(cls, lydrc_file_path): """Check that lydrc_file_path exists if not none""" if lydrc_file_path != None and not lydrc_file_path.is_file(): raise ValueError(".lydrc script: the path given is not a file") + return lydrc_file_path def drc( self, @@ -66,9 +69,10 @@ def drc( """Returns true if the layout is DRC clean and false if not Also saves detailed results to output_dir_or_file location as lyrdb layout can be passed as a file path or gdsfactory component""" - if not self.klayout_lydrc_file_path: + if not self.klayout_lydrc_file: raise NotImplementedError("no drc script for this PDK") # find layout gds file path + tempdir = None if isinstance(layout, gf.typings.Component): tempdir = tempfile.TemporaryDirectory() layout_path = Path(layout.write_gds(tempdir)).resolve() @@ -78,7 +82,7 @@ def drc( raise TypeError("layout should be a Component, Path, or string") if not layout_path.is_file(): raise ValueError("layout must exist, the path given is not a file") - # find report file path, if None the use current directory + # find report file path, if None then use current directory report_path = ( Path(output_dir_or_file).resolve() if output_dir_or_file @@ -100,7 +104,7 @@ def drc( "klayout", "-b", "-r", - str(self.klayout_lydrc_file_path), + str(self.klayout_lydrc_file), "-rd", "input=" + str(layout_path), "-rd", @@ -117,39 +121,69 @@ def drc( # eventually I can return more info on the drc run, but for now just void and view the lyrdb in klayout # return True or False - # similar to the validate_layers function in gdsfactory default PDK class def has_required_glayers(self, layers_required: list[str]): """Raises ValueError if any of the generic layers in layers_required: list[str] - are not mapped to anything in the pdk.glayers dictionary""" + are not mapped to anything in the pdk.glayers dictionary + also checks that the values in the glayers dictionary map to real Pdk layers""" for layer in layers_required: if layer not in self.glayers: raise ValueError( - f"{layer!r} not in Pdk.glayers {list(self.glayers.keys())}" + f"{layer!r} not in self.glayers {list(self.glayers.keys())}" ) + self.validate_layers([self.glayers[layer]]) # TODO: implement LayerSpec type def get_glayer(self, layer: str) -> gf.typings.Layer: """Returns the PDK layer from the generic layer name""" return self.get_layer(self.glayers[layer]) + def get_grule( + self, glayer1: str, glayer2: Optional[str] = None + ) -> dict[StrictStr, float]: + """Returns a dictionary describing the relationship between two layers + If one layer is specified, returns a dictionary with all intra layer rules""" + if glayer1 not in MappedPDK.valid_glayers: + raise ValueError("get_grule, " + str(glayer1) + " not valid glayer") + # decide if two or one inputs and set rules_dict accordingly + rules_dict = None + if glayer2 is not None: + if glayer2 not in MappedPDK.valid_glayers: + raise ValueError("get_grule, " + str(glayer2) + " not valid glayer") + rules_dict = self.grules.get(glayer1, dict()).get(glayer2) + if rules_dict is None or rules_dict == {}: + rules_dict = self.grules.get(glayer2, dict()).get(glayer1) + else: + glayer2 = glayer1 + rules_dict = self.grules.get(glayer1, dict()).get(glayer1) + # return and error check + if rules_dict is None or rules_dict == {}: + raise NotImplementedError( + "no rules found between " + str(glayer1) + " and " + str(glayer2) + ) + return rules_dict + @classmethod - def from_gf_pdk(cls, gfpdk: gf.pdk.Pdk, glayers: dict[str, str]): - """Construct a mapped pdk from an existing pdk and a generic layers mapping""" - # input type validation + def is_routable_glayer(cls, glayer: StrictStr): + return any(hint in glayer for hint in ["met", "active", "poly"]) + + @classmethod + def from_gf_pdk( + cls, + gfpdk: gf.pdk.Pdk, + glayers: dict[str, str], + grules: dict[StrictStr, dict[StrictStr, Optional[dict]]], + klayout_lydrc_file: Optional[gf.typings.PathType] = None, + ): + """Construct a mapped pdk from an existing pdk and the extra parts of MappedPDK""" + # input type and value validation if not isinstance(gfpdk, gf.pdk.Pdk): raise TypeError("from_gf_pdk: gfpdk arg only accepts GDSFactory PDK type") # convert gfpdk to dictionary parent_dict = gfpdk.dict() - # print(parent_dict) - # remove all none keys to pass pydantic validation - keys_to_remove = list() - for key in parent_dict: - if parent_dict[key] is None: - keys_to_remove.append(key) - for key in keys_to_remove: - parent_dict.pop(key) - # add glayers mapping + # add glayers mapping and lydrc file parent_dict["glayers"] = glayers + parent_dict["klayout_lydrc_file"] = Path(klayout_lydrc_file).resolve() + parent_dict["grules"] = grules # get mapped value and try to resolve validation issues try: rtrval = cls.parse_obj(parent_dict) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 5a5c870d2..eef58a929 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -21,7 +21,8 @@ "met1": "li1drawing", "mcon": "licon1drawing", "poly": "polydrawing", - "active": "diffdrawing", + "active_diff": "diffdrawing", + "active_tap": "tapdrawing", "n+s/d": "nsdmdrawing", "p+s/d": "psdmdrawing", "nwell": "nwelldrawing", @@ -29,5 +30,16 @@ "dnwell": "dnwelldrawing", } +sky130_lydrc_file_path = Path(__file__).resolve().parent / "sky130.lydrc" -sky130_mapped_pdk = MappedPDK.from_gf_pdk(sky130.PDK, sky130_glayer_mapping) + +grulesobj = dict() +for glayer in MappedPDK.valid_glayers: + grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) + +sky130_mapped_pdk = MappedPDK.from_gf_pdk( + sky130.PDK, + sky130_glayer_mapping, + grules=grulesobj, + klayout_lydrc_file=sky130_lydrc_file_path, +) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/__init__.py b/openfasoc/generators/gdsfactory-gen/PDK/util/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py b/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py new file mode 100644 index 000000000..f26880169 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py @@ -0,0 +1,99 @@ +"""read rule deck we have saved in google sheets into a better format for writing to python: +this is the google sheets format +https://docs.google.com/spreadsheets/d/172P-CW_dGQU5icyUQAasLVq7Jlz51R5lB1rJ4JyvfIc/edit?usp=sharing + +directions +1) go to the google sheets and download as .csv +2) run this program with the csv input +""" + +import csv +from pathlib import Path + + +def split_rule(rule: str) -> tuple: + """Accepts a rule in the expected format and splits into rule name and float value""" + if (rule != "") and (not "," in rule): + raise ValueError("rule may be formatted wrong " + rule) + rule = rule.replace(" ", "").split(",")[-1] + rtr = rule.split("=") + if len(rtr) != 2: + rtr.append("*****FIXTHIS!!!MANUALLY!*****") + else: + rtr[1] = float(rtr[1]) + return tuple(rtr) + + +def create_ruledeck_python_dictionary_definition(csvtoread: Path): + if not csvtoread.is_file(): + raise RuntimeError("csv to read must be a file") + output = str() + glayers = list() + groupdata = [] # list of dictionary + group = [0, "none"] + # int,string -> current group + with open(csvtoread, newline="") as csvfile: + myreader = csv.reader(csvfile, delimiter=",") + for rownum, row in enumerate(myreader): + # deal with header and ignore label rows + if rownum == 0: + glayers = row + glayers.pop(0) + elif rownum < 3: + continue + # processing logic + # the google sheets csv format is in rows of 3 + # we use group and groupdata to track all rules in a row then update output + else: + if group[0] == 0: # first in group + groupdata.clear() + group[1] = row[0] + for colnum, col in enumerate(row): + if colnum == 0: + continue + groupdata.append(dict()) + + for colnum, col in enumerate(row): + if colnum == 0: + continue + if col == "": + continue + key_val_pair = split_rule(col) + groupdata[colnum - 1][key_val_pair[0]] = key_val_pair[1] + # finished with the group so + if group[0] == 2: # last in group + for edgenum, edge in enumerate(groupdata): + output += ( + 'grulesobj["' + + group[1] + + '"]["' + + glayers[edgenum] + + '"] = ' + + str(edge) + ) + "\n" + # update group index + group[0] = (group[0] + 1) % 3 + # incase missed last group print one more time + for edgenum, edge in enumerate(groupdata): + output += ( + 'grulesobj["' + + group[1] + + '"]["' + + glayers[edgenum] + + '"] = ' + + str(edge) + ) + "\n" + return output + + +if __name__ == "__main__": + from argparse import ArgumentParser + + parser = ArgumentParser( + prog="print rules", description="read rule deck we have saved in google sheets" + ) + parser.add_argument("-f", "--file") + args = parser.parse_args() + csvtoread = Path(args.file).resolve() + output = create_ruledeck_python_dictionary_definition(csvtoread) + print(output) diff --git a/openfasoc/generators/gdsfactory-gen/current_mirror.py b/openfasoc/generators/gdsfactory-gen/current_mirror.py index f84da4d83..58fd5ac42 100644 --- a/openfasoc/generators/gdsfactory-gen/current_mirror.py +++ b/openfasoc/generators/gdsfactory-gen/current_mirror.py @@ -9,30 +9,31 @@ PDK = get_generic_pdk() PDK.activate() -pwell_drawing = (64,13) -dnwell_drawing = (64,18) -nwell_drawing = (64,20) -outline_ref = (236,0) -diff_drawing = (65,20) -psdm_drawing = (94,20) -nsdm_drawing = (93,44) -poly_drawing = (66,20) +pwell_drawing = (64, 13) +dnwell_drawing = (64, 18) +nwell_drawing = (64, 20) +outline_ref = (236, 0) +diff_drawing = (65, 20) +psdm_drawing = (94, 20) +nsdm_drawing = (93, 44) +poly_drawing = (66, 20) licon1_drawing = (66, 44) npc_drawing = (95, 20) -li1_drawing = (67,20) -mcon_drawing = (67,44) -met1_drawing = (68,20) -met1_label = (68,5) -met1_pin = (68,16) -via_drawing = (68,44) -met2_drawing = (69,20) -met2_label = (69,5) -met2_pin = (69,16) -via2_drawing = (69,44) -met3_drawing = (70,20) -met3_label = (70,5) -met3_pin = (70,16) -text_drawing = (83,44) +li1_drawing = (67, 20) +mcon_drawing = (67, 44) +met1_drawing = (68, 20) +met1_label = (68, 5) +met1_pin = (68, 16) +via_drawing = (68, 44) +met2_drawing = (69, 20) +met2_label = (69, 5) +met2_pin = (69, 16) +via2_drawing = (69, 44) +met3_drawing = (70, 20) +met3_label = (70, 5) +met3_pin = (70, 16) +text_drawing = (83, 44) + @gf.cell def nmos() -> Component: @@ -42,14 +43,18 @@ def nmos() -> Component: nsdm_height = 0.67 nsdm_width = 1.1 - nsdm_outline_rect = gf.components.rectangle(size=(nsdm_width,nsdm_height), layer=nsdm_drawing) + nsdm_outline_rect = gf.components.rectangle( + size=(nsdm_width, nsdm_height), layer=nsdm_drawing + ) nsdm_outline_rect_ref = c << nsdm_outline_rect ##poly poly_width = 0.25 poly_height = 0.68 - poly_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) + poly_rect = gf.components.rectangle( + size=(poly_width, poly_height), layer=poly_drawing + ) poly_rect_ref = c << poly_rect poly_rect_ref.movex(0.425).movey(-0.005) @@ -57,7 +62,9 @@ def nmos() -> Component: ##diff diff_width = 0.85 diff_height = 0.42 - diff_rect = gf.components.rectangle(size=(diff_width,diff_height), layer=diff_drawing) + diff_rect = gf.components.rectangle( + size=(diff_width, diff_height), layer=diff_drawing + ) diff_rect_ref = c << diff_rect diff_rect_ref.movex(0.125).movey(0.125) @@ -65,7 +72,7 @@ def nmos() -> Component: ##li1_drawing li1_height = 0.5 li1_width = 0.17 - li1_rect = gf.components.rectangle(size=(li1_width,li1_height), layer=li1_drawing) + li1_rect = gf.components.rectangle(size=(li1_width, li1_height), layer=li1_drawing) li1_rect_ref1 = c << li1_rect li1_rect_ref1.movey(0.085).movex(0.19) @@ -76,7 +83,9 @@ def nmos() -> Component: mcon_height = 0.17 mcon_width = 0.17 - mcon_rect = gf.components.rectangle(size=(mcon_width,mcon_height), layer=mcon_drawing) + mcon_rect = gf.components.rectangle( + size=(mcon_width, mcon_height), layer=mcon_drawing + ) mcon_rect_ref1 = c << mcon_rect mcon_rect_ref1.movey(0.25).movex(0.19) mcon_rect_ref2 = c << mcon_rect @@ -86,7 +95,9 @@ def nmos() -> Component: licon1_height = 0.17 licon1_width = 0.17 - licon1_rect = gf.components.rectangle(size=(licon1_width,licon1_height), layer=licon1_drawing) + licon1_rect = gf.components.rectangle( + size=(licon1_width, licon1_height), layer=licon1_drawing + ) licon1_rect_ref1 = c << licon1_rect licon1_rect_ref1.movey(0.25).movex(0.19) licon1_rect_ref2 = c << licon1_rect @@ -96,7 +107,9 @@ def nmos() -> Component: met1_height = 0.42 met1_width = 0.23 - met1_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) + met1_rect = gf.components.rectangle( + size=(met1_width, met1_height), layer=met1_drawing + ) met1_rect_ref1 = c << met1_rect met1_rect_ref1.movey(0.125).movex(0.16) @@ -106,12 +119,17 @@ def nmos() -> Component: ##labels - met1_label_s = c.add_label("S", position=(0.255,0.36), layer=met1_label, magnification=0.2) - met1_label_d = c.add_label("D", position=(0.81,0.36), layer=met1_label, magnification=0.2) - #c.add_label() + met1_label_s = c.add_label( + "S", position=(0.255, 0.36), layer=met1_label, magnification=0.2 + ) + met1_label_d = c.add_label( + "D", position=(0.81, 0.36), layer=met1_label, magnification=0.2 + ) + # c.add_label() return c + @gf.cell def cmirror_top(mult=3) -> Component: @@ -121,77 +139,91 @@ def cmirror_top(mult=3) -> Component: cell_height = 0.67 cell_width = 1.1 space_bet_rows = 0.66 - #mult = 8 + # mult = 8 ##pwell - pwell_width = (cell_width*mult) + 0.11 - pwell_height = (cell_height*2) + space_bet_rows + 0.11 + pwell_width = (cell_width * mult) + 0.11 + pwell_height = (cell_height * 2) + space_bet_rows + 0.11 - pwell_rect = gf.components.rectangle(size=(pwell_width,pwell_height), layer=pwell_drawing) + pwell_rect = gf.components.rectangle( + size=(pwell_width, pwell_height), layer=pwell_drawing + ) pwell_rect_ref = Top_cell << pwell_rect pwell_rect_ref.movex(-0.055).movey(-0.055) ##dnwell - dnwell_width = (cell_width*mult) + 0.91 - dnwell_height = (cell_height*2) + space_bet_rows + 0.91 + dnwell_width = (cell_width * mult) + 0.91 + dnwell_height = (cell_height * 2) + space_bet_rows + 0.91 - dnwell_rect = gf.components.rectangle(size=(dnwell_width,dnwell_height), layer=dnwell_drawing) + dnwell_rect = gf.components.rectangle( + size=(dnwell_width, dnwell_height), layer=dnwell_drawing + ) dnwell_rect_ref = Top_cell << dnwell_rect dnwell_rect_ref.movex(-0.455).movey(-0.455) - for i in range(mult): for j in range(2): print(j) ref = Top_cell << cmirror - ref.movex(cell_width*i).movey(cell_height*(j) + space_bet_rows*(j)) + ref.movex(cell_width * i).movey(cell_height * (j) + space_bet_rows * (j)) for i in range(mult): for j in range(2): poly_width = 0.25 poly_height = 1.85 - poly_row_conn_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) + poly_row_conn_rect = gf.components.rectangle( + size=(poly_width, poly_height), layer=poly_drawing + ) poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect - poly_row_conn_rect_ref.movex(cell_width*i + 0.425).movey(-0.005) + poly_row_conn_rect_ref.movex(cell_width * i + 0.425).movey(-0.005) via_height = 0.17 via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + via_rect = gf.components.rectangle( + size=(via_height, via_width), layer=via_drawing + ) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i + 0.425 + 0.04).movey(0.9) - + via_rect_ref.movex(cell_width * i + 0.425 + 0.04).movey(0.9) for i in range(mult): for j in range(2): met1_height = 1.59 met1_width = 0.23 - met1_row_conn_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) + met1_row_conn_rect = gf.components.rectangle( + size=(met1_width, met1_height), layer=met1_drawing + ) met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect - met1_row_conn_rect_ref.movex(cell_width*i + 0.16).movey(0.125) + met1_row_conn_rect_ref.movex(cell_width * i + 0.16).movey(0.125) via_height = 0.17 via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + via_rect = gf.components.rectangle( + size=(via_height, via_width), layer=via_drawing + ) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i + 0.16 + 0.03).movey(0.9) + via_rect_ref.movex(cell_width * i + 0.16 + 0.03).movey(0.9) met2_pin_width = 0.23 met2_pin_height = 0.23 - met2_pin_rect = gf.components.rectangle(size=(met2_pin_width,met2_pin_height), layer=met2_pin) + met2_pin_rect = gf.components.rectangle( + size=(met2_pin_width, met2_pin_height), layer=met2_pin + ) ## Center VSS M2 path - met2_center_width = 0.5 + cell_width*mult + met2_center_width = 0.5 + cell_width * mult met2_center_height = 0.23 - met2_center = gf.components.rectangle(size=(met2_center_width,met2_center_height), layer=met2_drawing) + met2_center = gf.components.rectangle( + size=(met2_center_width, met2_center_height), layer=met2_drawing + ) met2_center_ref = Top_cell << met2_center @@ -200,13 +232,17 @@ def cmirror_top(mult=3) -> Component: met2_pin_VSS = Top_cell << met2_pin_rect met2_pin_VSS.movex(-0.5).movey(0.9 - 0.03) - met2_label_I_in = Top_cell.add_label("VSS", position=(-0.5,0.9 - 0.03), layer=met2_label, magnification=0.2) + met2_label_I_in = Top_cell.add_label( + "VSS", position=(-0.5, 0.9 - 0.03), layer=met2_label, magnification=0.2 + ) - #Iin and Iout Metal trunk - met2_tb_width = 0.5 + cell_width*mult + 1.25 + # Iin and Iout Metal trunk + met2_tb_width = 0.5 + cell_width * mult + 1.25 met2_tb_height = 0.23 - met2_tb = gf.components.rectangle(size=(met2_tb_width,met2_tb_height), layer=met2_drawing) + met2_tb = gf.components.rectangle( + size=(met2_tb_width, met2_tb_height), layer=met2_drawing + ) ##Top trunk met2_top_I_in_ref = Top_cell << met2_tb @@ -215,7 +251,9 @@ def cmirror_top(mult=3) -> Component: met2_pin_I_in = Top_cell << met2_pin_rect met2_pin_I_in.movex(-0.5).movey(2.5) - met2_label_I_in = Top_cell.add_label("I_in", position=(-0.5,2.5), layer=met2_label, magnification=0.2) + met2_label_I_in = Top_cell.add_label( + "I_in", position=(-0.5, 2.5), layer=met2_label, magnification=0.2 + ) met2_top_I_out_ref = Top_cell << met2_tb met2_top_I_out_ref.movex(-0.5).movey(2.5 + 0.5) @@ -223,7 +261,9 @@ def cmirror_top(mult=3) -> Component: met2_pin_I_out = Top_cell << met2_pin_rect met2_pin_I_out.movex(-0.5).movey(2.5 + 0.5) - met2_label_I_out = Top_cell.add_label("I_out", position=(-0.5,2.5+0.5), layer=met2_label, magnification=0.2) + met2_label_I_out = Top_cell.add_label( + "I_out", position=(-0.5, 2.5 + 0.5), layer=met2_label, magnification=0.2 + ) ## Bottom trunk met2_bottom_I_in_ref = Top_cell << met2_tb @@ -232,18 +272,21 @@ def cmirror_top(mult=3) -> Component: met2_bottom_I_out_ref = Top_cell << met2_tb met2_bottom_I_out_ref.movex(-0.5).movey(-0.73 - 0.5) - ## Right end Trunks met1_right_width = 0.23 met1_right_height_1 = 4.46 met1_right_height_2 = 3.46 - met1_right_trunk_1 = gf.components.rectangle(size=(met1_right_width,met1_right_height_2), layer=met1_drawing) - met1_right_trunk_2 = gf.components.rectangle(size=(met1_right_width,met1_right_height_1), layer=met1_drawing) + met1_right_trunk_1 = gf.components.rectangle( + size=(met1_right_width, met1_right_height_2), layer=met1_drawing + ) + met1_right_trunk_2 = gf.components.rectangle( + size=(met1_right_width, met1_right_height_1), layer=met1_drawing + ) ## Right - I_in trunk met1_right_trunk_ref_I_in = Top_cell << met1_right_trunk_1 - trunk_1_x_shift = 0.5 + cell_width*mult + trunk_1_x_shift = 0.5 + cell_width * mult met1_right_trunk_ref_I_in.movex(trunk_1_x_shift).movey(-0.73) ## Right - I_out trunk @@ -253,18 +296,21 @@ def cmirror_top(mult=3) -> Component: via_height = 0.17 via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + via_rect = gf.components.rectangle(size=(via_height, via_width), layer=via_drawing) via_rect_ref = Top_cell << via_rect via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(-0.73 + 0.03) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(met1_right_height_2 - 0.73 -0.17 - 0.03) + via_rect_ref.movex(trunk_1_x_shift + 0.03).movey( + met1_right_height_2 - 0.73 - 0.17 - 0.03 + ) via_rect_ref = Top_cell << via_rect via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(-1.23 + 0.03) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(met1_right_height_1 - 1.23 -0.17 - 0.03) - + via_rect_ref.movex(trunk_2_x_shift + 0.03).movey( + met1_right_height_1 - 1.23 - 0.17 - 0.03 + ) ##Connecting to trunk ## i ---> col @@ -277,41 +323,62 @@ def cmirror_top(mult=3) -> Component: via_height = 0.17 via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + via_rect = gf.components.rectangle( + size=(via_height, via_width), layer=via_drawing + ) - met1_tr_conn_rect_1 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_1), layer=met1_drawing) + met1_tr_conn_rect_1 = gf.components.rectangle( + size=(met1_tr_conn_width, met1_tr_conn_height_1), layer=met1_drawing + ) - met1_tr_conn_rect_2 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_2), layer=met1_drawing) + met1_tr_conn_rect_2 = gf.components.rectangle( + size=(met1_tr_conn_width, met1_tr_conn_height_2), layer=met1_drawing + ) - - if(i%2 != 0): - if(j%2 != 0): + if i % 2 != 0: + if j % 2 != 0: met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex(cell_width*i + 0.16+0.55).movey(-1.23) + met1_tr_conn_rect_ref.movex(cell_width * i + 0.16 + 0.55).movey( + -1.23 + ) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i + 0.16 + 0.55 + 0.03).movey(-1.23 + 0.03) - else: + via_rect_ref.movex(cell_width * i + 0.16 + 0.55 + 0.03).movey( + -1.23 + 0.03 + ) + else: met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex(cell_width*i + 0.16+0.55).movey(1.455) + met1_tr_conn_rect_ref.movex(cell_width * i + 0.16 + 0.55).movey( + 1.455 + ) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i + 0.16 + 0.55 + 0.03).movey(1.455 + met1_tr_conn_height_1 - 0.17 - 0.03) + via_rect_ref.movex(cell_width * i + 0.16 + 0.55 + 0.03).movey( + 1.455 + met1_tr_conn_height_1 - 0.17 - 0.03 + ) else: - if(j%2 != 0): + if j % 2 != 0: met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex(cell_width*i + 0.16+0.55).movey(-0.73) + met1_tr_conn_rect_ref.movex(cell_width * i + 0.16 + 0.55).movey( + -0.73 + ) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i + 0.16 + 0.55 + 0.03).movey(-0.73 + 0.03) + via_rect_ref.movex(cell_width * i + 0.16 + 0.55 + 0.03).movey( + -0.73 + 0.03 + ) else: met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex(cell_width*i + 0.16+0.55).movey(1.455) + met1_tr_conn_rect_ref.movex(cell_width * i + 0.16 + 0.55).movey( + 1.455 + ) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i + 0.16 + 0.55 + 0.03).movey(1.455 + met1_tr_conn_height_2 - 0.17 - 0.03) + via_rect_ref.movex(cell_width * i + 0.16 + 0.55 + 0.03).movey( + 1.455 + met1_tr_conn_height_2 - 0.17 - 0.03 + ) return Top_cell + Top_cell = cmirror_top(2) Top_cell.show() - diff --git a/openfasoc/generators/gdsfactory-gen/differential_pair.py b/openfasoc/generators/gdsfactory-gen/differential_pair.py index 2b2679ef6..0dc292efb 100644 --- a/openfasoc/generators/gdsfactory-gen/differential_pair.py +++ b/openfasoc/generators/gdsfactory-gen/differential_pair.py @@ -9,67 +9,72 @@ PDK = get_generic_pdk() PDK.activate() -pwell_drawing = (64,13) -dnwell_drawing = (64,18) -nwell_drawing = (64,20) -outline_ref = (236,0) -diff_drawing = (65,20) -psdm_drawing = (94,20) -nsdm_drawing = (93,44) -poly_drawing = (66,20) -poly_pin = (66,16) -poly_label = (66,5) +pwell_drawing = (64, 13) +dnwell_drawing = (64, 18) +nwell_drawing = (64, 20) +outline_ref = (236, 0) +diff_drawing = (65, 20) +psdm_drawing = (94, 20) +nsdm_drawing = (93, 44) +poly_drawing = (66, 20) +poly_pin = (66, 16) +poly_label = (66, 5) licon1_drawing = (66, 44) npc_drawing = (95, 20) -li1_drawing = (67,20) -mcon_drawing = (67,44) -met1_drawing = (68,20) -met1_label = (68,5) -met1_pin = (68,16) -via_drawing = (68,44) -met2_drawing = (69,20) -met2_label = (69,5) -met2_pin = (69,16) -via2_drawing = (69,44) -met3_drawing = (70,20) -met3_label = (70,5) -met3_pin = (70,16) -text_drawing = (83,44) +li1_drawing = (67, 20) +mcon_drawing = (67, 44) +met1_drawing = (68, 20) +met1_label = (68, 5) +met1_pin = (68, 16) +via_drawing = (68, 44) +met2_drawing = (69, 20) +met2_label = (69, 5) +met2_pin = (69, 16) +via2_drawing = (69, 44) +met3_drawing = (70, 20) +met3_label = (70, 5) +met3_pin = (70, 16) +text_drawing = (83, 44) + @gf.cell def nmos(cell_height) -> Component: c = Component() - - ##nsdm - nsdm_height = cell_height ##0.67 + nsdm_height = cell_height ##0.67 nsdm_width = 1.1 - nsdm_outline_rect = gf.components.rectangle(size=(nsdm_width,nsdm_height), layer=nsdm_drawing) + nsdm_outline_rect = gf.components.rectangle( + size=(nsdm_width, nsdm_height), layer=nsdm_drawing + ) nsdm_outline_rect_ref = c << nsdm_outline_rect ##poly poly_width = 0.25 - poly_height = cell_height + 0.01 ##0.68 + poly_height = cell_height + 0.01 ##0.68 - poly_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) + poly_rect = gf.components.rectangle( + size=(poly_width, poly_height), layer=poly_drawing + ) poly_rect_ref = c << poly_rect poly_rect_ref.movex(0.425).movey(-0.005) ##diff diff_width = 0.85 - diff_height = (cell_height - (0.125*2)) ##0.42 - diff_rect = gf.components.rectangle(size=(diff_width,diff_height), layer=diff_drawing) + diff_height = cell_height - (0.125 * 2) ##0.42 + diff_rect = gf.components.rectangle( + size=(diff_width, diff_height), layer=diff_drawing + ) diff_rect_ref = c << diff_rect diff_rect_ref.movex(0.125).movey(0.125) ##li1_drawing - li1_height = (cell_height - (0.085*2)) ##0.5 + li1_height = cell_height - (0.085 * 2) ##0.5 li1_width = 0.17 - li1_rect = gf.components.rectangle(size=(li1_width,li1_height), layer=li1_drawing) + li1_rect = gf.components.rectangle(size=(li1_width, li1_height), layer=li1_drawing) li1_rect_ref1 = c << li1_rect li1_rect_ref1.movey(0.085).movex(0.19) @@ -80,116 +85,139 @@ def nmos(cell_height) -> Component: mcon_height = 0.17 mcon_width = 0.17 - mcon_rect = gf.components.rectangle(size=(mcon_width,mcon_height), layer=mcon_drawing) + mcon_rect = gf.components.rectangle( + size=(mcon_width, mcon_height), layer=mcon_drawing + ) for i in range(int(cell_height / 0.67)): mcon_rect_ref1 = c << mcon_rect - mcon_rect_ref1.movey(0.67*i + 0.25).movex(0.19) + mcon_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) mcon_rect_ref2 = c << mcon_rect - mcon_rect_ref2.movey(0.67*i + 0.25).movex(0.74) + mcon_rect_ref2.movey(0.67 * i + 0.25).movex(0.74) ##licon1 licon1_height = 0.17 licon1_width = 0.17 - licon1_rect = gf.components.rectangle(size=(licon1_width,licon1_height), layer=licon1_drawing) + licon1_rect = gf.components.rectangle( + size=(licon1_width, licon1_height), layer=licon1_drawing + ) for i in range(int(cell_height / 0.67)): licon1_rect_ref1 = c << licon1_rect - licon1_rect_ref1.movey(0.67*i + 0.25).movex(0.19) + licon1_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) licon1_rect_ref2 = c << licon1_rect - licon1_rect_ref2.movey(0.67*i + 0.25).movex(0.74) + licon1_rect_ref2.movey(0.67 * i + 0.25).movex(0.74) ##met1 - met1_height = (cell_height - (0.125*2)) ##0.42 + met1_height = cell_height - (0.125 * 2) ##0.42 met1_width = 0.23 - met1_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) + met1_rect = gf.components.rectangle( + size=(met1_width, met1_height), layer=met1_drawing + ) met1_rect_ref1 = c << met1_rect - met1_rect_ref1.movey( 0.125).movex(0.16) + met1_rect_ref1.movey(0.125).movex(0.16) met1_rect_ref2 = c << met1_rect met1_rect_ref2.movey(0.125).movex(0.71) ##labels - met1_label_s = c.add_label("S", position=(0.255,(cell_height/2)), layer=met1_label, magnification=0.2) - met1_label_d = c.add_label("D", position=(0.81,(cell_height/2)), layer=met1_label, magnification=0.2) - #c.add_label() + met1_label_s = c.add_label( + "S", position=(0.255, (cell_height / 2)), layer=met1_label, magnification=0.2 + ) + met1_label_d = c.add_label( + "D", position=(0.81, (cell_height / 2)), layer=met1_label, magnification=0.2 + ) + # c.add_label() return c + @gf.cell def diff_pair_top(mult=3, cell_height=0.67) -> Component: Top_cell = gf.Component("top") - mult = mult*2 + mult = mult * 2 mos_comp = nmos(cell_height) - #cell_height = 0.67 + # cell_height = 0.67 cell_width = 1.1 space_bet_rows = 0.66 - #mult = 8 + # mult = 8 ##pwell - pwell_width = (cell_width*((mult+1)/2)) + 0.11 - pwell_height = (cell_height*1) + 0.11 + pwell_width = (cell_width * ((mult + 1) / 2)) + 0.11 + pwell_height = (cell_height * 1) + 0.11 - pwell_rect = gf.components.rectangle(size=(pwell_width,pwell_height), layer=pwell_drawing) + pwell_rect = gf.components.rectangle( + size=(pwell_width, pwell_height), layer=pwell_drawing + ) pwell_rect_ref = Top_cell << pwell_rect pwell_rect_ref.movex(-0.055).movey(-0.055) ##dnwell - dnwell_width = (cell_width*((mult+1)/2)) + 0.91 - dnwell_height = (cell_height*1) + 0.91 + dnwell_width = (cell_width * ((mult + 1) / 2)) + 0.91 + dnwell_height = (cell_height * 1) + 0.91 - dnwell_rect = gf.components.rectangle(size=(dnwell_width,dnwell_height), layer=dnwell_drawing) + dnwell_rect = gf.components.rectangle( + size=(dnwell_width, dnwell_height), layer=dnwell_drawing + ) dnwell_rect_ref = Top_cell << dnwell_rect dnwell_rect_ref.movex(-0.455).movey(-0.455) - for i in range(mult): - j=0 - #for j in range(2): - print(j) - ref = Top_cell << mos_comp - if i == 0: - ref.movex(cell_width*i).movey(cell_height*(j) + space_bet_rows*(j)) - else: - ref.movex(cell_width*i - (cell_width*i/2)).movey(cell_height*(j) + space_bet_rows*(j)) + j = 0 + # for j in range(2): + print(j) + ref = Top_cell << mos_comp + if i == 0: + ref.movex(cell_width * i).movey(cell_height * (j) + space_bet_rows * (j)) + else: + ref.movex(cell_width * i - (cell_width * i / 2)).movey( + cell_height * (j) + space_bet_rows * (j) + ) - for i in range(mult): - #for j in range(2): - if (i%2 == 0) : + # for j in range(2): + if i % 2 == 0: poly_width = 0.25 poly_height = cell_height + 0.1 - poly_row_conn_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) + poly_row_conn_rect = gf.components.rectangle( + size=(poly_width, poly_height), layer=poly_drawing + ) poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect - poly_row_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.425).movey(-0.1) + poly_row_conn_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.425 + ).movey(-0.1) - elif (i%2 != 0) : + elif i % 2 != 0: poly_width = 0.25 poly_height = cell_height + 0.1 - poly_row_conn_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) + poly_row_conn_rect = gf.components.rectangle( + size=(poly_width, poly_height), layer=poly_drawing + ) poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect - poly_row_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.425).movey(0) + poly_row_conn_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.425 + ).movey(0) - #via_height = 0.17 - #via_width = 0.17 - #via_rect = gf.components.rectangle(size=(via_height,via_width), #layer=via_drawing) + # via_height = 0.17 + # via_width = 0.17 + # via_rect = gf.components.rectangle(size=(via_height,via_width), #layer=via_drawing) - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(cell_width*i + 0.425 + 0.04).movey(0.9) - - ''' + # via_rect_ref = Top_cell << via_rect + # via_rect_ref.movex(cell_width*i + 0.425 + 0.04).movey(0.9) + + """ for i in range(mult): #for j in range(2): met1_height = 1.59 @@ -206,81 +234,109 @@ def diff_pair_top(mult=3, cell_height=0.67) -> Component: #via_rect_ref = Top_cell << via_rect #via_rect_ref.movex(cell_width*i + 0.16 + 0.03).movey(0.9) - ''' + """ met2_pin_width = 0.23 met2_pin_height = 0.23 - met2_pin_rect = gf.components.rectangle(size=(met2_pin_width,met2_pin_height), layer=met2_pin) + met2_pin_rect = gf.components.rectangle( + size=(met2_pin_width, met2_pin_height), layer=met2_pin + ) poly_pin_width = poly_pin_height = 0.25 - poly_pin_rect = gf.components.rectangle(size=(poly_pin_width,poly_pin_height), layer=poly_pin) + poly_pin_rect = gf.components.rectangle( + size=(poly_pin_width, poly_pin_height), layer=poly_pin + ) ## Center VSS M2 path - #met2_center_width = 0.5 + cell_width*mult - #met2_center_height = 0.23 - #met2_center = gf.components.rectangle(size=(met2_center_width,#met2_center_height), layer=met2_drawing) + # met2_center_width = 0.5 + cell_width*mult + # met2_center_height = 0.23 + # met2_center = gf.components.rectangle(size=(met2_center_width,#met2_center_height), layer=met2_drawing) - #met2_center_ref = Top_cell << met2_center + # met2_center_ref = Top_cell << met2_center - #met2_center_ref.movex(-0.5).movey(0.9 - 0.03) + # met2_center_ref.movex(-0.5).movey(0.9 - 0.03) - #met2_pin_VSS = Top_cell << met2_pin_rect - #met2_pin_VSS.movex(-0.5).movey(0.9 - 0.03) + # met2_pin_VSS = Top_cell << met2_pin_rect + # met2_pin_VSS.movex(-0.5).movey(0.9 - 0.03) ## VSS pin label - #met2_label_VSS = Top_cell.add_label("VSS", position=(-0.5,0.9 - 0.03), layer=met2_label, magnification=0.2) + # met2_label_VSS = Top_cell.add_label("VSS", position=(-0.5,0.9 - 0.03), layer=met2_label, magnification=0.2) - #G_M1 and G_M2 Poly Trunk - poly_tb_width = 0.5 + cell_width*((mult+1)/2) + # G_M1 and G_M2 Poly Trunk + poly_tb_width = 0.5 + cell_width * ((mult + 1) / 2) poly_tb_height = 0.25 - poly_tb_ref = gf.components.rectangle(size=(poly_tb_width,poly_tb_height), layer=poly_drawing) + poly_tb_ref = gf.components.rectangle( + size=(poly_tb_width, poly_tb_height), layer=poly_drawing + ) ## Top poly trunk - #G_M1 + # G_M1 poly_top_G_M1 = Top_cell << poly_tb_ref poly_top_G_M1.movex(-0.5).movey(cell_height + 0.1) - + poly_pin_G_M1 = Top_cell << poly_pin_rect poly_pin_G_M1.movex(-0.5).movey(cell_height + 0.1) - poly_label_G_M1 = Top_cell.add_label("G_M1", position=(-0.5 + 0.25,cell_height + 0.1 + 0.25), layer=poly_label, magnification=0.2) + poly_label_G_M1 = Top_cell.add_label( + "G_M1", + position=(-0.5 + 0.25, cell_height + 0.1 + 0.25), + layer=poly_label, + magnification=0.2, + ) - #G_M2 + # G_M2 poly_top_G_M2 = Top_cell << poly_tb_ref - poly_top_G_M2.movex(-0.5).movey(-0.23- 0.1) + poly_top_G_M2.movex(-0.5).movey(-0.23 - 0.1) poly_pin_G_M2 = Top_cell << poly_pin_rect - poly_pin_G_M2.movex(-0.5).movey( -0.23 - 0.1) + poly_pin_G_M2.movex(-0.5).movey(-0.23 - 0.1) - poly_label_G_M2 = Top_cell.add_label("G_M2", position=(-0.5 + 0.25, -0.23 - 0.1 +0.25), layer=poly_label, magnification=0.2) + poly_label_G_M2 = Top_cell.add_label( + "G_M2", + position=(-0.5 + 0.25, -0.23 - 0.1 + 0.25), + layer=poly_label, + magnification=0.2, + ) - #D_M1 and D_M2 Metal trunk - met2_tb_width = 0.5 + cell_width*((mult+1)/2) + 0.75 + # D_M1 and D_M2 Metal trunk + met2_tb_width = 0.5 + cell_width * ((mult + 1) / 2) + 0.75 met2_tb_height = 0.23 - met2_tb = gf.components.rectangle(size=(met2_tb_width,met2_tb_height), layer=met2_drawing) + met2_tb = gf.components.rectangle( + size=(met2_tb_width, met2_tb_height), layer=met2_drawing + ) ##Top trunk - #D_M1 + # D_M1 met2_top_I_in_ref = Top_cell << met2_tb met2_top_I_in_ref.movex(-0.5).movey(cell_height + 0.5) met2_pin_I_in = Top_cell << met2_pin_rect met2_pin_I_in.movex(-0.5).movey(cell_height + 0.5) - met2_label_I_in = Top_cell.add_label("VSS", position=(-0.5 + 0.25,cell_height + 0.5 + 0.2), layer=met2_label, magnification=0.2) - - #D_M2 + met2_label_I_in = Top_cell.add_label( + "VSS", + position=(-0.5 + 0.25, cell_height + 0.5 + 0.2), + layer=met2_label, + magnification=0.2, + ) + + # D_M2 met2_top_I_out_ref = Top_cell << met2_tb met2_top_I_out_ref.movex(-0.5).movey(cell_height + 0.5 + 0.5) met2_pin_I_out = Top_cell << met2_pin_rect met2_pin_I_out.movex(-0.5).movey(cell_height + 0.5 + 0.5) - met2_label_I_out = Top_cell.add_label("D_M1", position=(-0.5 + 0.25, cell_height + 1.0 + 0.25), layer=met2_label, magnification=0.2) + met2_label_I_out = Top_cell.add_label( + "D_M1", + position=(-0.5 + 0.25, cell_height + 1.0 + 0.25), + layer=met2_label, + magnification=0.2, + ) ## Bottom trunk @@ -295,104 +351,136 @@ def diff_pair_top(mult=3, cell_height=0.67) -> Component: met2_pin_I_in = Top_cell << met2_pin_rect met2_pin_I_in.movex(-0.5).movey(-0.5 - 0.23 - 0.5) - met2_label_I_in = Top_cell.add_label("D_M1", position=(-0.5 + 0.25,-0.5 - 0.23 - 0.5 + 0.25), layer=met2_label, magnification=0.2) - + met2_label_I_in = Top_cell.add_label( + "D_M1", + position=(-0.5 + 0.25, -0.5 - 0.23 - 0.5 + 0.25), + layer=met2_label, + magnification=0.2, + ) ## Right end Trunks met1_right_width = 0.23 - met1_right_height_1 = cell_height + (0.5*2) + (0.23*2) + met1_right_height_1 = cell_height + (0.5 * 2) + (0.23 * 2) met1_right_height_2 = 3.46 - met1_right_trunk_1 = gf.components.rectangle(size=(met1_right_width,met1_right_height_1), layer=met1_drawing) - met1_right_trunk_2 = gf.components.rectangle(size=(met1_right_width,met1_right_height_2), layer=met1_drawing) + met1_right_trunk_1 = gf.components.rectangle( + size=(met1_right_width, met1_right_height_1), layer=met1_drawing + ) + met1_right_trunk_2 = gf.components.rectangle( + size=(met1_right_width, met1_right_height_2), layer=met1_drawing + ) ## Right - I_in trunk met1_right_trunk_ref_I_in = Top_cell << met1_right_trunk_1 - trunk_1_x_shift = 0.5 + cell_width*((mult+1)/2) - met1_right_trunk_ref_I_in.movex(trunk_1_x_shift).movey( -(0.5 + 0.23)) + trunk_1_x_shift = 0.5 + cell_width * ((mult + 1) / 2) + met1_right_trunk_ref_I_in.movex(trunk_1_x_shift).movey(-(0.5 + 0.23)) ## Right - I_out trunk - #met1_right_trunk_ref_I_out = Top_cell << met1_right_trunk_2 - #trunk_2_x_shift = 0.5 + trunk_1_x_shift - #met1_right_trunk_ref_I_out.movex(trunk_2_x_shift).movey(-1.23) + # met1_right_trunk_ref_I_out = Top_cell << met1_right_trunk_2 + # trunk_2_x_shift = 0.5 + trunk_1_x_shift + # met1_right_trunk_ref_I_out.movex(trunk_2_x_shift).movey(-1.23) via_height = 0.17 via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + via_rect = gf.components.rectangle(size=(via_height, via_width), layer=via_drawing) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(-(0.5+0.23) + 0.03) + via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(-(0.5 + 0.23) + 0.03) via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(met1_right_height_1 - (0.5 + 0.23) -0.17 - 0.03) - - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(-1.23 + 0.03) - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(met1_right_height_2 - 1.23 -0.17 - 0.03) + via_rect_ref.movex(trunk_1_x_shift + 0.03).movey( + met1_right_height_1 - (0.5 + 0.23) - 0.17 - 0.03 + ) + # via_rect_ref = Top_cell << via_rect + # via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(-1.23 + 0.03) + # via_rect_ref = Top_cell << via_rect + # via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(met1_right_height_2 - 1.23 -0.17 - 0.03) ##Connecting to trunk ## i ---> col ## j ---> row connect = "up" for i in range(mult): - #for j in range(2): - met1_tr_conn_height_1 = (cell_height + 0.5 + 0.23 ) - 0.125 ##1.275 - met1_tr_conn_height_2 = (cell_height + 1.0 + 0.23 ) - 0.125 ##1.775 - met1_tr_conn_width = 0.23 + # for j in range(2): + met1_tr_conn_height_1 = (cell_height + 0.5 + 0.23) - 0.125 ##1.275 + met1_tr_conn_height_2 = (cell_height + 1.0 + 0.23) - 0.125 ##1.775 + met1_tr_conn_width = 0.23 + + via_height = 0.17 + via_width = 0.17 + via_rect = gf.components.rectangle( + size=(via_height, via_width), layer=via_drawing + ) + + met1_tr_conn_rect_1 = gf.components.rectangle( + size=(met1_tr_conn_width, met1_tr_conn_height_1), layer=met1_drawing + ) + + met1_tr_conn_rect_2 = gf.components.rectangle( + size=(met1_tr_conn_width, met1_tr_conn_height_2), layer=met1_drawing + ) + + if i == 0: + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 + met1_tr_conn_rect_ref.movex(0.16).movey(0.125) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(0.16 + 0.03).movey( + 0.125 + met1_tr_conn_height_2 - 0.17 - 0.03 + ) + + if i % 2 != 0: + # if((i+3)%2 == 0): + if connect == "up": + print("\nMult position") + print(i) + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 + met1_tr_conn_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + ).movey(-1.23) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 + ).movey(-1.23 + 0.03) + connect = "down" + else: + print("\nElse ---- > Mult position") + print(i) + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 + met1_tr_conn_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + ).movey(0.125) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 + ).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) + connect = "up" + + if i % 2 == 0: + if i % 4 != 0: + + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 + met1_tr_conn_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + ).movey(-0.73) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 + ).movey(-0.73 + 0.03) + else: + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 + met1_tr_conn_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + ).movey(0.125) - via_height = 0.17 - via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex( + cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 + ).movey(0.125 + met1_tr_conn_height_1 - 0.17 - 0.03) - met1_tr_conn_rect_1 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_1), layer=met1_drawing) - - met1_tr_conn_rect_2 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_2), layer=met1_drawing) - - if(i == 0): - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex( 0.16).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(0.16 + 0.03).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) - - if(i%2 != 0): - #if((i+3)%2 == 0): - if connect == "up": - print("\nMult position") - print(i) - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(-1.23) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(-1.23 + 0.03) - connect = "down" - else: - print("\nElse ---- > Mult position") - print(i) - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) - connect = "up" - - if(i%2 == 0): - if(i%4 != 0): - - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(-0.73) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(-0.73 + 0.03) - else: - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(0.125 + met1_tr_conn_height_1 - 0.17 - 0.03) - - return Top_cell diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py new file mode 100644 index 000000000..a23edc8d4 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -0,0 +1,137 @@ +import gdsfactory as gf + +# from PDK.mappedpdk import MappedPDK +from rectangular_ring import rectangular_ring +from via_stack import via_stack +from typing import Optional +import math + + +@gf.cell +def ptapring( + pdk, + enclosed_rectangle=(2.0, 4.0), + horizontal_glayer: Optional[str] = "met1", + vertical_glayer: Optional[str] = "met2", +) -> gf.Component: + """ptapring produce a p substrate / pwell tap rectanglular ring + This ring will legally enclose a rectangular shape + args: + pdk: MappedPDK is the pdk to use + enclosed_rectangle: tuple is the (width, hieght) of the area to enclose + ****NOTE: the enclosed_rectangle will be the enclosed dimensions of active_tap + horizontal_glayer: string=met2, layer used over the ring horizontally + vertical_glayer: string=met1, layer used over the ring vertically + """ + # check layers, activate pdk, create top cell + pdk.has_required_glayers( + ["p+s/d", "active_tap", "mcon", horizontal_glayer, vertical_glayer] + ) + pdk.activate() + ptapring = gf.Component() + if not "met" in horizontal_glayer or not "met" in vertical_glayer: + raise ValueError("both horizontal and vertical glayers should be metals") + # check that ring is not too small + min_gap_tap = pdk.get_grule("active_tap")["min_seperation"] + if enclosed_rectangle[0] < min_gap_tap: + raise ValueError("ptapring must be larger than " + str(min_gap_tap)) + # create active tap + tap_width = max( + pdk.get_grule("active_tap")["min_width"], + 2 * pdk.get_grule("active_tap", "mcon")["min_enclosure"] + + pdk.get_grule("mcon")["width"], + ) + ptapring << rectangular_ring( + enclosed_size=enclosed_rectangle, + width=tap_width, + centered=True, + layer=pdk.get_glayer("active_tap"), + ) + # create p plus area + pp_enclosure = pdk.get_grule("active_tap", "p+s/d")["min_enclosure"] + pp_width = 2 * pp_enclosure + tap_width + pp_enclosed_rectangle = [dim - 2 * pp_enclosure for dim in enclosed_rectangle] + ptapring << rectangular_ring( + enclosed_size=pp_enclosed_rectangle, + width=pp_width, + centered=True, + layer=pdk.get_glayer("p+s/d"), + ) + # compute via seperation. via_spacing[0] is horizontal, via_spacing[1] is vertical + xlvl = int(horizontal_glayer[-1]) + ylvl = int(vertical_glayer[-1]) + via_spacing = list() + for dlvl in [xlvl, ylvl]: + via_seperations = [pdk.get_grule("mcon")["min_seperation"]] + [ + pdk.get_grule("via" + str(lvl))["min_seperation"] + for lvl in range(1, dlvl + 1) + ] + metal_seperations = [ + pdk.get_grule("met" + str(lvl))["min_seperation"] + for lvl in range(1, dlvl + 1) + ] + via_spacing.append(max(via_seperations + metal_seperations)) + # compute how many vias and create the vias + num_vias = list() + viawidth = 0 # need this for later + for i, toplayer in enumerate([horizontal_glayer, vertical_glayer]): + # figure out how many vias + viastack = via_stack(pdk, "active_tap", toplayer) + viawidth = max(viastack.xmax - viastack.xmin, viastack.ymax - viastack.ymin) + viaspacing_full = viawidth + via_spacing[i] + num_vias = int(enclosed_rectangle[i] / viaspacing_full) + if num_vias > 1: + num_vias = num_vias - 1 + # lay vias + for vianum in range(num_vias): + viastack_ref_plus = ptapring << viastack + viastack_ref_minus = ptapring << viastack + spacing_multiplier = ((-1) ** vianum) * math.ceil(vianum / 2) + if i == 0: # horizontal layer + viastack_ref_plus.movex(spacing_multiplier * viaspacing_full).movey( + 0.5 * (enclosed_rectangle[1] + tap_width) + ) + viastack_ref_minus.movex(spacing_multiplier * viaspacing_full).movey( + -0.5 * (enclosed_rectangle[1] + tap_width) + ) + else: # vertical layer + viastack_ref_plus.movex( + 0.5 * (enclosed_rectangle[0] + tap_width) + ).movey(spacing_multiplier * viaspacing_full) + viastack_ref_minus.movex( + -0.5 * (enclosed_rectangle[0] + tap_width) + ).movey(spacing_multiplier * viaspacing_full) + # lay metal + ns_side_dims = ( + enclosed_rectangle[0] + 2 * tap_width, + max(viawidth, pdk.get_grule(horizontal_glayer)["min_width"]), + ) + ew_side_dims = ( + max(viawidth, pdk.get_grule(horizontal_glayer)["min_width"]), + enclosed_rectangle[1] + 2 * tap_width, + ) + metal_ref_n = ptapring << gf.components.rectangle( + layer=pdk.get_glayer(horizontal_glayer), size=ns_side_dims, centered=True + ) + metal_ref_e = ptapring << gf.components.rectangle( + layer=pdk.get_glayer(vertical_glayer), size=ew_side_dims, centered=True + ) + metal_ref_s = ptapring << gf.components.rectangle( + layer=pdk.get_glayer(horizontal_glayer), size=ns_side_dims, centered=True + ) + metal_ref_w = ptapring << gf.components.rectangle( + layer=pdk.get_glayer(vertical_glayer), size=ew_side_dims, centered=True + ) + metal_ref_n.movey(0.5 * (enclosed_rectangle[1] + tap_width)) + metal_ref_e.movex(0.5 * (enclosed_rectangle[0] + tap_width)) + metal_ref_s.movey(-0.5 * (enclosed_rectangle[1] + tap_width)) + metal_ref_w.movex(-0.5 * (enclosed_rectangle[0] + tap_width)) + # done, flatten and return + return ptapring.flatten() + + +if __name__ == "__main__": + from PDK.gf180_mapped import gf180_mapped_pdk + + gf180_mapped_pdk.activate() + ptapring(gf180_mapped_pdk, enclosed_rectangle=(5, 5)).show() diff --git a/openfasoc/generators/gdsfactory-gen/nfet.py b/openfasoc/generators/gdsfactory-gen/nfet.py new file mode 100644 index 000000000..050a09502 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/nfet.py @@ -0,0 +1,123 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.components.rectangle import rectangle + +# from PDK.mappedpdk import MappedPDK +from typing import Optional +from via_stack import via_stack +from guardring import ptapring + +# GF180 +# NMOS target hieght = 2.19 +# PMOS target height = 2.59 +# standard hieght = 4.78 + + +@cell +def PARTIALsingle_multiplier_gen_no_diff( + pdk, width: float = 3, fingers: Optional[int] = 1 +) -> Component: + multiplier = Component("partial multiplier") + # create the poly gate + length = pdk.get_grule("poly")["min_width"] + poly_height = width + 2 * pdk.get_grule("poly", "active_diff")["overhang"] + poly_gate_comp = rectangle( + size=(length, poly_height), layer=pdk.get_glayer("poly"), centered=True + ) + # create active diff to met1 vias + sd_via_comp = Component("temp via array") + # TODO: implement sd_via_comp as via array + sd_via_comp << via_stack(pdk, "active_diff", "met1") + # figure out poly spacing s.t. metal does not overlap transistor + viasize = sd_via_comp.xmax - sd_via_comp.xmin + mcon_poly_space = ( + 2 * pdk.get_grule("poly", "mcon")["min_seperation"] + + pdk.get_grule("mcon")["width"] + ) + poly_spacing = max(viasize, mcon_poly_space) + # lay poly for all fingers + if fingers % 2: # odd number of fingers + multiplier << poly_gate_comp # center poly + sd_via_refr = multiplier << sd_via_comp + sd_via_refr.movex(0.5 * (length + poly_spacing)) + sd_via_refl = multiplier << sd_via_comp + sd_via_refl.movex(-0.5 * (length + poly_spacing)) + for fingermirror_num in range(int(fingers / 2)): + f_offset_ = fingermirror_num * (poly_spacing + length) + poly_gate_refr = multiplier << poly_gate_comp + poly_gate_refr.movex(f_offset_ + length + poly_spacing) + poly_gate_refl = multiplier << poly_gate_comp + poly_gate_refl.movex(-1 * (f_offset_ + length + poly_spacing)) + f_offset_ += poly_spacing + length + sd_via_refr = multiplier << sd_via_comp + sd_via_refr.movex(0.5 * (length + poly_spacing) + f_offset_) + sd_via_refl = multiplier << sd_via_comp + sd_via_refl.movex(-0.5 * (length + poly_spacing) - f_offset_) + else: + # TODO: implement + raise NotImplementedError("currenly only odd fingers are supported") + return multiplier.flatten() + + +@cell +def nmos( + pdk, + width: float = 3, + fingers: Optional[int] = 1, + multiplier: Optional[int] = 1, + with_tie: Optional[bool] = True, + with_dummy: Optional[bool] = True, +): + """Generic NMOS generator: uses minumum length without deep nwell + width = expands the NMOS in the y direction + fingers = introduces additional fingers (sharing source/drain) of width=width + with_tie = true or false, specfies if a bulk tie is required + """ + if width < pdk.get_grule("active_diff")["min_width"]: + raise ValueError("transistor min width violated") + # TODO: glayer checks + pdk.activate() + # 1) create one multiplier + # 2) multiplier.movey up then reflect the multiplier across the x axis + # 3) make sure all multipliers are on component then use bbox to place tie ring around nfet + # 4) place pwell + # 5) place dnwell + # 6) place tap ring + + # create a single multiplier + multiplier = Component("temp multiplier") + partialmult = PARTIALsingle_multiplier_gen_no_diff( + pdk, width=width, fingers=fingers + ) + + diff_dims = ( + partialmult.xmax + - partialmult.xmin + + 2 * pdk.get_grule("poly", "active_diff")["overhang"], + width, + ) + # TODO: revise ruleset for active__diff, default=pdk.get_grule("active_tap","p+s/d")["min_enclosure"] + # .add_padding(layers=(pdk.get_glayer("p+s/d")),default=pdk.get_grule("active_tap","p+s/d")["min_enclosure"]) + multiplier << rectangle( + size=diff_dims, layer=pdk.get_glayer("active_diff"), centered=True + ) + # multiplier.add_padding(layers=(pdk.get_glayer("p+s/d")),default=pdk.get_grule("poly","active_diff")["overhang"]) + multiplier.add_padding(layers=(pdk.get_glayer("p+s/d")), default=0.1) + multiplier << partialmult + return multiplier.flatten() + + +# @cell +# def pmos(pdk: MappedPDK, width: float, fingers = Optional[int] = 1, with_tie: Optional[bool] = False): +# """Generic PMOS generator: uses minumum length +# width = expands the PMOS in the y direction +# fingers = introduces additional fingers (sharing source/drain) of width=width +# with_tie = true or false, specfies if a bulk tie is required +# """ +# return + +if __name__ == "__main__": + from PDK.gf180_mapped import gf180_mapped_pdk + + gf180_mapped_pdk.activate() + nmos(gf180_mapped_pdk, fingers=5).show() diff --git a/openfasoc/generators/gdsfactory-gen/rectangular_ring.py b/openfasoc/generators/gdsfactory-gen/rectangular_ring.py new file mode 100644 index 000000000..1e86318e0 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/rectangular_ring.py @@ -0,0 +1,37 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.geometry import boolean +from gdsfactory.typings import LayerSpec +from gdsfactory.components.rectangle import rectangle + + +@cell +def rectangular_ring( + enclosed_size=(4.0, 2.0), + width: float = 0.5, + layer: LayerSpec = "WG", + centered: bool = False, +) -> Component: + """Returns a Rectangular Ring + + Args: + enclosed_size = (width,hieght) of the enclosed area. + width = width of the ring. + layer = Specific layer to put polygon geometry on. + centered: True sets center to (0,0), False sets south-west to (0,0). + """ + c = Component() + c_temp = Component("temp create ring") + rect_in = c_temp << rectangle(size=enclosed_size, centered=centered, layer=layer) + rect_out = c_temp << rectangle( + size=[dim + 2 * width for dim in enclosed_size], centered=centered, layer=layer + ) + if not centered: + rect_in.move((width, width)) + c << boolean(A=rect_out, B=rect_in, operation="A-B", layer=layer) + return c + + +if __name__ == "__main__": + c = rectangular_ring(centered=True) + c.show() diff --git a/openfasoc/generators/gdsfactory-gen/via_stack.py b/openfasoc/generators/gdsfactory-gen/via_stack.py new file mode 100644 index 000000000..182468860 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/via_stack.py @@ -0,0 +1,87 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.components.rectangle import rectangle + +# from PDK.mappedpdk import MappedPDK + + +@cell +def via_stack(pdk, glayer1: str, glayer2: str) -> Component: + """produces a single via stack between two metal layers + does not produce via arrays + args: + pdk: MappedPDK is the pdk to use + glayer1: str is the glayer to start on + glayer2: str is the glayer to end on + ****NOTE it does not matter what order you pass layers + ****NOTE will not lay poly or active but will lay metals + """ + pdk.activate() + viastack = Component() + # check that the generic layers specfied can be routed between + for layer in [glayer1, glayer2]: + if not pdk.is_routable_glayer(layer): + raise ValueError("via_stack: specify between two routable layers") + # correctly order layers (level1 should be lower than level2) + level1 = int(glayer1[-1]) if "met" in glayer1 else 0 + level2 = int(glayer2[-1]) if "met" in glayer2 else 0 + if level1 > level2: + level1, level2 = level2, level1 + # if same level return empty component + if level1 == level2: + return viastack + # lay mcon if first layer is active or poly + if not level1: + pdk.has_required_glayers(["mcon", "met1"]) + mcondim = pdk.get_grule("mcon")["width"] + viastack << rectangle( + size=(mcondim, mcondim), layer=pdk.get_glayer("mcon"), centered=True + ) + metdim = max( + 2 * pdk.get_grule("met1", "mcon")["min_enclosure"] + mcondim, + pdk.get_grule("met1")["min_width"], + ) + viastack << rectangle( + size=(metdim, metdim), layer=pdk.get_glayer("met1"), centered=True + ) + # add one to level1 (make it a metal) so we can use the code below + level1 += 1 + # check if layers are now same + if level1 == level2: + return viastack.flatten() + # construct metal stack if both are metals + if level1 and level2: + for level in range(level1, level2): + gmetlayer = "met" + str(level) + gnextvia = "via" + str(level) + pdk.has_required_glayers([gmetlayer, gnextvia]) + metdim = max( + 2 * pdk.get_grule(gmetlayer, gnextvia)["min_enclosure"] + + pdk.get_grule(gnextvia)["width"], + pdk.get_grule(gmetlayer)["min_width"], + ) + viastack << rectangle( + size=(metdim, metdim), layer=pdk.get_glayer(gmetlayer), centered=True + ) + viadim = pdk.get_grule(gnextvia)["width"] + viastack << rectangle( + size=(viadim, viadim), layer=pdk.get_glayer(gnextvia), centered=True + ) + gfinalmet = "met" + str(level2) + gprevvia = "via" + str(level) + metdim = max( + 2 * pdk.get_grule(gfinalmet, gprevvia)["min_enclosure"] + + pdk.get_grule(gprevvia)["width"], + pdk.get_grule(gfinalmet)["min_width"], + ) + viastack << rectangle( + size=(metdim, metdim), layer=pdk.get_glayer(gfinalmet), centered=True + ) + return viastack.flatten() + + +if __name__ == "__main__": + from PDK.gf180_mapped import gf180_mapped_pdk + + gf180_mapped_pdk.activate() + via_stack(gf180_mapped_pdk, "active_diff", "met1").show() diff --git a/openfasoc/generators/ldo-gen/flow/scripts/openfasoc/custom_place.tcl b/openfasoc/generators/ldo-gen/flow/scripts/openfasoc/custom_place.tcl index 2d27bf916..966e77c4f 100644 --- a/openfasoc/generators/ldo-gen/flow/scripts/openfasoc/custom_place.tcl +++ b/openfasoc/generators/ldo-gen/flow/scripts/openfasoc/custom_place.tcl @@ -19,7 +19,7 @@ proc place_pt_unit {instances_list place_limit} { set instname [lindex $line 1] set pt [ $block findInst $instname] set orient [$pt getOrient] - + if {$orient == "R0" && $x_R1<$place_limit} { place_cell -inst_name [lindex $line 0] -orient R0 -origin [list $x_R1 $y_R1] -status PLACED set x_R1 [expr $x_R1 + 2.40] @@ -27,8 +27,8 @@ proc place_pt_unit {instances_list place_limit} { place_cell -inst_name [lindex $line 0] -orient R0 -origin [list $x_R2 $y_R2] -status PLACED set x_R2 [expr $x_R2 + 2.40] } else { - place_cell -inst_name [lindex $line 0] -orient R0 -origin [list $x_R3 $y_R3] -status PLACED - set x_R3 [expr $x_R3 + 2.40] + place_cell -inst_name [lindex $line 0] -orient R0 -origin [list $x_R3 $y_R3] -status PLACED + set x_R3 [expr $x_R3 + 2.40] } } close $ch diff --git a/openfasoc/generators/ldo-gen/tools/generate_verilog.py b/openfasoc/generators/ldo-gen/tools/generate_verilog.py index 8867dff25..2819fc1dc 100644 --- a/openfasoc/generators/ldo-gen/tools/generate_verilog.py +++ b/openfasoc/generators/ldo-gen/tools/generate_verilog.py @@ -32,13 +32,20 @@ def update_ldo_domain_insts(blocksDir, arrSize): # write arrSize pt cells for i in range(arrSize): ldo_domain_insts.write("{pt_array_unit\[" + str(i) + "\]}\n") - + + def update_ldo_place_insts(blocksDir, arrSize): """Writes arrSize pt unit cell instances to ldo_domain_insts.txt.""" with open(blocksDir + "/ldo_place.txt", "w") as ldo_place_insts: # write arrSize pt cells for i in range(arrSize): - ldo_place_insts.write("{pt_array_unit\\\["+ str(i) +"\\\]} {pt_array_unit\[" + str(i) + "\]}\n") + ldo_place_insts.write( + "{pt_array_unit\\\[" + + str(i) + + "\\\]} {pt_array_unit\[" + + str(i) + + "\]}\n" + ) def update_custom_nets(blocksDir, arrSize): diff --git a/openfasoc/generators/ldo-gen/tools/ldo-gen.py b/openfasoc/generators/ldo-gen/tools/ldo-gen.py index 2c22e4204..28dbe49ea 100644 --- a/openfasoc/generators/ldo-gen/tools/ldo-gen.py +++ b/openfasoc/generators/ldo-gen/tools/ldo-gen.py @@ -42,7 +42,11 @@ "--arr_size_in", help="Debug option to manually set power arr size." ) parser.add_argument("--clean", action="store_true", help="Clean the workspace.") -parser.add_argument("--simtype",choices=["postPEX","prePEX"], help="Simulations type prePEX or postPEX") +parser.add_argument( + "--simtype", + choices=["postPEX", "prePEX"], + help="Simulations type prePEX or postPEX", +) parser.add_argument("--pex", help="enable postPEX along with prePEX") args = parser.parse_args() @@ -99,7 +103,7 @@ # Update the ldo_domain_insts.txt as per power transistor array size update_ldo_domain_insts(directories["blocksDir"], arrSize) -#Update the ldo_place.txt as per power transistor array size +# Update the ldo_place.txt as per power transistor array size update_ldo_place_insts(directories["blocksDir"], arrSize) # Update connections to VREG update_custom_nets(directories["blocksDir"], arrSize) @@ -156,7 +160,7 @@ print("#----------------------------------------------------------------------") print("# LVS and DRC finished successfully") print("#----------------------------------------------------------------------") - + # function defined in configure_workspace.py copy_outputs(directories, args.outputDir, args.platform, user_specs["designName"]) @@ -174,7 +178,7 @@ rawPEXPath = spice_dir + user_specs["designName"] + "_pex.spice" rawSynthPath = spice_dir + user_specs["designName"] + ".spice" [processedPEXnetlist, head] = process_PEX_netlist( - rawPEXPath, jsonConfig["simTool"],user_specs["designName"] + rawPEXPath, jsonConfig["simTool"], user_specs["designName"] ) processedSynthNetlist = process_prePEX_netlist(rawSynthPath) powerArrayNetlist = process_power_array_netlist(rawSynthPath) @@ -191,70 +195,70 @@ # prepare simulation scripts, passing prePEX_sim_dir and pex=false to function *_prepare_scripts() runs preprex sims # there should be one output file name specified for each cap value. outputs sent to sim_dir_structure directories if args.simtype == "postPEX" or args.pex == "True": - if jsonConfig["simTool"] == "ngspice": - [sim, output_file_names] = ngspice_prepare_scripts( - head, - cap_list, - directories["simDir"] + "/templates/", - postPEX_sim_dir, - user_specs, - arrSize, - pdk_path, - freq_list, - "tt", - pex=True - ) - elif jsonConfig["simTool"] == "Xyce": - [sim, output_file_names] = xyce_prepare_scripts( - head, - cap_list, - directories["simDir"] + "/templates/", - postPEX_sim_dir, - user_specs, - arrSize, - pdk_path, - freq_list, - "tt", - pex=True - ) - else: + if jsonConfig["simTool"] == "ngspice": + [sim, output_file_names] = ngspice_prepare_scripts( + head, + cap_list, + directories["simDir"] + "/templates/", + postPEX_sim_dir, + user_specs, + arrSize, + pdk_path, + freq_list, + "tt", + pex=True, + ) + elif jsonConfig["simTool"] == "Xyce": + [sim, output_file_names] = xyce_prepare_scripts( + head, + cap_list, + directories["simDir"] + "/templates/", + postPEX_sim_dir, + user_specs, + arrSize, + pdk_path, + freq_list, + "tt", + pex=True, + ) + else: print("simtool not supported") exit(1) - + if args.simtype == "prePEX": - if jsonConfig["simTool"] == "ngspice": - [sim, output_file_names] = ngspice_prepare_scripts( - head, - cap_list, - directories["simDir"] + "/templates/", - prePEX_sim_dir, - user_specs, - arrSize, - pdk_path, - freq_list, - "tt", - pex=False - ) - elif jsonConfig["simTool"] == "Xyce": - [sim, output_file_names] = xyce_prepare_scripts( - head, - cap_list, - directories["simDir"] + "/templates/", - prePEX_sim_dir, - user_specs, - arrSize, - pdk_path, - freq_list, - "tt", - pex=False - ) - else: + if jsonConfig["simTool"] == "ngspice": + [sim, output_file_names] = ngspice_prepare_scripts( + head, + cap_list, + directories["simDir"] + "/templates/", + prePEX_sim_dir, + user_specs, + arrSize, + pdk_path, + freq_list, + "tt", + pex=False, + ) + elif jsonConfig["simTool"] == "Xyce": + [sim, output_file_names] = xyce_prepare_scripts( + head, + cap_list, + directories["simDir"] + "/templates/", + prePEX_sim_dir, + user_specs, + arrSize, + pdk_path, + freq_list, + "tt", + pex=False, + ) + else: print("simtool not supported") exit(1) - + print("#----------------------------------------------------------------------") print("# Spice netlists created successfully") - print("#----------------------------------------------------------------------") + print("#----------------------------------------------------------------------") # ------------------------------------------------------------------------------ # run simulations @@ -265,45 +269,81 @@ print("#----------------------------------------------------------------------") # run sims processes = [] - #assert len(output_file_names) == len(cap_list)*len(freq_list) + # assert len(output_file_names) == len(cap_list)*len(freq_list) if args.mode != "post": - if args.simtype == "postPEX" or args.pex == "True": - run_dir = directories["genDir"] + "tools/" - vref = user_specs["vin"] - iload = user_specs["imax"] - odir = os.path.abspath(args.outputDir) - for s in range (len(sim)): - p = sp.Popen(sim[s],cwd=postPEX_sim_dir,shell=True) - processes.append(p) - - for p in processes: - p.wait() - - p = sp.Popen(["python3","processing.py","--file_path",postPEX_sim_dir,"--vref",str(vref),"--iload",str(iload),"--odir",odir, "--figs", "True", "--simType", "postPEX"],cwd=run_dir) - p.wait() - - if args.simtype == "prePEX": - run_dir = directories["genDir"] + "tools/" - vref = user_specs["vin"] - iload = user_specs["imax"] - odir = os.path.abspath(args.outputDir) - for s in range (len(sim)): - p = sp.Popen(sim[s],cwd=prePEX_sim_dir,shell=True) - processes.append(p) - - for p in processes: - p.wait() - - p = sp.Popen(["python3","processing.py","--file_path",prePEX_sim_dir,"--vref",str(vref),"--iload",str(iload),"--odir",odir, "--figs", "True", "--simType", "prePEX"],cwd=run_dir) - p.wait() - """ + if args.simtype == "postPEX" or args.pex == "True": + run_dir = directories["genDir"] + "tools/" + vref = user_specs["vin"] + iload = user_specs["imax"] + odir = os.path.abspath(args.outputDir) + for s in range(len(sim)): + p = sp.Popen(sim[s], cwd=postPEX_sim_dir, shell=True) + processes.append(p) + + for p in processes: + p.wait() + + p = sp.Popen( + [ + "python3", + "processing.py", + "--file_path", + postPEX_sim_dir, + "--vref", + str(vref), + "--iload", + str(iload), + "--odir", + odir, + "--figs", + "True", + "--simType", + "postPEX", + ], + cwd=run_dir, + ) + p.wait() + + if args.simtype == "prePEX": + run_dir = directories["genDir"] + "tools/" + vref = user_specs["vin"] + iload = user_specs["imax"] + odir = os.path.abspath(args.outputDir) + for s in range(len(sim)): + p = sp.Popen(sim[s], cwd=prePEX_sim_dir, shell=True) + processes.append(p) + + for p in processes: + p.wait() + + p = sp.Popen( + [ + "python3", + "processing.py", + "--file_path", + prePEX_sim_dir, + "--vref", + str(vref), + "--iload", + str(iload), + "--odir", + odir, + "--figs", + "True", + "--simType", + "prePEX", + ], + cwd=run_dir, + ) + p.wait() + """ for s in range (len(sim)): p = sp.Popen(sim[s],cwd=prePEX_sim_dir,shell=True) processes.append(p) - + for p in processes: p.wait() - + # perform post processing on simulation results and save figures to work dir raw_files = [(prePEX_sim_dir + ofile) for ofile in output_file_names] raw_to_csv(raw_files,user_specs["vin"],args.outputDir) @@ -330,4 +370,4 @@ max_load = user_specs["imax"] load = max_load*1000 fig_load_change_results(prePEX_sim_dir + "/" + str(load) + "mA_output_load_change.raw",load).savefig(args.outputDir + "/load_change.png") - """ \ No newline at end of file + """ diff --git a/openfasoc/generators/ldo-gen/tools/processing.py b/openfasoc/generators/ldo-gen/tools/processing.py index 435468c32..017d4f461 100644 --- a/openfasoc/generators/ldo-gen/tools/processing.py +++ b/openfasoc/generators/ldo-gen/tools/processing.py @@ -17,12 +17,12 @@ from simulations import * parser = argparse.ArgumentParser(description="processing simulations") -parser.add_argument("--file_path","-f", help="sim path") -parser.add_argument("--vref","-v", help="vrefspec") -parser.add_argument("--iload","-i", help="iloadspec") -parser.add_argument("--odir","-od", help="output dir") -parser.add_argument("--figs","-fg", help="figures") -parser.add_argument("--simType","-sim", help="simulations Type") +parser.add_argument("--file_path", "-f", help="sim path") +parser.add_argument("--vref", "-v", help="vrefspec") +parser.add_argument("--iload", "-i", help="iloadspec") +parser.add_argument("--odir", "-od", help="output dir") +parser.add_argument("--figs", "-fg", help="figures") +parser.add_argument("--simType", "-sim", help="simulations Type") args = parser.parse_args() @@ -33,24 +33,30 @@ odir = args.odir simtype = args.simType -ext = ('.raw',) +ext = (".raw",) for files in os.scandir(sim_dir): if files.path.endswith(ext) and "cap" in files.name: - output_file_names.append(files.name) + output_file_names.append(files.name) def fig_VREG_results(raw_files, vrefspec): """Create VREG output plots for all caps at particular freq simulations""" - figureVREG, axesVREG = plt.subplots(len(raw_files),figsize=(30, 15)) - figureVDIF, axesVDIF = plt.subplots(len(raw_files),figsize=(30, 15)) - figureRIPL, axesRIPL = plt.subplots(len(raw_files),figsize=(30, 15)) - #len(axesVREG) # checks that axes can be indexed - figureVREG.text(0.5, 0.04, "Time [us]", ha="center",fontsize ='large') - figureVREG.text(0.04, 0.5, "Vreg and Vref [V]", va="center", rotation="vertical",fontsize =15) - figureVDIF.text(0.5, 0.04, "Time [us]", ha="center",fontsize ='large') - figureVDIF.text(0.04, 0.5, "Vref-Vreg [V]", va="center", rotation="vertical",fontsize =15) - figureRIPL.text(0.5, 0.04, "Time [us]", ha="center",fontsize ='large') - figureRIPL.text(0.04, 0.5, "V_ripple [V]", va="center", rotation="vertical",fontsize =15) + figureVREG, axesVREG = plt.subplots(len(raw_files), figsize=(30, 15)) + figureVDIF, axesVDIF = plt.subplots(len(raw_files), figsize=(30, 15)) + figureRIPL, axesRIPL = plt.subplots(len(raw_files), figsize=(30, 15)) + # len(axesVREG) # checks that axes can be indexed + figureVREG.text(0.5, 0.04, "Time [us]", ha="center", fontsize="large") + figureVREG.text( + 0.04, 0.5, "Vreg and Vref [V]", va="center", rotation="vertical", fontsize=15 + ) + figureVDIF.text(0.5, 0.04, "Time [us]", ha="center", fontsize="large") + figureVDIF.text( + 0.04, 0.5, "Vref-Vreg [V]", va="center", rotation="vertical", fontsize=15 + ) + figureRIPL.text(0.5, 0.04, "Time [us]", ha="center", fontsize="large") + figureRIPL.text( + 0.04, 0.5, "V_ripple [V]", va="center", rotation="vertical", fontsize=15 + ) for i, raw_file in enumerate(raw_files): cap_id = str(raw_file).split("/")[-1].split("_")[2] + " " freq_id = str(raw_file).split("/")[-1].split("_")[1] + " " @@ -62,12 +68,12 @@ def fig_VREG_results(raw_files, vrefspec): axesVREG[i].ticklabel_format(style="sci", axis="x", scilimits=(-6, -6)) axesVREG[i].plot(time, VREG) axesVREG[i].plot(time, VREF) - axesVDIF[i].set_title("V_difference vs Time " + cap_id + freq_id,fontsize=15) + axesVDIF[i].set_title("V_difference vs Time " + cap_id + freq_id, fontsize=15) axesVDIF[i].ticklabel_format(style="sci", axis="x", scilimits=(-6, -6)) axesVDIF[i].plot(time, VREF - VREG) VREG_sample_dev = VREG[100 + np.where(VREG[100:] >= vrefspec)[0][0] :] time_sample_dev = time[100 + np.where(VREG[100:] >= vrefspec)[0][0] :] - axesRIPL[i].set_title("V_ripple vs Time " + cap_id + freq_id,fontsize=15) + axesRIPL[i].set_title("V_ripple vs Time " + cap_id + freq_id, fontsize=15) axesRIPL[i].ticklabel_format(style="sci", axis="x", scilimits=(-6, -6)) axesRIPL[i].plot(time_sample_dev, VREG_sample_dev) return [figureVREG, figureVDIF, figureRIPL] @@ -75,10 +81,10 @@ def fig_VREG_results(raw_files, vrefspec): def fig_comparator_results(raw_files): """Create cmp_out output plots for all caps at particular freq simulations""" - figure, axes = plt.subplots(len(raw_files),figsize=(30, 15)) + figure, axes = plt.subplots(len(raw_files), figsize=(30, 15)) len(axes) # checks that axes can be indexed - figure.text(0.5, 0.04, "Time [us]", ha="center",fontsize ='large') - figure.text(0.04, 0.5, "Cmp_out [V]", va="center", rotation="vertical",fontsize =15) + figure.text(0.5, 0.04, "Time [us]", ha="center", fontsize="large") + figure.text(0.04, 0.5, "Cmp_out [V]", va="center", rotation="vertical", fontsize=15) for i, raw_file in enumerate(raw_files): data = ltspice.Ltspice(raw_file) data.parse() @@ -86,7 +92,7 @@ def fig_comparator_results(raw_files): freq_id = str(raw_file).split("/")[-1].split("_")[1] + " " time = data.get_time() cmp_out = data.get_data("v(cmp_out)") - axes[i].set_title("Comp_out vs Time " + cap_id + freq_id,fontsize=15) + axes[i].set_title("Comp_out vs Time " + cap_id + freq_id, fontsize=15) axes[i].ticklabel_format(style="sci", axis="x", scilimits=(-6, -6)) axes[i].plot(time, cmp_out) return figure @@ -94,10 +100,12 @@ def fig_comparator_results(raw_files): def fig_controller_results(raw_files): """Create controller output plots for all caps at particular freq simulations""" - figure, axes = plt.subplots(len(raw_files),figsize=(30, 15)) + figure, axes = plt.subplots(len(raw_files), figsize=(30, 15)) len(axes) # checks that axes can be indexed - figure.text(0.5, 0.04, "Time [us]", ha="center",fontsize ='large') - figure.text(0.04, 0.5, "Active Switches", va="center", rotation="vertical",fontsize =15) + figure.text(0.5, 0.04, "Time [us]", ha="center", fontsize="large") + figure.text( + 0.04, 0.5, "Active Switches", va="center", rotation="vertical", fontsize=15 + ) for i, raw_file in enumerate(raw_files): data = ltspice.Ltspice(raw_file) data.parse() @@ -112,7 +120,7 @@ def fig_controller_results(raw_files): active_switches = (np.rint(active_switches / 3.3)).astype(int)[100:] num_smooth_pts = np.linspace(time.min(), time.max(), 250) active_switches = make_interp_spline(time, active_switches)(num_smooth_pts) - axes[i].set_title("Active Switches vs Time " + cap_id + freq_id,fontsize=15) + axes[i].set_title("Active Switches vs Time " + cap_id + freq_id, fontsize=15) axes[i].ticklabel_format(style="sci", axis="x", scilimits=(-6, -6)) axes[i].plot(num_smooth_pts, active_switches) return figure @@ -147,7 +155,8 @@ def fig_dc_results(raw_file): axes.legend(loc="lower left") return figure -def fig_load_change_results(raw_file,load): + +def fig_load_change_results(raw_file, load): figure, axes = plt.subplots(1, sharex=True, sharey=True) figure.text(0.5, 0.04, "Time [us]", ha="center") figure.text( @@ -161,19 +170,21 @@ def fig_load_change_results(raw_file,load): data.parse() VREG = data.get_data("v(vreg)") Time = data.get_time() - axes.set_title("Load change sim from 1mA to "+ str(load)+ "mA") + axes.set_title("Load change sim from 1mA to " + str(load) + "mA") axes.ticklabel_format(style="sci", axis="x", scilimits=(-6, -6)) axes.plot(Time, VREG) return figure -def raw_to_csv(raw_files, vrefspec,odir): + + +def raw_to_csv(raw_files, vrefspec, odir): time_settle = [] vripple = [] freq = [] cap = [] load = [] - csv1 = odir + "/"+simtype+ "/csv_data" - os.system("mkdir -p "+csv1) - for i,raw_file in enumerate(raw_files): + csv1 = odir + "/" + simtype + "/csv_data" + os.system("mkdir -p " + csv1) + for i, raw_file in enumerate(raw_files): data = ltspice.Ltspice(raw_file) data.parse() VREG = data.get_data("v(vreg)") @@ -190,16 +201,27 @@ def raw_to_csv(raw_files, vrefspec,odir): VREG_sample_dev = VREG[100 + np.where(VREG[100:] >= vrefspec)[0][0] :] VREG_min = min(VREG_sample_dev) VREG_max = max(VREG_sample_dev) - vripple.append(VREG_max-VREG_min) + vripple.append(VREG_max - VREG_min) time_sample_dev = time[100 + np.where(VREG[100:] >= vrefspec)[0][0] :] time_settle.append((time_sample_dev[0])) - df = pd.DataFrame({"Time" : time , "VREG" : VREG,"VREF" :VREF, "cmp_out" : cmp_out}) - df.to_csv(csv1 + "/" + test_conditions +"_.csv",index=False) - df2 = pd.DataFrame({"Iload":load,"Frequency":freq,"Cap_Value":cap, "VREG_Ripple" : vripple,"Settling Time" : time_settle}) - df2.to_csv(csv1 + "/" + "parameters.csv" , index=False) + df = pd.DataFrame( + {"Time": time, "VREG": VREG, "VREF": VREF, "cmp_out": cmp_out} + ) + df.to_csv(csv1 + "/" + test_conditions + "_.csv", index=False) + df2 = pd.DataFrame( + { + "Iload": load, + "Frequency": freq, + "Cap_Value": cap, + "VREG_Ripple": vripple, + "Settling Time": time_settle, + } + ) + df2.to_csv(csv1 + "/" + "parameters.csv", index=False) + raw_files = [(sim_dir + ofile) for ofile in output_file_names] -raw_to_csv(raw_files,float(vrefspec),odir) +raw_to_csv(raw_files, float(vrefspec), odir) if args.figs == "True": figures = list() @@ -211,7 +233,7 @@ def raw_to_csv(raw_files, vrefspec,odir): figure_names.append("active_switches") figures.append(fig_controller_results(raw_files)) # save results to png files - current_freq_results = odir + "/" +simtype+ "/output_plots" + current_freq_results = odir + "/" + simtype + "/output_plots" try: os.mkdir(current_freq_results) except OSError as error: @@ -221,7 +243,11 @@ def raw_to_csv(raw_files, vrefspec,odir): assert len(figures) == len(figure_names) for i, figure in enumerate(figures): figure.savefig(current_freq_results + "/" + figure_names[i] + ".png") - fig_dc_results(sim_dir + "/isweep.raw").savefig(odir + "/" +simtype+"/dc.png") + fig_dc_results(sim_dir + "/isweep.raw").savefig( + odir + "/" + simtype + "/dc.png" + ) max_load = float(iloadspec) - load = max_load*1000 - fig_load_change_results(sim_dir + "/" + str(load) + "mA_output_load_change.raw",load).savefig(odir +"/" +simtype+ "/load_change.png") \ No newline at end of file + load = max_load * 1000 + fig_load_change_results( + sim_dir + "/" + str(load) + "mA_output_load_change.raw", load + ).savefig(odir + "/" + simtype + "/load_change.png") From 46b234a002f2452d81bf000c53fa3f42a150bf06 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Sun, 25 Jun 2023 19:34:17 -0400 Subject: [PATCH 02/64] fix MappedPDK imports --- .../PDK/gf180_mapped/gf180_mapped.py | 7 +- .../gdsfactory-gen/PDK/mappedpdk.py | 21 +- .../PDK/sky130_mapped/sky130_mapped.py | 262 +++++++++++++++++- .../generators/gdsfactory-gen/guardring.py | 27 +- openfasoc/generators/gdsfactory-gen/nfet.py | 27 +- .../gdsfactory-gen/rectangular_ring.py | 37 --- .../{via_stack.py => via_gen.py} | 59 +++- 7 files changed, 347 insertions(+), 93 deletions(-) delete mode 100644 openfasoc/generators/gdsfactory-gen/rectangular_ring.py rename openfasoc/generators/gdsfactory-gen/{via_stack.py => via_gen.py} (59%) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index cf8ea5f76..90d520fc0 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -1,4 +1,4 @@ -# TODO: add all the cells from gf180 and a rule deck +# TODO: add all the cells from gf180 # TODO: note that gf180 pip is not up to date with github repo (no layer views) """ usage: from gf180_mapped import gf180_mapped_pdk @@ -6,12 +6,9 @@ from gf180.layers import LAYER # , LAYER_VIEWS -# import mappedpdk from the main pdk dir (parent of this dir) -import sys +from PDK.mappedpdk import MappedPDK from pathlib import Path -sys.path.append(str(Path(__file__).resolve().parent.parent)) -from mappedpdk import MappedPDK gf180_glayer_mapping = { diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py index 6155361aa..098deda8f 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py @@ -2,7 +2,8 @@ usage: from mappedpdk import MappedPDK """ -import gdsfactory as gf +from gdsfactory.pdk import Pdk +from gdsfactory.typings import Component, PathType, Layer from pydantic import validator, StrictStr, ValidationError from typing import ClassVar, Optional from pathlib import Path @@ -10,7 +11,7 @@ import subprocess -class MappedPDK(gf.pdk.Pdk): +class MappedPDK(Pdk): """Inherits everything from the PDK class but also requires mapping to glayers glayers are generic layers which can be returned with get_glayer(name: str) has_required_glayers(list[str]) is used to verify all required generic layers are @@ -63,8 +64,8 @@ def lydrc_file_exists(cls, lydrc_file_path): def drc( self, - layout: gf.typings.Component | gf.typings.PathType, - output_dir_or_file: Optional[gf.typings.PathType] = None, + layout: Component | PathType, + output_dir_or_file: Optional[PathType] = None, ): """Returns true if the layout is DRC clean and false if not Also saves detailed results to output_dir_or_file location as lyrdb @@ -73,10 +74,10 @@ def drc( raise NotImplementedError("no drc script for this PDK") # find layout gds file path tempdir = None - if isinstance(layout, gf.typings.Component): + if isinstance(layout, Component): tempdir = tempfile.TemporaryDirectory() layout_path = Path(layout.write_gds(tempdir)).resolve() - elif isinstance(layout, gf.typings.PathType): + elif isinstance(layout, PathType): layout_path = Path(layout).resolve() else: raise TypeError("layout should be a Component, Path, or string") @@ -133,7 +134,7 @@ def has_required_glayers(self, layers_required: list[str]): self.validate_layers([self.glayers[layer]]) # TODO: implement LayerSpec type - def get_glayer(self, layer: str) -> gf.typings.Layer: + def get_glayer(self, layer: str) -> Layer: """Returns the PDK layer from the generic layer name""" return self.get_layer(self.glayers[layer]) @@ -169,14 +170,14 @@ def is_routable_glayer(cls, glayer: StrictStr): @classmethod def from_gf_pdk( cls, - gfpdk: gf.pdk.Pdk, + gfpdk: Pdk, glayers: dict[str, str], grules: dict[StrictStr, dict[StrictStr, Optional[dict]]], - klayout_lydrc_file: Optional[gf.typings.PathType] = None, + klayout_lydrc_file: Optional[PathType] = None, ): """Construct a mapped pdk from an existing pdk and the extra parts of MappedPDK""" # input type and value validation - if not isinstance(gfpdk, gf.pdk.Pdk): + if not isinstance(gfpdk, Pdk): raise TypeError("from_gf_pdk: gfpdk arg only accepts GDSFactory PDK type") # convert gfpdk to dictionary parent_dict = gfpdk.dict() diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index eef58a929..9981e66a4 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -3,12 +3,9 @@ """ import sky130 -# import mappedpdk from the main pdk dir (parent of this dir) -import sys +from PDK.mappedpdk import MappedPDK from pathlib import Path -sys.path.append(str(Path(__file__).resolve().parent.parent)) -from mappedpdk import MappedPDK sky130_glayer_mapping = { @@ -37,6 +34,263 @@ for glayer in MappedPDK.valid_glayers: grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) +grulesobj["dnwell"]["dnwell"] = {'min_width': 1.7, 'min_seperation': 5.42} +grulesobj["dnwell"]["pwell"] = {'min_enclosure': 2.5} +grulesobj["dnwell"]["nwell"] = {'min_seperation': 3.1, 'min_enclosure': 0.5} +grulesobj["dnwell"]["p+s/d"] = {} +grulesobj["dnwell"]["n+s/d"] = {} +grulesobj["dnwell"]["active_diff"] = {'min_enclosure': 0.93} +grulesobj["dnwell"]["active_tap"] = {'min_enclosure': 0.62, 'min_seperation': 2.5} +grulesobj["dnwell"]["poly"] = {} +grulesobj["dnwell"]["mcon"] = {} +grulesobj["dnwell"]["met1"] = {} +grulesobj["dnwell"]["via1"] = {} +grulesobj["dnwell"]["met2"] = {} +grulesobj["dnwell"]["via2"] = {} +grulesobj["dnwell"]["met3"] = {} +grulesobj["dnwell"]["via3"] = {} +grulesobj["dnwell"]["met4"] = {} +grulesobj["pwell"]["dnwell"] = {} +grulesobj["pwell"]["pwell"] = {'min_width': 0.6, 'min_seperation': 1.4} +grulesobj["pwell"]["nwell"] = {'min_seperation': 0.0} +grulesobj["pwell"]["p+s/d"] = {} +grulesobj["pwell"]["n+s/d"] = {} +grulesobj["pwell"]["active_diff"] = {'min_enclosure': 0.43} +grulesobj["pwell"]["active_tap"] = {'min_enclosure': 0.12} +grulesobj["pwell"]["poly"] = {} +grulesobj["pwell"]["mcon"] = {} +grulesobj["pwell"]["met1"] = {} +grulesobj["pwell"]["via1"] = {} +grulesobj["pwell"]["met2"] = {} +grulesobj["pwell"]["via2"] = {} +grulesobj["pwell"]["met3"] = {} +grulesobj["pwell"]["via3"] = {} +grulesobj["pwell"]["met4"] = {} +grulesobj["nwell"]["dnwell"] = {} +grulesobj["nwell"]["pwell"] = {} +grulesobj["nwell"]["nwell"] = {'min_width': 0.86, 'min_seperation': 1.4} +grulesobj["nwell"]["p+s/d"] = {} +grulesobj["nwell"]["n+s/d"] = {} +grulesobj["nwell"]["active_diff"] = {'min_enclosure': 0.43} +grulesobj["nwell"]["active_tap"] = {'min_enclosure': 0.12} +grulesobj["nwell"]["poly"] = {} +grulesobj["nwell"]["mcon"] = {} +grulesobj["nwell"]["met1"] = {} +grulesobj["nwell"]["via1"] = {} +grulesobj["nwell"]["met2"] = {} +grulesobj["nwell"]["via2"] = {} +grulesobj["nwell"]["met3"] = {} +grulesobj["nwell"]["via3"] = {} +grulesobj["nwell"]["met4"] = {} +grulesobj["p+s/d"]["dnwell"] = {} +grulesobj["p+s/d"]["pwell"] = {} +grulesobj["p+s/d"]["nwell"] = {} +grulesobj["p+s/d"]["p+s/d"] = {'min_width': 0.4, 'min_seperation': 0.4} +grulesobj["p+s/d"]["n+s/d"] = {} +grulesobj["p+s/d"]["active_diff"] = {} +grulesobj["p+s/d"]["active_tap"] = {'min_enclosure': 0.16} +grulesobj["p+s/d"]["poly"] = {} +grulesobj["p+s/d"]["mcon"] = {} +grulesobj["p+s/d"]["met1"] = {} +grulesobj["p+s/d"]["via1"] = {} +grulesobj["p+s/d"]["met2"] = {} +grulesobj["p+s/d"]["via2"] = {} +grulesobj["p+s/d"]["met3"] = {} +grulesobj["p+s/d"]["via3"] = {} +grulesobj["p+s/d"]["met4"] = {} +grulesobj["n+s/d"]["dnwell"] = {} +grulesobj["n+s/d"]["pwell"] = {} +grulesobj["n+s/d"]["nwell"] = {} +grulesobj["n+s/d"]["p+s/d"] = {} +grulesobj["n+s/d"]["n+s/d"] = {'min_width': 0.4, 'min_seperation': 0.4} +grulesobj["n+s/d"]["active_diff"] = {} +grulesobj["n+s/d"]["active_tap"] = {'min_enclosure': 0.16} +grulesobj["n+s/d"]["poly"] = {} +grulesobj["n+s/d"]["mcon"] = {} +grulesobj["n+s/d"]["met1"] = {} +grulesobj["n+s/d"]["via1"] = {} +grulesobj["n+s/d"]["met2"] = {} +grulesobj["n+s/d"]["via2"] = {} +grulesobj["n+s/d"]["met3"] = {} +grulesobj["n+s/d"]["via3"] = {} +grulesobj["n+s/d"]["met4"] = {} +grulesobj["active_diff"]["dnwell"] = {} +grulesobj["active_diff"]["pwell"] = {} +grulesobj["active_diff"]["nwell"] = {} +grulesobj["active_diff"]["p+s/d"] = {} +grulesobj["active_diff"]["n+s/d"] = {} +grulesobj["active_diff"]["active_diff"] = {'min_width': 0.22, 'min_seperation': 0.28} +grulesobj["active_diff"]["active_tap"] = {'0.3)': '*****FIXTHIS!!!MANUALLY!*****', 'min_seperation': 0.28, 'max_seperation': 20.0} +grulesobj["active_diff"]["poly"] = {'overhang': 0.24, 'min_seperation': 0.1} +grulesobj["active_diff"]["mcon"] = {'min_enclosure': 0.07} +grulesobj["active_diff"]["met1"] = {} +grulesobj["active_diff"]["via1"] = {} +grulesobj["active_diff"]["met2"] = {} +grulesobj["active_diff"]["via2"] = {} +grulesobj["active_diff"]["met3"] = {} +grulesobj["active_diff"]["via3"] = {} +grulesobj["active_diff"]["met4"] = {} +grulesobj["active_tap"]["dnwell"] = {} +grulesobj["active_tap"]["pwell"] = {} +grulesobj["active_tap"]["nwell"] = {} +grulesobj["active_tap"]["p+s/d"] = {} +grulesobj["active_tap"]["n+s/d"] = {} +grulesobj["active_tap"]["active_diff"] = {} +grulesobj["active_tap"]["active_tap"] = {'min_width': 0.22, 'min_seperation': 0.28} +grulesobj["active_tap"]["poly"] = {'min_seperation': 0.1} +grulesobj["active_tap"]["mcon"] = {'min_enclosure': 0.07} +grulesobj["active_tap"]["met1"] = {} +grulesobj["active_tap"]["via1"] = {} +grulesobj["active_tap"]["met2"] = {} +grulesobj["active_tap"]["via2"] = {} +grulesobj["active_tap"]["met3"] = {} +grulesobj["active_tap"]["via3"] = {} +grulesobj["active_tap"]["met4"] = {} +grulesobj["poly"]["dnwell"] = {} +grulesobj["poly"]["pwell"] = {} +grulesobj["poly"]["nwell"] = {} +grulesobj["poly"]["p+s/d"] = {} +grulesobj["poly"]["n+s/d"] = {} +grulesobj["poly"]["active_diff"] = {} +grulesobj["poly"]["active_tap"] = {} +grulesobj["poly"]["poly"] = {'min_width': 0.28} +grulesobj["poly"]["mcon"] = {'min_enclosure': 0.07, 'min_seperation': 0.17} +grulesobj["poly"]["met1"] = {} +grulesobj["poly"]["via1"] = {} +grulesobj["poly"]["met2"] = {} +grulesobj["poly"]["via2"] = {} +grulesobj["poly"]["met3"] = {} +grulesobj["poly"]["via3"] = {} +grulesobj["poly"]["met4"] = {} +grulesobj["mcon"]["dnwell"] = {} +grulesobj["mcon"]["pwell"] = {} +grulesobj["mcon"]["nwell"] = {} +grulesobj["mcon"]["p+s/d"] = {} +grulesobj["mcon"]["n+s/d"] = {} +grulesobj["mcon"]["active_diff"] = {} +grulesobj["mcon"]["active_tap"] = {} +grulesobj["mcon"]["poly"] = {} +grulesobj["mcon"]["mcon"] = {'min_seperation': 0.28, 'width': 0.22} +grulesobj["mcon"]["met1"] = {'min_enclosure': 0.12} +grulesobj["mcon"]["via1"] = {} +grulesobj["mcon"]["met2"] = {} +grulesobj["mcon"]["via2"] = {} +grulesobj["mcon"]["met3"] = {} +grulesobj["mcon"]["via3"] = {} +grulesobj["mcon"]["met4"] = {} +grulesobj["met1"]["dnwell"] = {} +grulesobj["met1"]["pwell"] = {} +grulesobj["met1"]["nwell"] = {} +grulesobj["met1"]["p+s/d"] = {} +grulesobj["met1"]["n+s/d"] = {} +grulesobj["met1"]["active_diff"] = {} +grulesobj["met1"]["active_tap"] = {} +grulesobj["met1"]["poly"] = {} +grulesobj["met1"]["mcon"] = {} +grulesobj["met1"]["met1"] = {'min_width': 0.23, 'min_seperation': 0.3} +grulesobj["met1"]["via1"] = {'min_enclosure': 0.12} +grulesobj["met1"]["met2"] = {} +grulesobj["met1"]["via2"] = {} +grulesobj["met1"]["met3"] = {} +grulesobj["met1"]["via3"] = {} +grulesobj["met1"]["met4"] = {} +grulesobj["via1"]["dnwell"] = {} +grulesobj["via1"]["pwell"] = {} +grulesobj["via1"]["nwell"] = {} +grulesobj["via1"]["p+s/d"] = {} +grulesobj["via1"]["n+s/d"] = {} +grulesobj["via1"]["active_diff"] = {} +grulesobj["via1"]["active_tap"] = {} +grulesobj["via1"]["poly"] = {} +grulesobj["via1"]["mcon"] = {} +grulesobj["via1"]["met1"] = {} +grulesobj["via1"]["via1"] = {'width': 0.26, 'min_seperation': 0.36} +grulesobj["via1"]["met2"] = {'min_enclosure': 0.12} +grulesobj["via1"]["via2"] = {} +grulesobj["via1"]["met3"] = {} +grulesobj["via1"]["via3"] = {} +grulesobj["via1"]["met4"] = {} +grulesobj["met2"]["dnwell"] = {} +grulesobj["met2"]["pwell"] = {} +grulesobj["met2"]["nwell"] = {} +grulesobj["met2"]["p+s/d"] = {} +grulesobj["met2"]["n+s/d"] = {} +grulesobj["met2"]["active_diff"] = {} +grulesobj["met2"]["active_tap"] = {} +grulesobj["met2"]["poly"] = {} +grulesobj["met2"]["mcon"] = {} +grulesobj["met2"]["met1"] = {} +grulesobj["met2"]["via1"] = {} +grulesobj["met2"]["met2"] = {'min_width': 0.28, 'min_seperation': 0.3} +grulesobj["met2"]["via2"] = {'min_enclosure': 0.12} +grulesobj["met2"]["met3"] = {} +grulesobj["met2"]["via3"] = {} +grulesobj["met2"]["met4"] = {} +grulesobj["via2"]["dnwell"] = {} +grulesobj["via2"]["pwell"] = {} +grulesobj["via2"]["nwell"] = {} +grulesobj["via2"]["p+s/d"] = {} +grulesobj["via2"]["n+s/d"] = {} +grulesobj["via2"]["active_diff"] = {} +grulesobj["via2"]["active_tap"] = {} +grulesobj["via2"]["poly"] = {} +grulesobj["via2"]["mcon"] = {} +grulesobj["via2"]["met1"] = {} +grulesobj["via2"]["via1"] = {} +grulesobj["via2"]["met2"] = {} +grulesobj["via2"]["via2"] = {'width': 0.26, 'min_seperation': 0.36} +grulesobj["via2"]["met3"] = {'min_enclosure': 0.12} +grulesobj["via2"]["via3"] = {} +grulesobj["via2"]["met4"] = {} +grulesobj["met3"]["dnwell"] = {} +grulesobj["met3"]["pwell"] = {} +grulesobj["met3"]["nwell"] = {} +grulesobj["met3"]["p+s/d"] = {} +grulesobj["met3"]["n+s/d"] = {} +grulesobj["met3"]["active_diff"] = {} +grulesobj["met3"]["active_tap"] = {} +grulesobj["met3"]["poly"] = {} +grulesobj["met3"]["mcon"] = {} +grulesobj["met3"]["met1"] = {} +grulesobj["met3"]["via1"] = {} +grulesobj["met3"]["met2"] = {} +grulesobj["met3"]["via2"] = {} +grulesobj["met3"]["met3"] = {'min_width': 0.28, 'min_seperation': 0.3} +grulesobj["met3"]["via3"] = {'min_enclosure': 0.12} +grulesobj["met3"]["met4"] = {} +grulesobj["via3"]["dnwell"] = {} +grulesobj["via3"]["pwell"] = {} +grulesobj["via3"]["nwell"] = {} +grulesobj["via3"]["p+s/d"] = {} +grulesobj["via3"]["n+s/d"] = {} +grulesobj["via3"]["active_diff"] = {} +grulesobj["via3"]["active_tap"] = {} +grulesobj["via3"]["poly"] = {} +grulesobj["via3"]["mcon"] = {} +grulesobj["via3"]["met1"] = {} +grulesobj["via3"]["via1"] = {} +grulesobj["via3"]["met2"] = {} +grulesobj["via3"]["via2"] = {} +grulesobj["via3"]["met3"] = {} +grulesobj["via3"]["via3"] = {'width': 0.26, 'min_seperation': 0.36} +grulesobj["via3"]["met4"] = {'min_enclosure': 0.12} +grulesobj["met4"]["dnwell"] = {} +grulesobj["met4"]["pwell"] = {} +grulesobj["met4"]["nwell"] = {} +grulesobj["met4"]["p+s/d"] = {} +grulesobj["met4"]["n+s/d"] = {} +grulesobj["met4"]["active_diff"] = {} +grulesobj["met4"]["active_tap"] = {} +grulesobj["met4"]["poly"] = {} +grulesobj["met4"]["mcon"] = {} +grulesobj["met4"]["met1"] = {} +grulesobj["met4"]["via1"] = {} +grulesobj["met4"]["met2"] = {} +grulesobj["met4"]["via2"] = {} +grulesobj["met4"]["met3"] = {} +grulesobj["met4"]["via3"] = {} +grulesobj["met4"]["met4"] = {'min_width': 0.28, 'min_seperation': 0.3} + sky130_mapped_pdk = MappedPDK.from_gf_pdk( sky130.PDK, sky130_glayer_mapping, diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index a23edc8d4..47f5c0ae6 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -1,19 +1,20 @@ -import gdsfactory as gf - # from PDK.mappedpdk import MappedPDK -from rectangular_ring import rectangular_ring -from via_stack import via_stack +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.components.rectangle import rectangle +from gdsfactory.components.rectangular_ring import rectangular_ring +from via_gen import via_stack from typing import Optional -import math +from math import ceil -@gf.cell +@cell def ptapring( pdk, enclosed_rectangle=(2.0, 4.0), horizontal_glayer: Optional[str] = "met1", vertical_glayer: Optional[str] = "met2", -) -> gf.Component: +) -> Component: """ptapring produce a p substrate / pwell tap rectanglular ring This ring will legally enclose a rectangular shape args: @@ -28,7 +29,7 @@ def ptapring( ["p+s/d", "active_tap", "mcon", horizontal_glayer, vertical_glayer] ) pdk.activate() - ptapring = gf.Component() + ptapring = Component() if not "met" in horizontal_glayer or not "met" in vertical_glayer: raise ValueError("both horizontal and vertical glayers should be metals") # check that ring is not too small @@ -86,7 +87,7 @@ def ptapring( for vianum in range(num_vias): viastack_ref_plus = ptapring << viastack viastack_ref_minus = ptapring << viastack - spacing_multiplier = ((-1) ** vianum) * math.ceil(vianum / 2) + spacing_multiplier = ((-1) ** vianum) * ceil(vianum / 2) if i == 0: # horizontal layer viastack_ref_plus.movex(spacing_multiplier * viaspacing_full).movey( 0.5 * (enclosed_rectangle[1] + tap_width) @@ -110,16 +111,16 @@ def ptapring( max(viawidth, pdk.get_grule(horizontal_glayer)["min_width"]), enclosed_rectangle[1] + 2 * tap_width, ) - metal_ref_n = ptapring << gf.components.rectangle( + metal_ref_n = ptapring << rectangle( layer=pdk.get_glayer(horizontal_glayer), size=ns_side_dims, centered=True ) - metal_ref_e = ptapring << gf.components.rectangle( + metal_ref_e = ptapring << rectangle( layer=pdk.get_glayer(vertical_glayer), size=ew_side_dims, centered=True ) - metal_ref_s = ptapring << gf.components.rectangle( + metal_ref_s = ptapring << rectangle( layer=pdk.get_glayer(horizontal_glayer), size=ns_side_dims, centered=True ) - metal_ref_w = ptapring << gf.components.rectangle( + metal_ref_w = ptapring << rectangle( layer=pdk.get_glayer(vertical_glayer), size=ew_side_dims, centered=True ) metal_ref_n.movey(0.5 * (enclosed_rectangle[1] + tap_width)) diff --git a/openfasoc/generators/gdsfactory-gen/nfet.py b/openfasoc/generators/gdsfactory-gen/nfet.py index 050a09502..00b958dd8 100644 --- a/openfasoc/generators/gdsfactory-gen/nfet.py +++ b/openfasoc/generators/gdsfactory-gen/nfet.py @@ -2,9 +2,8 @@ from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle -# from PDK.mappedpdk import MappedPDK from typing import Optional -from via_stack import via_stack +from via_gen import via_stack from guardring import ptapring # GF180 @@ -17,7 +16,9 @@ def PARTIALsingle_multiplier_gen_no_diff( pdk, width: float = 3, fingers: Optional[int] = 1 ) -> Component: - multiplier = Component("partial multiplier") + pmultiplier = Component("partial multiplier") + if fingers==0: + return pmultiplier # create the poly gate length = pdk.get_grule("poly")["min_width"] poly_height = width + 2 * pdk.get_grule("poly", "active_diff")["overhang"] @@ -37,26 +38,26 @@ def PARTIALsingle_multiplier_gen_no_diff( poly_spacing = max(viasize, mcon_poly_space) # lay poly for all fingers if fingers % 2: # odd number of fingers - multiplier << poly_gate_comp # center poly - sd_via_refr = multiplier << sd_via_comp + pmultiplier << poly_gate_comp # center poly + sd_via_refr = pmultiplier << sd_via_comp sd_via_refr.movex(0.5 * (length + poly_spacing)) - sd_via_refl = multiplier << sd_via_comp + sd_via_refl = pmultiplier << sd_via_comp sd_via_refl.movex(-0.5 * (length + poly_spacing)) for fingermirror_num in range(int(fingers / 2)): f_offset_ = fingermirror_num * (poly_spacing + length) - poly_gate_refr = multiplier << poly_gate_comp + poly_gate_refr = pmultiplier << poly_gate_comp poly_gate_refr.movex(f_offset_ + length + poly_spacing) - poly_gate_refl = multiplier << poly_gate_comp + poly_gate_refl = pmultiplier << poly_gate_comp poly_gate_refl.movex(-1 * (f_offset_ + length + poly_spacing)) f_offset_ += poly_spacing + length - sd_via_refr = multiplier << sd_via_comp + sd_via_refr = pmultiplier << sd_via_comp sd_via_refr.movex(0.5 * (length + poly_spacing) + f_offset_) - sd_via_refl = multiplier << sd_via_comp + sd_via_refl = pmultiplier << sd_via_comp sd_via_refl.movex(-0.5 * (length + poly_spacing) - f_offset_) else: - # TODO: implement - raise NotImplementedError("currenly only odd fingers are supported") - return multiplier.flatten() + mirror_pmult = Component("half partial multiplier") + mirror_pmult << poly_gate_comp + return pmultiplier.flatten() @cell diff --git a/openfasoc/generators/gdsfactory-gen/rectangular_ring.py b/openfasoc/generators/gdsfactory-gen/rectangular_ring.py deleted file mode 100644 index 1e86318e0..000000000 --- a/openfasoc/generators/gdsfactory-gen/rectangular_ring.py +++ /dev/null @@ -1,37 +0,0 @@ -from gdsfactory.cell import cell -from gdsfactory.component import Component -from gdsfactory.geometry import boolean -from gdsfactory.typings import LayerSpec -from gdsfactory.components.rectangle import rectangle - - -@cell -def rectangular_ring( - enclosed_size=(4.0, 2.0), - width: float = 0.5, - layer: LayerSpec = "WG", - centered: bool = False, -) -> Component: - """Returns a Rectangular Ring - - Args: - enclosed_size = (width,hieght) of the enclosed area. - width = width of the ring. - layer = Specific layer to put polygon geometry on. - centered: True sets center to (0,0), False sets south-west to (0,0). - """ - c = Component() - c_temp = Component("temp create ring") - rect_in = c_temp << rectangle(size=enclosed_size, centered=centered, layer=layer) - rect_out = c_temp << rectangle( - size=[dim + 2 * width for dim in enclosed_size], centered=centered, layer=layer - ) - if not centered: - rect_in.move((width, width)) - c << boolean(A=rect_out, B=rect_in, operation="A-B", layer=layer) - return c - - -if __name__ == "__main__": - c = rectangular_ring(centered=True) - c.show() diff --git a/openfasoc/generators/gdsfactory-gen/via_stack.py b/openfasoc/generators/gdsfactory-gen/via_gen.py similarity index 59% rename from openfasoc/generators/gdsfactory-gen/via_stack.py rename to openfasoc/generators/gdsfactory-gen/via_gen.py index 182468860..186604d2b 100644 --- a/openfasoc/generators/gdsfactory-gen/via_stack.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -1,8 +1,23 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle +from pydantic import validate_arguments +from collections import OrderedDict -# from PDK.mappedpdk import MappedPDK +#from PDK.mappedpdk import MappedPDK + +@validate_arguments +def __error_check_order_layers(pdk, glayer1: str, glayer2: str) -> tuple[int, int]: + """correctly order layers (level1 should be lower than level2)""" + pdk.activate() + # check that the generic layers specfied can be routed between + if not all([pdk.is_routable_glayer(met) for met in [glayer1, glayer2]]): + raise ValueError("via_stack: specify between two routable layers") + level1 = int(glayer1[-1]) if "met" in glayer1 else 0 + level2 = int(glayer2[-1]) if "met" in glayer2 else 0 + if level1 > level2: + level1, level2 = level2, level1 + return level1, level2 @cell @@ -16,17 +31,8 @@ def via_stack(pdk, glayer1: str, glayer2: str) -> Component: ****NOTE it does not matter what order you pass layers ****NOTE will not lay poly or active but will lay metals """ - pdk.activate() + level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) viastack = Component() - # check that the generic layers specfied can be routed between - for layer in [glayer1, glayer2]: - if not pdk.is_routable_glayer(layer): - raise ValueError("via_stack: specify between two routable layers") - # correctly order layers (level1 should be lower than level2) - level1 = int(glayer1[-1]) if "met" in glayer1 else 0 - level2 = int(glayer2[-1]) if "met" in glayer2 else 0 - if level1 > level2: - level1, level2 = level2, level1 # if same level return empty component if level1 == level2: return viastack @@ -80,6 +86,37 @@ def via_stack(pdk, glayer1: str, glayer2: str) -> Component: return viastack.flatten() +@cell +def via_array(pdk, glayer1: str, glayer2: str, size=(2.0,4.0)) -> Component: + """Fill a region with vias. Will automatically decide num rows and columns + args: + pdk: MappedPDK is the pdk to use + glayer1: str is the glayer to start on + glayer2: str is the glayer to end on + ****NOTE it does not matter what order you pass layers + ****NOTE will not lay poly or active but will lay metals + size: tuple is the (width, hieght) of the area to enclose + ****NOTE: the size will be the dimensions of the top metal + """ + level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) + viaarray = Component() + # if same level return empty component + if level1 == level2: + return viaarray + # figure out min space between via stacks + via_spacing = [] if level1 else [pdk.get_grule("mcon")["min_seperation"]] + for level in range(level1,level2) + met_glayer = "met" + str(level) + via_glayer = "via" + str(level) + via_spacing.append(pdk.get_grule(met_glayer)["min_seperation"]) + via_spacing.append(pdk.get_grule(via_glayer)["min_seperation"]) + via_spacing.append(pdk.get_grule("met" + str(level2))["min_seperation"]) + via_spacing = max(via_spacing) + # implement array + + return viaarray.flatten() + + if __name__ == "__main__": from PDK.gf180_mapped import gf180_mapped_pdk From ee599d946ce0b977e0af436cd9abb7ee3c7d18cf Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 26 Jun 2023 01:18:33 -0400 Subject: [PATCH 03/64] gdsfactory gen via_array --- .../PDK/gf180_mapped/gf180_mapped.py | 3 +- .../PDK/sky130_mapped/sky130_mapped.py | 85 ++++++------- .../generators/gdsfactory-gen/guardring.py | 4 +- openfasoc/generators/gdsfactory-gen/nfet.py | 75 +++++------- .../generators/gdsfactory-gen/via_gen.py | 113 +++++++++++------- 5 files changed, 151 insertions(+), 129 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index 90d520fc0..739a6e1e3 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -10,7 +10,6 @@ from pathlib import Path - gf180_glayer_mapping = { "met4": "metal4", "via3": "via3", @@ -121,7 +120,7 @@ grulesobj["active_diff"]["dnwell"] = {} grulesobj["active_diff"]["pwell"] = {} grulesobj["active_diff"]["nwell"] = {} -grulesobj["active_diff"]["p+s/d"] = {} +grulesobj["active_diff"]["p+s/d"] = {"min_enclosure": 0.23} grulesobj["active_diff"]["n+s/d"] = {} grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_seperation": 0.28} grulesobj["active_diff"]["active_tap"] = { diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 9981e66a4..c05d220a1 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -7,7 +7,6 @@ from pathlib import Path - sky130_glayer_mapping = { "met4": "met3drawing", "via3": "via2drawing", @@ -34,13 +33,13 @@ for glayer in MappedPDK.valid_glayers: grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) -grulesobj["dnwell"]["dnwell"] = {'min_width': 1.7, 'min_seperation': 5.42} -grulesobj["dnwell"]["pwell"] = {'min_enclosure': 2.5} -grulesobj["dnwell"]["nwell"] = {'min_seperation': 3.1, 'min_enclosure': 0.5} +grulesobj["dnwell"]["dnwell"] = {"min_width": 1.7, "min_seperation": 5.42} +grulesobj["dnwell"]["pwell"] = {"min_enclosure": 2.5} +grulesobj["dnwell"]["nwell"] = {"min_seperation": 3.1, "min_enclosure": 0.5} grulesobj["dnwell"]["p+s/d"] = {} grulesobj["dnwell"]["n+s/d"] = {} -grulesobj["dnwell"]["active_diff"] = {'min_enclosure': 0.93} -grulesobj["dnwell"]["active_tap"] = {'min_enclosure': 0.62, 'min_seperation': 2.5} +grulesobj["dnwell"]["active_diff"] = {"min_enclosure": 0.93} +grulesobj["dnwell"]["active_tap"] = {"min_enclosure": 0.62, "min_seperation": 2.5} grulesobj["dnwell"]["poly"] = {} grulesobj["dnwell"]["mcon"] = {} grulesobj["dnwell"]["met1"] = {} @@ -51,12 +50,12 @@ grulesobj["dnwell"]["via3"] = {} grulesobj["dnwell"]["met4"] = {} grulesobj["pwell"]["dnwell"] = {} -grulesobj["pwell"]["pwell"] = {'min_width': 0.6, 'min_seperation': 1.4} -grulesobj["pwell"]["nwell"] = {'min_seperation': 0.0} +grulesobj["pwell"]["pwell"] = {"min_width": 0.6, "min_seperation": 1.4} +grulesobj["pwell"]["nwell"] = {"min_seperation": 0.0} grulesobj["pwell"]["p+s/d"] = {} grulesobj["pwell"]["n+s/d"] = {} -grulesobj["pwell"]["active_diff"] = {'min_enclosure': 0.43} -grulesobj["pwell"]["active_tap"] = {'min_enclosure': 0.12} +grulesobj["pwell"]["active_diff"] = {"min_enclosure": 0.43} +grulesobj["pwell"]["active_tap"] = {"min_enclosure": 0.12} grulesobj["pwell"]["poly"] = {} grulesobj["pwell"]["mcon"] = {} grulesobj["pwell"]["met1"] = {} @@ -68,11 +67,11 @@ grulesobj["pwell"]["met4"] = {} grulesobj["nwell"]["dnwell"] = {} grulesobj["nwell"]["pwell"] = {} -grulesobj["nwell"]["nwell"] = {'min_width': 0.86, 'min_seperation': 1.4} +grulesobj["nwell"]["nwell"] = {"min_width": 0.86, "min_seperation": 1.4} grulesobj["nwell"]["p+s/d"] = {} grulesobj["nwell"]["n+s/d"] = {} -grulesobj["nwell"]["active_diff"] = {'min_enclosure': 0.43} -grulesobj["nwell"]["active_tap"] = {'min_enclosure': 0.12} +grulesobj["nwell"]["active_diff"] = {"min_enclosure": 0.43} +grulesobj["nwell"]["active_tap"] = {"min_enclosure": 0.12} grulesobj["nwell"]["poly"] = {} grulesobj["nwell"]["mcon"] = {} grulesobj["nwell"]["met1"] = {} @@ -85,10 +84,10 @@ grulesobj["p+s/d"]["dnwell"] = {} grulesobj["p+s/d"]["pwell"] = {} grulesobj["p+s/d"]["nwell"] = {} -grulesobj["p+s/d"]["p+s/d"] = {'min_width': 0.4, 'min_seperation': 0.4} +grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} grulesobj["p+s/d"]["n+s/d"] = {} grulesobj["p+s/d"]["active_diff"] = {} -grulesobj["p+s/d"]["active_tap"] = {'min_enclosure': 0.16} +grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.16} grulesobj["p+s/d"]["poly"] = {} grulesobj["p+s/d"]["mcon"] = {} grulesobj["p+s/d"]["met1"] = {} @@ -102,9 +101,9 @@ grulesobj["n+s/d"]["pwell"] = {} grulesobj["n+s/d"]["nwell"] = {} grulesobj["n+s/d"]["p+s/d"] = {} -grulesobj["n+s/d"]["n+s/d"] = {'min_width': 0.4, 'min_seperation': 0.4} +grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} grulesobj["n+s/d"]["active_diff"] = {} -grulesobj["n+s/d"]["active_tap"] = {'min_enclosure': 0.16} +grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.16} grulesobj["n+s/d"]["poly"] = {} grulesobj["n+s/d"]["mcon"] = {} grulesobj["n+s/d"]["met1"] = {} @@ -119,10 +118,14 @@ grulesobj["active_diff"]["nwell"] = {} grulesobj["active_diff"]["p+s/d"] = {} grulesobj["active_diff"]["n+s/d"] = {} -grulesobj["active_diff"]["active_diff"] = {'min_width': 0.22, 'min_seperation': 0.28} -grulesobj["active_diff"]["active_tap"] = {'0.3)': '*****FIXTHIS!!!MANUALLY!*****', 'min_seperation': 0.28, 'max_seperation': 20.0} -grulesobj["active_diff"]["poly"] = {'overhang': 0.24, 'min_seperation': 0.1} -grulesobj["active_diff"]["mcon"] = {'min_enclosure': 0.07} +grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_seperation": 0.28} +grulesobj["active_diff"]["active_tap"] = { + "0.3)": "*****FIXTHIS!!!MANUALLY!*****", + "min_seperation": 0.28, + "max_seperation": 20.0, +} +grulesobj["active_diff"]["poly"] = {"overhang": 0.24, "min_seperation": 0.1} +grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.07} grulesobj["active_diff"]["met1"] = {} grulesobj["active_diff"]["via1"] = {} grulesobj["active_diff"]["met2"] = {} @@ -136,9 +139,9 @@ grulesobj["active_tap"]["p+s/d"] = {} grulesobj["active_tap"]["n+s/d"] = {} grulesobj["active_tap"]["active_diff"] = {} -grulesobj["active_tap"]["active_tap"] = {'min_width': 0.22, 'min_seperation': 0.28} -grulesobj["active_tap"]["poly"] = {'min_seperation': 0.1} -grulesobj["active_tap"]["mcon"] = {'min_enclosure': 0.07} +grulesobj["active_tap"]["active_tap"] = {"min_width": 0.22, "min_seperation": 0.28} +grulesobj["active_tap"]["poly"] = {"min_seperation": 0.1} +grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.07} grulesobj["active_tap"]["met1"] = {} grulesobj["active_tap"]["via1"] = {} grulesobj["active_tap"]["met2"] = {} @@ -153,8 +156,8 @@ grulesobj["poly"]["n+s/d"] = {} grulesobj["poly"]["active_diff"] = {} grulesobj["poly"]["active_tap"] = {} -grulesobj["poly"]["poly"] = {'min_width': 0.28} -grulesobj["poly"]["mcon"] = {'min_enclosure': 0.07, 'min_seperation': 0.17} +grulesobj["poly"]["poly"] = {"min_width": 0.28} +grulesobj["poly"]["mcon"] = {"min_enclosure": 0.07, "min_seperation": 0.17} grulesobj["poly"]["met1"] = {} grulesobj["poly"]["via1"] = {} grulesobj["poly"]["met2"] = {} @@ -170,8 +173,8 @@ grulesobj["mcon"]["active_diff"] = {} grulesobj["mcon"]["active_tap"] = {} grulesobj["mcon"]["poly"] = {} -grulesobj["mcon"]["mcon"] = {'min_seperation': 0.28, 'width': 0.22} -grulesobj["mcon"]["met1"] = {'min_enclosure': 0.12} +grulesobj["mcon"]["mcon"] = {"min_seperation": 0.28, "width": 0.22} +grulesobj["mcon"]["met1"] = {"min_enclosure": 0.12} grulesobj["mcon"]["via1"] = {} grulesobj["mcon"]["met2"] = {} grulesobj["mcon"]["via2"] = {} @@ -187,8 +190,8 @@ grulesobj["met1"]["active_tap"] = {} grulesobj["met1"]["poly"] = {} grulesobj["met1"]["mcon"] = {} -grulesobj["met1"]["met1"] = {'min_width': 0.23, 'min_seperation': 0.3} -grulesobj["met1"]["via1"] = {'min_enclosure': 0.12} +grulesobj["met1"]["met1"] = {"min_width": 0.23, "min_seperation": 0.3} +grulesobj["met1"]["via1"] = {"min_enclosure": 0.12} grulesobj["met1"]["met2"] = {} grulesobj["met1"]["via2"] = {} grulesobj["met1"]["met3"] = {} @@ -204,8 +207,8 @@ grulesobj["via1"]["poly"] = {} grulesobj["via1"]["mcon"] = {} grulesobj["via1"]["met1"] = {} -grulesobj["via1"]["via1"] = {'width': 0.26, 'min_seperation': 0.36} -grulesobj["via1"]["met2"] = {'min_enclosure': 0.12} +grulesobj["via1"]["via1"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via1"]["met2"] = {"min_enclosure": 0.12} grulesobj["via1"]["via2"] = {} grulesobj["via1"]["met3"] = {} grulesobj["via1"]["via3"] = {} @@ -221,8 +224,8 @@ grulesobj["met2"]["mcon"] = {} grulesobj["met2"]["met1"] = {} grulesobj["met2"]["via1"] = {} -grulesobj["met2"]["met2"] = {'min_width': 0.28, 'min_seperation': 0.3} -grulesobj["met2"]["via2"] = {'min_enclosure': 0.12} +grulesobj["met2"]["met2"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met2"]["via2"] = {"min_enclosure": 0.12} grulesobj["met2"]["met3"] = {} grulesobj["met2"]["via3"] = {} grulesobj["met2"]["met4"] = {} @@ -238,8 +241,8 @@ grulesobj["via2"]["met1"] = {} grulesobj["via2"]["via1"] = {} grulesobj["via2"]["met2"] = {} -grulesobj["via2"]["via2"] = {'width': 0.26, 'min_seperation': 0.36} -grulesobj["via2"]["met3"] = {'min_enclosure': 0.12} +grulesobj["via2"]["via2"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via2"]["met3"] = {"min_enclosure": 0.12} grulesobj["via2"]["via3"] = {} grulesobj["via2"]["met4"] = {} grulesobj["met3"]["dnwell"] = {} @@ -255,8 +258,8 @@ grulesobj["met3"]["via1"] = {} grulesobj["met3"]["met2"] = {} grulesobj["met3"]["via2"] = {} -grulesobj["met3"]["met3"] = {'min_width': 0.28, 'min_seperation': 0.3} -grulesobj["met3"]["via3"] = {'min_enclosure': 0.12} +grulesobj["met3"]["met3"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met3"]["via3"] = {"min_enclosure": 0.12} grulesobj["met3"]["met4"] = {} grulesobj["via3"]["dnwell"] = {} grulesobj["via3"]["pwell"] = {} @@ -272,8 +275,8 @@ grulesobj["via3"]["met2"] = {} grulesobj["via3"]["via2"] = {} grulesobj["via3"]["met3"] = {} -grulesobj["via3"]["via3"] = {'width': 0.26, 'min_seperation': 0.36} -grulesobj["via3"]["met4"] = {'min_enclosure': 0.12} +grulesobj["via3"]["via3"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via3"]["met4"] = {"min_enclosure": 0.12} grulesobj["met4"]["dnwell"] = {} grulesobj["met4"]["pwell"] = {} grulesobj["met4"]["nwell"] = {} @@ -289,7 +292,7 @@ grulesobj["met4"]["via2"] = {} grulesobj["met4"]["met3"] = {} grulesobj["met4"]["via3"] = {} -grulesobj["met4"]["met4"] = {'min_width': 0.28, 'min_seperation': 0.3} +grulesobj["met4"]["met4"] = {"min_width": 0.28, "min_seperation": 0.3} sky130_mapped_pdk = MappedPDK.from_gf_pdk( sky130.PDK, diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index 47f5c0ae6..e83111844 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -1,4 +1,4 @@ -# from PDK.mappedpdk import MappedPDK +from PDK.mappedpdk import MappedPDK from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle @@ -10,7 +10,7 @@ @cell def ptapring( - pdk, + pdk: MappedPDK, enclosed_rectangle=(2.0, 4.0), horizontal_glayer: Optional[str] = "met1", vertical_glayer: Optional[str] = "met2", diff --git a/openfasoc/generators/gdsfactory-gen/nfet.py b/openfasoc/generators/gdsfactory-gen/nfet.py index 00b958dd8..c3414feca 100644 --- a/openfasoc/generators/gdsfactory-gen/nfet.py +++ b/openfasoc/generators/gdsfactory-gen/nfet.py @@ -1,10 +1,11 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle - +from PDK.mappedpdk import MappedPDK from typing import Optional -from via_gen import via_stack +from via_gen import via_array, via_stack from guardring import ptapring +from math import ceil # GF180 # NMOS target hieght = 2.19 @@ -13,11 +14,11 @@ @cell -def PARTIALsingle_multiplier_gen_no_diff( - pdk, width: float = 3, fingers: Optional[int] = 1 +def PARTIAL_multiplier_no_diff( + pdk: MappedPDK, width: float = 3, fingers: Optional[int] = 1 ) -> Component: pmultiplier = Component("partial multiplier") - if fingers==0: + if fingers == 0: return pmultiplier # create the poly gate length = pdk.get_grule("poly")["min_width"] @@ -25,38 +26,31 @@ def PARTIALsingle_multiplier_gen_no_diff( poly_gate_comp = rectangle( size=(length, poly_height), layer=pdk.get_glayer("poly"), centered=True ) - # create active diff to met1 vias - sd_via_comp = Component("temp via array") - # TODO: implement sd_via_comp as via array - sd_via_comp << via_stack(pdk, "active_diff", "met1") - # figure out poly spacing s.t. metal does not overlap transistor - viasize = sd_via_comp.xmax - sd_via_comp.xmin + # figure out poly spacing s.t. metal/via does not overlap transistor + tempviastack = via_stack(pdk, "active_diff", "met1") + viasize = tempviastack.xmax - tempviastack.xmin mcon_poly_space = ( 2 * pdk.get_grule("poly", "mcon")["min_seperation"] + pdk.get_grule("mcon")["width"] ) poly_spacing = max(viasize, mcon_poly_space) - # lay poly for all fingers - if fingers % 2: # odd number of fingers - pmultiplier << poly_gate_comp # center poly - sd_via_refr = pmultiplier << sd_via_comp - sd_via_refr.movex(0.5 * (length + poly_spacing)) - sd_via_refl = pmultiplier << sd_via_comp - sd_via_refl.movex(-0.5 * (length + poly_spacing)) - for fingermirror_num in range(int(fingers / 2)): - f_offset_ = fingermirror_num * (poly_spacing + length) - poly_gate_refr = pmultiplier << poly_gate_comp - poly_gate_refr.movex(f_offset_ + length + poly_spacing) - poly_gate_refl = pmultiplier << poly_gate_comp - poly_gate_refl.movex(-1 * (f_offset_ + length + poly_spacing)) - f_offset_ += poly_spacing + length - sd_via_refr = pmultiplier << sd_via_comp - sd_via_refr.movex(0.5 * (length + poly_spacing) + f_offset_) - sd_via_refl = pmultiplier << sd_via_comp - sd_via_refl.movex(-0.5 * (length + poly_spacing) - f_offset_) - else: - mirror_pmult = Component("half partial multiplier") - mirror_pmult << poly_gate_comp + # create active diff to met1 vias + sd_via_comp = via_array(pdk, "active_diff", "met1", size=(viasize, width)) + # lay poly and via arrays + for fingernum in range(fingers + 1): + spacing_multiplier = ((-1) ** fingernum) * ceil(fingernum / 2) + finger_spacing = poly_spacing + length + finger_offset = spacing_multiplier * finger_spacing + if (fingers % 2) == 0: # even correction + finger_offset += 0.5 * finger_spacing + if fingernum == fingers: # lay leftmost via then loop is done + left_sd_via_ref = pmultiplier << sd_via_comp + left_sd_via_ref.movex(0.5 * finger_spacing - abs(finger_offset)) + break + poly_gate_ref = pmultiplier << poly_gate_comp + poly_gate_ref.movex(finger_offset) + right_sd_via_ref = pmultiplier << sd_via_comp + right_sd_via_ref.movex(finger_offset + 0.5 * finger_spacing) return pmultiplier.flatten() @@ -87,23 +81,20 @@ def nmos( # create a single multiplier multiplier = Component("temp multiplier") - partialmult = PARTIALsingle_multiplier_gen_no_diff( - pdk, width=width, fingers=fingers - ) - + partialmult = PARTIAL_multiplier_no_diff(pdk, width=width, fingers=fingers) + # add diffusion diff_dims = ( partialmult.xmax - partialmult.xmin - + 2 * pdk.get_grule("poly", "active_diff")["overhang"], + + 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"], width, ) - # TODO: revise ruleset for active__diff, default=pdk.get_grule("active_tap","p+s/d")["min_enclosure"] - # .add_padding(layers=(pdk.get_glayer("p+s/d")),default=pdk.get_grule("active_tap","p+s/d")["min_enclosure"]) multiplier << rectangle( size=diff_dims, layer=pdk.get_glayer("active_diff"), centered=True ) - # multiplier.add_padding(layers=(pdk.get_glayer("p+s/d")),default=pdk.get_grule("poly","active_diff")["overhang"]) - multiplier.add_padding(layers=(pdk.get_glayer("p+s/d")), default=0.1) + # add pplus + pplusoh = pdk.get_grule("p+s/d", "active_diff")["min_enclosure"] + multiplier.add_padding(layers=(pdk.get_glayer("p+s/d"),), default=pplusoh) multiplier << partialmult return multiplier.flatten() @@ -121,4 +112,4 @@ def nmos( from PDK.gf180_mapped import gf180_mapped_pdk gf180_mapped_pdk.activate() - nmos(gf180_mapped_pdk, fingers=5).show() + nmos(gf180_mapped_pdk, fingers=4).show() diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 186604d2b..199240591 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -3,25 +3,28 @@ from gdsfactory.components.rectangle import rectangle from pydantic import validate_arguments from collections import OrderedDict +from PDK.mappedpdk import MappedPDK +from math import ceil, floor -#from PDK.mappedpdk import MappedPDK @validate_arguments -def __error_check_order_layers(pdk, glayer1: str, glayer2: str) -> tuple[int, int]: - """correctly order layers (level1 should be lower than level2)""" - pdk.activate() - # check that the generic layers specfied can be routed between - if not all([pdk.is_routable_glayer(met) for met in [glayer1, glayer2]]): - raise ValueError("via_stack: specify between two routable layers") - level1 = int(glayer1[-1]) if "met" in glayer1 else 0 - level2 = int(glayer2[-1]) if "met" in glayer2 else 0 - if level1 > level2: - level1, level2 = level2, level1 - return level1, level2 +def __error_check_order_layers( + pdk: MappedPDK, glayer1: str, glayer2: str +) -> tuple[int, int]: + """correctly order layers (level1 should be lower than level2)""" + pdk.activate() + # check that the generic layers specfied can be routed between + if not all([pdk.is_routable_glayer(met) for met in [glayer1, glayer2]]): + raise ValueError("via_stack: specify between two routable layers") + level1 = int(glayer1[-1]) if "met" in glayer1 else 0 + level2 = int(glayer2[-1]) if "met" in glayer2 else 0 + if level1 > level2: + level1, level2 = level2, level1 + return level1, level2 @cell -def via_stack(pdk, glayer1: str, glayer2: str) -> Component: +def via_stack(pdk: MappedPDK, glayer1: str, glayer2: str) -> Component: """produces a single via stack between two metal layers does not produce via arrays args: @@ -87,38 +90,64 @@ def via_stack(pdk, glayer1: str, glayer2: str) -> Component: @cell -def via_array(pdk, glayer1: str, glayer2: str, size=(2.0,4.0)) -> Component: - """Fill a region with vias. Will automatically decide num rows and columns - args: - pdk: MappedPDK is the pdk to use - glayer1: str is the glayer to start on - glayer2: str is the glayer to end on - ****NOTE it does not matter what order you pass layers - ****NOTE will not lay poly or active but will lay metals - size: tuple is the (width, hieght) of the area to enclose - ****NOTE: the size will be the dimensions of the top metal - """ - level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) - viaarray = Component() - # if same level return empty component - if level1 == level2: - return viaarray - # figure out min space between via stacks - via_spacing = [] if level1 else [pdk.get_grule("mcon")["min_seperation"]] - for level in range(level1,level2) - met_glayer = "met" + str(level) - via_glayer = "via" + str(level) - via_spacing.append(pdk.get_grule(met_glayer)["min_seperation"]) - via_spacing.append(pdk.get_grule(via_glayer)["min_seperation"]) - via_spacing.append(pdk.get_grule("met" + str(level2))["min_seperation"]) - via_spacing = max(via_spacing) - # implement array - - return viaarray.flatten() +def via_array(pdk: MappedPDK, glayer1: str, glayer2: str, size=(4.0, 2.0)) -> Component: + """Fill a region with vias. Will automatically decide num rows and columns + args: + pdk: MappedPDK is the pdk to use + glayer1: str is the glayer to start on + glayer2: str is the glayer to end on + ****NOTE it does not matter what order you pass layers + ****NOTE will not lay poly or active but will lay metals + size: tuple is the (width, hieght) of the area to enclose + ****NOTE: the size will be the dimensions of the top metal + """ + level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) + viaarray = Component() + # if same level return empty component + if level1 == level2: + return viaarray + # figure out min space between via stacks + via_spacing = [] if level1 else [pdk.get_grule("mcon")["min_seperation"]] + level1 = level1 if level1 else level1 + 1 + for level in range(level1, level2): + met_glayer = "met" + str(level) + via_glayer = "via" + str(level) + via_spacing.append(pdk.get_grule(met_glayer)["min_seperation"]) + via_spacing.append(pdk.get_grule(via_glayer)["min_seperation"]) + via_spacing.append(pdk.get_grule("met" + str(level2))["min_seperation"]) + via_spacing = max(via_spacing) + # error check size and get viaspacing_full + viastack = via_stack(pdk, glayer1, glayer2) + viadim = max(viastack.xmax - viastack.xmin, viastack.ymax - viastack.ymin) + if any([viadim > dim for dim in size]): + raise ValueError("via_array size: one or more dims too small") + viaspacing_full = via_spacing + viadim + # num_vias[0]=x, num_vias[1]=y + num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in size] + # num_vias = [(dim-1 if dim>1 else dim) for dim in num_vias] + # create horizontal vias and center + horizontal_vias = Component("temp horizontal vias") + for vianum in range(num_vias[0]): + spacing_multiplier = ((-1) ** vianum) * ceil(vianum / 2) + viastack_ref = horizontal_vias << viastack + viastack_ref.movex(spacing_multiplier * viaspacing_full) + if (num_vias[0] % 2) == 0: # adjust for even array size + viastack_ref.movex(viaspacing_full / 2) + # copy horizontal to create vertical + for vianum in range(num_vias[1]): + spacing_multiplier = ((-1) ** vianum) * ceil(vianum / 2) + viarow_ref = viaarray << horizontal_vias + viarow_ref.movey(spacing_multiplier * viaspacing_full) + if (num_vias[1] % 2) == 0: # adjust for even array size + viarow_ref.movey(viaspacing_full / 2) + # place top metal and return + top_met_layer = pdk.get_glayer("met" + str(level2)) + viaarray << rectangle(size=size, layer=top_met_layer, centered=True) + return viaarray.flatten() if __name__ == "__main__": from PDK.gf180_mapped import gf180_mapped_pdk gf180_mapped_pdk.activate() - via_stack(gf180_mapped_pdk, "active_diff", "met1").show() + via_array(gf180_mapped_pdk, "active_diff", "met1").show() From e3cf8034ebdfc0b1f7fa79f4ab5f361922cf0c31 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 26 Jun 2023 20:53:42 -0400 Subject: [PATCH 04/64] ptapring implements via_array, add multiplier, nfet udpates --- .../PDK/gf180_mapped/gf180_mapped.py | 2 +- .../generators/gdsfactory-gen/guardring.py | 91 +++----- openfasoc/generators/gdsfactory-gen/nfet.py | 196 +++++++++++++----- .../generators/gdsfactory-gen/via_gen.py | 56 +++-- 4 files changed, 208 insertions(+), 137 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index 739a6e1e3..962931b76 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -121,7 +121,7 @@ grulesobj["active_diff"]["pwell"] = {} grulesobj["active_diff"]["nwell"] = {} grulesobj["active_diff"]["p+s/d"] = {"min_enclosure": 0.23} -grulesobj["active_diff"]["n+s/d"] = {} +grulesobj["active_diff"]["n+s/d"] = {"min_enclosure": 0.16} grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_seperation": 0.28} grulesobj["active_diff"]["active_tap"] = { "0.3)": "*****FIXTHIS!!!MANUALLY!*****", diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index e83111844..24a8010ab 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -3,7 +3,7 @@ from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from gdsfactory.components.rectangular_ring import rectangular_ring -from via_gen import via_stack +from via_gen import via_array, via_stack from typing import Optional from math import ceil @@ -12,8 +12,8 @@ def ptapring( pdk: MappedPDK, enclosed_rectangle=(2.0, 4.0), - horizontal_glayer: Optional[str] = "met1", - vertical_glayer: Optional[str] = "met2", + horizontal_glayer: Optional[str] = "met2", + vertical_glayer: Optional[str] = "met1", ) -> Component: """ptapring produce a p substrate / pwell tap rectanglular ring This ring will legally enclose a rectangular shape @@ -58,71 +58,30 @@ def ptapring( centered=True, layer=pdk.get_glayer("p+s/d"), ) - # compute via seperation. via_spacing[0] is horizontal, via_spacing[1] is vertical - xlvl = int(horizontal_glayer[-1]) - ylvl = int(vertical_glayer[-1]) - via_spacing = list() - for dlvl in [xlvl, ylvl]: - via_seperations = [pdk.get_grule("mcon")["min_seperation"]] + [ - pdk.get_grule("via" + str(lvl))["min_seperation"] - for lvl in range(1, dlvl + 1) - ] - metal_seperations = [ - pdk.get_grule("met" + str(lvl))["min_seperation"] - for lvl in range(1, dlvl + 1) - ] - via_spacing.append(max(via_seperations + metal_seperations)) - # compute how many vias and create the vias - num_vias = list() - viawidth = 0 # need this for later - for i, toplayer in enumerate([horizontal_glayer, vertical_glayer]): - # figure out how many vias - viastack = via_stack(pdk, "active_tap", toplayer) - viawidth = max(viastack.xmax - viastack.xmin, viastack.ymax - viastack.ymin) - viaspacing_full = viawidth + via_spacing[i] - num_vias = int(enclosed_rectangle[i] / viaspacing_full) - if num_vias > 1: - num_vias = num_vias - 1 - # lay vias - for vianum in range(num_vias): - viastack_ref_plus = ptapring << viastack - viastack_ref_minus = ptapring << viastack - spacing_multiplier = ((-1) ** vianum) * ceil(vianum / 2) - if i == 0: # horizontal layer - viastack_ref_plus.movex(spacing_multiplier * viaspacing_full).movey( - 0.5 * (enclosed_rectangle[1] + tap_width) - ) - viastack_ref_minus.movex(spacing_multiplier * viaspacing_full).movey( - -0.5 * (enclosed_rectangle[1] + tap_width) - ) - else: # vertical layer - viastack_ref_plus.movex( - 0.5 * (enclosed_rectangle[0] + tap_width) - ).movey(spacing_multiplier * viaspacing_full) - viastack_ref_minus.movex( - -0.5 * (enclosed_rectangle[0] + tap_width) - ).movey(spacing_multiplier * viaspacing_full) - # lay metal - ns_side_dims = ( - enclosed_rectangle[0] + 2 * tap_width, - max(viawidth, pdk.get_grule(horizontal_glayer)["min_width"]), + # create via arrs + via_width_horizontal = 2 * via_stack(pdk, "active_diff", horizontal_glayer).ymax + arr_size_horizontal = enclosed_rectangle[0] + horizontal_arr = via_array( + pdk, + "active_diff", + horizontal_glayer, + (arr_size_horizontal, via_width_horizontal), + minus1=True, ) - ew_side_dims = ( - max(viawidth, pdk.get_grule(horizontal_glayer)["min_width"]), - enclosed_rectangle[1] + 2 * tap_width, - ) - metal_ref_n = ptapring << rectangle( - layer=pdk.get_glayer(horizontal_glayer), size=ns_side_dims, centered=True - ) - metal_ref_e = ptapring << rectangle( - layer=pdk.get_glayer(vertical_glayer), size=ew_side_dims, centered=True - ) - metal_ref_s = ptapring << rectangle( - layer=pdk.get_glayer(horizontal_glayer), size=ns_side_dims, centered=True - ) - metal_ref_w = ptapring << rectangle( - layer=pdk.get_glayer(vertical_glayer), size=ew_side_dims, centered=True + via_width_vertical = 2 * via_stack(pdk, "active_diff", vertical_glayer).ymax + arr_size_vertical = enclosed_rectangle[1] + vertical_arr = via_array( + pdk, + "active_diff", + vertical_glayer, + (via_width_vertical, arr_size_vertical), + minus1=True, ) + # add via arrs + metal_ref_n = ptapring << horizontal_arr + metal_ref_e = ptapring << vertical_arr + metal_ref_s = ptapring << horizontal_arr + metal_ref_w = ptapring << vertical_arr metal_ref_n.movey(0.5 * (enclosed_rectangle[1] + tap_width)) metal_ref_e.movex(0.5 * (enclosed_rectangle[0] + tap_width)) metal_ref_s.movey(-0.5 * (enclosed_rectangle[1] + tap_width)) diff --git a/openfasoc/generators/gdsfactory-gen/nfet.py b/openfasoc/generators/gdsfactory-gen/nfet.py index c3414feca..e06145c38 100644 --- a/openfasoc/generators/gdsfactory-gen/nfet.py +++ b/openfasoc/generators/gdsfactory-gen/nfet.py @@ -1,5 +1,5 @@ from gdsfactory.cell import cell -from gdsfactory.component import Component +from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle from PDK.mappedpdk import MappedPDK from typing import Optional @@ -7,25 +7,33 @@ from guardring import ptapring from math import ceil -# GF180 -# NMOS target hieght = 2.19 -# PMOS target height = 2.59 -# standard hieght = 4.78 - @cell -def PARTIAL_multiplier_no_diff( - pdk: MappedPDK, width: float = 3, fingers: Optional[int] = 1 +def multiplier( + pdk: MappedPDK, + sdlayer: str, + width: Optional[float] = 3, + fingers: Optional[int] = 1, + routing: Optional[bool] = True, + dummy: Optional[bool] = True, ) -> Component: - pmultiplier = Component("partial multiplier") + # error checking + if "+s/d" not in sdlayer: + raise ValueError("specify + doped region for multiplier") + multiplier = Component() if fingers == 0: - return pmultiplier + return multiplier # create the poly gate length = pdk.get_grule("poly")["min_width"] - poly_height = width + 2 * pdk.get_grule("poly", "active_diff")["overhang"] - poly_gate_comp = rectangle( + poly_overhang = pdk.get_grule("poly", "active_diff")["overhang"] + poly_height = width + 2 * poly_overhang + routing_pfac = pdk.get_grule("met1")["min_seperation"] if routing else 0 + poly_height += routing_pfac + poly_gate_comp = Component("temp poly gate") + tempref = poly_gate_comp << rectangle( size=(length, poly_height), layer=pdk.get_glayer("poly"), centered=True ) + tempref.movey(-0.5 * routing_pfac) # figure out poly spacing s.t. metal/via does not overlap transistor tempviastack = via_stack(pdk, "active_diff", "met1") viasize = tempviastack.xmax - tempviastack.xmin @@ -34,24 +42,98 @@ def PARTIAL_multiplier_no_diff( + pdk.get_grule("mcon")["width"] ) poly_spacing = max(viasize, mcon_poly_space) - # create active diff to met1 vias - sd_via_comp = via_array(pdk, "active_diff", "met1", size=(viasize, width)) - # lay poly and via arrays - for fingernum in range(fingers + 1): - spacing_multiplier = ((-1) ** fingernum) * ceil(fingernum / 2) - finger_spacing = poly_spacing + length - finger_offset = spacing_multiplier * finger_spacing - if (fingers % 2) == 0: # even correction - finger_offset += 0.5 * finger_spacing - if fingernum == fingers: # lay leftmost via then loop is done - left_sd_via_ref = pmultiplier << sd_via_comp - left_sd_via_ref.movex(0.5 * finger_spacing - abs(finger_offset)) - break - poly_gate_ref = pmultiplier << poly_gate_comp - poly_gate_ref.movex(finger_offset) - right_sd_via_ref = pmultiplier << sd_via_comp - right_sd_via_ref.movex(finger_offset + 0.5 * finger_spacing) - return pmultiplier.flatten() + # create a single finger + finger = Component("temp finger comp") + finger << poly_gate_comp + routing_mfac = pdk.get_grule("met1")["min_seperation"] if routing else 0 + vwidth = width + routing_mfac + sd_via_comp = via_array(pdk, "active_diff", "met1", size=(viasize, vwidth)) + sd_via_ref_arr = finger << sd_via_comp + finger_dim = poly_spacing + length + sd_via_ref_arr.movex(finger_dim / 2).movey(routing_mfac / 2) + # create finger array and add to multiplier + fingerarray = Component("temp finger array") + fingerarray.add_array(finger, columns=fingers, rows=1, spacing=(finger_dim, 1)) + sd_via_ref_left = fingerarray << sd_via_comp + sd_via_ref_left.movex(-0.5 * finger_dim).movey(routing_mfac / 2) + fingerarray_ref = multiplier << fingerarray + offset = (fingers - 1) * finger_dim * 0.5 + fingerarray_ref.movex(-1 * offset) + # create diffusion and +doped region + diff_dims = ( + multiplier.xmax + - multiplier.xmin + + 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"], + width, + ) + diff_area = copy( + rectangle(size=diff_dims, layer=pdk.get_glayer("active_diff"), centered=True) + ) + sd_ovhg = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] + diff_area.add_padding(layers=(pdk.get_glayer(sdlayer),), default=sd_ovhg) + multiplier << diff_area + # route all drains/ gates/ sources + if routing: + # TODO: fix poly overhang / met1 seperation + extracted_gates = multiplier.extract(pdk.get_glayer("poly")) + gate_route_width = ( + pdk.get_grule("mcon")["width"] + + 2 * pdk.get_grule("poly", "mcon")["min_enclosure"] + ) + gate_route_length = extracted_gates.xmax - extracted_gates.xmin + routedims = [gate_route_length, gate_route_width] + gate_route = copy( + rectangle(size=routedims, layer=pdk.get_glayer("poly"), centered=True) + ) + routedims[1] = 2 * via_stack(pdk, "poly", "met2").ymax + gate_route << via_array(pdk, "poly", "met2", size=routedims) + gate_route_ref = multiplier << gate_route + gate_route_ref.movey(-0.5 * (poly_height + gate_route_width + routing_pfac)) + # source and drain routing + sw_corner_os = [ + fingerarray_ref.xmin + viasize / 2, + fingerarray_ref.ymax + tempviastack.extract(pdk.get_glayer("met1")).ymax, + ] + sdvia = via_stack(pdk, "met1", "met2") + for finger in range(fingers + 1): + sdrouting = Component("temp routing comp") + sdrouting << sdvia + doffset_met1 = 0 + if finger % 2: + doffset_met1 = sdvia.ymax - sdvia.extract(pdk.get_glayer("met1")).ymax + doffset = (2 * sdvia.ymax) + pdk.get_grule("met2")["min_seperation"] + extendm = sdrouting << rectangle( + size=(viasize, doffset + doffset_met1), + centered=True, + layer=pdk.get_glayer("met1"), + ) + extendm.movey(-0.5 * doffset - sdvia.ymax) + sdrouting_ref = multiplier << sdrouting + sdrouting_ref.move(destination=(sw_corner_os)) + if finger % 2: + sdrouting_ref.movey(extendm.ymax - extendm.ymin) + sw_corner_os[0] += finger_dim + met2_ext = multiplier.extract(pdk.get_glayer("met2")) + met2route_dims = (met2_ext.xmax - met2_ext.xmin, 2 * sdvia.ymax) + sd_met2_connect = rectangle( + layer=pdk.get_glayer("met2"), size=met2route_dims, centered=True + ) + for m2offset in [sw_corner_os[1], met2_ext.ymax - sdvia.ymax]: + m2ref = multiplier << sd_met2_connect + m2ref.movey(m2offset) + if dummy: + dummy = Component("temp dummy region") + size = (pdk.get_grule("active_diff")["min_width"], width) + dummy << rectangle( + layer=pdk.get_glayer("active_diff"), size=size, centered=True + ) + dummy_space = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] + dummy.add_padding(layers=(pdk.get_glayer(sdlayer),), default=dummy_space) + dummy_space += pdk.get_grule(sdlayer)["min_seperation"] + size[0] / 2 + for side in [-1, 1]: + dummy_ref = multiplier << dummy + dummy_ref.movex(side * (dummy_space + multiplier.xmax)) + return multiplier.flatten() @cell @@ -59,7 +141,7 @@ def nmos( pdk, width: float = 3, fingers: Optional[int] = 1, - multiplier: Optional[int] = 1, + multipliers: Optional[int] = 1, with_tie: Optional[bool] = True, with_dummy: Optional[bool] = True, ): @@ -72,31 +154,45 @@ def nmos( raise ValueError("transistor min width violated") # TODO: glayer checks pdk.activate() - # 1) create one multiplier - # 2) multiplier.movey up then reflect the multiplier across the x axis # 3) make sure all multipliers are on component then use bbox to place tie ring around nfet # 4) place pwell # 5) place dnwell # 6) place tap ring + nfet = Component() - # create a single multiplier - multiplier = Component("temp multiplier") - partialmult = PARTIAL_multiplier_no_diff(pdk, width=width, fingers=fingers) - # add diffusion - diff_dims = ( - partialmult.xmax - - partialmult.xmin - + 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"], - width, + # create and add multipliers to nfet + multiplier_arr = Component("temp multiplier array") + multiplier_comp = multiplier( + pdk, "n+s/d", width=width, fingers=fingers, dummy=with_dummy ) - multiplier << rectangle( - size=diff_dims, layer=pdk.get_glayer("active_diff"), centered=True + multiplier_seperation = ( + pdk.get_grule("met2")["min_seperation"] + + multiplier_comp.ymax + - multiplier_comp.ymin ) - # add pplus - pplusoh = pdk.get_grule("p+s/d", "active_diff")["min_enclosure"] - multiplier.add_padding(layers=(pdk.get_glayer("p+s/d"),), default=pplusoh) - multiplier << partialmult - return multiplier.flatten() + multiplier_arr.add_array( + multiplier_comp, columns=1, rows=multipliers, spacing=(1, multiplier_seperation) + ) + nfet.add(multiplier_arr.ref_center()) + # add tap if tap + if with_tie: + tap_seperation = max( + pdk.get_grule("met2")["min_seperation"], + pdk.get_grule("met1")["min_seperation"], + pdk.get_grule("active_diff", "active_tap")["min_seperation"], + ) + tap_seperation += pdk.get_grule("p+s/d", "active_tap")["min_enclosure"] + tap_encloses = ( + 2 * (tap_seperation + nfet.xmax), + 2 * (tap_seperation + nfet.ymax), + ) + nfet << ptapring( + pdk, + enclosed_rectangle=tap_encloses, + horizontal_glayer="met2", + vertical_glayer="met1", + ) + return nfet.flatten() # @cell @@ -112,4 +208,4 @@ def nmos( from PDK.gf180_mapped import gf180_mapped_pdk gf180_mapped_pdk.activate() - nmos(gf180_mapped_pdk, fingers=4).show() + nmos(gf180_mapped_pdk, fingers=5, multipliers=2).show() diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 199240591..72344ba68 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -4,7 +4,8 @@ from pydantic import validate_arguments from collections import OrderedDict from PDK.mappedpdk import MappedPDK -from math import ceil, floor +from math import floor +from typing import Optional @validate_arguments @@ -24,7 +25,9 @@ def __error_check_order_layers( @cell -def via_stack(pdk: MappedPDK, glayer1: str, glayer2: str) -> Component: +def via_stack( + pdk: MappedPDK, glayer1: str, glayer2: str, centered: Optional[bool] = True +) -> Component: """produces a single via stack between two metal layers does not produce via arrays args: @@ -86,11 +89,21 @@ def via_stack(pdk: MappedPDK, glayer1: str, glayer2: str) -> Component: viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer(gfinalmet), centered=True ) - return viastack.flatten() + center_stack = Component() + viastack_ref = center_stack << viastack + if not centered: + viastack_ref.movex(viastack.xmax).movey(viastack.ymax) + return center_stack.flatten() @cell -def via_array(pdk: MappedPDK, glayer1: str, glayer2: str, size=(4.0, 2.0)) -> Component: +def via_array( + pdk: MappedPDK, + glayer1: str, + glayer2: str, + size=(4.0, 1.0), + minus1: Optional[bool] = False, +) -> Component: """Fill a region with vias. Will automatically decide num rows and columns args: pdk: MappedPDK is the pdk to use @@ -124,22 +137,25 @@ def via_array(pdk: MappedPDK, glayer1: str, glayer2: str, size=(4.0, 2.0)) -> Co viaspacing_full = via_spacing + viadim # num_vias[0]=x, num_vias[1]=y num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in size] - # num_vias = [(dim-1 if dim>1 else dim) for dim in num_vias] - # create horizontal vias and center - horizontal_vias = Component("temp horizontal vias") - for vianum in range(num_vias[0]): - spacing_multiplier = ((-1) ** vianum) * ceil(vianum / 2) - viastack_ref = horizontal_vias << viastack - viastack_ref.movex(spacing_multiplier * viaspacing_full) - if (num_vias[0] % 2) == 0: # adjust for even array size - viastack_ref.movex(viaspacing_full / 2) - # copy horizontal to create vertical - for vianum in range(num_vias[1]): - spacing_multiplier = ((-1) ** vianum) * ceil(vianum / 2) - viarow_ref = viaarray << horizontal_vias - viarow_ref.movey(spacing_multiplier * viaspacing_full) - if (num_vias[1] % 2) == 0: # adjust for even array size - viarow_ref.movey(viaspacing_full / 2) + if minus1: + num_vias = [(dim - 1 if dim > 1 else dim) for dim in num_vias] + # create array and add to component + temparray = Component("temp horizontal vias") + temparray.add_array( + viastack, + columns=num_vias[0], + rows=num_vias[1], + spacing=[viaspacing_full, viaspacing_full], + ) + array_ref = viaarray << temparray + center_offsety = -1 * viaspacing_full * floor(num_vias[1] / 2) + center_offsetx = -1 * viaspacing_full * floor(num_vias[0] / 2) + if (num_vias[0] % 2) == 0: # even num columns + center_offsetx += viaspacing_full / 2 + if (num_vias[1] % 2) == 0: # even num rows + center_offsety += viaspacing_full / 2 + array_ref.movex(center_offsetx) + array_ref.movey(center_offsety) # place top metal and return top_met_layer = pdk.get_glayer("met" + str(level2)) viaarray << rectangle(size=size, layer=top_met_layer, centered=True) From 449c2b4cf8110f4e1cae53b0097f0ef41fd7b8c7 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 26 Jun 2023 21:57:16 -0400 Subject: [PATCH 05/64] pfet and nfet DRC clean --- .../PDK/gf180_mapped/gf180_mapped.py | 2 +- .../gdsfactory-gen/{nfet.py => fet.py} | 165 +++++++++++++++--- .../generators/gdsfactory-gen/guardring.py | 11 +- 3 files changed, 143 insertions(+), 35 deletions(-) rename openfasoc/generators/gdsfactory-gen/{nfet.py => fet.py} (64%) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index 962931b76..981a84f58 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -121,7 +121,7 @@ grulesobj["active_diff"]["pwell"] = {} grulesobj["active_diff"]["nwell"] = {} grulesobj["active_diff"]["p+s/d"] = {"min_enclosure": 0.23} -grulesobj["active_diff"]["n+s/d"] = {"min_enclosure": 0.16} +grulesobj["active_diff"]["n+s/d"] = {"min_enclosure": 0.23} grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_seperation": 0.28} grulesobj["active_diff"]["active_tap"] = { "0.3)": "*****FIXTHIS!!!MANUALLY!*****", diff --git a/openfasoc/generators/gdsfactory-gen/nfet.py b/openfasoc/generators/gdsfactory-gen/fet.py similarity index 64% rename from openfasoc/generators/gdsfactory-gen/nfet.py rename to openfasoc/generators/gdsfactory-gen/fet.py index e06145c38..90406ff22 100644 --- a/openfasoc/generators/gdsfactory-gen/nfet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -4,8 +4,9 @@ from PDK.mappedpdk import MappedPDK from typing import Optional from via_gen import via_array, via_stack -from guardring import ptapring +from guardring import tapring from math import ceil +from pydantic import validate_arguments @cell @@ -136,6 +137,34 @@ def multiplier( return multiplier.flatten() +@validate_arguments +def __mult_array_macro( + pdk: MappedPDK, + sdlayer: str, + width: Optional[float] = 3, + fingers: Optional[int] = 1, + multipliers: Optional[int] = 1, + routing: Optional[bool] = True, + dummy: Optional[bool] = True, +) -> Component: + # create multiplier array + pdk.activate() + # TODO: error checking + multiplier_arr = Component("temp multiplier array") + multiplier_comp = multiplier( + pdk, sdlayer, width=width, fingers=fingers, dummy=dummy, routing=routing + ) + multiplier_seperation = ( + pdk.get_grule("met2")["min_seperation"] + + multiplier_comp.ymax + - multiplier_comp.ymin + ) + multiplier_arr.add_array( + multiplier_comp, columns=1, rows=multipliers, spacing=(1, multiplier_seperation) + ) + return multiplier_arr + + @cell def nmos( pdk, @@ -144,7 +173,9 @@ def nmos( multipliers: Optional[int] = 1, with_tie: Optional[bool] = True, with_dummy: Optional[bool] = True, -): + with_dnwell: Optional[bool] = True, + with_substrate_tap: Optional[bool] = True, +) -> Component: """Generic NMOS generator: uses minumum length without deep nwell width = expands the NMOS in the y direction fingers = introduces additional fingers (sharing source/drain) of width=width @@ -154,27 +185,13 @@ def nmos( raise ValueError("transistor min width violated") # TODO: glayer checks pdk.activate() - # 3) make sure all multipliers are on component then use bbox to place tie ring around nfet - # 4) place pwell - # 5) place dnwell - # 6) place tap ring nfet = Component() - # create and add multipliers to nfet - multiplier_arr = Component("temp multiplier array") - multiplier_comp = multiplier( - pdk, "n+s/d", width=width, fingers=fingers, dummy=with_dummy - ) - multiplier_seperation = ( - pdk.get_grule("met2")["min_seperation"] - + multiplier_comp.ymax - - multiplier_comp.ymin - ) - multiplier_arr.add_array( - multiplier_comp, columns=1, rows=multipliers, spacing=(1, multiplier_seperation) + multiplier_arr = __mult_array_macro( + pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy ) nfet.add(multiplier_arr.ref_center()) - # add tap if tap + # add tie if tie if with_tie: tap_seperation = max( pdk.get_grule("met2")["min_seperation"], @@ -186,26 +203,116 @@ def nmos( 2 * (tap_seperation + nfet.xmax), 2 * (tap_seperation + nfet.ymax), ) - nfet << ptapring( + nfet << tapring( pdk, enclosed_rectangle=tap_encloses, + sdlayer="p+s/d", + horizontal_glayer="met2", + vertical_glayer="met1", + ) + # add pwell + nfet.add_padding( + layers=(pdk.get_glayer("pwell"),), + default=pdk.get_grule("pwell", "active_tap")["min_enclosure"], + ) + # add dnwell if dnwell + if with_dnwell: + nfet.add_padding( + layers=(pdk.get_glayer("dnwell"),), + default=pdk.get_grule("pwell", "dnwell")["min_enclosure"], + ) + # add substrate tap if with_substrate_tap + if with_substrate_tap: + substrate_tap_seperation = pdk.get_grule("dnwell", "active_tap")[ + "min_seperation" + ] + substrate_tap_encloses = ( + 2 * (substrate_tap_seperation + nfet.xmax), + 2 * (substrate_tap_seperation + nfet.ymax), + ) + nfet << tapring( + pdk, + enclosed_rectangle=substrate_tap_encloses, + sdlayer="p+s/d", horizontal_glayer="met2", vertical_glayer="met1", ) return nfet.flatten() -# @cell -# def pmos(pdk: MappedPDK, width: float, fingers = Optional[int] = 1, with_tie: Optional[bool] = False): -# """Generic PMOS generator: uses minumum length -# width = expands the PMOS in the y direction -# fingers = introduces additional fingers (sharing source/drain) of width=width -# with_tie = true or false, specfies if a bulk tie is required -# """ -# return +@cell +def pmos( + pdk, + width: float = 3, + fingers: Optional[int] = 1, + multipliers: Optional[int] = 1, + with_tie: Optional[bool] = True, + dnwell: Optional[bool] = False, + with_dummy: Optional[bool] = True, + with_substrate_tap: Optional[bool] = True, +) -> Component: + """Generic NMOS generator: uses minumum length without deep nwell + width = expands the NMOS in the y direction + fingers = introduces additional fingers (sharing source/drain) of width=width + with_tie = true or false, specfies if a bulk tie is required + """ + if width < pdk.get_grule("active_diff")["min_width"]: + raise ValueError("transistor min width violated") + # TODO: glayer checks + pdk.activate() + pfet = Component() + # create and add multipliers to nfet + multiplier_arr = __mult_array_macro( + pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy + ) + pfet.add(multiplier_arr.ref_center()) + # add tie if tie + if with_tie: + tap_seperation = max( + pdk.get_grule("met2")["min_seperation"], + pdk.get_grule("met1")["min_seperation"], + pdk.get_grule("active_diff", "active_tap")["min_seperation"], + ) + tap_seperation += pdk.get_grule("n+s/d", "active_tap")["min_enclosure"] + tap_encloses = ( + 2 * (tap_seperation + pfet.xmax), + 2 * (tap_seperation + pfet.ymax), + ) + pfet << tapring( + pdk, + enclosed_rectangle=tap_encloses, + sdlayer="n+s/d", + horizontal_glayer="met2", + vertical_glayer="met1", + ) + # add nwell + nwell_glayer = "dnwell" if dnwell else "nwell" + nwell_layer = pdk.get_glayer(nwell_glayer) + pfet.add_padding( + layers=(nwell_layer,), + default=pdk.get_grule("active_tap", nwell_glayer)["min_enclosure"], + ) + # add substrate tap if with_substrate_tap + if with_substrate_tap: + substrate_tap_seperation = pdk.get_grule("dnwell", "active_tap")[ + "min_seperation" + ] + substrate_tap_encloses = ( + 2 * (substrate_tap_seperation + pfet.xmax), + 2 * (substrate_tap_seperation + pfet.ymax), + ) + pfet << tapring( + pdk, + enclosed_rectangle=substrate_tap_encloses, + sdlayer="n+s/d", + horizontal_glayer="met2", + vertical_glayer="met1", + ) + return pfet.flatten() + if __name__ == "__main__": from PDK.gf180_mapped import gf180_mapped_pdk gf180_mapped_pdk.activate() - nmos(gf180_mapped_pdk, fingers=5, multipliers=2).show() + pmos(gf180_mapped_pdk, fingers=5, multipliers=2).show() diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index 24a8010ab..e5340ba37 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -9,9 +9,10 @@ @cell -def ptapring( +def tapring( pdk: MappedPDK, enclosed_rectangle=(2.0, 4.0), + sdlayer: Optional[str] = "p+s/d", horizontal_glayer: Optional[str] = "met2", vertical_glayer: Optional[str] = "met1", ) -> Component: @@ -26,7 +27,7 @@ def ptapring( """ # check layers, activate pdk, create top cell pdk.has_required_glayers( - ["p+s/d", "active_tap", "mcon", horizontal_glayer, vertical_glayer] + [sdlayer, "active_tap", "mcon", horizontal_glayer, vertical_glayer] ) pdk.activate() ptapring = Component() @@ -49,14 +50,14 @@ def ptapring( layer=pdk.get_glayer("active_tap"), ) # create p plus area - pp_enclosure = pdk.get_grule("active_tap", "p+s/d")["min_enclosure"] + pp_enclosure = pdk.get_grule("active_tap", sdlayer)["min_enclosure"] pp_width = 2 * pp_enclosure + tap_width pp_enclosed_rectangle = [dim - 2 * pp_enclosure for dim in enclosed_rectangle] ptapring << rectangular_ring( enclosed_size=pp_enclosed_rectangle, width=pp_width, centered=True, - layer=pdk.get_glayer("p+s/d"), + layer=pdk.get_glayer(sdlayer), ) # create via arrs via_width_horizontal = 2 * via_stack(pdk, "active_diff", horizontal_glayer).ymax @@ -94,4 +95,4 @@ def ptapring( from PDK.gf180_mapped import gf180_mapped_pdk gf180_mapped_pdk.activate() - ptapring(gf180_mapped_pdk, enclosed_rectangle=(5, 5)).show() + tapring(gf180_mapped_pdk, "p+s/d", enclosed_rectangle=(5, 5)).show() From b2b244a48926ae7903b2e592239665f0177e9545 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Thu, 29 Jun 2023 22:53:30 -0400 Subject: [PATCH 06/64] added diff_pair (pdk agnostic) and fet bug fixes Co-authored-by: vijayshankarr <94952142+vijayshankarr@users.noreply.github.com> --- .../PDK/gf180_mapped/gf180_mapped.py | 46 +- .../PDK/sky130_mapped/sky130_mapped.py | 93 +- .../gdsfactory-gen/PDK/util/standard_main.py | 29 + .../generators/gdsfactory-gen/diff_pair.py | 1200 +++++++++++++++++ .../gdsfactory-gen/differential_pair.py | 489 ------- openfasoc/generators/gdsfactory-gen/fet.py | 88 +- .../generators/gdsfactory-gen/guardring.py | 7 +- .../generators/gdsfactory-gen/via_gen.py | 28 +- 8 files changed, 1366 insertions(+), 614 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py create mode 100644 openfasoc/generators/gdsfactory-gen/diff_pair.py delete mode 100644 openfasoc/generators/gdsfactory-gen/differential_pair.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index 981a84f58..23c9fc0a4 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -37,13 +37,13 @@ for glayer in MappedPDK.valid_glayers: grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) -grulesobj["dnwell"]["dnwell"] = {"min_width": 1.7, "min_seperation": 5.42} +grulesobj["dnwell"]["dnwell"] = {"min_width": 1.7, "min_separation": 5.42} grulesobj["dnwell"]["pwell"] = {"min_enclosure": 2.5} -grulesobj["dnwell"]["nwell"] = {"min_seperation": 3.1, "min_enclosure": 0.5} +grulesobj["dnwell"]["nwell"] = {"min_separation": 3.1, "min_enclosure": 0.5} grulesobj["dnwell"]["p+s/d"] = {} grulesobj["dnwell"]["n+s/d"] = {} grulesobj["dnwell"]["active_diff"] = {"min_enclosure": 0.93} -grulesobj["dnwell"]["active_tap"] = {"min_enclosure": 0.62, "min_seperation": 2.5} +grulesobj["dnwell"]["active_tap"] = {"min_enclosure": 0.62, "min_separation": 2.5} grulesobj["dnwell"]["poly"] = {} grulesobj["dnwell"]["mcon"] = {} grulesobj["dnwell"]["met1"] = {} @@ -54,8 +54,8 @@ grulesobj["dnwell"]["via3"] = {} grulesobj["dnwell"]["met4"] = {} grulesobj["pwell"]["dnwell"] = {} -grulesobj["pwell"]["pwell"] = {"min_width": 0.6, "min_seperation": 1.4} -grulesobj["pwell"]["nwell"] = {"min_seperation": 0.0} +grulesobj["pwell"]["pwell"] = {"min_width": 0.6, "min_separation": 1.4} +grulesobj["pwell"]["nwell"] = {"min_separation": 0.0} grulesobj["pwell"]["p+s/d"] = {} grulesobj["pwell"]["n+s/d"] = {} grulesobj["pwell"]["active_diff"] = {"min_enclosure": 0.43} @@ -71,7 +71,7 @@ grulesobj["pwell"]["met4"] = {} grulesobj["nwell"]["dnwell"] = {} grulesobj["nwell"]["pwell"] = {} -grulesobj["nwell"]["nwell"] = {"min_width": 0.86, "min_seperation": 1.4} +grulesobj["nwell"]["nwell"] = {"min_width": 0.86, "min_separation": 1.4} grulesobj["nwell"]["p+s/d"] = {} grulesobj["nwell"]["n+s/d"] = {} grulesobj["nwell"]["active_diff"] = {"min_enclosure": 0.43} @@ -88,7 +88,7 @@ grulesobj["p+s/d"]["dnwell"] = {} grulesobj["p+s/d"]["pwell"] = {} grulesobj["p+s/d"]["nwell"] = {} -grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} +grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.4, "min_separation": 0.4} grulesobj["p+s/d"]["n+s/d"] = {} grulesobj["p+s/d"]["active_diff"] = {} grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.16} @@ -105,7 +105,7 @@ grulesobj["n+s/d"]["pwell"] = {} grulesobj["n+s/d"]["nwell"] = {} grulesobj["n+s/d"]["p+s/d"] = {} -grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} +grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.4, "min_separation": 0.4} grulesobj["n+s/d"]["active_diff"] = {} grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.16} grulesobj["n+s/d"]["poly"] = {} @@ -122,13 +122,13 @@ grulesobj["active_diff"]["nwell"] = {} grulesobj["active_diff"]["p+s/d"] = {"min_enclosure": 0.23} grulesobj["active_diff"]["n+s/d"] = {"min_enclosure": 0.23} -grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_seperation": 0.28} +grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_separation": 0.28} grulesobj["active_diff"]["active_tap"] = { "0.3)": "*****FIXTHIS!!!MANUALLY!*****", - "min_seperation": 0.28, - "max_seperation": 20.0, + "min_separation": 0.28, + "max_separation": 20.0, } -grulesobj["active_diff"]["poly"] = {"overhang": 0.24, "min_seperation": 0.1} +grulesobj["active_diff"]["poly"] = {"overhang": 0.24, "min_separation": 0.1} grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.07} grulesobj["active_diff"]["met1"] = {} grulesobj["active_diff"]["via1"] = {} @@ -143,8 +143,8 @@ grulesobj["active_tap"]["p+s/d"] = {} grulesobj["active_tap"]["n+s/d"] = {} grulesobj["active_tap"]["active_diff"] = {} -grulesobj["active_tap"]["active_tap"] = {"min_width": 0.22, "min_seperation": 0.28} -grulesobj["active_tap"]["poly"] = {"min_seperation": 0.1} +grulesobj["active_tap"]["active_tap"] = {"min_width": 0.22, "min_separation": 0.28} +grulesobj["active_tap"]["poly"] = {"min_separation": 0.1} grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.07} grulesobj["active_tap"]["met1"] = {} grulesobj["active_tap"]["via1"] = {} @@ -161,7 +161,7 @@ grulesobj["poly"]["active_diff"] = {} grulesobj["poly"]["active_tap"] = {} grulesobj["poly"]["poly"] = {"min_width": 0.28} -grulesobj["poly"]["mcon"] = {"min_enclosure": 0.07, "min_seperation": 0.17} +grulesobj["poly"]["mcon"] = {"min_enclosure": 0.07, "min_separation": 0.17} grulesobj["poly"]["met1"] = {} grulesobj["poly"]["via1"] = {} grulesobj["poly"]["met2"] = {} @@ -177,7 +177,7 @@ grulesobj["mcon"]["active_diff"] = {} grulesobj["mcon"]["active_tap"] = {} grulesobj["mcon"]["poly"] = {} -grulesobj["mcon"]["mcon"] = {"min_seperation": 0.28, "width": 0.22} +grulesobj["mcon"]["mcon"] = {"min_separation": 0.28, "width": 0.22} grulesobj["mcon"]["met1"] = {"min_enclosure": 0.12} grulesobj["mcon"]["via1"] = {} grulesobj["mcon"]["met2"] = {} @@ -194,7 +194,7 @@ grulesobj["met1"]["active_tap"] = {} grulesobj["met1"]["poly"] = {} grulesobj["met1"]["mcon"] = {} -grulesobj["met1"]["met1"] = {"min_width": 0.23, "min_seperation": 0.3} +grulesobj["met1"]["met1"] = {"min_width": 0.23, "min_separation": 0.3} grulesobj["met1"]["via1"] = {"min_enclosure": 0.12} grulesobj["met1"]["met2"] = {} grulesobj["met1"]["via2"] = {} @@ -211,7 +211,7 @@ grulesobj["via1"]["poly"] = {} grulesobj["via1"]["mcon"] = {} grulesobj["via1"]["met1"] = {} -grulesobj["via1"]["via1"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via1"]["via1"] = {"width": 0.26, "min_separation": 0.36} grulesobj["via1"]["met2"] = {"min_enclosure": 0.12} grulesobj["via1"]["via2"] = {} grulesobj["via1"]["met3"] = {} @@ -228,7 +228,7 @@ grulesobj["met2"]["mcon"] = {} grulesobj["met2"]["met1"] = {} grulesobj["met2"]["via1"] = {} -grulesobj["met2"]["met2"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met2"]["met2"] = {"min_width": 0.28, "min_separation": 0.3} grulesobj["met2"]["via2"] = {"min_enclosure": 0.12} grulesobj["met2"]["met3"] = {} grulesobj["met2"]["via3"] = {} @@ -245,7 +245,7 @@ grulesobj["via2"]["met1"] = {} grulesobj["via2"]["via1"] = {} grulesobj["via2"]["met2"] = {} -grulesobj["via2"]["via2"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via2"]["via2"] = {"width": 0.26, "min_separation": 0.36} grulesobj["via2"]["met3"] = {"min_enclosure": 0.12} grulesobj["via2"]["via3"] = {} grulesobj["via2"]["met4"] = {} @@ -262,7 +262,7 @@ grulesobj["met3"]["via1"] = {} grulesobj["met3"]["met2"] = {} grulesobj["met3"]["via2"] = {} -grulesobj["met3"]["met3"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met3"]["met3"] = {"min_width": 0.28, "min_separation": 0.3} grulesobj["met3"]["via3"] = {"min_enclosure": 0.12} grulesobj["met3"]["met4"] = {} grulesobj["via3"]["dnwell"] = {} @@ -279,7 +279,7 @@ grulesobj["via3"]["met2"] = {} grulesobj["via3"]["via2"] = {} grulesobj["via3"]["met3"] = {} -grulesobj["via3"]["via3"] = {"width": 0.26, "min_seperation": 0.36} +grulesobj["via3"]["via3"] = {"width": 0.26, "min_separation": 0.36} grulesobj["via3"]["met4"] = {"min_enclosure": 0.12} grulesobj["met4"]["dnwell"] = {} grulesobj["met4"]["pwell"] = {} @@ -296,7 +296,7 @@ grulesobj["met4"]["via2"] = {} grulesobj["met4"]["met3"] = {} grulesobj["met4"]["via3"] = {} -grulesobj["met4"]["met4"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met4"]["met4"] = {"min_width": 0.28, "min_separation": 0.3} gf180_mapped_pdk = MappedPDK( diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index c05d220a1..5d7fc3e38 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -33,13 +33,13 @@ for glayer in MappedPDK.valid_glayers: grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) -grulesobj["dnwell"]["dnwell"] = {"min_width": 1.7, "min_seperation": 5.42} -grulesobj["dnwell"]["pwell"] = {"min_enclosure": 2.5} -grulesobj["dnwell"]["nwell"] = {"min_seperation": 3.1, "min_enclosure": 0.5} +grulesobj["dnwell"]["dnwell"] = {"min_width": 3.0, "min_separation": 6.3} +grulesobj["dnwell"]["pwell"] = {} +grulesobj["dnwell"]["nwell"] = {"min_separation": 4.5} grulesobj["dnwell"]["p+s/d"] = {} grulesobj["dnwell"]["n+s/d"] = {} -grulesobj["dnwell"]["active_diff"] = {"min_enclosure": 0.93} -grulesobj["dnwell"]["active_tap"] = {"min_enclosure": 0.62, "min_seperation": 2.5} +grulesobj["dnwell"]["active_diff"] = {} +grulesobj["dnwell"]["active_tap"] = {"min_separation": 0.34} grulesobj["dnwell"]["poly"] = {} grulesobj["dnwell"]["mcon"] = {} grulesobj["dnwell"]["met1"] = {} @@ -50,12 +50,12 @@ grulesobj["dnwell"]["via3"] = {} grulesobj["dnwell"]["met4"] = {} grulesobj["pwell"]["dnwell"] = {} -grulesobj["pwell"]["pwell"] = {"min_width": 0.6, "min_seperation": 1.4} -grulesobj["pwell"]["nwell"] = {"min_seperation": 0.0} +grulesobj["pwell"]["pwell"] = {} +grulesobj["pwell"]["nwell"] = {} grulesobj["pwell"]["p+s/d"] = {} grulesobj["pwell"]["n+s/d"] = {} -grulesobj["pwell"]["active_diff"] = {"min_enclosure": 0.43} -grulesobj["pwell"]["active_tap"] = {"min_enclosure": 0.12} +grulesobj["pwell"]["active_diff"] = {} +grulesobj["pwell"]["active_tap"] = {} grulesobj["pwell"]["poly"] = {} grulesobj["pwell"]["mcon"] = {} grulesobj["pwell"]["met1"] = {} @@ -67,11 +67,11 @@ grulesobj["pwell"]["met4"] = {} grulesobj["nwell"]["dnwell"] = {} grulesobj["nwell"]["pwell"] = {} -grulesobj["nwell"]["nwell"] = {"min_width": 0.86, "min_seperation": 1.4} +grulesobj["nwell"]["nwell"] = {"min_width": 0.84, "min_sepeartion": 1.27} grulesobj["nwell"]["p+s/d"] = {} grulesobj["nwell"]["n+s/d"] = {} -grulesobj["nwell"]["active_diff"] = {"min_enclosure": 0.43} -grulesobj["nwell"]["active_tap"] = {"min_enclosure": 0.12} +grulesobj["nwell"]["active_diff"] = {} +grulesobj["nwell"]["active_tap"] = {"min_enclosure": 0.18} grulesobj["nwell"]["poly"] = {} grulesobj["nwell"]["mcon"] = {} grulesobj["nwell"]["met1"] = {} @@ -84,10 +84,10 @@ grulesobj["p+s/d"]["dnwell"] = {} grulesobj["p+s/d"]["pwell"] = {} grulesobj["p+s/d"]["nwell"] = {} -grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} +grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.38, "min_separation": 0.38} grulesobj["p+s/d"]["n+s/d"] = {} -grulesobj["p+s/d"]["active_diff"] = {} -grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.16} +grulesobj["p+s/d"]["active_diff"] = {"min_enclosure": 0.13, "min_separation": 0.13} +grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.13, "min_separation": 0.13} grulesobj["p+s/d"]["poly"] = {} grulesobj["p+s/d"]["mcon"] = {} grulesobj["p+s/d"]["met1"] = {} @@ -101,9 +101,9 @@ grulesobj["n+s/d"]["pwell"] = {} grulesobj["n+s/d"]["nwell"] = {} grulesobj["n+s/d"]["p+s/d"] = {} -grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.4, "min_seperation": 0.4} -grulesobj["n+s/d"]["active_diff"] = {} -grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.16} +grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.38, "min_separation": 0.38} +grulesobj["n+s/d"]["active_diff"] = {"min_enclosure": 0.13, "min_separation": 0.13} +grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.13, "min_separation": 0.13} grulesobj["n+s/d"]["poly"] = {} grulesobj["n+s/d"]["mcon"] = {} grulesobj["n+s/d"]["met1"] = {} @@ -118,14 +118,10 @@ grulesobj["active_diff"]["nwell"] = {} grulesobj["active_diff"]["p+s/d"] = {} grulesobj["active_diff"]["n+s/d"] = {} -grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_seperation": 0.28} -grulesobj["active_diff"]["active_tap"] = { - "0.3)": "*****FIXTHIS!!!MANUALLY!*****", - "min_seperation": 0.28, - "max_seperation": 20.0, -} -grulesobj["active_diff"]["poly"] = {"overhang": 0.24, "min_seperation": 0.1} -grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.07} +grulesobj["active_diff"]["active_diff"] = {"min_width": 0.15, "min_separation": 0.27} +grulesobj["active_diff"]["active_tap"] = {"min_separation": 0.27} +grulesobj["active_diff"]["poly"] = {"overhang": 0.25} +grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.06} grulesobj["active_diff"]["met1"] = {} grulesobj["active_diff"]["via1"] = {} grulesobj["active_diff"]["met2"] = {} @@ -139,9 +135,9 @@ grulesobj["active_tap"]["p+s/d"] = {} grulesobj["active_tap"]["n+s/d"] = {} grulesobj["active_tap"]["active_diff"] = {} -grulesobj["active_tap"]["active_tap"] = {"min_width": 0.22, "min_seperation": 0.28} -grulesobj["active_tap"]["poly"] = {"min_seperation": 0.1} -grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.07} +grulesobj["active_tap"]["active_tap"] = {"min_width": 0.15, "min_separation": 0.27} +grulesobj["active_tap"]["poly"] = {} +grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.12} grulesobj["active_tap"]["met1"] = {} grulesobj["active_tap"]["via1"] = {} grulesobj["active_tap"]["met2"] = {} @@ -156,8 +152,12 @@ grulesobj["poly"]["n+s/d"] = {} grulesobj["poly"]["active_diff"] = {} grulesobj["poly"]["active_tap"] = {} -grulesobj["poly"]["poly"] = {"min_width": 0.28} -grulesobj["poly"]["mcon"] = {"min_enclosure": 0.07, "min_seperation": 0.17} +grulesobj["poly"]["poly"] = { + "min_width": 0.15, + "min_separation": 0.21, + "extension": 0.13, +} +grulesobj["poly"]["mcon"] = {"min_enclosure": 0.05, "min_separation": 0.06} grulesobj["poly"]["met1"] = {} grulesobj["poly"]["via1"] = {} grulesobj["poly"]["met2"] = {} @@ -173,8 +173,8 @@ grulesobj["mcon"]["active_diff"] = {} grulesobj["mcon"]["active_tap"] = {} grulesobj["mcon"]["poly"] = {} -grulesobj["mcon"]["mcon"] = {"min_seperation": 0.28, "width": 0.22} -grulesobj["mcon"]["met1"] = {"min_enclosure": 0.12} +grulesobj["mcon"]["mcon"] = {"min_width": 0.17, "min_separation": 0.17, "width": 0.17} +grulesobj["mcon"]["met1"] = {"min_enclosure": 0.08} grulesobj["mcon"]["via1"] = {} grulesobj["mcon"]["met2"] = {} grulesobj["mcon"]["via2"] = {} @@ -190,8 +190,8 @@ grulesobj["met1"]["active_tap"] = {} grulesobj["met1"]["poly"] = {} grulesobj["met1"]["mcon"] = {} -grulesobj["met1"]["met1"] = {"min_width": 0.23, "min_seperation": 0.3} -grulesobj["met1"]["via1"] = {"min_enclosure": 0.12} +grulesobj["met1"]["met1"] = {"min_width": 0.17, "min_separation": 0.17} +grulesobj["met1"]["via1"] = {"min_enclosure": 0.0} grulesobj["met1"]["met2"] = {} grulesobj["met1"]["via2"] = {} grulesobj["met1"]["met3"] = {} @@ -207,8 +207,8 @@ grulesobj["via1"]["poly"] = {} grulesobj["via1"]["mcon"] = {} grulesobj["via1"]["met1"] = {} -grulesobj["via1"]["via1"] = {"width": 0.26, "min_seperation": 0.36} -grulesobj["via1"]["met2"] = {"min_enclosure": 0.12} +grulesobj["via1"]["via1"] = {"min_width": 0.17, "min_separation": 0.19, "width": 0.17} +grulesobj["via1"]["met2"] = {"min_enclosure": 0.06} grulesobj["via1"]["via2"] = {} grulesobj["via1"]["met3"] = {} grulesobj["via1"]["via3"] = {} @@ -224,8 +224,8 @@ grulesobj["met2"]["mcon"] = {} grulesobj["met2"]["met1"] = {} grulesobj["met2"]["via1"] = {} -grulesobj["met2"]["met2"] = {"min_width": 0.28, "min_seperation": 0.3} -grulesobj["met2"]["via2"] = {"min_enclosure": 0.12} +grulesobj["met2"]["met2"] = {"min_width": 0.14, "min_separation": 0.14} +grulesobj["met2"]["via2"] = {"min_enclosure": 0.14} grulesobj["met2"]["met3"] = {} grulesobj["met2"]["via3"] = {} grulesobj["met2"]["met4"] = {} @@ -241,8 +241,8 @@ grulesobj["via2"]["met1"] = {} grulesobj["via2"]["via1"] = {} grulesobj["via2"]["met2"] = {} -grulesobj["via2"]["via2"] = {"width": 0.26, "min_seperation": 0.36} -grulesobj["via2"]["met3"] = {"min_enclosure": 0.12} +grulesobj["via2"]["via2"] = {"min_width": 0.21, "min_separation": 0.17, "width": 0.15} +grulesobj["via2"]["met3"] = {"min_enclosure": 0.09} grulesobj["via2"]["via3"] = {} grulesobj["via2"]["met4"] = {} grulesobj["met3"]["dnwell"] = {} @@ -258,8 +258,8 @@ grulesobj["met3"]["via1"] = {} grulesobj["met3"]["met2"] = {} grulesobj["met3"]["via2"] = {} -grulesobj["met3"]["met3"] = {"min_width": 0.28, "min_seperation": 0.3} -grulesobj["met3"]["via3"] = {"min_enclosure": 0.12} +grulesobj["met3"]["met3"] = {"min_width": 0.14, "min_separation": 0.14} +grulesobj["met3"]["via3"] = {} grulesobj["met3"]["met4"] = {} grulesobj["via3"]["dnwell"] = {} grulesobj["via3"]["pwell"] = {} @@ -275,8 +275,8 @@ grulesobj["via3"]["met2"] = {} grulesobj["via3"]["via2"] = {} grulesobj["via3"]["met3"] = {} -grulesobj["via3"]["via3"] = {"width": 0.26, "min_seperation": 0.36} -grulesobj["via3"]["met4"] = {"min_enclosure": 0.12} +grulesobj["via3"]["via3"] = {"min_width": 0.2, "min_separation": 0.2, "width": 0.2} +grulesobj["via3"]["met4"] = {"min_enclosure": 0.65} grulesobj["met4"]["dnwell"] = {} grulesobj["met4"]["pwell"] = {} grulesobj["met4"]["nwell"] = {} @@ -292,7 +292,8 @@ grulesobj["met4"]["via2"] = {} grulesobj["met4"]["met3"] = {} grulesobj["met4"]["via3"] = {} -grulesobj["met4"]["met4"] = {"min_width": 0.28, "min_seperation": 0.3} +grulesobj["met4"]["met4"] = {"min_width": 0.3, "min_separation": 0.3} + sky130_mapped_pdk = MappedPDK.from_gf_pdk( sky130.PDK, diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py b/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py new file mode 100644 index 000000000..f79da7fe1 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py @@ -0,0 +1,29 @@ +"""Provides a reusable module for creating generator main functionality +imports all pdks +provides a command line arg for choosing pdk: -p or --pdk + current options include: + gf180 + sky130 + +generator main function can import this module as follows: +from PDK.util.standard_main import pdk + +the pdk is the pdk object which defaults to sky130 if none selected +""" + +from PDK.gf180_mapped import gf180_mapped_pdk +from PDK.sky130_mapped import sky130_mapped_pdk +from argparse import ArgumentParser + +parser = ArgumentParser(prog="PDK agnostic fet generator") +parser.add_argument("--pdk", "-p", choices=["sky130", "gf180"]) +args = parser.parse_args() + +pdk = None +if args.pdk == "sky130": + pdk = sky130_mapped_pdk +elif args.pdk == "gf180": + pdk = gf180_mapped_pdk +else: + pdk = sky130_mapped_pdk +pdk.activate() diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py new file mode 100644 index 000000000..49cc8ffaf --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -0,0 +1,1200 @@ +import gdsfactory as gf +from gdsfactory.generic_tech import get_generic_pdk +from gdsfactory.component import Component, ComponentReference + +from gdsfactory.generic_tech import get_generic_pdk +import sky130 + +from PDK.sky130_mapped import sky130_mapped_pdk +from fet import multiplier +from PDK.gf180_mapped import gf180_mapped_pdk + +pdk = sky130_mapped_pdk + +gf.config.rich_output() +# PDK = get_generic_pdk() +# PDK.activate() + +pwell_drawing = pdk.get_glayer("pwell") +dnwell_drawing = pdk.get_glayer("dnwell") +nwell_drawing = pdk.get_glayer("nwell") +outline_ref = (236, 0) +diff_drawing = pdk.get_glayer("active_diff") +psdm_drawing = pdk.get_glayer("p+s/d") +nsdm_drawing = pdk.get_glayer("n+s/d") +poly_drawing = pdk.get_glayer("poly") +poly_pin = (66, 16) +poly_label = (66, 5) +licon1_drawing = pdk.get_glayer("mcon") +npc_drawing = (95, 20) +li1_drawing = pdk.get_glayer("met1") +mcon_drawing = (67, 44) +met1_drawing = (68, 20) +met1_label = (68, 5) +met1_pin = (68, 16) +via_drawing = (68, 44) +met2_drawing = (69, 20) +met2_label = (69, 5) +met2_pin = (69, 16) +via2_drawing = (69, 44) +met3_drawing = (70, 20) +met3_label = (70, 5) +met3_pin = (70, 16) +text_drawing = (83, 44) + + +@gf.cell +def nmos(cell_height, finger) -> Component: + c = Component() + + ##nsdm + nsdm_height = cell_height ##0.67 + nsdm_width = 1.1 + (finger - 1) * 0.55 + + nsdm_outline_rect = gf.components.rectangle( + size=(nsdm_width, nsdm_height), layer=nsdm_drawing + ) + nsdm_outline_rect_ref = c << nsdm_outline_rect + + ##poly + poly_width = pdk.get_grule("poly")["min_width"] + poly_height = cell_height + 0.011 ##0.68 + + poly_rect = gf.components.rectangle( + size=(poly_width, poly_height), layer=poly_drawing + ) + + ####### Finger + for i in range(finger): + poly_rect_ref = c << poly_rect + + poly_rect_ref.movex(0.425 + 0.55 * i).movey(-0.005) + + ##diff + diff_width = 0.85 + (finger - 1) * 0.55 + diff_height = cell_height - (0.125 * 2) ##0.42 + diff_rect = gf.components.rectangle( + size=(diff_width, diff_height), layer=diff_drawing + ) + diff_rect_ref = c << diff_rect + + diff_rect_ref.movex(0.125).movey(0.125) + + ##li1_drawing + li1_height = cell_height - (0.085 * 2) ##0.5 + li1_width = 0.17 + li1_rect = gf.components.rectangle(size=(li1_width, li1_height), layer=li1_drawing) + li1_rect_ref1 = c << li1_rect + li1_rect_ref1.movey(0.085).movex(0.19) + + ######Finger + for i in range(finger): + li1_rect_ref1 = c << li1_rect + li1_rect_ref1.movey(0.085).movex(0.19 + ((i + 1) * 0.55)) + # li1_rect_ref2 = c << li1_rect + # li1_rect_ref2.movey(0.085).movex(0.74) + + ##mcon + mcon_height = 0.17 + mcon_width = 0.17 + + mcon_rect = gf.components.rectangle( + size=(mcon_width, mcon_height), layer=mcon_drawing + ) + + for i in range(int(cell_height / 0.67)): + mcon_rect_ref1 = c << mcon_rect + mcon_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) + ######Finger + for j in range(finger): + mcon_rect_ref2 = c << mcon_rect + mcon_rect_ref2.movey(0.67 * i + 0.25).movex(0.19 + ((j + 1) * 0.55)) + + ##licon1 + licon1_height = 0.17 + licon1_width = 0.17 + + licon1_rect = gf.components.rectangle( + size=(licon1_width, licon1_height), layer=licon1_drawing + ) + + for i in range(int(cell_height / 0.67)): + licon1_rect_ref1 = c << licon1_rect + licon1_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) + ######Finger + for j in range(finger): + licon1_rect_ref2 = c << licon1_rect + licon1_rect_ref2.movey(0.67 * i + 0.25).movex(0.19 + ((j + 1) * 0.55)) + + ##met1 + met1_height = cell_height - (0.125 * 2) ##0.42 + met1_width = 0.23 + + met1_rect = gf.components.rectangle( + size=(met1_width, met1_height), layer=met1_drawing + ) + + met1_rect_ref1 = c << met1_rect + met1_rect_ref1.movey(0.125).movex(0.16) + + met1_rect_ref2 = c << met1_rect + met1_rect_ref2.movey(0.125).movex(0.71) + + ######Finger + for i in range(finger): + met1_rect_ref2 = c << met1_rect + met1_rect_ref2.movey(0.125).movex(0.16 + ((i + 1) * 0.55)) + + ##labels + ######Finger + for i in range(finger - 1): + met1_label_s = c.add_label( + "S", + position=(0.255 + (i * 1.1), (cell_height / 2)), + layer=met1_label, + magnification=0.2, + ) + + for i in range(finger - 2): + met1_label_d = c.add_label( + "D", + position=(0.81 + (i) * 1.1, (cell_height / 2)), + layer=met1_label, + magnification=0.2, + ) + # c.add_label() + + return c + + +@gf.cell +def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: + + Top_cell = gf.Component("top") + + mult = mult * 2 + # mos_comp = nmos(cell_height, finger) + mos_comp = multiplier( + sky130_mapped_pdk, sdlayer="n+s/d", fingers=finger, routing=False, dummy=False + ) + cell_height = mos_comp.ymax - mos_comp.ymin + cell_width = mos_comp.xmax - mos_comp.xmin + # cell_width = 1.1 + 0.55*(finger-1) + space_bet_rows = 4 + space_bet_mult = 1.5 + rows = 2 + + ##pwell + pwell_width = cell_width * (mult / rows) + 0.11 + space_bet_mult + pwell_height = (cell_height * 1) * rows + 0.11 + space_bet_rows + + pwell_rect = gf.components.rectangle( + size=(pwell_width, pwell_height), layer=pwell_drawing + ) + # pwell_rect_ref = Top_cell << pwell_rect + # pwell_rect_ref.movex(-0.055).movey(-0.055) + + ##dnwell + # dnwell_width = (cell_width*((mult+1)/2)) + 0.91 + dnwell_width = cell_width * (mult / rows) + 0.91 + space_bet_mult + dnwell_height = (cell_height * 1) * rows + 0.91 + space_bet_rows + dnwell_rect = gf.components.rectangle( + size=(dnwell_width, dnwell_height), layer=dnwell_drawing + ) + # dnwell_rect_ref = Top_cell << dnwell_rect + # dnwell_rect_ref.movex(-0.455).movey(-0.455) + + for i in range(int(mult / rows)): + j = 0 + for j in range(rows): + print(j) + ref = Top_cell << mos_comp + if i == 0: + ref.movex(cell_width * i + cell_width / 2).movey( + cell_height * (j) + cell_height / 2 + space_bet_rows * (j) + ) + else: + ref.movex(cell_width * i + cell_width / 2 + space_bet_mult).movey( + cell_height * (j) + cell_height / 2 + space_bet_rows * (j) + ) + + met3_sq_dim = max( + pdk.get_grule("via2")["min_width"] + + 2 * pdk.get_grule("met3", "via2")["min_enclosure"], + pdk.get_grule("met3")["min_width"], + ) + + ##Change from 0.14 to 0.28 + met2_sq_dim = max( + pdk.get_grule("via1")["min_width"] + + 2 * pdk.get_grule("met2", "via1")["min_enclosure"], + pdk.get_grule("met2")["min_width"], + ) + ##VSS trunk -- merging + met3_VSS_trunk_width = cell_width * (i + 1) + space_bet_mult * i + 1 + met3_VSS_trunk = gf.components.rectangle( + size=(met3_VSS_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") + ) + + met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk + met3_VSS_trunk_ref.movey(cell_height + space_bet_rows * 0.9 - met3_sq_dim / 2) + + met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk + met3_VSS_trunk_ref.movey(cell_height + space_bet_rows * 0.1 - met3_sq_dim / 2) + + met3_met2_VSS_trunk_height = space_bet_rows * 0.8 + met3_sq_dim + met3_met2_VSS_trunk = gf.components.rectangle( + size=(met2_sq_dim, met3_met2_VSS_trunk_height), layer=pdk.get_glayer("met2") + ) + + met3_met2_VSS_trunk_ref = Top_cell << met3_met2_VSS_trunk + met3_met2_VSS_trunk_ref.movey( + cell_height + space_bet_rows * 0.1 - met3_sq_dim / 2 + ).movex(met3_VSS_trunk_width - met2_sq_dim) + + via2_via_dim = pdk.get_grule("via2")["min_width"] + via2_via = gf.components.rectangle( + size=(via2_via_dim, via2_via_dim), layer=pdk.get_glayer("via2") + ) + + ## via2 pulled to met2 + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + cell_height + space_bet_rows * 0.1 - met3_sq_dim / 2 + via2_via_dim / 2 + ).movex(met3_VSS_trunk_width - met2_sq_dim + via2_via_dim / 2) + + ## via2 pulled to met2 + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + cell_height + + space_bet_rows * 0.1 + - met3_sq_dim + + met3_met2_VSS_trunk_height + - via2_via_dim / 2 + ).movex(met3_VSS_trunk_width - met2_sq_dim + via2_via_dim / 2) + + # Extending Poly trunk + for i in range(int(mult / rows)): + for j in range(rows): + + # poly extending trunk + poly_width = pdk.get_grule("poly")["min_width"] + mcon_poly_space = ( + 2 * pdk.get_grule("poly", "mcon")["min_seperation"] + + pdk.get_grule("mcon")["width"] + ) + poly_finger2finger_x = poly_width + mcon_poly_space + + if finger % 2 != 0: + poly_left_edge = ( + cell_width / 2 + - poly_width / 2 + - ((finger - 1) / 2) * poly_finger2finger_x + ) + else: + poly_left_edge = ( + cell_width / 2 + - poly_width / 2 + - poly_finger2finger_x / 2 + - ((finger / 2) - 1) * poly_finger2finger_x + ) + + poly_ext_trunk_width = poly_width + (finger - 1) * poly_finger2finger_x + + ##poly_trunk + # poly_ext_trunk_height = pdk.get_grule("poly")['min_width'] + poly_ext_trunk_height = 0.5 + poly_ext_trunk_ref = gf.components.rectangle( + size=(poly_ext_trunk_width, poly_ext_trunk_height), layer=poly_drawing + ) + + mcon_via = gf.components.rectangle( + size=(pdk.get_grule("mcon")["width"], pdk.get_grule("mcon")["width"]), + layer=pdk.get_glayer("mcon"), + ) + + met1_sq_dim = max( + pdk.get_grule("mcon")["width"] + + 2 * pdk.get_grule("met1", "mcon")["min_enclosure"], + pdk.get_grule("met1")["min_width"], + ) + met1_square = gf.components.rectangle( + size=(met1_sq_dim, met1_sq_dim), layer=pdk.get_glayer("met1") + ) + + via1_via_dim = pdk.get_grule("via1")["min_width"] + via1_via = gf.components.rectangle( + size=(via1_via_dim, via1_via_dim), layer=pdk.get_glayer("via1") + ) + + ##Change from 0.14 to 0.28 + met2_sq_dim = max( + pdk.get_grule("via1")["min_width"] + + 2 * pdk.get_grule("met2", "via1")["min_enclosure"], + pdk.get_grule("met2")["min_width"], + ) + met2_square = gf.components.rectangle( + size=(met2_sq_dim, met2_sq_dim), layer=pdk.get_glayer("met2") + ) + + met2_poly_ext_1_height = 1.5 + met2_poly_ext_2_height = met2_poly_ext_1_height + 1 + met2_poly_ext_1 = gf.components.rectangle( + size=(met2_sq_dim, met2_poly_ext_1_height), layer=pdk.get_glayer("met2") + ) + met2_poly_ext_2 = gf.components.rectangle( + size=(met2_sq_dim, met2_poly_ext_2_height), layer=pdk.get_glayer("met2") + ) + + via2_via_dim = pdk.get_grule("via2")["min_width"] + via2_via = gf.components.rectangle( + size=(via2_via_dim, via2_via_dim), layer=pdk.get_glayer("via2") + ) + + via3_via_dim = pdk.get_grule("via3")["min_width"] + via3_via = gf.components.rectangle( + size=(via3_via_dim, via3_via_dim), layer=pdk.get_glayer("via3") + ) + + met4_sq_dim = max( + pdk.get_grule("via3")["min_width"] + + 2 * pdk.get_grule("met4", "via3")["min_enclosure"], + pdk.get_grule("met4")["min_width"], + ) + + met3_sq_dim = max( + pdk.get_grule("via2")["min_width"] + + 2 * pdk.get_grule("met3", "via2")["min_enclosure"], + pdk.get_grule("met3")["min_width"], + ) + + met3_poly_ext_width = cell_width * (i + 1) + space_bet_mult * i + 2 + met3_poly_ext = gf.components.rectangle( + size=(met3_poly_ext_width, met3_sq_dim), layer=pdk.get_glayer("met3") + ) + + met2_poly_ext_outer_trunk_h = cell_height * 2 + space_bet_rows + 2.7 * 2 + met2_poly_ext_outer_trunk = gf.components.rectangle( + size=(met2_sq_dim, met2_poly_ext_outer_trunk_h), + layer=pdk.get_glayer("met2"), + ) + + met2_poly_ext_outer_trunk_ref = Top_cell << met2_poly_ext_outer_trunk + met2_poly_ext_outer_trunk_ref.movex(-2).movey(-2.7) + met2_poly_ext_outer_trunk_ref = Top_cell << met2_poly_ext_outer_trunk + met2_poly_ext_outer_trunk_ref.movex(-1).movey(-2.7) + + ## VSS extensions + met3_VSS_trunk_width = cell_width + met3_VSS_trunk = gf.components.rectangle( + size=(met3_VSS_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") + ) + + ## Drain extensions + met3_Drain_trunk_width = cell_width + met3_Drain_trunk = gf.components.rectangle( + size=(met3_Drain_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") + ) + + ## Drain connections using met3 + ## In the center + met3_Drain_conn_width = space_bet_mult + 0.3 * 3 + via2_via_dim + met3_Drain_conn = gf.components.rectangle( + size=(met3_Drain_conn_width, met3_sq_dim), layer=pdk.get_glayer("met3") + ) + # met3_Drain_conn + met3_Drain_conn_ref = Top_cell << met3_Drain_conn + met3_Drain_conn_ref.movex(cell_width - 0.3 - via2_via_dim * 1.5).movey( + cell_height + space_bet_rows / 2 - met3_sq_dim / 2 + ) + + ## via2 pulled to met2 + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + cell_height + space_bet_rows / 2 - via2_via_dim / 2 + ).movex(cell_width - 0.3 - via2_via_dim * 1) + + ## via2 pulled to met2 + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + cell_height + space_bet_rows / 2 - via2_via_dim / 2 + ).movex( + met3_Drain_conn_width + + cell_width + - 0.3 + - via2_via_dim * 1 + - met2_sq_dim + ) + + met2_met3_Drain_conn_height = space_bet_rows * 0.3 + met2_met3_Drain_conn = gf.components.rectangle( + size=(met2_sq_dim, met2_met3_Drain_conn_height), + layer=pdk.get_glayer("met2"), + ) + # met2_Drain_conn + # met3_Drain_conn + met2_met3_Drain_conn_ref = Top_cell << met2_met3_Drain_conn + met2_met3_Drain_conn_ref.movex(cell_width - 0.3 - via2_via_dim * 1.5).movey( + cell_height + space_bet_rows / 2 - met3_sq_dim / 2 + ) + + met2_met3_Drain_conn_ref = Top_cell << met2_met3_Drain_conn + met2_met3_Drain_conn_ref.movex( + cell_width + space_bet_mult + 0.3 - via2_via_dim * 1.5 + met2_sq_dim / 2 + ).movey( + cell_height + + space_bet_rows / 2 + - met3_sq_dim / 2 + - met2_met3_Drain_conn_height + + met3_sq_dim + ) + + ## Drain connection using met1 + ## In the center + met2_Drain_conn_height = space_bet_rows * 0.48 + met2_Drain_conn = gf.components.rectangle( + size=(met2_sq_dim, met2_Drain_conn_height), layer=pdk.get_glayer("met2") + ) + # met2_Drain_conn + met2_Drain_conn_ref = Top_cell << met2_Drain_conn + met2_Drain_conn_ref.movex( + cell_width + space_bet_mult / 2 - via2_via_dim / 2 + ).movey(cell_height + space_bet_rows * 0.3 - met3_sq_dim / 2) + + ## via2 pulled to met3 --- > hor + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + cell_height + space_bet_rows * 0.3 - via2_via_dim / 2 + ).movex(cell_width + space_bet_mult / 2) + + ## via2 pulled to met3 --- > hor + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + cell_height + + space_bet_rows * 0.3 + + met2_Drain_conn_height + - via2_via_dim / 2 + - met3_sq_dim + ).movex(cell_width + space_bet_mult / 2) + + ## met3 connecting cell extensions + ## In the center + met3_ext_conn_width = space_bet_mult * 0.5 + 0.3 + met2_sq_dim + met3_ext_conn = gf.components.rectangle( + size=(met3_ext_conn_width, met3_sq_dim), layer=pdk.get_glayer("met3") + ) + # met3_Drain_conn + met3_ext_conn_ref = Top_cell << met3_ext_conn + met3_ext_conn_ref.movex(cell_width - 0.3).movey( + cell_height + space_bet_rows * 0.3 - met3_sq_dim / 2 + ) + + # met3_Drain_conn + met3_ext_conn_ref = Top_cell << met3_ext_conn + met3_ext_conn_ref.movex(cell_width + space_bet_mult / 2 - 0.3).movey( + cell_height + space_bet_rows * 0.7 - met3_sq_dim / 2 + ) + + if j == 1: + ##poly trunk + poly_trunk = Top_cell << poly_ext_trunk_ref + poly_trunk.movex( + poly_left_edge + cell_width * i + space_bet_mult * i + ).movey(cell_height * 2 + space_bet_rows * (j)) + poly_trunk_center_y = (poly_trunk.ymax - poly_trunk.ymin) / 2 + + ## Drain Stripes + for con in range(finger + 1): + if con % 2 != 0: + y_move = cell_height + space_bet_rows * 0.7 + x_move = ( + cell_width * i + + space_bet_mult * i + + poly_left_edge + + poly_width / 2 + - poly_finger2finger_x / 2 + + con * poly_finger2finger_x + ) + + ## Drain extensions + met3_Drain_trunk_ref = Top_cell << met3_Drain_trunk + met3_Drain_trunk_ref.movex( + cell_width * i + space_bet_mult * i + ).movey(y_move - met3_sq_dim / 2) + + ## Drain extension connecting via + if i == 0: + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey(y_move - via2_via_dim / 2).movex( + cell_width * (i + 1) + + space_bet_mult * i + - 0.3 + - via2_via_dim + ) + else: + via3_via_ref = Top_cell << via3_via + via3_via_ref.movey(y_move - via3_via_dim / 2).movex( + cell_width * (i) + space_bet_mult * i + 0.3 + ) + + ## Drain stripes + met2_Drain_stripes = gf.components.rectangle( + size=(met2_sq_dim, cell_height + space_bet_rows * 0.3), + layer=pdk.get_glayer("met2"), + ) + met2_square_ref = Top_cell << met2_Drain_stripes + met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( + x_move - met2_sq_dim / 2 + ) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey(y_move - via2_via_dim / 2).movex( + x_move - via2_via_dim / 2 + ) + + ## VSS Stripes + for con in range(finger + 1): + if con % 2 == 0: + y_move = cell_height + space_bet_rows * 0.9 + x_move = ( + cell_width * i + + space_bet_mult * i + + poly_left_edge + + poly_width / 2 + - poly_finger2finger_x / 2 + + con * poly_finger2finger_x + ) + + ## VSS extensions + met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk + met3_VSS_trunk_ref.movex( + cell_width * i + space_bet_mult * i + ).movey(y_move - met3_sq_dim / 2) + + met2_VSS_stripes = gf.components.rectangle( + size=(met2_sq_dim, cell_height + space_bet_rows * 0.25), + layer=pdk.get_glayer("met2"), + ) + met2_square_ref = Top_cell << met2_VSS_stripes + met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( + x_move - met2_sq_dim / 2 + ) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey(y_move - via2_via_dim / 2).movex( + x_move - via2_via_dim / 2 + ) + + ## Drain Stripes + for con in range(finger + 1): + if con % 2 == 0: + y_move = ( + cell_height * 1 + space_bet_rows * (j) + poly_trunk_center_y + ) + x_move = ( + cell_width * i + + space_bet_mult * i + + poly_left_edge + + poly_width / 2 + - poly_finger2finger_x / 2 + + con * poly_finger2finger_x + ) + + # met2_VSS_stripes = gf.components.rectangle(size=( met2_sq_dim, cell_height + space_bet_rows*0.25), layer=pdk.get_glayer("met2")) + # met2_square_ref = Top_cell << met2_VSS_stripes + # met2_square_ref.movey(0).movex( x_move - met2_sq_dim/2 ) + + # via2_via_ref = Top_cell << via2_via + # via2_via_ref.movey(cell_height + space_bet_rows/2 - via2_via_dim/2).movex( x_move - via2_via_dim/2) + + ## Contacts on Poly trunk + for con in range(finger - 1): + y_move = ( + cell_height * 2 + space_bet_rows * (j) + poly_trunk_center_y + ) + x_move = ( + cell_width * i + + space_bet_mult * i + + poly_left_edge + + poly_width / 2 + + poly_finger2finger_x / 2 + + con * poly_finger2finger_x + ) + + mcon_via_ref = Top_cell << mcon_via + mcon_via_ref.movey( + y_move - pdk.get_grule("mcon")["width"] / 2 + ).movex(x_move - pdk.get_grule("mcon")["width"] / 2) + + met1_square_ref = Top_cell << met1_square + met1_square_ref.movey(y_move - met1_sq_dim / 2).movex( + x_move - met1_sq_dim / 2 + ) + + via1_via_ref = Top_cell << via1_via + via1_via_ref.movey(y_move - via1_via_dim / 2).movex( + x_move - via1_via_dim / 2 + ) + + met2_square_ref = Top_cell << met2_square + met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( + x_move - met2_sq_dim / 2 + ) + + if i == 0: + met2_poly_ext_1_ref = Top_cell << met2_poly_ext_1 + met2_poly_ext_1_ref.movey(y_move - met2_sq_dim / 2).movex( + x_move - met2_sq_dim / 2 + ) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_poly_ext_1_height + - met2_sq_dim + + y_move + - via2_via_dim / 2 + ).movex(x_move - via2_via_dim / 2) + + met3_poly_ext_ref = Top_cell << met3_poly_ext + met3_poly_ext_ref.movey( + y_move + met2_poly_ext_1_height - met2_sq_dim - via2_via_dim + ).movex(-2) + + # Connecting to trunk + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_poly_ext_1_height + - met2_sq_dim + + y_move + - via2_via_dim / 2 + ).movex(-1 + via2_via_dim / 2) + + # Connecting trunk + + if i == 1: + met2_poly_ext_2_ref = Top_cell << met2_poly_ext_2 + met2_poly_ext_2_ref.movey(y_move - met2_sq_dim / 2).movex( + x_move - met2_sq_dim / 2 + ) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_poly_ext_2_height + - met2_sq_dim + + y_move + - via2_via_dim / 2 + ).movex(x_move - via2_via_dim / 2) + + met3_poly_ext_ref = Top_cell << met3_poly_ext + met3_poly_ext_ref.movey( + y_move + met2_poly_ext_2_height - met2_sq_dim - via2_via_dim + ).movex(-2) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_poly_ext_2_height + - met2_sq_dim + + y_move + - via2_via_dim / 2 + ).movex(-2 + via2_via_dim / 2) + + if j == 0: + ##poly trunk + poly_trunk = Top_cell << poly_ext_trunk_ref + poly_trunk.movex( + poly_left_edge + cell_width * i + space_bet_mult * i + ).movey(-poly_ext_trunk_height + cell_height * j + space_bet_rows * (j)) + poly_trunk_center_y = (poly_trunk.ymax - poly_trunk.ymin) / 2 + + ## Drain Stripes + for con in range(finger + 1): + if con % 2 != 0: + y_move = cell_height + space_bet_rows * 0.3 + x_move = ( + cell_width * i + + space_bet_mult * i + + poly_left_edge + + poly_width / 2 + - poly_finger2finger_x / 2 + + con * poly_finger2finger_x + ) + + ## Drain extensions + met3_Drain_trunk_ref = Top_cell << met3_Drain_trunk + met3_Drain_trunk_ref.movex( + cell_width * i + space_bet_mult * i + ).movey(y_move - met3_sq_dim / 2) + + ## Drain extension connecting via + if i == 1: + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey(y_move - via2_via_dim / 2).movex( + cell_width * (i) + space_bet_mult * i + 0.3 + ) + met2_Drain_stripes = gf.components.rectangle( + size=(met2_sq_dim, cell_height + space_bet_rows * 0.3), + layer=pdk.get_glayer("met2"), + ) + met2_square_ref = Top_cell << met2_Drain_stripes + met2_square_ref.movey(0 + met2_sq_dim + 0.05).movex( + x_move - met2_sq_dim / 2 + ) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey(y_move - via2_via_dim / 2).movex( + x_move - via2_via_dim / 2 + ) + + ## VSS Stripes + for con in range(finger + 1): + if con % 2 == 0: + y_move = cell_height + space_bet_rows * 0.1 + x_move = ( + cell_width * i + + space_bet_mult * i + + poly_left_edge + + poly_width / 2 + - poly_finger2finger_x / 2 + + con * poly_finger2finger_x + ) + + ## VSS extensions + met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk + met3_VSS_trunk_ref.movex( + cell_width * i + space_bet_mult * i + ).movey(y_move - met3_sq_dim / 2) + + met2_VSS_stripes = gf.components.rectangle( + size=(met2_sq_dim, cell_height + space_bet_rows * 0.25), + layer=pdk.get_glayer("met2"), + ) + met2_square_ref = Top_cell << met2_VSS_stripes + met2_square_ref.movey(0 - met2_sq_dim - 0.15).movex( + x_move - met2_sq_dim / 2 + ) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey(y_move - via2_via_dim / 2).movex( + x_move - via2_via_dim / 2 + ) + + ## Contacts on Poly trunk + for con in range(finger - 1): + y_move = ( + -poly_ext_trunk_height + + cell_height * j + + space_bet_rows * (j) + + poly_trunk_center_y + ) + x_move = ( + cell_width * i + + space_bet_mult * i + + poly_left_edge + + poly_width / 2 + + poly_finger2finger_x / 2 + + con * poly_finger2finger_x + ) + + mcon_via_ref = Top_cell << mcon_via + mcon_via_ref.movey( + y_move - pdk.get_grule("mcon")["width"] / 2 + ).movex(x_move - pdk.get_grule("mcon")["width"] / 2) + + met1_square_ref = Top_cell << met1_square + met1_square_ref.movey(y_move - met1_sq_dim / 2).movex( + x_move - met1_sq_dim / 2 + ) + + via1_via_ref = Top_cell << via1_via + via1_via_ref.movey(y_move - via1_via_dim / 2).movex( + x_move - via1_via_dim / 2 + ) + + met2_square_ref = Top_cell << met2_square + met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( + x_move - met2_sq_dim / 2 + ) + + if i == 1: + met2_poly_ext_1_ref = Top_cell << met2_poly_ext_1 + met2_poly_ext_1_ref.movey( + met2_sq_dim + - met2_poly_ext_1_height + + y_move + - met2_sq_dim / 2 + ).movex(x_move - met2_sq_dim / 2) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_sq_dim + - met2_poly_ext_1_height + + y_move + - via2_via_dim / 2 + ).movex(x_move - via2_via_dim / 2) + + met3_poly_ext_ref = Top_cell << met3_poly_ext + met3_poly_ext_ref.movey( + met2_sq_dim - met2_poly_ext_1_height + y_move - via2_via_dim + ).movex(-2) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_sq_dim + - met2_poly_ext_1_height + + y_move + - via2_via_dim / 2 + ).movex(-2 + via2_via_dim / 2) + + if i == 0: + met2_poly_ext_2_ref = Top_cell << met2_poly_ext_2 + met2_poly_ext_2_ref.movey( + met2_sq_dim + - met2_poly_ext_2_height + + y_move + - met2_sq_dim / 2 + ).movex(x_move - met2_sq_dim / 2) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_sq_dim + - met2_poly_ext_2_height + + y_move + - via2_via_dim / 2 + ).movex(x_move - via2_via_dim / 2) + + met3_poly_ext_ref = Top_cell << met3_poly_ext + met3_poly_ext_ref.movey( + met2_sq_dim - met2_poly_ext_2_height + y_move - via2_via_dim + ).movex(-2) + + via2_via_ref = Top_cell << via2_via + via2_via_ref.movey( + met2_sq_dim + - met2_poly_ext_2_height + + y_move + - via2_via_dim / 2 + ).movex(-1 + via2_via_dim / 2) + + """ + #VSS Met2 trunk + met2_VSS_width = 0.5 + cell_width*(mult/rows) + 0.75 + space_bet_mult + + + met2_tb = gf.components.rectangle(size=(met2_VSS_width,met2_height), layer=met2_drawing) + #VSS Top trunk + met2_VSS_top_ref = Top_cell << met2_tb + met2_VSS_top_ref.movex(-0.5).movey(cell_height*rows + space_bet_rows + 0.5) + + #VSS Bottom trunk + met2_VSS_bottom_ref = Top_cell << met2_tb + met2_VSS_bottom_ref.movex(-0.5).movey(-0.5 - 0.23) + + # GM1 trunk + met2_GM1_ref = Top_cell << met2_tb + met2_GM1_ref.movex(-0.5).movey(cell_height + 0.5) + + # DM1 trunk + met2_DM1_ref = Top_cell << met2_tb + met2_DM1_ref.movex(-0.5).movey(cell_height + 0.5 + met2_height + 0.25) + + # DM2 trunk + met2_DM2_ref = Top_cell << met2_tb + met2_DM2_ref.movex(-0.5).movey(cell_height + 0.5 + met2_height * 2 + 0.25*2 ) + + # GM2 trunk + met2_GM2_ref = Top_cell << met2_tb + met2_GM2_ref.movex(-0.5).movey(cell_height + 0.5 + met2_height * 3 + 0.25*3 ) + + + + + #Extending Poly trunk + for i in range(int(mult/rows)): + for j in range(rows): + + + met1_height = 1.95 + met1_width = 0.23 + + met1_row_conn_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) + + if j == 0 : + for fin in range(finger-1): + met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect + met1_row_conn_rect_ref.movex(0.16 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j -0.73 ) + + if j == 1 : + for fin in range(finger-1): + met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect + met1_row_conn_rect_ref.movex(0.16 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j + space_bet_rows*(j) - 0.73 + 0.85) + + #Extending Drain trunk + for i in range(int(mult/rows)): + for j in range(rows): + + + met1_height_1 = 1.95 - 0.3 + met1_height_2 = 1.95 + 0.96 + met1_width = 0.23 + + met1_row_conn_rect_1 = gf.components.rectangle(size=(met1_width,met1_height_1), layer=met1_drawing) + met1_row_conn_rect_2 = gf.components.rectangle(size=(met1_width,met1_height_2), layer=met1_drawing) + + if j == 0 : + if i == 0: + for fin in range(finger-2): + met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect_1 + met1_row_conn_rect_ref.movex(0.16 + 0.55 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j -0.73 + 0.85 ) + + if i == 1: + for fin in range(finger-2): + met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect_2 + met1_row_conn_rect_ref.movex(0.16 + 0.55 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j -0.73 + 0.85 ) + + #if j == 1 : + # for fin in range(finger-1): + # met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect + # met1_row_conn_rect_ref.movex(0.16 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j + space_bet_rows*(j) - 0.73 + 0.85) + + + for i in range(mult): + #for j in range(2): + if (i%2 == 0) : + poly_width = 0.25 + poly_height = cell_height + 0.1 + + poly_row_conn_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) + poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect + + poly_row_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.425).movey(-0.1) + + elif (i%2 != 0) : + poly_width = 0.25 + poly_height = cell_height + 0.1 + + poly_row_conn_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) + poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect + + poly_row_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.425).movey(0) + + #via_height = 0.17 + #via_width = 0.17 + #via_rect = gf.components.rectangle(size=(via_height,via_width), #layer=via_drawing) + + #via_rect_ref = Top_cell << via_rect + #via_rect_ref.movex(cell_width*i + 0.425 + 0.04).movey(0.9) + + """ + """ + for i in range(mult): + #for j in range(2): + met1_height = 1.59 + met1_width = 0.23 + + met1_row_conn_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) + + met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect + met1_row_conn_rect_ref.movex(cell_width*i + 0.16).movey(0.125) + + via_height = 0.17 + via_width = 0.17 + via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + + #via_rect_ref = Top_cell << via_rect + #via_rect_ref.movex(cell_width*i + 0.16 + 0.03).movey(0.9) + """ + """' + met2_pin_width = 0.23 + met2_pin_height = 0.23 + + met2_pin_rect = gf.components.rectangle(size=(met2_pin_width,met2_pin_height), layer=met2_pin) + + poly_pin_width = poly_pin_height = 0.25 + poly_pin_rect = gf.components.rectangle(size=(poly_pin_width,poly_pin_height), layer=poly_pin) + + ## Center VSS M2 path + #met2_center_width = 0.5 + cell_width*mult + #met2_center_height = 0.23 + #met2_center = gf.components.rectangle(size=(met2_center_width,#met2_center_height), layer=met2_drawing) + + #met2_center_ref = Top_cell << met2_center + + #met2_center_ref.movex(-0.5).movey(0.9 - 0.03) + + #met2_pin_VSS = Top_cell << met2_pin_rect + #met2_pin_VSS.movex(-0.5).movey(0.9 - 0.03) + + ## VSS pin label + #met2_label_VSS = Top_cell.add_label("VSS", position=(-0.5,0.9 - 0.03), layer=met2_label, magnification=0.2) + + #G_M1 and G_M2 Poly Trunk + poly_tb_width = 0.5 + cell_width*((mult+1)/2) + poly_tb_height = 0.25 + + poly_tb_ref = gf.components.rectangle(size=(poly_tb_width,poly_tb_height), layer=poly_drawing) + ## Top poly trunk + + #G_M1 + poly_top_G_M1 = Top_cell << poly_tb_ref + poly_top_G_M1.movex(-0.5).movey(cell_height + 0.1) + + poly_pin_G_M1 = Top_cell << poly_pin_rect + poly_pin_G_M1.movex(-0.5).movey(cell_height + 0.1) + + poly_label_G_M1 = Top_cell.add_label("G_M1", position=(-0.5 + 0.25,cell_height + 0.1 + 0.25), layer=poly_label, magnification=0.2) + + #G_M2 + poly_top_G_M2 = Top_cell << poly_tb_ref + poly_top_G_M2.movex(-0.5).movey(-0.23- 0.1) + + poly_pin_G_M2 = Top_cell << poly_pin_rect + poly_pin_G_M2.movex(-0.5).movey( -0.23 - 0.1) + + poly_label_G_M2 = Top_cell.add_label("G_M2", position=(-0.5 + 0.25, -0.23 - 0.1 +0.25), layer=poly_label, magnification=0.2) + + #D_M1 and D_M2 Metal trunk + met2_tb_width = 0.5 + cell_width*((mult+1)/2) + 0.75 + met2_tb_height = 0.23 + + met2_tb = gf.components.rectangle(size=(met2_tb_width,met2_tb_height), layer=met2_drawing) + + ##Top trunk + + #D_M1 + met2_top_I_in_ref = Top_cell << met2_tb + met2_top_I_in_ref.movex(-0.5).movey(cell_height + 0.5) + + met2_pin_I_in = Top_cell << met2_pin_rect + met2_pin_I_in.movex(-0.5).movey(cell_height + 0.5) + + met2_label_I_in = Top_cell.add_label("VSS", position=(-0.5 + 0.25,cell_height + 0.5 + 0.2), layer=met2_label, magnification=0.2) + + #D_M2 + met2_top_I_out_ref = Top_cell << met2_tb + met2_top_I_out_ref.movex(-0.5).movey(cell_height + 0.5 + 0.5) + + met2_pin_I_out = Top_cell << met2_pin_rect + met2_pin_I_out.movex(-0.5).movey(cell_height + 0.5 + 0.5) + + met2_label_I_out = Top_cell.add_label("D_M1", position=(-0.5 + 0.25, cell_height + 1.0 + 0.25), layer=met2_label, magnification=0.2) + + ## Bottom trunk + + ##D_M1 + met2_bottom_I_in_ref = Top_cell << met2_tb + met2_bottom_I_in_ref.movex(-0.5).movey(-0.5 - 0.23) + + ##D_M2 + met2_bottom_I_out_ref = Top_cell << met2_tb + met2_bottom_I_out_ref.movex(-0.5).movey(-0.5 - 0.23 - 0.5) + + met2_pin_I_in = Top_cell << met2_pin_rect + met2_pin_I_in.movex(-0.5).movey(-0.5 - 0.23 - 0.5) + + met2_label_I_in = Top_cell.add_label("D_M1", position=(-0.5 + 0.25,-0.5 - 0.23 - 0.5 + 0.25), layer=met2_label, magnification=0.2) + + + ## Right end Trunks + met1_right_width = 0.23 + met1_right_height_1 = cell_height + (0.5*2) + (0.23*2) + met1_right_height_2 = 3.46 + + met1_right_trunk_1 = gf.components.rectangle(size=(met1_right_width,met1_right_height_1), layer=met1_drawing) + met1_right_trunk_2 = gf.components.rectangle(size=(met1_right_width,met1_right_height_2), layer=met1_drawing) + + ## Right - I_in trunk + met1_right_trunk_ref_I_in = Top_cell << met1_right_trunk_1 + trunk_1_x_shift = 0.5 + cell_width*((mult+1)/2) + met1_right_trunk_ref_I_in.movex(trunk_1_x_shift).movey( -(0.5 + 0.23)) + + ## Right - I_out trunk + #met1_right_trunk_ref_I_out = Top_cell << met1_right_trunk_2 + #trunk_2_x_shift = 0.5 + trunk_1_x_shift + #met1_right_trunk_ref_I_out.movex(trunk_2_x_shift).movey(-1.23) + + via_height = 0.17 + via_width = 0.17 + via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(-(0.5+0.23) + 0.03) + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(met1_right_height_1 - (0.5 + 0.23) -0.17 - 0.03) + + #via_rect_ref = Top_cell << via_rect + #via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(-1.23 + 0.03) + #via_rect_ref = Top_cell << via_rect + #via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(met1_right_height_2 - 1.23 -0.17 - 0.03) + + + ##Connecting to trunk + ## i ---> col + ## j ---> row + connect = "up" + for i in range(mult): + #for j in range(2): + met1_tr_conn_height_1 = (cell_height + 0.5 + 0.23 ) - 0.125 ##1.275 + met1_tr_conn_height_2 = (cell_height + 1.0 + 0.23 ) - 0.125 ##1.775 + met1_tr_conn_width = 0.23 + + via_height = 0.17 + via_width = 0.17 + via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) + + met1_tr_conn_rect_1 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_1), layer=met1_drawing) + + met1_tr_conn_rect_2 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_2), layer=met1_drawing) + + if(i == 0): + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 + met1_tr_conn_rect_ref.movex( 0.16).movey(0.125) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(0.16 + 0.03).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) + + if(i%2 != 0): + #if((i+3)%2 == 0): + if connect == "up": + print("\nMult position") + print(i) + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 + met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(-1.23) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(-1.23 + 0.03) + connect = "down" + else: + print("\nElse ---- > Mult position") + print(i) + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 + met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(0.125) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) + connect = "up" + + if(i%2 == 0): + if(i%4 != 0): + + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 + met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(-0.73) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(-0.73 + 0.03) + else: + met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 + met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(0.125) + + via_rect_ref = Top_cell << via_rect + via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(0.125 + met1_tr_conn_height_1 - 0.17 - 0.03) + """ + + return Top_cell + + +# Top_cell = multiplier(sky130_mapped_pdk, sdlayer="n+s/d",fingers=2,routing=True,dummy=False) +# print(Top_cell.x, Top_cell.y) +## Top cell creation +Top_cell = diff_pair_top_updated(mult=2, finger=4, cell_height=1.34) +# Top_cell = nmos(cell_height=1.34, finger=3) +Top_cell.show() diff --git a/openfasoc/generators/gdsfactory-gen/differential_pair.py b/openfasoc/generators/gdsfactory-gen/differential_pair.py deleted file mode 100644 index 0dc292efb..000000000 --- a/openfasoc/generators/gdsfactory-gen/differential_pair.py +++ /dev/null @@ -1,489 +0,0 @@ -import gdsfactory as gf -from gdsfactory.generic_tech import get_generic_pdk -from gdsfactory.component import Component, ComponentReference - -from gdsfactory.generic_tech import get_generic_pdk -import sky130 - -gf.config.rich_output() -PDK = get_generic_pdk() -PDK.activate() - -pwell_drawing = (64, 13) -dnwell_drawing = (64, 18) -nwell_drawing = (64, 20) -outline_ref = (236, 0) -diff_drawing = (65, 20) -psdm_drawing = (94, 20) -nsdm_drawing = (93, 44) -poly_drawing = (66, 20) -poly_pin = (66, 16) -poly_label = (66, 5) -licon1_drawing = (66, 44) -npc_drawing = (95, 20) -li1_drawing = (67, 20) -mcon_drawing = (67, 44) -met1_drawing = (68, 20) -met1_label = (68, 5) -met1_pin = (68, 16) -via_drawing = (68, 44) -met2_drawing = (69, 20) -met2_label = (69, 5) -met2_pin = (69, 16) -via2_drawing = (69, 44) -met3_drawing = (70, 20) -met3_label = (70, 5) -met3_pin = (70, 16) -text_drawing = (83, 44) - - -@gf.cell -def nmos(cell_height) -> Component: - c = Component() - - ##nsdm - nsdm_height = cell_height ##0.67 - nsdm_width = 1.1 - - nsdm_outline_rect = gf.components.rectangle( - size=(nsdm_width, nsdm_height), layer=nsdm_drawing - ) - nsdm_outline_rect_ref = c << nsdm_outline_rect - - ##poly - poly_width = 0.25 - poly_height = cell_height + 0.01 ##0.68 - - poly_rect = gf.components.rectangle( - size=(poly_width, poly_height), layer=poly_drawing - ) - poly_rect_ref = c << poly_rect - - poly_rect_ref.movex(0.425).movey(-0.005) - - ##diff - diff_width = 0.85 - diff_height = cell_height - (0.125 * 2) ##0.42 - diff_rect = gf.components.rectangle( - size=(diff_width, diff_height), layer=diff_drawing - ) - diff_rect_ref = c << diff_rect - - diff_rect_ref.movex(0.125).movey(0.125) - - ##li1_drawing - li1_height = cell_height - (0.085 * 2) ##0.5 - li1_width = 0.17 - li1_rect = gf.components.rectangle(size=(li1_width, li1_height), layer=li1_drawing) - - li1_rect_ref1 = c << li1_rect - li1_rect_ref1.movey(0.085).movex(0.19) - li1_rect_ref2 = c << li1_rect - li1_rect_ref2.movey(0.085).movex(0.74) - - ##mcon - mcon_height = 0.17 - mcon_width = 0.17 - - mcon_rect = gf.components.rectangle( - size=(mcon_width, mcon_height), layer=mcon_drawing - ) - - for i in range(int(cell_height / 0.67)): - mcon_rect_ref1 = c << mcon_rect - mcon_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) - mcon_rect_ref2 = c << mcon_rect - mcon_rect_ref2.movey(0.67 * i + 0.25).movex(0.74) - - ##licon1 - licon1_height = 0.17 - licon1_width = 0.17 - - licon1_rect = gf.components.rectangle( - size=(licon1_width, licon1_height), layer=licon1_drawing - ) - - for i in range(int(cell_height / 0.67)): - licon1_rect_ref1 = c << licon1_rect - licon1_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) - licon1_rect_ref2 = c << licon1_rect - licon1_rect_ref2.movey(0.67 * i + 0.25).movex(0.74) - - ##met1 - met1_height = cell_height - (0.125 * 2) ##0.42 - met1_width = 0.23 - - met1_rect = gf.components.rectangle( - size=(met1_width, met1_height), layer=met1_drawing - ) - - met1_rect_ref1 = c << met1_rect - met1_rect_ref1.movey(0.125).movex(0.16) - - met1_rect_ref2 = c << met1_rect - met1_rect_ref2.movey(0.125).movex(0.71) - - ##labels - - met1_label_s = c.add_label( - "S", position=(0.255, (cell_height / 2)), layer=met1_label, magnification=0.2 - ) - met1_label_d = c.add_label( - "D", position=(0.81, (cell_height / 2)), layer=met1_label, magnification=0.2 - ) - # c.add_label() - - return c - - -@gf.cell -def diff_pair_top(mult=3, cell_height=0.67) -> Component: - - Top_cell = gf.Component("top") - - mult = mult * 2 - mos_comp = nmos(cell_height) - # cell_height = 0.67 - cell_width = 1.1 - space_bet_rows = 0.66 - # mult = 8 - - ##pwell - pwell_width = (cell_width * ((mult + 1) / 2)) + 0.11 - pwell_height = (cell_height * 1) + 0.11 - - pwell_rect = gf.components.rectangle( - size=(pwell_width, pwell_height), layer=pwell_drawing - ) - pwell_rect_ref = Top_cell << pwell_rect - - pwell_rect_ref.movex(-0.055).movey(-0.055) - - ##dnwell - dnwell_width = (cell_width * ((mult + 1) / 2)) + 0.91 - dnwell_height = (cell_height * 1) + 0.91 - - dnwell_rect = gf.components.rectangle( - size=(dnwell_width, dnwell_height), layer=dnwell_drawing - ) - dnwell_rect_ref = Top_cell << dnwell_rect - - dnwell_rect_ref.movex(-0.455).movey(-0.455) - - for i in range(mult): - j = 0 - # for j in range(2): - print(j) - ref = Top_cell << mos_comp - if i == 0: - ref.movex(cell_width * i).movey(cell_height * (j) + space_bet_rows * (j)) - else: - ref.movex(cell_width * i - (cell_width * i / 2)).movey( - cell_height * (j) + space_bet_rows * (j) - ) - - for i in range(mult): - # for j in range(2): - if i % 2 == 0: - poly_width = 0.25 - poly_height = cell_height + 0.1 - - poly_row_conn_rect = gf.components.rectangle( - size=(poly_width, poly_height), layer=poly_drawing - ) - poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect - - poly_row_conn_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.425 - ).movey(-0.1) - - elif i % 2 != 0: - poly_width = 0.25 - poly_height = cell_height + 0.1 - - poly_row_conn_rect = gf.components.rectangle( - size=(poly_width, poly_height), layer=poly_drawing - ) - poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect - - poly_row_conn_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.425 - ).movey(0) - - # via_height = 0.17 - # via_width = 0.17 - # via_rect = gf.components.rectangle(size=(via_height,via_width), #layer=via_drawing) - - # via_rect_ref = Top_cell << via_rect - # via_rect_ref.movex(cell_width*i + 0.425 + 0.04).movey(0.9) - - """ - for i in range(mult): - #for j in range(2): - met1_height = 1.59 - met1_width = 0.23 - - met1_row_conn_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) - - met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect - met1_row_conn_rect_ref.movex(cell_width*i + 0.16).movey(0.125) - - via_height = 0.17 - via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) - - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(cell_width*i + 0.16 + 0.03).movey(0.9) - """ - - met2_pin_width = 0.23 - met2_pin_height = 0.23 - - met2_pin_rect = gf.components.rectangle( - size=(met2_pin_width, met2_pin_height), layer=met2_pin - ) - - poly_pin_width = poly_pin_height = 0.25 - poly_pin_rect = gf.components.rectangle( - size=(poly_pin_width, poly_pin_height), layer=poly_pin - ) - - ## Center VSS M2 path - # met2_center_width = 0.5 + cell_width*mult - # met2_center_height = 0.23 - # met2_center = gf.components.rectangle(size=(met2_center_width,#met2_center_height), layer=met2_drawing) - - # met2_center_ref = Top_cell << met2_center - - # met2_center_ref.movex(-0.5).movey(0.9 - 0.03) - - # met2_pin_VSS = Top_cell << met2_pin_rect - # met2_pin_VSS.movex(-0.5).movey(0.9 - 0.03) - - ## VSS pin label - # met2_label_VSS = Top_cell.add_label("VSS", position=(-0.5,0.9 - 0.03), layer=met2_label, magnification=0.2) - - # G_M1 and G_M2 Poly Trunk - poly_tb_width = 0.5 + cell_width * ((mult + 1) / 2) - poly_tb_height = 0.25 - - poly_tb_ref = gf.components.rectangle( - size=(poly_tb_width, poly_tb_height), layer=poly_drawing - ) - ## Top poly trunk - - # G_M1 - poly_top_G_M1 = Top_cell << poly_tb_ref - poly_top_G_M1.movex(-0.5).movey(cell_height + 0.1) - - poly_pin_G_M1 = Top_cell << poly_pin_rect - poly_pin_G_M1.movex(-0.5).movey(cell_height + 0.1) - - poly_label_G_M1 = Top_cell.add_label( - "G_M1", - position=(-0.5 + 0.25, cell_height + 0.1 + 0.25), - layer=poly_label, - magnification=0.2, - ) - - # G_M2 - poly_top_G_M2 = Top_cell << poly_tb_ref - poly_top_G_M2.movex(-0.5).movey(-0.23 - 0.1) - - poly_pin_G_M2 = Top_cell << poly_pin_rect - poly_pin_G_M2.movex(-0.5).movey(-0.23 - 0.1) - - poly_label_G_M2 = Top_cell.add_label( - "G_M2", - position=(-0.5 + 0.25, -0.23 - 0.1 + 0.25), - layer=poly_label, - magnification=0.2, - ) - - # D_M1 and D_M2 Metal trunk - met2_tb_width = 0.5 + cell_width * ((mult + 1) / 2) + 0.75 - met2_tb_height = 0.23 - - met2_tb = gf.components.rectangle( - size=(met2_tb_width, met2_tb_height), layer=met2_drawing - ) - - ##Top trunk - - # D_M1 - met2_top_I_in_ref = Top_cell << met2_tb - met2_top_I_in_ref.movex(-0.5).movey(cell_height + 0.5) - - met2_pin_I_in = Top_cell << met2_pin_rect - met2_pin_I_in.movex(-0.5).movey(cell_height + 0.5) - - met2_label_I_in = Top_cell.add_label( - "VSS", - position=(-0.5 + 0.25, cell_height + 0.5 + 0.2), - layer=met2_label, - magnification=0.2, - ) - - # D_M2 - met2_top_I_out_ref = Top_cell << met2_tb - met2_top_I_out_ref.movex(-0.5).movey(cell_height + 0.5 + 0.5) - - met2_pin_I_out = Top_cell << met2_pin_rect - met2_pin_I_out.movex(-0.5).movey(cell_height + 0.5 + 0.5) - - met2_label_I_out = Top_cell.add_label( - "D_M1", - position=(-0.5 + 0.25, cell_height + 1.0 + 0.25), - layer=met2_label, - magnification=0.2, - ) - - ## Bottom trunk - - ##D_M1 - met2_bottom_I_in_ref = Top_cell << met2_tb - met2_bottom_I_in_ref.movex(-0.5).movey(-0.5 - 0.23) - - ##D_M2 - met2_bottom_I_out_ref = Top_cell << met2_tb - met2_bottom_I_out_ref.movex(-0.5).movey(-0.5 - 0.23 - 0.5) - - met2_pin_I_in = Top_cell << met2_pin_rect - met2_pin_I_in.movex(-0.5).movey(-0.5 - 0.23 - 0.5) - - met2_label_I_in = Top_cell.add_label( - "D_M1", - position=(-0.5 + 0.25, -0.5 - 0.23 - 0.5 + 0.25), - layer=met2_label, - magnification=0.2, - ) - - ## Right end Trunks - met1_right_width = 0.23 - met1_right_height_1 = cell_height + (0.5 * 2) + (0.23 * 2) - met1_right_height_2 = 3.46 - - met1_right_trunk_1 = gf.components.rectangle( - size=(met1_right_width, met1_right_height_1), layer=met1_drawing - ) - met1_right_trunk_2 = gf.components.rectangle( - size=(met1_right_width, met1_right_height_2), layer=met1_drawing - ) - - ## Right - I_in trunk - met1_right_trunk_ref_I_in = Top_cell << met1_right_trunk_1 - trunk_1_x_shift = 0.5 + cell_width * ((mult + 1) / 2) - met1_right_trunk_ref_I_in.movex(trunk_1_x_shift).movey(-(0.5 + 0.23)) - - ## Right - I_out trunk - # met1_right_trunk_ref_I_out = Top_cell << met1_right_trunk_2 - # trunk_2_x_shift = 0.5 + trunk_1_x_shift - # met1_right_trunk_ref_I_out.movex(trunk_2_x_shift).movey(-1.23) - - via_height = 0.17 - via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height, via_width), layer=via_drawing) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(-(0.5 + 0.23) + 0.03) - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_1_x_shift + 0.03).movey( - met1_right_height_1 - (0.5 + 0.23) - 0.17 - 0.03 - ) - - # via_rect_ref = Top_cell << via_rect - # via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(-1.23 + 0.03) - # via_rect_ref = Top_cell << via_rect - # via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(met1_right_height_2 - 1.23 -0.17 - 0.03) - - ##Connecting to trunk - ## i ---> col - ## j ---> row - connect = "up" - for i in range(mult): - # for j in range(2): - met1_tr_conn_height_1 = (cell_height + 0.5 + 0.23) - 0.125 ##1.275 - met1_tr_conn_height_2 = (cell_height + 1.0 + 0.23) - 0.125 ##1.775 - met1_tr_conn_width = 0.23 - - via_height = 0.17 - via_width = 0.17 - via_rect = gf.components.rectangle( - size=(via_height, via_width), layer=via_drawing - ) - - met1_tr_conn_rect_1 = gf.components.rectangle( - size=(met1_tr_conn_width, met1_tr_conn_height_1), layer=met1_drawing - ) - - met1_tr_conn_rect_2 = gf.components.rectangle( - size=(met1_tr_conn_width, met1_tr_conn_height_2), layer=met1_drawing - ) - - if i == 0: - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex(0.16).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(0.16 + 0.03).movey( - 0.125 + met1_tr_conn_height_2 - 0.17 - 0.03 - ) - - if i % 2 != 0: - # if((i+3)%2 == 0): - if connect == "up": - print("\nMult position") - print(i) - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 - ).movey(-1.23) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 - ).movey(-1.23 + 0.03) - connect = "down" - else: - print("\nElse ---- > Mult position") - print(i) - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 - ).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 - ).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) - connect = "up" - - if i % 2 == 0: - if i % 4 != 0: - - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 - ).movey(-0.73) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 - ).movey(-0.73 + 0.03) - else: - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 - ).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex( - cell_width * i - (cell_width * i / 2) + 0.16 + 0.55 + 0.03 - ).movey(0.125 + met1_tr_conn_height_1 - 0.17 - 0.03) - - return Top_cell - - -## Top cell creation -Top_cell = diff_pair_top(5, 1.34) -Top_cell.show() diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 90406ff22..696392883 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -5,7 +5,6 @@ from typing import Optional from via_gen import via_array, via_stack from guardring import tapring -from math import ceil from pydantic import validate_arguments @@ -28,7 +27,7 @@ def multiplier( length = pdk.get_grule("poly")["min_width"] poly_overhang = pdk.get_grule("poly", "active_diff")["overhang"] poly_height = width + 2 * poly_overhang - routing_pfac = pdk.get_grule("met1")["min_seperation"] if routing else 0 + routing_pfac = pdk.get_grule("met1")["min_separation"] if routing else 0 poly_height += routing_pfac poly_gate_comp = Component("temp poly gate") tempref = poly_gate_comp << rectangle( @@ -39,18 +38,18 @@ def multiplier( tempviastack = via_stack(pdk, "active_diff", "met1") viasize = tempviastack.xmax - tempviastack.xmin mcon_poly_space = ( - 2 * pdk.get_grule("poly", "mcon")["min_seperation"] + 2 * pdk.get_grule("poly", "mcon")["min_separation"] + pdk.get_grule("mcon")["width"] ) poly_spacing = max(viasize, mcon_poly_space) # create a single finger finger = Component("temp finger comp") finger << poly_gate_comp - routing_mfac = pdk.get_grule("met1")["min_seperation"] if routing else 0 + routing_mfac = pdk.get_grule("met1")["min_separation"] if routing else 0 vwidth = width + routing_mfac sd_via_comp = via_array(pdk, "active_diff", "met1", size=(viasize, vwidth)) sd_via_ref_arr = finger << sd_via_comp - finger_dim = poly_spacing + length + finger_dim = poly_spacing + max(length, pdk.get_grule("met1")["min_separation"]) sd_via_ref_arr.movex(finger_dim / 2).movey(routing_mfac / 2) # create finger array and add to multiplier fingerarray = Component("temp finger array") @@ -75,8 +74,12 @@ def multiplier( multiplier << diff_area # route all drains/ gates/ sources if routing: - # TODO: fix poly overhang / met1 seperation - extracted_gates = multiplier.extract(pdk.get_glayer("poly")) + if fingers == 1: + raise NotImplementedError("fingers=1 not supported for routing") + # create sdvia (need dims) + sdvia = via_stack(pdk, "met1", "met2") + # TODO: fix poly overhang / met1 separation + extracted_gates = multiplier.extract([pdk.get_glayer("poly")]) gate_route_width = ( pdk.get_grule("mcon")["width"] + 2 * pdk.get_grule("poly", "mcon")["min_enclosure"] @@ -93,28 +96,28 @@ def multiplier( # source and drain routing sw_corner_os = [ fingerarray_ref.xmin + viasize / 2, - fingerarray_ref.ymax + tempviastack.extract(pdk.get_glayer("met1")).ymax, + fingerarray_ref.parent.extract([pdk.get_glayer("met1")]).ymax + + sdvia.extract([pdk.get_glayer("met1")]).ymax, ] - sdvia = via_stack(pdk, "met1", "met2") for finger in range(fingers + 1): sdrouting = Component("temp routing comp") sdrouting << sdvia doffset_met1 = 0 if finger % 2: - doffset_met1 = sdvia.ymax - sdvia.extract(pdk.get_glayer("met1")).ymax - doffset = (2 * sdvia.ymax) + pdk.get_grule("met2")["min_seperation"] + doffset_met1 = sdvia.ymax - sdvia.extract([pdk.get_glayer("met1")]).ymax + doffset = (2 * sdvia.ymax) + pdk.get_grule("met2")["min_separation"] extendm = sdrouting << rectangle( size=(viasize, doffset + doffset_met1), centered=True, layer=pdk.get_glayer("met1"), ) - extendm.movey(-0.5 * doffset - sdvia.ymax) + extendm.movey(-0.5 * doffset - sdvia.ymax + doffset_met1 / 2) sdrouting_ref = multiplier << sdrouting sdrouting_ref.move(destination=(sw_corner_os)) if finger % 2: sdrouting_ref.movey(extendm.ymax - extendm.ymin) sw_corner_os[0] += finger_dim - met2_ext = multiplier.extract(pdk.get_glayer("met2")) + met2_ext = multiplier.extract([pdk.get_glayer("met2")]) met2route_dims = (met2_ext.xmax - met2_ext.xmin, 2 * sdvia.ymax) sd_met2_connect = rectangle( layer=pdk.get_glayer("met2"), size=met2route_dims, centered=True @@ -130,7 +133,7 @@ def multiplier( ) dummy_space = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] dummy.add_padding(layers=(pdk.get_glayer(sdlayer),), default=dummy_space) - dummy_space += pdk.get_grule(sdlayer)["min_seperation"] + size[0] / 2 + dummy_space += pdk.get_grule(sdlayer)["min_separation"] + size[0] / 2 for side in [-1, 1]: dummy_ref = multiplier << dummy dummy_ref.movex(side * (dummy_space + multiplier.xmax)) @@ -154,13 +157,13 @@ def __mult_array_macro( multiplier_comp = multiplier( pdk, sdlayer, width=width, fingers=fingers, dummy=dummy, routing=routing ) - multiplier_seperation = ( - pdk.get_grule("met2")["min_seperation"] + multiplier_separation = ( + pdk.get_grule("met2")["min_separation"] + multiplier_comp.ymax - multiplier_comp.ymin ) multiplier_arr.add_array( - multiplier_comp, columns=1, rows=multipliers, spacing=(1, multiplier_seperation) + multiplier_comp, columns=1, rows=multipliers, spacing=(1, multiplier_separation) ) return multiplier_arr @@ -193,15 +196,15 @@ def nmos( nfet.add(multiplier_arr.ref_center()) # add tie if tie if with_tie: - tap_seperation = max( - pdk.get_grule("met2")["min_seperation"], - pdk.get_grule("met1")["min_seperation"], - pdk.get_grule("active_diff", "active_tap")["min_seperation"], + tap_separation = max( + pdk.get_grule("met2")["min_separation"], + pdk.get_grule("met1")["min_separation"], + pdk.get_grule("active_diff", "active_tap")["min_separation"], ) - tap_seperation += pdk.get_grule("p+s/d", "active_tap")["min_enclosure"] + tap_separation += pdk.get_grule("p+s/d", "active_tap")["min_enclosure"] tap_encloses = ( - 2 * (tap_seperation + nfet.xmax), - 2 * (tap_seperation + nfet.ymax), + 2 * (tap_separation + nfet.xmax), + 2 * (tap_separation + nfet.ymax), ) nfet << tapring( pdk, @@ -223,12 +226,12 @@ def nmos( ) # add substrate tap if with_substrate_tap if with_substrate_tap: - substrate_tap_seperation = pdk.get_grule("dnwell", "active_tap")[ - "min_seperation" + substrate_tap_separation = pdk.get_grule("dnwell", "active_tap")[ + "min_separation" ] substrate_tap_encloses = ( - 2 * (substrate_tap_seperation + nfet.xmax), - 2 * (substrate_tap_seperation + nfet.ymax), + 2 * (substrate_tap_separation + nfet.xmax), + 2 * (substrate_tap_separation + nfet.ymax), ) nfet << tapring( pdk, @@ -268,15 +271,15 @@ def pmos( pfet.add(multiplier_arr.ref_center()) # add tie if tie if with_tie: - tap_seperation = max( - pdk.get_grule("met2")["min_seperation"], - pdk.get_grule("met1")["min_seperation"], - pdk.get_grule("active_diff", "active_tap")["min_seperation"], + tap_separation = max( + pdk.get_grule("met2")["min_separation"], + pdk.get_grule("met1")["min_separation"], + pdk.get_grule("active_diff", "active_tap")["min_separation"], ) - tap_seperation += pdk.get_grule("n+s/d", "active_tap")["min_enclosure"] + tap_separation += pdk.get_grule("n+s/d", "active_tap")["min_enclosure"] tap_encloses = ( - 2 * (tap_seperation + pfet.xmax), - 2 * (tap_seperation + pfet.ymax), + 2 * (tap_separation + pfet.xmax), + 2 * (tap_separation + pfet.ymax), ) pfet << tapring( pdk, @@ -294,17 +297,17 @@ def pmos( ) # add substrate tap if with_substrate_tap if with_substrate_tap: - substrate_tap_seperation = pdk.get_grule("dnwell", "active_tap")[ - "min_seperation" + substrate_tap_separation = pdk.get_grule("dnwell", "active_tap")[ + "min_separation" ] substrate_tap_encloses = ( - 2 * (substrate_tap_seperation + pfet.xmax), - 2 * (substrate_tap_seperation + pfet.ymax), + 2 * (substrate_tap_separation + pfet.xmax), + 2 * (substrate_tap_separation + pfet.ymax), ) pfet << tapring( pdk, enclosed_rectangle=substrate_tap_encloses, - sdlayer="n+s/d", + sdlayer="p+s/d", horizontal_glayer="met2", vertical_glayer="met1", ) @@ -312,7 +315,6 @@ def pmos( if __name__ == "__main__": - from PDK.gf180_mapped import gf180_mapped_pdk + from PDK.util.standard_main import pdk - gf180_mapped_pdk.activate() - pmos(gf180_mapped_pdk, fingers=5, multipliers=2).show() + pmos(pdk, fingers=3).show() diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index e5340ba37..5ae6741e7 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -34,7 +34,7 @@ def tapring( if not "met" in horizontal_glayer or not "met" in vertical_glayer: raise ValueError("both horizontal and vertical glayers should be metals") # check that ring is not too small - min_gap_tap = pdk.get_grule("active_tap")["min_seperation"] + min_gap_tap = pdk.get_grule("active_tap")["min_separation"] if enclosed_rectangle[0] < min_gap_tap: raise ValueError("ptapring must be larger than " + str(min_gap_tap)) # create active tap @@ -92,7 +92,6 @@ def tapring( if __name__ == "__main__": - from PDK.gf180_mapped import gf180_mapped_pdk + from PDK.util.standard_main import pdk - gf180_mapped_pdk.activate() - tapring(gf180_mapped_pdk, "p+s/d", enclosed_rectangle=(5, 5)).show() + tapring(pdk, "p+s/d", enclosed_rectangle=(5, 5)).show() diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 72344ba68..34689c0d3 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -120,20 +120,21 @@ def via_array( if level1 == level2: return viaarray # figure out min space between via stacks - via_spacing = [] if level1 else [pdk.get_grule("mcon")["min_seperation"]] + via_spacing = [] if level1 else [pdk.get_grule("mcon")["min_separation"]] level1 = level1 if level1 else level1 + 1 for level in range(level1, level2): met_glayer = "met" + str(level) via_glayer = "via" + str(level) - via_spacing.append(pdk.get_grule(met_glayer)["min_seperation"]) - via_spacing.append(pdk.get_grule(via_glayer)["min_seperation"]) - via_spacing.append(pdk.get_grule("met" + str(level2))["min_seperation"]) + via_spacing.append(pdk.get_grule(met_glayer)["min_separation"]) + via_spacing.append(pdk.get_grule(via_glayer)["min_separation"]) + via_spacing.append(pdk.get_grule("met" + str(level2))["min_separation"]) via_spacing = max(via_spacing) # error check size and get viaspacing_full viastack = via_stack(pdk, glayer1, glayer2) viadim = max(viastack.xmax - viastack.xmin, viastack.ymax - viastack.ymin) - if any([viadim > dim for dim in size]): - raise ValueError("via_array size: one or more dims too small") + for i, dim in enumerate(size): + if round(viadim, 8) > round(dim, 8): + raise ValueError(f"via_array,size:dim {i}={dim} less than {viadim}") viaspacing_full = via_spacing + viadim # num_vias[0]=x, num_vias[1]=y num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in size] @@ -163,7 +164,16 @@ def via_array( if __name__ == "__main__": - from PDK.gf180_mapped import gf180_mapped_pdk + from PDK.util.standard_main import pdk + from sys import exit - gf180_mapped_pdk.activate() - via_array(gf180_mapped_pdk, "active_diff", "met1").show() + test_all = False + + if not test_all: + via_array(pdk, "active_diff", "met3").show() + exit(0) + + layers = ["poly", "met1", "met2", "met3"] + for lay1 in layers: + for lay2 in layers: + via_array(pdk, lay1, lay2).show() From 66f0ae99999ba19a83c0bf0e45fd20eb39678108 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 30 Jun 2023 03:43:58 -0400 Subject: [PATCH 07/64] opamp layout --- .../PDK/gf180_mapped/gf180_mapped.py | 5 +- .../gdsfactory-gen/PDK/mappedpdk.py | 9 + .../PDK/sky130_mapped/sky130_mapped.py | 13 +- .../generators/gdsfactory-gen/diff_pair.py | 591 ++---------------- openfasoc/generators/gdsfactory-gen/fet.py | 48 +- openfasoc/generators/gdsfactory-gen/mimcap.py | 23 + openfasoc/generators/gdsfactory-gen/opamp.py | 136 ++++ .../generators/gdsfactory-gen/via_gen.py | 1 - 8 files changed, 273 insertions(+), 553 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/mimcap.py create mode 100644 openfasoc/generators/gdsfactory-gen/opamp.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index 23c9fc0a4..ee1ab3d6b 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -1,5 +1,4 @@ -# TODO: add all the cells from gf180 -# TODO: note that gf180 pip is not up to date with github repo (no layer views) +# TODO: gf180 mimcap generator """ usage: from gf180_mapped import gf180_mapped_pdk """ @@ -11,6 +10,8 @@ gf180_glayer_mapping = { + "met5": "metal5", + "via4": "via4", "met4": "metal4", "via3": "via3", "met3": "metal3", diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py index 098deda8f..51e244f51 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py @@ -17,6 +17,8 @@ class MappedPDK(Pdk): has_required_glayers(list[str]) is used to verify all required generic layers are present""" + # of all the cap* layers, capmet is the only real layer + # the other cap layers get initialized to copies of the respective layers valid_glayers: ClassVar[tuple[str]] = ( "dnwell", "pwell", @@ -34,6 +36,13 @@ class MappedPDK(Pdk): "met3", "via3", "met4", + "via4", + "met5", + "capmet", + # copied layers + "capbottommet", + "captopmet", + "capvia", ) glayers: dict[StrictStr, StrictStr] diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 5d7fc3e38..7ad4ba949 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -6,8 +6,18 @@ from PDK.mappedpdk import MappedPDK from pathlib import Path +sky130.PDK.layers["capm3"] = (89, 44) +# use mimcap over metal 3 sky130_glayer_mapping = { + # copied layers + "capbottommet": "met3drawing", + "captopmet": "met4drawing", + "capvia": "via3drawing", + # original layers + "capmet": "capm3", + "met5": "met4drawing", + "via4": "via3drawing", "met4": "met3drawing", "via3": "via2drawing", "met3": "met2drawing", @@ -55,7 +65,7 @@ grulesobj["pwell"]["p+s/d"] = {} grulesobj["pwell"]["n+s/d"] = {} grulesobj["pwell"]["active_diff"] = {} -grulesobj["pwell"]["active_tap"] = {} +grulesobj["pwell"]["active_tap"] = {"min_enclosure": 0.18} grulesobj["pwell"]["poly"] = {} grulesobj["pwell"]["mcon"] = {} grulesobj["pwell"]["met1"] = {} @@ -294,7 +304,6 @@ grulesobj["met4"]["via3"] = {} grulesobj["met4"]["met4"] = {"min_width": 0.3, "min_separation": 0.3} - sky130_mapped_pdk = MappedPDK.from_gf_pdk( sky130.PDK, sky130_glayer_mapping, diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py index 49cc8ffaf..908eda336 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -1,185 +1,25 @@ -import gdsfactory as gf -from gdsfactory.generic_tech import get_generic_pdk -from gdsfactory.component import Component, ComponentReference - -from gdsfactory.generic_tech import get_generic_pdk -import sky130 - -from PDK.sky130_mapped import sky130_mapped_pdk +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.components.rectangle import rectangle from fet import multiplier -from PDK.gf180_mapped import gf180_mapped_pdk - -pdk = sky130_mapped_pdk - -gf.config.rich_output() -# PDK = get_generic_pdk() -# PDK.activate() - -pwell_drawing = pdk.get_glayer("pwell") -dnwell_drawing = pdk.get_glayer("dnwell") -nwell_drawing = pdk.get_glayer("nwell") -outline_ref = (236, 0) -diff_drawing = pdk.get_glayer("active_diff") -psdm_drawing = pdk.get_glayer("p+s/d") -nsdm_drawing = pdk.get_glayer("n+s/d") -poly_drawing = pdk.get_glayer("poly") -poly_pin = (66, 16) -poly_label = (66, 5) -licon1_drawing = pdk.get_glayer("mcon") -npc_drawing = (95, 20) -li1_drawing = pdk.get_glayer("met1") -mcon_drawing = (67, 44) -met1_drawing = (68, 20) -met1_label = (68, 5) -met1_pin = (68, 16) -via_drawing = (68, 44) -met2_drawing = (69, 20) -met2_label = (69, 5) -met2_pin = (69, 16) -via2_drawing = (69, 44) -met3_drawing = (70, 20) -met3_label = (70, 5) -met3_pin = (70, 16) -text_drawing = (83, 44) - - -@gf.cell -def nmos(cell_height, finger) -> Component: - c = Component() - - ##nsdm - nsdm_height = cell_height ##0.67 - nsdm_width = 1.1 + (finger - 1) * 0.55 - - nsdm_outline_rect = gf.components.rectangle( - size=(nsdm_width, nsdm_height), layer=nsdm_drawing - ) - nsdm_outline_rect_ref = c << nsdm_outline_rect - - ##poly - poly_width = pdk.get_grule("poly")["min_width"] - poly_height = cell_height + 0.011 ##0.68 - - poly_rect = gf.components.rectangle( - size=(poly_width, poly_height), layer=poly_drawing - ) - - ####### Finger - for i in range(finger): - poly_rect_ref = c << poly_rect - - poly_rect_ref.movex(0.425 + 0.55 * i).movey(-0.005) - - ##diff - diff_width = 0.85 + (finger - 1) * 0.55 - diff_height = cell_height - (0.125 * 2) ##0.42 - diff_rect = gf.components.rectangle( - size=(diff_width, diff_height), layer=diff_drawing - ) - diff_rect_ref = c << diff_rect - - diff_rect_ref.movex(0.125).movey(0.125) - - ##li1_drawing - li1_height = cell_height - (0.085 * 2) ##0.5 - li1_width = 0.17 - li1_rect = gf.components.rectangle(size=(li1_width, li1_height), layer=li1_drawing) - li1_rect_ref1 = c << li1_rect - li1_rect_ref1.movey(0.085).movex(0.19) - - ######Finger - for i in range(finger): - li1_rect_ref1 = c << li1_rect - li1_rect_ref1.movey(0.085).movex(0.19 + ((i + 1) * 0.55)) - # li1_rect_ref2 = c << li1_rect - # li1_rect_ref2.movey(0.085).movex(0.74) - - ##mcon - mcon_height = 0.17 - mcon_width = 0.17 - - mcon_rect = gf.components.rectangle( - size=(mcon_width, mcon_height), layer=mcon_drawing - ) - - for i in range(int(cell_height / 0.67)): - mcon_rect_ref1 = c << mcon_rect - mcon_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) - ######Finger - for j in range(finger): - mcon_rect_ref2 = c << mcon_rect - mcon_rect_ref2.movey(0.67 * i + 0.25).movex(0.19 + ((j + 1) * 0.55)) - - ##licon1 - licon1_height = 0.17 - licon1_width = 0.17 - - licon1_rect = gf.components.rectangle( - size=(licon1_width, licon1_height), layer=licon1_drawing - ) - for i in range(int(cell_height / 0.67)): - licon1_rect_ref1 = c << licon1_rect - licon1_rect_ref1.movey(0.67 * i + 0.25).movex(0.19) - ######Finger - for j in range(finger): - licon1_rect_ref2 = c << licon1_rect - licon1_rect_ref2.movey(0.67 * i + 0.25).movex(0.19 + ((j + 1) * 0.55)) - ##met1 - met1_height = cell_height - (0.125 * 2) ##0.42 - met1_width = 0.23 - - met1_rect = gf.components.rectangle( - size=(met1_width, met1_height), layer=met1_drawing - ) - - met1_rect_ref1 = c << met1_rect - met1_rect_ref1.movey(0.125).movex(0.16) - - met1_rect_ref2 = c << met1_rect - met1_rect_ref2.movey(0.125).movex(0.71) - - ######Finger - for i in range(finger): - met1_rect_ref2 = c << met1_rect - met1_rect_ref2.movey(0.125).movex(0.16 + ((i + 1) * 0.55)) - - ##labels - ######Finger - for i in range(finger - 1): - met1_label_s = c.add_label( - "S", - position=(0.255 + (i * 1.1), (cell_height / 2)), - layer=met1_label, - magnification=0.2, - ) - - for i in range(finger - 2): - met1_label_d = c.add_label( - "D", - position=(0.81 + (i) * 1.1, (cell_height / 2)), - layer=met1_label, - magnification=0.2, - ) - # c.add_label() - - return c +@cell +def diff_pair(pdk, mult=3, fingers=3, cell_height=0.67) -> Component: + pwell_drawing = pdk.get_glayer("pwell") + dnwell_drawing = pdk.get_glayer("dnwell") + poly_drawing = pdk.get_glayer("poly") - -@gf.cell -def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: - - Top_cell = gf.Component("top") + Top_cell = Component("top") mult = mult * 2 - # mos_comp = nmos(cell_height, finger) + # mos_comp = nmos(cell_height, fingers) mos_comp = multiplier( - sky130_mapped_pdk, sdlayer="n+s/d", fingers=finger, routing=False, dummy=False + pdk, sdlayer="n+s/d", fingers=fingers, routing=False, dummy=False ) cell_height = mos_comp.ymax - mos_comp.ymin cell_width = mos_comp.xmax - mos_comp.xmin - # cell_width = 1.1 + 0.55*(finger-1) + # cell_width = 1.1 + 0.55*(fingers-1) space_bet_rows = 4 space_bet_mult = 1.5 rows = 2 @@ -188,9 +28,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: pwell_width = cell_width * (mult / rows) + 0.11 + space_bet_mult pwell_height = (cell_height * 1) * rows + 0.11 + space_bet_rows - pwell_rect = gf.components.rectangle( - size=(pwell_width, pwell_height), layer=pwell_drawing - ) + pwell_rect = rectangle(size=(pwell_width, pwell_height), layer=pwell_drawing) # pwell_rect_ref = Top_cell << pwell_rect # pwell_rect_ref.movex(-0.055).movey(-0.055) @@ -198,9 +36,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: # dnwell_width = (cell_width*((mult+1)/2)) + 0.91 dnwell_width = cell_width * (mult / rows) + 0.91 + space_bet_mult dnwell_height = (cell_height * 1) * rows + 0.91 + space_bet_rows - dnwell_rect = gf.components.rectangle( - size=(dnwell_width, dnwell_height), layer=dnwell_drawing - ) + dnwell_rect = rectangle(size=(dnwell_width, dnwell_height), layer=dnwell_drawing) # dnwell_rect_ref = Top_cell << dnwell_rect # dnwell_rect_ref.movex(-0.455).movey(-0.455) @@ -232,7 +68,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) ##VSS trunk -- merging met3_VSS_trunk_width = cell_width * (i + 1) + space_bet_mult * i + 1 - met3_VSS_trunk = gf.components.rectangle( + met3_VSS_trunk = rectangle( size=(met3_VSS_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") ) @@ -243,7 +79,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: met3_VSS_trunk_ref.movey(cell_height + space_bet_rows * 0.1 - met3_sq_dim / 2) met3_met2_VSS_trunk_height = space_bet_rows * 0.8 + met3_sq_dim - met3_met2_VSS_trunk = gf.components.rectangle( + met3_met2_VSS_trunk = rectangle( size=(met2_sq_dim, met3_met2_VSS_trunk_height), layer=pdk.get_glayer("met2") ) @@ -253,7 +89,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ).movex(met3_VSS_trunk_width - met2_sq_dim) via2_via_dim = pdk.get_grule("via2")["min_width"] - via2_via = gf.components.rectangle( + via2_via = rectangle( size=(via2_via_dim, via2_via_dim), layer=pdk.get_glayer("via2") ) @@ -280,35 +116,35 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: # poly extending trunk poly_width = pdk.get_grule("poly")["min_width"] mcon_poly_space = ( - 2 * pdk.get_grule("poly", "mcon")["min_seperation"] + 2 * pdk.get_grule("poly", "mcon")["min_separation"] + pdk.get_grule("mcon")["width"] ) poly_finger2finger_x = poly_width + mcon_poly_space - if finger % 2 != 0: + if fingers % 2 != 0: poly_left_edge = ( cell_width / 2 - poly_width / 2 - - ((finger - 1) / 2) * poly_finger2finger_x + - ((fingers - 1) / 2) * poly_finger2finger_x ) else: poly_left_edge = ( cell_width / 2 - poly_width / 2 - poly_finger2finger_x / 2 - - ((finger / 2) - 1) * poly_finger2finger_x + - ((fingers / 2) - 1) * poly_finger2finger_x ) - poly_ext_trunk_width = poly_width + (finger - 1) * poly_finger2finger_x + poly_ext_trunk_width = poly_width + (fingers - 1) * poly_finger2finger_x ##poly_trunk # poly_ext_trunk_height = pdk.get_grule("poly")['min_width'] poly_ext_trunk_height = 0.5 - poly_ext_trunk_ref = gf.components.rectangle( + poly_ext_trunk_ref = rectangle( size=(poly_ext_trunk_width, poly_ext_trunk_height), layer=poly_drawing ) - mcon_via = gf.components.rectangle( + mcon_via = rectangle( size=(pdk.get_grule("mcon")["width"], pdk.get_grule("mcon")["width"]), layer=pdk.get_glayer("mcon"), ) @@ -318,12 +154,12 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: + 2 * pdk.get_grule("met1", "mcon")["min_enclosure"], pdk.get_grule("met1")["min_width"], ) - met1_square = gf.components.rectangle( + met1_square = rectangle( size=(met1_sq_dim, met1_sq_dim), layer=pdk.get_glayer("met1") ) via1_via_dim = pdk.get_grule("via1")["min_width"] - via1_via = gf.components.rectangle( + via1_via = rectangle( size=(via1_via_dim, via1_via_dim), layer=pdk.get_glayer("via1") ) @@ -333,26 +169,26 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: + 2 * pdk.get_grule("met2", "via1")["min_enclosure"], pdk.get_grule("met2")["min_width"], ) - met2_square = gf.components.rectangle( + met2_square = rectangle( size=(met2_sq_dim, met2_sq_dim), layer=pdk.get_glayer("met2") ) met2_poly_ext_1_height = 1.5 met2_poly_ext_2_height = met2_poly_ext_1_height + 1 - met2_poly_ext_1 = gf.components.rectangle( + met2_poly_ext_1 = rectangle( size=(met2_sq_dim, met2_poly_ext_1_height), layer=pdk.get_glayer("met2") ) - met2_poly_ext_2 = gf.components.rectangle( + met2_poly_ext_2 = rectangle( size=(met2_sq_dim, met2_poly_ext_2_height), layer=pdk.get_glayer("met2") ) via2_via_dim = pdk.get_grule("via2")["min_width"] - via2_via = gf.components.rectangle( + via2_via = rectangle( size=(via2_via_dim, via2_via_dim), layer=pdk.get_glayer("via2") ) via3_via_dim = pdk.get_grule("via3")["min_width"] - via3_via = gf.components.rectangle( + via3_via = rectangle( size=(via3_via_dim, via3_via_dim), layer=pdk.get_glayer("via3") ) @@ -369,12 +205,12 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) met3_poly_ext_width = cell_width * (i + 1) + space_bet_mult * i + 2 - met3_poly_ext = gf.components.rectangle( + met3_poly_ext = rectangle( size=(met3_poly_ext_width, met3_sq_dim), layer=pdk.get_glayer("met3") ) met2_poly_ext_outer_trunk_h = cell_height * 2 + space_bet_rows + 2.7 * 2 - met2_poly_ext_outer_trunk = gf.components.rectangle( + met2_poly_ext_outer_trunk = rectangle( size=(met2_sq_dim, met2_poly_ext_outer_trunk_h), layer=pdk.get_glayer("met2"), ) @@ -386,20 +222,20 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ## VSS extensions met3_VSS_trunk_width = cell_width - met3_VSS_trunk = gf.components.rectangle( + met3_VSS_trunk = rectangle( size=(met3_VSS_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") ) ## Drain extensions met3_Drain_trunk_width = cell_width - met3_Drain_trunk = gf.components.rectangle( + met3_Drain_trunk = rectangle( size=(met3_Drain_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") ) ## Drain connections using met3 ## In the center met3_Drain_conn_width = space_bet_mult + 0.3 * 3 + via2_via_dim - met3_Drain_conn = gf.components.rectangle( + met3_Drain_conn = rectangle( size=(met3_Drain_conn_width, met3_sq_dim), layer=pdk.get_glayer("met3") ) # met3_Drain_conn @@ -427,7 +263,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) met2_met3_Drain_conn_height = space_bet_rows * 0.3 - met2_met3_Drain_conn = gf.components.rectangle( + met2_met3_Drain_conn = rectangle( size=(met2_sq_dim, met2_met3_Drain_conn_height), layer=pdk.get_glayer("met2"), ) @@ -452,7 +288,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ## Drain connection using met1 ## In the center met2_Drain_conn_height = space_bet_rows * 0.48 - met2_Drain_conn = gf.components.rectangle( + met2_Drain_conn = rectangle( size=(met2_sq_dim, met2_Drain_conn_height), layer=pdk.get_glayer("met2") ) # met2_Drain_conn @@ -480,7 +316,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ## met3 connecting cell extensions ## In the center met3_ext_conn_width = space_bet_mult * 0.5 + 0.3 + met2_sq_dim - met3_ext_conn = gf.components.rectangle( + met3_ext_conn = rectangle( size=(met3_ext_conn_width, met3_sq_dim), layer=pdk.get_glayer("met3") ) # met3_Drain_conn @@ -504,7 +340,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: poly_trunk_center_y = (poly_trunk.ymax - poly_trunk.ymin) / 2 ## Drain Stripes - for con in range(finger + 1): + for con in range(fingers + 1): if con % 2 != 0: y_move = cell_height + space_bet_rows * 0.7 x_move = ( @@ -538,7 +374,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) ## Drain stripes - met2_Drain_stripes = gf.components.rectangle( + met2_Drain_stripes = rectangle( size=(met2_sq_dim, cell_height + space_bet_rows * 0.3), layer=pdk.get_glayer("met2"), ) @@ -553,7 +389,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) ## VSS Stripes - for con in range(finger + 1): + for con in range(fingers + 1): if con % 2 == 0: y_move = cell_height + space_bet_rows * 0.9 x_move = ( @@ -571,7 +407,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: cell_width * i + space_bet_mult * i ).movey(y_move - met3_sq_dim / 2) - met2_VSS_stripes = gf.components.rectangle( + met2_VSS_stripes = rectangle( size=(met2_sq_dim, cell_height + space_bet_rows * 0.25), layer=pdk.get_glayer("met2"), ) @@ -586,7 +422,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) ## Drain Stripes - for con in range(finger + 1): + for con in range(fingers + 1): if con % 2 == 0: y_move = ( cell_height * 1 + space_bet_rows * (j) + poly_trunk_center_y @@ -600,7 +436,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: + con * poly_finger2finger_x ) - # met2_VSS_stripes = gf.components.rectangle(size=( met2_sq_dim, cell_height + space_bet_rows*0.25), layer=pdk.get_glayer("met2")) + # met2_VSS_stripes = rectangle(size=( met2_sq_dim, cell_height + space_bet_rows*0.25), layer=pdk.get_glayer("met2")) # met2_square_ref = Top_cell << met2_VSS_stripes # met2_square_ref.movey(0).movex( x_move - met2_sq_dim/2 ) @@ -608,7 +444,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: # via2_via_ref.movey(cell_height + space_bet_rows/2 - via2_via_dim/2).movex( x_move - via2_via_dim/2) ## Contacts on Poly trunk - for con in range(finger - 1): + for con in range(fingers - 1): y_move = ( cell_height * 2 + space_bet_rows * (j) + poly_trunk_center_y ) @@ -707,7 +543,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: poly_trunk_center_y = (poly_trunk.ymax - poly_trunk.ymin) / 2 ## Drain Stripes - for con in range(finger + 1): + for con in range(fingers + 1): if con % 2 != 0: y_move = cell_height + space_bet_rows * 0.3 x_move = ( @@ -731,7 +567,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: via2_via_ref.movey(y_move - via2_via_dim / 2).movex( cell_width * (i) + space_bet_mult * i + 0.3 ) - met2_Drain_stripes = gf.components.rectangle( + met2_Drain_stripes = rectangle( size=(met2_sq_dim, cell_height + space_bet_rows * 0.3), layer=pdk.get_glayer("met2"), ) @@ -746,7 +582,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) ## VSS Stripes - for con in range(finger + 1): + for con in range(fingers + 1): if con % 2 == 0: y_move = cell_height + space_bet_rows * 0.1 x_move = ( @@ -764,7 +600,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: cell_width * i + space_bet_mult * i ).movey(y_move - met3_sq_dim / 2) - met2_VSS_stripes = gf.components.rectangle( + met2_VSS_stripes = rectangle( size=(met2_sq_dim, cell_height + space_bet_rows * 0.25), layer=pdk.get_glayer("met2"), ) @@ -779,7 +615,7 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: ) ## Contacts on Poly trunk - for con in range(finger - 1): + for con in range(fingers - 1): y_move = ( -poly_ext_trunk_height + cell_height * j @@ -875,326 +711,11 @@ def diff_pair_top_updated(mult=3, finger=3, cell_height=0.67) -> Component: - via2_via_dim / 2 ).movex(-1 + via2_via_dim / 2) - """ - #VSS Met2 trunk - met2_VSS_width = 0.5 + cell_width*(mult/rows) + 0.75 + space_bet_mult - - - met2_tb = gf.components.rectangle(size=(met2_VSS_width,met2_height), layer=met2_drawing) - #VSS Top trunk - met2_VSS_top_ref = Top_cell << met2_tb - met2_VSS_top_ref.movex(-0.5).movey(cell_height*rows + space_bet_rows + 0.5) - - #VSS Bottom trunk - met2_VSS_bottom_ref = Top_cell << met2_tb - met2_VSS_bottom_ref.movex(-0.5).movey(-0.5 - 0.23) - - # GM1 trunk - met2_GM1_ref = Top_cell << met2_tb - met2_GM1_ref.movex(-0.5).movey(cell_height + 0.5) - - # DM1 trunk - met2_DM1_ref = Top_cell << met2_tb - met2_DM1_ref.movex(-0.5).movey(cell_height + 0.5 + met2_height + 0.25) - - # DM2 trunk - met2_DM2_ref = Top_cell << met2_tb - met2_DM2_ref.movex(-0.5).movey(cell_height + 0.5 + met2_height * 2 + 0.25*2 ) - - # GM2 trunk - met2_GM2_ref = Top_cell << met2_tb - met2_GM2_ref.movex(-0.5).movey(cell_height + 0.5 + met2_height * 3 + 0.25*3 ) - - - - - #Extending Poly trunk - for i in range(int(mult/rows)): - for j in range(rows): - - - met1_height = 1.95 - met1_width = 0.23 - - met1_row_conn_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) - - if j == 0 : - for fin in range(finger-1): - met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect - met1_row_conn_rect_ref.movex(0.16 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j -0.73 ) - - if j == 1 : - for fin in range(finger-1): - met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect - met1_row_conn_rect_ref.movex(0.16 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j + space_bet_rows*(j) - 0.73 + 0.85) - - #Extending Drain trunk - for i in range(int(mult/rows)): - for j in range(rows): - - - met1_height_1 = 1.95 - 0.3 - met1_height_2 = 1.95 + 0.96 - met1_width = 0.23 - - met1_row_conn_rect_1 = gf.components.rectangle(size=(met1_width,met1_height_1), layer=met1_drawing) - met1_row_conn_rect_2 = gf.components.rectangle(size=(met1_width,met1_height_2), layer=met1_drawing) - - if j == 0 : - if i == 0: - for fin in range(finger-2): - met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect_1 - met1_row_conn_rect_ref.movex(0.16 + 0.55 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j -0.73 + 0.85 ) - - if i == 1: - for fin in range(finger-2): - met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect_2 - met1_row_conn_rect_ref.movex(0.16 + 0.55 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j -0.73 + 0.85 ) - - #if j == 1 : - # for fin in range(finger-1): - # met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect - # met1_row_conn_rect_ref.movex(0.16 + space_bet_mult*i + cell_width*i + 1.1*fin).movey( cell_height*j + space_bet_rows*(j) - 0.73 + 0.85) - - - for i in range(mult): - #for j in range(2): - if (i%2 == 0) : - poly_width = 0.25 - poly_height = cell_height + 0.1 - - poly_row_conn_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) - poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect - - poly_row_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.425).movey(-0.1) - - elif (i%2 != 0) : - poly_width = 0.25 - poly_height = cell_height + 0.1 - - poly_row_conn_rect = gf.components.rectangle(size=(poly_width,poly_height), layer=poly_drawing) - poly_row_conn_rect_ref = Top_cell << poly_row_conn_rect - - poly_row_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.425).movey(0) - - #via_height = 0.17 - #via_width = 0.17 - #via_rect = gf.components.rectangle(size=(via_height,via_width), #layer=via_drawing) - - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(cell_width*i + 0.425 + 0.04).movey(0.9) - - """ - """ - for i in range(mult): - #for j in range(2): - met1_height = 1.59 - met1_width = 0.23 - - met1_row_conn_rect = gf.components.rectangle(size=(met1_width,met1_height), layer=met1_drawing) - - met1_row_conn_rect_ref = Top_cell << met1_row_conn_rect - met1_row_conn_rect_ref.movex(cell_width*i + 0.16).movey(0.125) - - via_height = 0.17 - via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) - - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(cell_width*i + 0.16 + 0.03).movey(0.9) - """ - """' - met2_pin_width = 0.23 - met2_pin_height = 0.23 - - met2_pin_rect = gf.components.rectangle(size=(met2_pin_width,met2_pin_height), layer=met2_pin) - - poly_pin_width = poly_pin_height = 0.25 - poly_pin_rect = gf.components.rectangle(size=(poly_pin_width,poly_pin_height), layer=poly_pin) - - ## Center VSS M2 path - #met2_center_width = 0.5 + cell_width*mult - #met2_center_height = 0.23 - #met2_center = gf.components.rectangle(size=(met2_center_width,#met2_center_height), layer=met2_drawing) - - #met2_center_ref = Top_cell << met2_center - - #met2_center_ref.movex(-0.5).movey(0.9 - 0.03) - - #met2_pin_VSS = Top_cell << met2_pin_rect - #met2_pin_VSS.movex(-0.5).movey(0.9 - 0.03) - - ## VSS pin label - #met2_label_VSS = Top_cell.add_label("VSS", position=(-0.5,0.9 - 0.03), layer=met2_label, magnification=0.2) - - #G_M1 and G_M2 Poly Trunk - poly_tb_width = 0.5 + cell_width*((mult+1)/2) - poly_tb_height = 0.25 - - poly_tb_ref = gf.components.rectangle(size=(poly_tb_width,poly_tb_height), layer=poly_drawing) - ## Top poly trunk - - #G_M1 - poly_top_G_M1 = Top_cell << poly_tb_ref - poly_top_G_M1.movex(-0.5).movey(cell_height + 0.1) - - poly_pin_G_M1 = Top_cell << poly_pin_rect - poly_pin_G_M1.movex(-0.5).movey(cell_height + 0.1) - - poly_label_G_M1 = Top_cell.add_label("G_M1", position=(-0.5 + 0.25,cell_height + 0.1 + 0.25), layer=poly_label, magnification=0.2) - - #G_M2 - poly_top_G_M2 = Top_cell << poly_tb_ref - poly_top_G_M2.movex(-0.5).movey(-0.23- 0.1) - - poly_pin_G_M2 = Top_cell << poly_pin_rect - poly_pin_G_M2.movex(-0.5).movey( -0.23 - 0.1) - - poly_label_G_M2 = Top_cell.add_label("G_M2", position=(-0.5 + 0.25, -0.23 - 0.1 +0.25), layer=poly_label, magnification=0.2) - - #D_M1 and D_M2 Metal trunk - met2_tb_width = 0.5 + cell_width*((mult+1)/2) + 0.75 - met2_tb_height = 0.23 - - met2_tb = gf.components.rectangle(size=(met2_tb_width,met2_tb_height), layer=met2_drawing) - - ##Top trunk - - #D_M1 - met2_top_I_in_ref = Top_cell << met2_tb - met2_top_I_in_ref.movex(-0.5).movey(cell_height + 0.5) - - met2_pin_I_in = Top_cell << met2_pin_rect - met2_pin_I_in.movex(-0.5).movey(cell_height + 0.5) - - met2_label_I_in = Top_cell.add_label("VSS", position=(-0.5 + 0.25,cell_height + 0.5 + 0.2), layer=met2_label, magnification=0.2) - - #D_M2 - met2_top_I_out_ref = Top_cell << met2_tb - met2_top_I_out_ref.movex(-0.5).movey(cell_height + 0.5 + 0.5) - - met2_pin_I_out = Top_cell << met2_pin_rect - met2_pin_I_out.movex(-0.5).movey(cell_height + 0.5 + 0.5) - - met2_label_I_out = Top_cell.add_label("D_M1", position=(-0.5 + 0.25, cell_height + 1.0 + 0.25), layer=met2_label, magnification=0.2) - - ## Bottom trunk - - ##D_M1 - met2_bottom_I_in_ref = Top_cell << met2_tb - met2_bottom_I_in_ref.movex(-0.5).movey(-0.5 - 0.23) - - ##D_M2 - met2_bottom_I_out_ref = Top_cell << met2_tb - met2_bottom_I_out_ref.movex(-0.5).movey(-0.5 - 0.23 - 0.5) - - met2_pin_I_in = Top_cell << met2_pin_rect - met2_pin_I_in.movex(-0.5).movey(-0.5 - 0.23 - 0.5) - - met2_label_I_in = Top_cell.add_label("D_M1", position=(-0.5 + 0.25,-0.5 - 0.23 - 0.5 + 0.25), layer=met2_label, magnification=0.2) - - - ## Right end Trunks - met1_right_width = 0.23 - met1_right_height_1 = cell_height + (0.5*2) + (0.23*2) - met1_right_height_2 = 3.46 - - met1_right_trunk_1 = gf.components.rectangle(size=(met1_right_width,met1_right_height_1), layer=met1_drawing) - met1_right_trunk_2 = gf.components.rectangle(size=(met1_right_width,met1_right_height_2), layer=met1_drawing) - - ## Right - I_in trunk - met1_right_trunk_ref_I_in = Top_cell << met1_right_trunk_1 - trunk_1_x_shift = 0.5 + cell_width*((mult+1)/2) - met1_right_trunk_ref_I_in.movex(trunk_1_x_shift).movey( -(0.5 + 0.23)) - - ## Right - I_out trunk - #met1_right_trunk_ref_I_out = Top_cell << met1_right_trunk_2 - #trunk_2_x_shift = 0.5 + trunk_1_x_shift - #met1_right_trunk_ref_I_out.movex(trunk_2_x_shift).movey(-1.23) - - via_height = 0.17 - via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(-(0.5+0.23) + 0.03) - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(trunk_1_x_shift + 0.03).movey(met1_right_height_1 - (0.5 + 0.23) -0.17 - 0.03) - - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(-1.23 + 0.03) - #via_rect_ref = Top_cell << via_rect - #via_rect_ref.movex(trunk_2_x_shift + 0.03).movey(met1_right_height_2 - 1.23 -0.17 - 0.03) - - - ##Connecting to trunk - ## i ---> col - ## j ---> row - connect = "up" - for i in range(mult): - #for j in range(2): - met1_tr_conn_height_1 = (cell_height + 0.5 + 0.23 ) - 0.125 ##1.275 - met1_tr_conn_height_2 = (cell_height + 1.0 + 0.23 ) - 0.125 ##1.775 - met1_tr_conn_width = 0.23 - - via_height = 0.17 - via_width = 0.17 - via_rect = gf.components.rectangle(size=(via_height,via_width), layer=via_drawing) - - met1_tr_conn_rect_1 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_1), layer=met1_drawing) - - met1_tr_conn_rect_2 = gf.components.rectangle(size=(met1_tr_conn_width,met1_tr_conn_height_2), layer=met1_drawing) - - if(i == 0): - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex( 0.16).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(0.16 + 0.03).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) - - if(i%2 != 0): - #if((i+3)%2 == 0): - if connect == "up": - print("\nMult position") - print(i) - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(-1.23) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(-1.23 + 0.03) - connect = "down" - else: - print("\nElse ---- > Mult position") - print(i) - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_2 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(0.125 + met1_tr_conn_height_2 - 0.17 - 0.03) - connect = "up" - - if(i%2 == 0): - if(i%4 != 0): - - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(-0.73) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(-0.73 + 0.03) - else: - met1_tr_conn_rect_ref = Top_cell << met1_tr_conn_rect_1 - met1_tr_conn_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16+0.55).movey(0.125) - - via_rect_ref = Top_cell << via_rect - via_rect_ref.movex(cell_width*i - (cell_width*i/2) + 0.16 + 0.55 + 0.03).movey(0.125 + met1_tr_conn_height_1 - 0.17 - 0.03) - """ - return Top_cell -# Top_cell = multiplier(sky130_mapped_pdk, sdlayer="n+s/d",fingers=2,routing=True,dummy=False) -# print(Top_cell.x, Top_cell.y) -## Top cell creation -Top_cell = diff_pair_top_updated(mult=2, finger=4, cell_height=1.34) -# Top_cell = nmos(cell_height=1.34, finger=3) -Top_cell.show() +if __name__ == "__main__": + from PDK.util.standard_main import pdk + + Top_cell = diff_pair(pdk, mult=2, fingers=8, cell_height=1.34) + Top_cell.show() diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 696392883..0cb4069d2 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -2,7 +2,7 @@ from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle from PDK.mappedpdk import MappedPDK -from typing import Optional +from typing import Optional, Union from via_gen import via_array, via_stack from guardring import tapring from pydantic import validate_arguments @@ -15,7 +15,8 @@ def multiplier( width: Optional[float] = 3, fingers: Optional[int] = 1, routing: Optional[bool] = True, - dummy: Optional[bool] = True, + dummy: Optional[Union[bool, tuple[bool, bool]]] = True, + length: Optional[float] = None, ) -> Component: # error checking if "+s/d" not in sdlayer: @@ -24,7 +25,7 @@ def multiplier( if fingers == 0: return multiplier # create the poly gate - length = pdk.get_grule("poly")["min_width"] + length = length or pdk.get_grule("poly")["min_width"] poly_overhang = pdk.get_grule("poly", "active_diff")["overhang"] poly_height = width + 2 * poly_overhang routing_pfac = pdk.get_grule("met1")["min_separation"] if routing else 0 @@ -125,16 +126,28 @@ def multiplier( for m2offset in [sw_corner_os[1], met2_ext.ymax - sdvia.ymax]: m2ref = multiplier << sd_met2_connect m2ref.movey(m2offset) - if dummy: + # create dummy regions + if isinstance(dummy, bool): + dummyl = dummy + dummyr = dummy + else: + dummyl = dummy[0] + dummyr = dummy[1] + if dummyl or dummyr: dummy = Component("temp dummy region") - size = (pdk.get_grule("active_diff")["min_width"], width) + size = (length, width) dummy << rectangle( layer=pdk.get_glayer("active_diff"), size=size, centered=True ) dummy_space = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] dummy.add_padding(layers=(pdk.get_glayer(sdlayer),), default=dummy_space) dummy_space += pdk.get_grule(sdlayer)["min_separation"] + size[0] / 2 - for side in [-1, 1]: + sides = list() + if dummyl: + sides.append(-1) + if dummyr: + sides.append(1) + for side in sides: dummy_ref = multiplier << dummy dummy_ref.movex(side * (dummy_space + multiplier.xmax)) return multiplier.flatten() @@ -148,14 +161,21 @@ def __mult_array_macro( fingers: Optional[int] = 1, multipliers: Optional[int] = 1, routing: Optional[bool] = True, - dummy: Optional[bool] = True, + dummy: Optional[Union[bool, tuple[bool, bool]]] = True, + length: Optional[float] = None, ) -> Component: # create multiplier array pdk.activate() # TODO: error checking multiplier_arr = Component("temp multiplier array") multiplier_comp = multiplier( - pdk, sdlayer, width=width, fingers=fingers, dummy=dummy, routing=routing + pdk, + sdlayer, + width=width, + fingers=fingers, + dummy=dummy, + routing=routing, + length=length, ) multiplier_separation = ( pdk.get_grule("met2")["min_separation"] @@ -175,9 +195,10 @@ def nmos( fingers: Optional[int] = 1, multipliers: Optional[int] = 1, with_tie: Optional[bool] = True, - with_dummy: Optional[bool] = True, + with_dummy: Optional[Union[bool, tuple[bool, bool]]] = True, with_dnwell: Optional[bool] = True, with_substrate_tap: Optional[bool] = True, + length: Optional[float] = None, ) -> Component: """Generic NMOS generator: uses minumum length without deep nwell width = expands the NMOS in the y direction @@ -191,7 +212,7 @@ def nmos( nfet = Component() # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy + pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length ) nfet.add(multiplier_arr.ref_center()) # add tie if tie @@ -251,8 +272,9 @@ def pmos( multipliers: Optional[int] = 1, with_tie: Optional[bool] = True, dnwell: Optional[bool] = False, - with_dummy: Optional[bool] = True, + with_dummy: Optional[Union[bool, tuple[bool, bool]]] = True, with_substrate_tap: Optional[bool] = True, + length: Optional[float] = None, ) -> Component: """Generic NMOS generator: uses minumum length without deep nwell width = expands the NMOS in the y direction @@ -266,7 +288,7 @@ def pmos( pfet = Component() # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy + pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length ) pfet.add(multiplier_arr.ref_center()) # add tie if tie @@ -317,4 +339,4 @@ def pmos( if __name__ == "__main__": from PDK.util.standard_main import pdk - pmos(pdk, fingers=3).show() + pmos(pdk, fingers=8, with_dummy=True).show() diff --git a/openfasoc/generators/gdsfactory-gen/mimcap.py b/openfasoc/generators/gdsfactory-gen/mimcap.py new file mode 100644 index 000000000..0afb32e03 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/mimcap.py @@ -0,0 +1,23 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.components.rectangle import rectangle +from PDK.mappedpdk import MappedPDK +from typing import Optional + + +@cell +def mimcap( + pdk: MappedPDK, size=(5.0, 5.0), routing: Optional[bool] = False +) -> Component: + """create a mimcap + args: + pdk=pdk to use + size=tuple(float,float) size of cap + ****Note: size is the size of the capmet layer + """ + pdk.has_required_glayers(["capmet", "capbottommet", "captopmet", "capvia"]) + pdk.activate() + mim_cap = Component() + mim_cap << rectangle(size=size, layer=pdk.get_glayer("capmet"), centered=True) + # TODO: implement + return mim_cap.flatten() diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py new file mode 100644 index 000000000..59c578634 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -0,0 +1,136 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component, copy +from gdsfactory.components.rectangle import rectangle +from PDK.mappedpdk import MappedPDK +from typing import Optional +from fet import nmos, pmos, multiplier +from diff_pair import diff_pair +from guardring import tapring + + +@cell +def opamp( + pdk: MappedPDK, + diffpair_params: Optional[tuple[float, float, int, int]] = (6, 0, 4, 2), + tailcurrent_params: Optional[tuple[float, float, int, int]] = (6, 2, 4, 1), + cmirror_hparams: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), + pamp_hparams: Optional[tuple[float, float, int, int]] = (7, 1, 10, 3), +) -> Component: + """create an opamp, args: + pdk=pdk to use + diffpair_params = diffpair (width,length,fingers,mults) + tailcurrent_params = tailcurrent nmos (width,length,fingers,mults) + cmirror_hparams = cmirror_hparams (width,length,fingers,mults) + """ + opamp_top = Component() + # place nmos components + # create and center diffpair + diffpair_i_ = Component("temp diffpair and current source") + center_diffpair_comp = diff_pair( + pdk, + cell_height=diffpair_params[0], + fingers=diffpair_params[2], + mult=diffpair_params[3], + ) + diffpair_i_.add(center_diffpair_comp.ref_center()) + # create and position tail current source + tailcurrent_comp = nmos( + pdk, + width=tailcurrent_params[0], + length=tailcurrent_params[1], + fingers=tailcurrent_params[2], + multipliers=tailcurrent_params[3], + with_tie=False, + with_dnwell=False, + with_substrate_tap=False, + with_dummy=False, + ) + tailcurrent_ref = diffpair_i_ << tailcurrent_comp + tailcurrent_ref.movey( + -0.5 * (center_diffpair_comp.ymax - center_diffpair_comp.ymin) + - abs(tailcurrent_ref.ymax) + ) + # add to opamp comp + opamp_top.add(diffpair_i_.ref_center()) + # create tap ring + # tapcenter_rect = [2*opamp_top.xmax, 2*opamp_top.ymax] + # opamp_top << tapring(pdk, tapcenter_rect, "p+s/d") + # create and position current mirror symetrically + x_dim_center = opamp_top.xmax + for i, dummy in enumerate([(False, True), (True, False)]): + halfMultn = nmos( + pdk, + width=cmirror_hparams[0], + length=cmirror_hparams[1], + fingers=cmirror_hparams[2], + multipliers=cmirror_hparams[3], + with_tie=True, + with_dnwell=False, + with_substrate_tap=False, + with_dummy=dummy, + ) + halfMultn_ref = opamp_top << halfMultn + direction = (-1) ** i + halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax)) + # place pmos components + pmos_comps = Component("temp pmos section top") + # center and position + shared_gate_comps = Component("temp pmos shared gates") + pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False)) + pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True)) + (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax) + (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin) + # center + relative_dim_comp = multiplier( + pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False + ) + single_dim = relative_dim_comp.xmax + for i in [-2, -1, 1, 2]: + dummy = False + extra_t = 0 + if i == -2: + dummy = [True, False] + pcenterfourunits = multiplier( + pdk, "p+s/d", width=6, length=1, fingers=4, dummy=dummy + ) + extra_t = -1 * single_dim + elif i == 2: + dummy = [False, True] + pcenterfourunits = multiplier( + pdk, "p+s/d", width=6, length=1, fingers=4, dummy=dummy + ) + extra_t = single_dim + else: + pcenterfourunits = relative_dim_comp + (pmos_comps << pcenterfourunits).movex(i * single_dim + extra_t) + ytranslation_pcenter = 2 * pcenterfourunits.ymax + (pmos_comps << shared_gate_comps).movey(ytranslation_pcenter) + (pmos_comps << shared_gate_comps).movey(-1 * ytranslation_pcenter) + # pcore to output + x_dim_center = pmos_comps.xmax + for direction in [-1, 1]: + halfMultp = pmos( + pdk, + width=pamp_hparams[0], + length=pamp_hparams[1], + fingers=pamp_hparams[2], + multipliers=pamp_hparams[3], + with_tie=True, + dnwell=False, + with_substrate_tap=False, + ) + halfMultp_ref = pmos_comps << halfMultp + halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax)) + # finish place + ydim_ncomps = opamp_top.ymax - opamp_top.ymin + pmos_comps_ref = opamp_top << pmos_comps + pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax) + # route + # TODO: implement + return opamp_top + + +if __name__ == "__main__": + from PDK.util.standard_main import pdk + + opamp(pdk).show() diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 34689c0d3..18938661f 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -2,7 +2,6 @@ from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from pydantic import validate_arguments -from collections import OrderedDict from PDK.mappedpdk import MappedPDK from math import floor from typing import Optional From b8a3b398b452750abb44188e68fbb4ea7ba028c3 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 3 Jul 2023 02:15:45 -0400 Subject: [PATCH 08/64] gdsfactory-gen: mimcap and print_rules code print switch --- .../gdsfactory-gen/PDK/mappedpdk.py | 24 +- .../PDK/sky130_mapped/grules.py | 368 ++++++++++++++++++ .../PDK/sky130_mapped/sky130_mapped.py | 270 +------------ .../gdsfactory-gen/PDK/util/print_rules.py | 52 +-- .../generators/gdsfactory-gen/diff_pair.py | 2 +- openfasoc/generators/gdsfactory-gen/fet.py | 54 ++- openfasoc/generators/gdsfactory-gen/mimcap.py | 26 +- openfasoc/generators/gdsfactory-gen/opamp.py | 4 + .../generators/gdsfactory-gen/via_gen.py | 50 ++- 9 files changed, 521 insertions(+), 329 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py index 51e244f51..d942f9586 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py @@ -17,8 +17,6 @@ class MappedPDK(Pdk): has_required_glayers(list[str]) is used to verify all required generic layers are present""" - # of all the cap* layers, capmet is the only real layer - # the other cap layers get initialized to copies of the respective layers valid_glayers: ClassVar[tuple[str]] = ( "dnwell", "pwell", @@ -39,10 +37,6 @@ class MappedPDK(Pdk): "via4", "met5", "capmet", - # copied layers - "capbottommet", - "captopmet", - "capvia", ) glayers: dict[StrictStr, StrictStr] @@ -142,6 +136,24 @@ def has_required_glayers(self, layers_required: list[str]): ) self.validate_layers([self.glayers[layer]]) + def layer_to_glayer(self, layer: tuple[int,int]) -> str: + """if layer provided corresponds to a glayer, will return a glayer + else will raise an exception + takes layer as a tuple(int,int)""" + # lambda for finding last matching key in dict from val + find_last = lambda val, d : [x for x,y in d.items() if y==val].pop() + # find glayer verfying presence along the way + pdk_real_layers = self.layers.values() + if layer in pdk_real_layers: + layer_name = find_last(layer, self.layers) + if layer_name in self.glayers.values(): + glayer_name = find_last(layer_name, self.glayers) + else: + raise ValueError("layer does not correspond to a glayer") + else: + raise ValueError("layer is not a layer present in the pdk") + return glayer_name + # TODO: implement LayerSpec type def get_glayer(self, layer: str) -> Layer: """Returns the PDK layer from the generic layer name""" diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py new file mode 100644 index 000000000..4028ef40f --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py @@ -0,0 +1,368 @@ +from PDK.mappedpdk import MappedPDK + +grulesobj = dict() +for glayer in MappedPDK.valid_glayers: + grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) + +grulesobj["dnwell"]["dnwell"] = {'min_width': 3.0, 'min_separation': 6.3} +grulesobj["dnwell"]["pwell"] = {'min_enclosure': 0.0} +grulesobj["dnwell"]["nwell"] = {'min_separation': 4.5} +grulesobj["dnwell"]["p+s/d"] = {} +grulesobj["dnwell"]["n+s/d"] = {} +grulesobj["dnwell"]["active_diff"] = {} +grulesobj["dnwell"]["active_tap"] = {'min_separation': 0.34} +grulesobj["dnwell"]["poly"] = {} +grulesobj["dnwell"]["mcon"] = {} +grulesobj["dnwell"]["met1"] = {} +grulesobj["dnwell"]["via1"] = {} +grulesobj["dnwell"]["met2"] = {} +grulesobj["dnwell"]["via2"] = {} +grulesobj["dnwell"]["met3"] = {} +grulesobj["dnwell"]["via3"] = {} +grulesobj["dnwell"]["met4"] = {} +grulesobj["dnwell"]["via4"] = {} +grulesobj["dnwell"]["met5"] = {} +grulesobj["dnwell"]["capmet"] = {} +grulesobj["pwell"]["dnwell"] = {} +grulesobj["pwell"]["pwell"] = {} +grulesobj["pwell"]["nwell"] = {} +grulesobj["pwell"]["p+s/d"] = {} +grulesobj["pwell"]["n+s/d"] = {} +grulesobj["pwell"]["active_diff"] = {} +grulesobj["pwell"]["active_tap"] = {'min_enclosure': 0.18} +grulesobj["pwell"]["poly"] = {} +grulesobj["pwell"]["mcon"] = {} +grulesobj["pwell"]["met1"] = {} +grulesobj["pwell"]["via1"] = {} +grulesobj["pwell"]["met2"] = {} +grulesobj["pwell"]["via2"] = {} +grulesobj["pwell"]["met3"] = {} +grulesobj["pwell"]["via3"] = {} +grulesobj["pwell"]["met4"] = {} +grulesobj["pwell"]["via4"] = {} +grulesobj["pwell"]["met5"] = {} +grulesobj["pwell"]["capmet"] = {} +grulesobj["nwell"]["dnwell"] = {} +grulesobj["nwell"]["pwell"] = {} +grulesobj["nwell"]["nwell"] = {'min_width': 0.84, 'min_sepeartion': 1.27} +grulesobj["nwell"]["p+s/d"] = {} +grulesobj["nwell"]["n+s/d"] = {} +grulesobj["nwell"]["active_diff"] = {} +grulesobj["nwell"]["active_tap"] = {'min_enclosure': 0.18} +grulesobj["nwell"]["poly"] = {} +grulesobj["nwell"]["mcon"] = {} +grulesobj["nwell"]["met1"] = {} +grulesobj["nwell"]["via1"] = {} +grulesobj["nwell"]["met2"] = {} +grulesobj["nwell"]["via2"] = {} +grulesobj["nwell"]["met3"] = {} +grulesobj["nwell"]["via3"] = {} +grulesobj["nwell"]["met4"] = {} +grulesobj["nwell"]["via4"] = {} +grulesobj["nwell"]["met5"] = {} +grulesobj["nwell"]["capmet"] = {} +grulesobj["p+s/d"]["dnwell"] = {} +grulesobj["p+s/d"]["pwell"] = {} +grulesobj["p+s/d"]["nwell"] = {} +grulesobj["p+s/d"]["p+s/d"] = {'min_width': 0.38, 'min_separation': 0.38} +grulesobj["p+s/d"]["n+s/d"] = {} +grulesobj["p+s/d"]["active_diff"] = {'min_enclosure': 0.13, 'min_separation': 0.13} +grulesobj["p+s/d"]["active_tap"] = {'min_enclosure': 0.13, 'min_separation': 0.13} +grulesobj["p+s/d"]["poly"] = {} +grulesobj["p+s/d"]["mcon"] = {} +grulesobj["p+s/d"]["met1"] = {} +grulesobj["p+s/d"]["via1"] = {} +grulesobj["p+s/d"]["met2"] = {} +grulesobj["p+s/d"]["via2"] = {} +grulesobj["p+s/d"]["met3"] = {} +grulesobj["p+s/d"]["via3"] = {} +grulesobj["p+s/d"]["met4"] = {} +grulesobj["p+s/d"]["via4"] = {} +grulesobj["p+s/d"]["met5"] = {} +grulesobj["p+s/d"]["capmet"] = {} +grulesobj["n+s/d"]["dnwell"] = {} +grulesobj["n+s/d"]["pwell"] = {} +grulesobj["n+s/d"]["nwell"] = {} +grulesobj["n+s/d"]["p+s/d"] = {} +grulesobj["n+s/d"]["n+s/d"] = {'min_width': 0.38, 'min_separation': 0.38} +grulesobj["n+s/d"]["active_diff"] = {'min_enclosure': 0.13, 'min_separation': 0.13} +grulesobj["n+s/d"]["active_tap"] = {'min_enclosure': 0.13, 'min_separation': 0.13} +grulesobj["n+s/d"]["poly"] = {} +grulesobj["n+s/d"]["mcon"] = {} +grulesobj["n+s/d"]["met1"] = {} +grulesobj["n+s/d"]["via1"] = {} +grulesobj["n+s/d"]["met2"] = {} +grulesobj["n+s/d"]["via2"] = {} +grulesobj["n+s/d"]["met3"] = {} +grulesobj["n+s/d"]["via3"] = {} +grulesobj["n+s/d"]["met4"] = {} +grulesobj["n+s/d"]["via4"] = {} +grulesobj["n+s/d"]["met5"] = {} +grulesobj["n+s/d"]["capmet"] = {} +grulesobj["active_diff"]["dnwell"] = {} +grulesobj["active_diff"]["pwell"] = {} +grulesobj["active_diff"]["nwell"] = {} +grulesobj["active_diff"]["p+s/d"] = {} +grulesobj["active_diff"]["n+s/d"] = {} +grulesobj["active_diff"]["active_diff"] = {'min_width': 0.15, 'min_separation': 0.27} +grulesobj["active_diff"]["active_tap"] = {'min_separation': 0.27} +grulesobj["active_diff"]["poly"] = {'overhang': 0.25} +grulesobj["active_diff"]["mcon"] = {'min_enclosure': 0.06} +grulesobj["active_diff"]["met1"] = {} +grulesobj["active_diff"]["via1"] = {} +grulesobj["active_diff"]["met2"] = {} +grulesobj["active_diff"]["via2"] = {} +grulesobj["active_diff"]["met3"] = {} +grulesobj["active_diff"]["via3"] = {} +grulesobj["active_diff"]["met4"] = {} +grulesobj["active_diff"]["via4"] = {} +grulesobj["active_diff"]["met5"] = {} +grulesobj["active_diff"]["capmet"] = {} +grulesobj["active_tap"]["dnwell"] = {} +grulesobj["active_tap"]["pwell"] = {} +grulesobj["active_tap"]["nwell"] = {} +grulesobj["active_tap"]["p+s/d"] = {} +grulesobj["active_tap"]["n+s/d"] = {} +grulesobj["active_tap"]["active_diff"] = {} +grulesobj["active_tap"]["active_tap"] = {'min_width': 0.15, 'min_separation': 0.27} +grulesobj["active_tap"]["poly"] = {} +grulesobj["active_tap"]["mcon"] = {'min_enclosure': 0.12} +grulesobj["active_tap"]["met1"] = {} +grulesobj["active_tap"]["via1"] = {} +grulesobj["active_tap"]["met2"] = {} +grulesobj["active_tap"]["via2"] = {} +grulesobj["active_tap"]["met3"] = {} +grulesobj["active_tap"]["via3"] = {} +grulesobj["active_tap"]["met4"] = {} +grulesobj["active_tap"]["via4"] = {} +grulesobj["active_tap"]["met5"] = {} +grulesobj["active_tap"]["capmet"] = {} +grulesobj["poly"]["dnwell"] = {} +grulesobj["poly"]["pwell"] = {} +grulesobj["poly"]["nwell"] = {} +grulesobj["poly"]["p+s/d"] = {} +grulesobj["poly"]["n+s/d"] = {} +grulesobj["poly"]["active_diff"] = {} +grulesobj["poly"]["active_tap"] = {} +grulesobj["poly"]["poly"] = {'min_width': 0.15, 'min_separation': 0.21, 'extension': 0.13} +grulesobj["poly"]["mcon"] = {'min_enclosure': 0.05, 'min_separation': 0.06} +grulesobj["poly"]["met1"] = {} +grulesobj["poly"]["via1"] = {} +grulesobj["poly"]["met2"] = {} +grulesobj["poly"]["via2"] = {} +grulesobj["poly"]["met3"] = {} +grulesobj["poly"]["via3"] = {} +grulesobj["poly"]["met4"] = {} +grulesobj["poly"]["via4"] = {} +grulesobj["poly"]["met5"] = {} +grulesobj["poly"]["capmet"] = {} +grulesobj["mcon"]["dnwell"] = {} +grulesobj["mcon"]["pwell"] = {} +grulesobj["mcon"]["nwell"] = {} +grulesobj["mcon"]["p+s/d"] = {} +grulesobj["mcon"]["n+s/d"] = {} +grulesobj["mcon"]["active_diff"] = {} +grulesobj["mcon"]["active_tap"] = {} +grulesobj["mcon"]["poly"] = {} +grulesobj["mcon"]["mcon"] = {'min_width': 0.17, 'min_separation': 0.17, 'width': 0.17} +grulesobj["mcon"]["met1"] = {'min_enclosure': 0.08} +grulesobj["mcon"]["via1"] = {} +grulesobj["mcon"]["met2"] = {} +grulesobj["mcon"]["via2"] = {} +grulesobj["mcon"]["met3"] = {} +grulesobj["mcon"]["via3"] = {} +grulesobj["mcon"]["met4"] = {} +grulesobj["mcon"]["via4"] = {} +grulesobj["mcon"]["met5"] = {} +grulesobj["mcon"]["capmet"] = {} +grulesobj["met1"]["dnwell"] = {} +grulesobj["met1"]["pwell"] = {} +grulesobj["met1"]["nwell"] = {} +grulesobj["met1"]["p+s/d"] = {} +grulesobj["met1"]["n+s/d"] = {} +grulesobj["met1"]["active_diff"] = {} +grulesobj["met1"]["active_tap"] = {} +grulesobj["met1"]["poly"] = {} +grulesobj["met1"]["mcon"] = {} +grulesobj["met1"]["met1"] = {'min_width': 0.17, 'min_separation': 0.17} +grulesobj["met1"]["via1"] = {'min_enclosure': 0.0} +grulesobj["met1"]["met2"] = {} +grulesobj["met1"]["via2"] = {} +grulesobj["met1"]["met3"] = {} +grulesobj["met1"]["via3"] = {} +grulesobj["met1"]["met4"] = {} +grulesobj["met1"]["via4"] = {} +grulesobj["met1"]["met5"] = {} +grulesobj["met1"]["capmet"] = {} +grulesobj["via1"]["dnwell"] = {} +grulesobj["via1"]["pwell"] = {} +grulesobj["via1"]["nwell"] = {} +grulesobj["via1"]["p+s/d"] = {} +grulesobj["via1"]["n+s/d"] = {} +grulesobj["via1"]["active_diff"] = {} +grulesobj["via1"]["active_tap"] = {} +grulesobj["via1"]["poly"] = {} +grulesobj["via1"]["mcon"] = {} +grulesobj["via1"]["met1"] = {} +grulesobj["via1"]["via1"] = {'min_width': 0.17, 'min_separation': 0.19, 'width': 0.17} +grulesobj["via1"]["met2"] = {'min_enclosure': 0.06} +grulesobj["via1"]["via2"] = {} +grulesobj["via1"]["met3"] = {} +grulesobj["via1"]["via3"] = {} +grulesobj["via1"]["met4"] = {} +grulesobj["via1"]["via4"] = {} +grulesobj["via1"]["met5"] = {} +grulesobj["via1"]["capmet"] = {} +grulesobj["met2"]["dnwell"] = {} +grulesobj["met2"]["pwell"] = {} +grulesobj["met2"]["nwell"] = {} +grulesobj["met2"]["p+s/d"] = {} +grulesobj["met2"]["n+s/d"] = {} +grulesobj["met2"]["active_diff"] = {} +grulesobj["met2"]["active_tap"] = {} +grulesobj["met2"]["poly"] = {} +grulesobj["met2"]["mcon"] = {} +grulesobj["met2"]["met1"] = {} +grulesobj["met2"]["via1"] = {} +grulesobj["met2"]["met2"] = {'min_width': 0.14, 'min_separation': 0.14} +grulesobj["met2"]["via2"] = {'min_enclosure': 0.14} +grulesobj["met2"]["met3"] = {} +grulesobj["met2"]["via3"] = {} +grulesobj["met2"]["met4"] = {} +grulesobj["met2"]["via4"] = {} +grulesobj["met2"]["met5"] = {} +grulesobj["met2"]["capmet"] = {} +grulesobj["via2"]["dnwell"] = {} +grulesobj["via2"]["pwell"] = {} +grulesobj["via2"]["nwell"] = {} +grulesobj["via2"]["p+s/d"] = {} +grulesobj["via2"]["n+s/d"] = {} +grulesobj["via2"]["active_diff"] = {} +grulesobj["via2"]["active_tap"] = {} +grulesobj["via2"]["poly"] = {} +grulesobj["via2"]["mcon"] = {} +grulesobj["via2"]["met1"] = {} +grulesobj["via2"]["via1"] = {} +grulesobj["via2"]["met2"] = {} +grulesobj["via2"]["via2"] = {'min_width': 0.21, 'min_separation': 0.17, 'width': 0.15} +grulesobj["via2"]["met3"] = {'min_enclosure': 0.09} +grulesobj["via2"]["via3"] = {} +grulesobj["via2"]["met4"] = {} +grulesobj["via2"]["via4"] = {} +grulesobj["via2"]["met5"] = {} +grulesobj["via2"]["capmet"] = {} +grulesobj["met3"]["dnwell"] = {} +grulesobj["met3"]["pwell"] = {} +grulesobj["met3"]["nwell"] = {} +grulesobj["met3"]["p+s/d"] = {} +grulesobj["met3"]["n+s/d"] = {} +grulesobj["met3"]["active_diff"] = {} +grulesobj["met3"]["active_tap"] = {} +grulesobj["met3"]["poly"] = {} +grulesobj["met3"]["mcon"] = {} +grulesobj["met3"]["met1"] = {} +grulesobj["met3"]["via1"] = {} +grulesobj["met3"]["met2"] = {} +grulesobj["met3"]["via2"] = {} +grulesobj["met3"]["met3"] = {'min_width': 0.14, 'min_separation': 0.14} +grulesobj["met3"]["via3"] = {} +grulesobj["met3"]["met4"] = {} +grulesobj["met3"]["via4"] = {} +grulesobj["met3"]["met5"] = {} +grulesobj["met3"]["capmet"] = {} +grulesobj["via3"]["dnwell"] = {} +grulesobj["via3"]["pwell"] = {} +grulesobj["via3"]["nwell"] = {} +grulesobj["via3"]["p+s/d"] = {} +grulesobj["via3"]["n+s/d"] = {} +grulesobj["via3"]["active_diff"] = {} +grulesobj["via3"]["active_tap"] = {} +grulesobj["via3"]["poly"] = {} +grulesobj["via3"]["mcon"] = {} +grulesobj["via3"]["met1"] = {} +grulesobj["via3"]["via1"] = {} +grulesobj["via3"]["met2"] = {} +grulesobj["via3"]["via2"] = {} +grulesobj["via3"]["met3"] = {} +grulesobj["via3"]["via3"] = {'min_width': 0.2, 'min_separation': 0.2, 'width': 0.2} +grulesobj["via3"]["met4"] = {'min_enclosure': 0.65} +grulesobj["via3"]["via4"] = {} +grulesobj["via3"]["met5"] = {} +grulesobj["via3"]["capmet"] = {} +grulesobj["met4"]["dnwell"] = {} +grulesobj["met4"]["pwell"] = {} +grulesobj["met4"]["nwell"] = {} +grulesobj["met4"]["p+s/d"] = {} +grulesobj["met4"]["n+s/d"] = {} +grulesobj["met4"]["active_diff"] = {} +grulesobj["met4"]["active_tap"] = {} +grulesobj["met4"]["poly"] = {} +grulesobj["met4"]["mcon"] = {} +grulesobj["met4"]["met1"] = {} +grulesobj["met4"]["via1"] = {} +grulesobj["met4"]["met2"] = {} +grulesobj["met4"]["via2"] = {} +grulesobj["met4"]["met3"] = {} +grulesobj["met4"]["via3"] = {} +grulesobj["met4"]["met4"] = {'min_width': 0.3, 'min_separation': 0.3} +grulesobj["met4"]["via4"] = {'min_enclosure': 0.09} +grulesobj["met4"]["met5"] = {} +grulesobj["met4"]["capmet"] = {} +grulesobj["via4"]["dnwell"] = {} +grulesobj["via4"]["pwell"] = {} +grulesobj["via4"]["nwell"] = {} +grulesobj["via4"]["p+s/d"] = {} +grulesobj["via4"]["n+s/d"] = {} +grulesobj["via4"]["active_diff"] = {} +grulesobj["via4"]["active_tap"] = {} +grulesobj["via4"]["poly"] = {} +grulesobj["via4"]["mcon"] = {} +grulesobj["via4"]["met1"] = {} +grulesobj["via4"]["via1"] = {} +grulesobj["via4"]["met2"] = {} +grulesobj["via4"]["via2"] = {} +grulesobj["via4"]["met3"] = {} +grulesobj["via4"]["via3"] = {} +grulesobj["via4"]["met4"] = {} +grulesobj["via4"]["via4"] = {'width': 0.2, 'min_separation': 0.35} +grulesobj["via4"]["met5"] = {'min_enclosure': 0.07} +grulesobj["via4"]["capmet"] = {} +grulesobj["met5"]["dnwell"] = {} +grulesobj["met5"]["pwell"] = {} +grulesobj["met5"]["nwell"] = {} +grulesobj["met5"]["p+s/d"] = {} +grulesobj["met5"]["n+s/d"] = {} +grulesobj["met5"]["active_diff"] = {} +grulesobj["met5"]["active_tap"] = {} +grulesobj["met5"]["poly"] = {} +grulesobj["met5"]["mcon"] = {} +grulesobj["met5"]["met1"] = {} +grulesobj["met5"]["via1"] = {} +grulesobj["met5"]["met2"] = {} +grulesobj["met5"]["via2"] = {} +grulesobj["met5"]["met3"] = {} +grulesobj["met5"]["via3"] = {} +grulesobj["met5"]["met4"] = {} +grulesobj["met5"]["via4"] = {} +grulesobj["met5"]["met5"] = {'min_width': 0.3, 'min_separation': 0.3} +grulesobj["met5"]["capmet"] = {} +grulesobj["capmet"]["dnwell"] = {} +grulesobj["capmet"]["pwell"] = {} +grulesobj["capmet"]["nwell"] = {} +grulesobj["capmet"]["p+s/d"] = {} +grulesobj["capmet"]["n+s/d"] = {} +grulesobj["capmet"]["active_diff"] = {} +grulesobj["capmet"]["active_tap"] = {} +grulesobj["capmet"]["poly"] = {} +grulesobj["capmet"]["mcon"] = {} +grulesobj["capmet"]["met1"] = {} +grulesobj["capmet"]["via1"] = {} +grulesobj["capmet"]["met2"] = {} +grulesobj["capmet"]["via2"] = {} +grulesobj["capmet"]["met3"] = {} +grulesobj["capmet"]["via3"] = {} +grulesobj["capmet"]["met4"] = {} +grulesobj["capmet"]["via4"] = {} +grulesobj["capmet"]["met5"] = {} +grulesobj["capmet"]["capmet"] = {'capmettop': (71, 20), 'capmetbottom': (70, 20)} + diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 7ad4ba949..14dcd1c0a 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -4,17 +4,13 @@ import sky130 from PDK.mappedpdk import MappedPDK +from PDK.sky130_mapped.grules import grulesobj from pathlib import Path sky130.PDK.layers["capm3"] = (89, 44) # use mimcap over metal 3 sky130_glayer_mapping = { - # copied layers - "capbottommet": "met3drawing", - "captopmet": "met4drawing", - "capvia": "via3drawing", - # original layers "capmet": "capm3", "met5": "met4drawing", "via4": "via3drawing", @@ -39,270 +35,6 @@ sky130_lydrc_file_path = Path(__file__).resolve().parent / "sky130.lydrc" -grulesobj = dict() -for glayer in MappedPDK.valid_glayers: - grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) - -grulesobj["dnwell"]["dnwell"] = {"min_width": 3.0, "min_separation": 6.3} -grulesobj["dnwell"]["pwell"] = {} -grulesobj["dnwell"]["nwell"] = {"min_separation": 4.5} -grulesobj["dnwell"]["p+s/d"] = {} -grulesobj["dnwell"]["n+s/d"] = {} -grulesobj["dnwell"]["active_diff"] = {} -grulesobj["dnwell"]["active_tap"] = {"min_separation": 0.34} -grulesobj["dnwell"]["poly"] = {} -grulesobj["dnwell"]["mcon"] = {} -grulesobj["dnwell"]["met1"] = {} -grulesobj["dnwell"]["via1"] = {} -grulesobj["dnwell"]["met2"] = {} -grulesobj["dnwell"]["via2"] = {} -grulesobj["dnwell"]["met3"] = {} -grulesobj["dnwell"]["via3"] = {} -grulesobj["dnwell"]["met4"] = {} -grulesobj["pwell"]["dnwell"] = {} -grulesobj["pwell"]["pwell"] = {} -grulesobj["pwell"]["nwell"] = {} -grulesobj["pwell"]["p+s/d"] = {} -grulesobj["pwell"]["n+s/d"] = {} -grulesobj["pwell"]["active_diff"] = {} -grulesobj["pwell"]["active_tap"] = {"min_enclosure": 0.18} -grulesobj["pwell"]["poly"] = {} -grulesobj["pwell"]["mcon"] = {} -grulesobj["pwell"]["met1"] = {} -grulesobj["pwell"]["via1"] = {} -grulesobj["pwell"]["met2"] = {} -grulesobj["pwell"]["via2"] = {} -grulesobj["pwell"]["met3"] = {} -grulesobj["pwell"]["via3"] = {} -grulesobj["pwell"]["met4"] = {} -grulesobj["nwell"]["dnwell"] = {} -grulesobj["nwell"]["pwell"] = {} -grulesobj["nwell"]["nwell"] = {"min_width": 0.84, "min_sepeartion": 1.27} -grulesobj["nwell"]["p+s/d"] = {} -grulesobj["nwell"]["n+s/d"] = {} -grulesobj["nwell"]["active_diff"] = {} -grulesobj["nwell"]["active_tap"] = {"min_enclosure": 0.18} -grulesobj["nwell"]["poly"] = {} -grulesobj["nwell"]["mcon"] = {} -grulesobj["nwell"]["met1"] = {} -grulesobj["nwell"]["via1"] = {} -grulesobj["nwell"]["met2"] = {} -grulesobj["nwell"]["via2"] = {} -grulesobj["nwell"]["met3"] = {} -grulesobj["nwell"]["via3"] = {} -grulesobj["nwell"]["met4"] = {} -grulesobj["p+s/d"]["dnwell"] = {} -grulesobj["p+s/d"]["pwell"] = {} -grulesobj["p+s/d"]["nwell"] = {} -grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.38, "min_separation": 0.38} -grulesobj["p+s/d"]["n+s/d"] = {} -grulesobj["p+s/d"]["active_diff"] = {"min_enclosure": 0.13, "min_separation": 0.13} -grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.13, "min_separation": 0.13} -grulesobj["p+s/d"]["poly"] = {} -grulesobj["p+s/d"]["mcon"] = {} -grulesobj["p+s/d"]["met1"] = {} -grulesobj["p+s/d"]["via1"] = {} -grulesobj["p+s/d"]["met2"] = {} -grulesobj["p+s/d"]["via2"] = {} -grulesobj["p+s/d"]["met3"] = {} -grulesobj["p+s/d"]["via3"] = {} -grulesobj["p+s/d"]["met4"] = {} -grulesobj["n+s/d"]["dnwell"] = {} -grulesobj["n+s/d"]["pwell"] = {} -grulesobj["n+s/d"]["nwell"] = {} -grulesobj["n+s/d"]["p+s/d"] = {} -grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.38, "min_separation": 0.38} -grulesobj["n+s/d"]["active_diff"] = {"min_enclosure": 0.13, "min_separation": 0.13} -grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.13, "min_separation": 0.13} -grulesobj["n+s/d"]["poly"] = {} -grulesobj["n+s/d"]["mcon"] = {} -grulesobj["n+s/d"]["met1"] = {} -grulesobj["n+s/d"]["via1"] = {} -grulesobj["n+s/d"]["met2"] = {} -grulesobj["n+s/d"]["via2"] = {} -grulesobj["n+s/d"]["met3"] = {} -grulesobj["n+s/d"]["via3"] = {} -grulesobj["n+s/d"]["met4"] = {} -grulesobj["active_diff"]["dnwell"] = {} -grulesobj["active_diff"]["pwell"] = {} -grulesobj["active_diff"]["nwell"] = {} -grulesobj["active_diff"]["p+s/d"] = {} -grulesobj["active_diff"]["n+s/d"] = {} -grulesobj["active_diff"]["active_diff"] = {"min_width": 0.15, "min_separation": 0.27} -grulesobj["active_diff"]["active_tap"] = {"min_separation": 0.27} -grulesobj["active_diff"]["poly"] = {"overhang": 0.25} -grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.06} -grulesobj["active_diff"]["met1"] = {} -grulesobj["active_diff"]["via1"] = {} -grulesobj["active_diff"]["met2"] = {} -grulesobj["active_diff"]["via2"] = {} -grulesobj["active_diff"]["met3"] = {} -grulesobj["active_diff"]["via3"] = {} -grulesobj["active_diff"]["met4"] = {} -grulesobj["active_tap"]["dnwell"] = {} -grulesobj["active_tap"]["pwell"] = {} -grulesobj["active_tap"]["nwell"] = {} -grulesobj["active_tap"]["p+s/d"] = {} -grulesobj["active_tap"]["n+s/d"] = {} -grulesobj["active_tap"]["active_diff"] = {} -grulesobj["active_tap"]["active_tap"] = {"min_width": 0.15, "min_separation": 0.27} -grulesobj["active_tap"]["poly"] = {} -grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.12} -grulesobj["active_tap"]["met1"] = {} -grulesobj["active_tap"]["via1"] = {} -grulesobj["active_tap"]["met2"] = {} -grulesobj["active_tap"]["via2"] = {} -grulesobj["active_tap"]["met3"] = {} -grulesobj["active_tap"]["via3"] = {} -grulesobj["active_tap"]["met4"] = {} -grulesobj["poly"]["dnwell"] = {} -grulesobj["poly"]["pwell"] = {} -grulesobj["poly"]["nwell"] = {} -grulesobj["poly"]["p+s/d"] = {} -grulesobj["poly"]["n+s/d"] = {} -grulesobj["poly"]["active_diff"] = {} -grulesobj["poly"]["active_tap"] = {} -grulesobj["poly"]["poly"] = { - "min_width": 0.15, - "min_separation": 0.21, - "extension": 0.13, -} -grulesobj["poly"]["mcon"] = {"min_enclosure": 0.05, "min_separation": 0.06} -grulesobj["poly"]["met1"] = {} -grulesobj["poly"]["via1"] = {} -grulesobj["poly"]["met2"] = {} -grulesobj["poly"]["via2"] = {} -grulesobj["poly"]["met3"] = {} -grulesobj["poly"]["via3"] = {} -grulesobj["poly"]["met4"] = {} -grulesobj["mcon"]["dnwell"] = {} -grulesobj["mcon"]["pwell"] = {} -grulesobj["mcon"]["nwell"] = {} -grulesobj["mcon"]["p+s/d"] = {} -grulesobj["mcon"]["n+s/d"] = {} -grulesobj["mcon"]["active_diff"] = {} -grulesobj["mcon"]["active_tap"] = {} -grulesobj["mcon"]["poly"] = {} -grulesobj["mcon"]["mcon"] = {"min_width": 0.17, "min_separation": 0.17, "width": 0.17} -grulesobj["mcon"]["met1"] = {"min_enclosure": 0.08} -grulesobj["mcon"]["via1"] = {} -grulesobj["mcon"]["met2"] = {} -grulesobj["mcon"]["via2"] = {} -grulesobj["mcon"]["met3"] = {} -grulesobj["mcon"]["via3"] = {} -grulesobj["mcon"]["met4"] = {} -grulesobj["met1"]["dnwell"] = {} -grulesobj["met1"]["pwell"] = {} -grulesobj["met1"]["nwell"] = {} -grulesobj["met1"]["p+s/d"] = {} -grulesobj["met1"]["n+s/d"] = {} -grulesobj["met1"]["active_diff"] = {} -grulesobj["met1"]["active_tap"] = {} -grulesobj["met1"]["poly"] = {} -grulesobj["met1"]["mcon"] = {} -grulesobj["met1"]["met1"] = {"min_width": 0.17, "min_separation": 0.17} -grulesobj["met1"]["via1"] = {"min_enclosure": 0.0} -grulesobj["met1"]["met2"] = {} -grulesobj["met1"]["via2"] = {} -grulesobj["met1"]["met3"] = {} -grulesobj["met1"]["via3"] = {} -grulesobj["met1"]["met4"] = {} -grulesobj["via1"]["dnwell"] = {} -grulesobj["via1"]["pwell"] = {} -grulesobj["via1"]["nwell"] = {} -grulesobj["via1"]["p+s/d"] = {} -grulesobj["via1"]["n+s/d"] = {} -grulesobj["via1"]["active_diff"] = {} -grulesobj["via1"]["active_tap"] = {} -grulesobj["via1"]["poly"] = {} -grulesobj["via1"]["mcon"] = {} -grulesobj["via1"]["met1"] = {} -grulesobj["via1"]["via1"] = {"min_width": 0.17, "min_separation": 0.19, "width": 0.17} -grulesobj["via1"]["met2"] = {"min_enclosure": 0.06} -grulesobj["via1"]["via2"] = {} -grulesobj["via1"]["met3"] = {} -grulesobj["via1"]["via3"] = {} -grulesobj["via1"]["met4"] = {} -grulesobj["met2"]["dnwell"] = {} -grulesobj["met2"]["pwell"] = {} -grulesobj["met2"]["nwell"] = {} -grulesobj["met2"]["p+s/d"] = {} -grulesobj["met2"]["n+s/d"] = {} -grulesobj["met2"]["active_diff"] = {} -grulesobj["met2"]["active_tap"] = {} -grulesobj["met2"]["poly"] = {} -grulesobj["met2"]["mcon"] = {} -grulesobj["met2"]["met1"] = {} -grulesobj["met2"]["via1"] = {} -grulesobj["met2"]["met2"] = {"min_width": 0.14, "min_separation": 0.14} -grulesobj["met2"]["via2"] = {"min_enclosure": 0.14} -grulesobj["met2"]["met3"] = {} -grulesobj["met2"]["via3"] = {} -grulesobj["met2"]["met4"] = {} -grulesobj["via2"]["dnwell"] = {} -grulesobj["via2"]["pwell"] = {} -grulesobj["via2"]["nwell"] = {} -grulesobj["via2"]["p+s/d"] = {} -grulesobj["via2"]["n+s/d"] = {} -grulesobj["via2"]["active_diff"] = {} -grulesobj["via2"]["active_tap"] = {} -grulesobj["via2"]["poly"] = {} -grulesobj["via2"]["mcon"] = {} -grulesobj["via2"]["met1"] = {} -grulesobj["via2"]["via1"] = {} -grulesobj["via2"]["met2"] = {} -grulesobj["via2"]["via2"] = {"min_width": 0.21, "min_separation": 0.17, "width": 0.15} -grulesobj["via2"]["met3"] = {"min_enclosure": 0.09} -grulesobj["via2"]["via3"] = {} -grulesobj["via2"]["met4"] = {} -grulesobj["met3"]["dnwell"] = {} -grulesobj["met3"]["pwell"] = {} -grulesobj["met3"]["nwell"] = {} -grulesobj["met3"]["p+s/d"] = {} -grulesobj["met3"]["n+s/d"] = {} -grulesobj["met3"]["active_diff"] = {} -grulesobj["met3"]["active_tap"] = {} -grulesobj["met3"]["poly"] = {} -grulesobj["met3"]["mcon"] = {} -grulesobj["met3"]["met1"] = {} -grulesobj["met3"]["via1"] = {} -grulesobj["met3"]["met2"] = {} -grulesobj["met3"]["via2"] = {} -grulesobj["met3"]["met3"] = {"min_width": 0.14, "min_separation": 0.14} -grulesobj["met3"]["via3"] = {} -grulesobj["met3"]["met4"] = {} -grulesobj["via3"]["dnwell"] = {} -grulesobj["via3"]["pwell"] = {} -grulesobj["via3"]["nwell"] = {} -grulesobj["via3"]["p+s/d"] = {} -grulesobj["via3"]["n+s/d"] = {} -grulesobj["via3"]["active_diff"] = {} -grulesobj["via3"]["active_tap"] = {} -grulesobj["via3"]["poly"] = {} -grulesobj["via3"]["mcon"] = {} -grulesobj["via3"]["met1"] = {} -grulesobj["via3"]["via1"] = {} -grulesobj["via3"]["met2"] = {} -grulesobj["via3"]["via2"] = {} -grulesobj["via3"]["met3"] = {} -grulesobj["via3"]["via3"] = {"min_width": 0.2, "min_separation": 0.2, "width": 0.2} -grulesobj["via3"]["met4"] = {"min_enclosure": 0.65} -grulesobj["met4"]["dnwell"] = {} -grulesobj["met4"]["pwell"] = {} -grulesobj["met4"]["nwell"] = {} -grulesobj["met4"]["p+s/d"] = {} -grulesobj["met4"]["n+s/d"] = {} -grulesobj["met4"]["active_diff"] = {} -grulesobj["met4"]["active_tap"] = {} -grulesobj["met4"]["poly"] = {} -grulesobj["met4"]["mcon"] = {} -grulesobj["met4"]["met1"] = {} -grulesobj["met4"]["via1"] = {} -grulesobj["met4"]["met2"] = {} -grulesobj["met4"]["via2"] = {} -grulesobj["met4"]["met3"] = {} -grulesobj["met4"]["via3"] = {} -grulesobj["met4"]["met4"] = {"min_width": 0.3, "min_separation": 0.3} sky130_mapped_pdk = MappedPDK.from_gf_pdk( sky130.PDK, diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py b/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py index f26880169..c7de6b9d9 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py @@ -15,15 +15,28 @@ def split_rule(rule: str) -> tuple: """Accepts a rule in the expected format and splits into rule name and float value""" if (rule != "") and (not "," in rule): raise ValueError("rule may be formatted wrong " + rule) - rule = rule.replace(" ", "").split(",")[-1] + rule = rule.replace(" ", "").split(",",maxsplit=1)[-1] rtr = rule.split("=") if len(rtr) != 2: rtr.append("*****FIXTHIS!!!MANUALLY!*****") + elif "," in rtr[1]: + strlist = rtr[1].replace("(","").replace(")","").split(",") + rtr[1] = tuple([int(layint) for layint in strlist]) else: rtr[1] = float(rtr[1]) return tuple(rtr) +def __str_rules(groupdata: tuple, group: list, glayers: list) -> str: + """appends the rules in groupdata to output""" + group_rules = str() + for edgenum, edge in enumerate(groupdata): + group_rules += 'grulesobj["' + group[1] + '"]' + group_rules += '["' + glayers[edgenum] + '"] = ' + str(edge) + group_rules += "\n" + return group_rules + + def create_ruledeck_python_dictionary_definition(csvtoread: Path): if not csvtoread.is_file(): raise RuntimeError("csv to read must be a file") @@ -52,7 +65,6 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): if colnum == 0: continue groupdata.append(dict()) - for colnum, col in enumerate(row): if colnum == 0: continue @@ -60,29 +72,14 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): continue key_val_pair = split_rule(col) groupdata[colnum - 1][key_val_pair[0]] = key_val_pair[1] - # finished with the group so + # finished with the group if group[0] == 2: # last in group - for edgenum, edge in enumerate(groupdata): - output += ( - 'grulesobj["' - + group[1] - + '"]["' - + glayers[edgenum] - + '"] = ' - + str(edge) - ) + "\n" + output += __str_rules(groupdata,group,glayers) # update group index group[0] = (group[0] + 1) % 3 # incase missed last group print one more time - for edgenum, edge in enumerate(groupdata): - output += ( - 'grulesobj["' - + group[1] - + '"]["' - + glayers[edgenum] - + '"] = ' - + str(edge) - ) + "\n" + last_grp_rules = __str_rules(groupdata,group,glayers) + output += "\n" if last_grp_rules in output else last_grp_rules return output @@ -92,8 +89,19 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): parser = ArgumentParser( prog="print rules", description="read rule deck we have saved in google sheets" ) - parser.add_argument("-f", "--file") + parser.add_argument("-f", "--file",help="path of csv file to read") + parser.add_argument("-c", "--code",action='store_true',help="true/false write python file to current dir") args = parser.parse_args() csvtoread = Path(args.file).resolve() output = create_ruledeck_python_dictionary_definition(csvtoread) print(output) + if args.code: + append_front = """from PDK.mappedpdk import MappedPDK\n +grulesobj = dict() +for glayer in MappedPDK.valid_glayers: + grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers)\n +""" + output = append_front + output + with open("grules.py", "w") as outputpy: + outputpy.write(output) + diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py index 908eda336..75c92a3bd 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -717,5 +717,5 @@ def diff_pair(pdk, mult=3, fingers=3, cell_height=0.67) -> Component: if __name__ == "__main__": from PDK.util.standard_main import pdk - Top_cell = diff_pair(pdk, mult=2, fingers=8, cell_height=1.34) + Top_cell = diff_pair(pdk, mult=2, fingers=4, cell_height=1.34) Top_cell.show() diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 0cb4069d2..882a0b031 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -1,3 +1,4 @@ +from gdsfactory.grid import grid from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle @@ -18,6 +19,20 @@ def multiplier( dummy: Optional[Union[bool, tuple[bool, bool]]] = True, length: Optional[float] = None, ) -> Component: + """Generic poly/sd vias generator + args: + pdk = pdk to use + sdlayer = either p+s/d for pmos or n+s/d for nmos + width = expands the transistor in the y direction + fingers = introduces additional fingers (sharing s/d) of width=width + routing = true or false, specfies if sd should be connected + dummy = true or false add dummy active/plus doped regions + length = transitor length (if left None defaults to min length) + ports (one port for each edge): + gate_... all edges (top met route of gate connection) + source_...all edges (top met route of source connections) + drain_...all edges (top met route of drain connections) + """ # error checking if "+s/d" not in sdlayer: raise ValueError("specify + doped region for multiplier") @@ -91,9 +106,10 @@ def multiplier( rectangle(size=routedims, layer=pdk.get_glayer("poly"), centered=True) ) routedims[1] = 2 * via_stack(pdk, "poly", "met2").ymax - gate_route << via_array(pdk, "poly", "met2", size=routedims) + g_conref = gate_route << via_array(pdk, "poly", "met2", size=routedims) gate_route_ref = multiplier << gate_route gate_route_ref.movey(-0.5 * (poly_height + gate_route_width + routing_pfac)) + multiplier.add_ports(gate_route_ref.get_ports_list(),prefix="gate_") # source and drain routing sw_corner_os = [ fingerarray_ref.xmin + viasize / 2, @@ -123,9 +139,11 @@ def multiplier( sd_met2_connect = rectangle( layer=pdk.get_glayer("met2"), size=met2route_dims, centered=True ) - for m2offset in [sw_corner_os[1], met2_ext.ymax - sdvia.ymax]: + prefix = ["source_", "drain_"] + for i, mof in enumerate([sw_corner_os[1], met2_ext.ymax - sdvia.ymax]): m2ref = multiplier << sd_met2_connect - m2ref.movey(m2offset) + m2ref.movey(mof) + multiplier.add_ports(m2ref.get_ports_list(),prefix=prefix[i]) # create dummy regions if isinstance(dummy, bool): dummyl = dummy @@ -182,10 +200,13 @@ def __mult_array_macro( + multiplier_comp.ymax - multiplier_comp.ymin ) - multiplier_arr.add_array( - multiplier_comp, columns=1, rows=multipliers, spacing=(1, multiplier_separation) - ) - return multiplier_arr + ref_displacment = multiplier_separation + multiplier_comp.ymax - multiplier_comp.ymin + for rownum in range(multipliers): + row_displacment = rownum * ref_displacment + row_ref = multiplier_arr << multiplier_comp + row_ref.movey(ref_displacment) + multiplier_arr.add_ports(row_ref.get_ports_list(), prefix="multiplier_"+str(rownum)+"_") + return multiplier_arr.flatten() @cell @@ -200,7 +221,7 @@ def nmos( with_substrate_tap: Optional[bool] = True, length: Optional[float] = None, ) -> Component: - """Generic NMOS generator: uses minumum length without deep nwell + """Generic NMOS generator width = expands the NMOS in the y direction fingers = introduces additional fingers (sharing source/drain) of width=width with_tie = true or false, specfies if a bulk tie is required @@ -214,7 +235,9 @@ def nmos( multiplier_arr = __mult_array_macro( pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length ) - nfet.add(multiplier_arr.ref_center()) + multiplier_arr_ref = multiplier_arr.ref_center() + nfet.add(multiplier_arr_ref) + nfet.add_ports(multiplier_arr_ref.get_ports_list()) # add tie if tie if with_tie: tap_separation = max( @@ -276,8 +299,8 @@ def pmos( with_substrate_tap: Optional[bool] = True, length: Optional[float] = None, ) -> Component: - """Generic NMOS generator: uses minumum length without deep nwell - width = expands the NMOS in the y direction + """Generic PMOS generator + width = expands the PMOS in the y direction fingers = introduces additional fingers (sharing source/drain) of width=width with_tie = true or false, specfies if a bulk tie is required """ @@ -290,7 +313,9 @@ def pmos( multiplier_arr = __mult_array_macro( pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length ) - pfet.add(multiplier_arr.ref_center()) + multiplier_arr_ref = multiplier_arr.ref_center() + pfet.add(multiplier_arr_ref) + pfet.add_ports(multiplier_arr_ref.get_ports_list()) # add tie if tie if with_tie: tap_separation = max( @@ -339,4 +364,7 @@ def pmos( if __name__ == "__main__": from PDK.util.standard_main import pdk - pmos(pdk, fingers=8, with_dummy=True).show() + mytransistor = nmos(pdk, fingers=8, with_dummy=True) + mytransistor.show() + for key in mytransistor.ports.keys(): + print(key) diff --git a/openfasoc/generators/gdsfactory-gen/mimcap.py b/openfasoc/generators/gdsfactory-gen/mimcap.py index 0afb32e03..888aa9a8e 100644 --- a/openfasoc/generators/gdsfactory-gen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/mimcap.py @@ -3,21 +3,39 @@ from gdsfactory.components.rectangle import rectangle from PDK.mappedpdk import MappedPDK from typing import Optional +from via_gen import via_array @cell def mimcap( - pdk: MappedPDK, size=(5.0, 5.0), routing: Optional[bool] = False + pdk: MappedPDK, size=(5.0, 5.0), route_layer: Optional[str]="met4" ) -> Component: """create a mimcap args: pdk=pdk to use size=tuple(float,float) size of cap ****Note: size is the size of the capmet layer + ports: + top_met_...all edges, this is the metal over the capmet """ - pdk.has_required_glayers(["capmet", "capbottommet", "captopmet", "capvia"]) + # get cap layers and run error checking + pdk.has_required_glayers(["capmet",route_layer]) + capmettop = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmettop"]) + capmetbottom = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmetbottom"]) pdk.activate() + # create top component mim_cap = Component() mim_cap << rectangle(size=size, layer=pdk.get_glayer("capmet"), centered=True) - # TODO: implement - return mim_cap.flatten() + top_met_ref = mim_cap << via_array(pdk,capmetbottom,capmettop,size=size,minus1=True) + # flatten and create ports + mim_cap.add_ports(top_met_ref.get_ports_list()) + mim_cap = mim_cap.flatten() + return mim_cap + +if __name__ == "__main__": + from PDK.util.standard_main import pdk + + mycap = mimcap(pdk) + mycap.show() + for portname in mycap.ports.keys(): + print(portname) diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 59c578634..03dd7f518 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -123,6 +123,10 @@ def opamp( halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax)) # finish place ydim_ncomps = opamp_top.ymax - opamp_top.ymin + pmos_comps.add_padding(layers=[pdk.get_glayer("nwell")],default=pdk.get_grule("nwell","active_tap")["min_enclosure"]) + #tapcenter_rect = [2*pmos_comps.xmax+pdk.get_grule("nwell","active_tap")["min_separation"], 2*pmos_comps.ymax+pdk.get_grule("nwell","active_tap")["min_separation"]] + tapcenter_rect = [2*pmos_comps.xmax+1, 2*pmos_comps.ymax+1] + pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") pmos_comps_ref = opamp_top << pmos_comps pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax) # route diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 18938661f..3067c3c03 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -35,33 +35,39 @@ def via_stack( glayer2: str is the glayer to end on ****NOTE it does not matter what order you pass layers ****NOTE will not lay poly or active but will lay metals + ports (one port for each edge): + top_met_...all edges + bottom_via_...all edges + bottom_met_...all edges """ level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) viastack = Component() # if same level return empty component if level1 == level2: return viastack + #topmet,bottomvia,bottommet, finalized?,what are they + port_refs = [[False,None],[False,None],[False,None]] # lay mcon if first layer is active or poly if not level1: pdk.has_required_glayers(["mcon", "met1"]) mcondim = pdk.get_grule("mcon")["width"] - viastack << rectangle( + port_refs[1][1] = viastack << rectangle( size=(mcondim, mcondim), layer=pdk.get_glayer("mcon"), centered=True ) metdim = max( 2 * pdk.get_grule("met1", "mcon")["min_enclosure"] + mcondim, pdk.get_grule("met1")["min_width"], ) - viastack << rectangle( + port_refs[2][1] = viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer("met1"), centered=True ) - # add one to level1 (make it a metal) so we can use the code below - level1 += 1 - # check if layers are now same - if level1 == level2: - return viastack.flatten() - # construct metal stack if both are metals - if level1 and level2: + port_refs[1][0] = True + port_refs[2][0] = True + level1 += 1 # make bottom met so we can use code below + if level1 == level2: # re-check same layer + port_refs[0][1] = port_refs[2][1] + port_refs[0][0] = True + elif level1 and level2: # construct metal stack if both are metals for level in range(level1, level2): gmetlayer = "met" + str(level) gnextvia = "via" + str(level) @@ -71,13 +77,19 @@ def via_stack( + pdk.get_grule(gnextvia)["width"], pdk.get_grule(gmetlayer)["min_width"], ) - viastack << rectangle( + metref = viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer(gmetlayer), centered=True ) viadim = pdk.get_grule(gnextvia)["width"] - viastack << rectangle( + viaref = viastack << rectangle( size=(viadim, viadim), layer=pdk.get_glayer(gnextvia), centered=True ) + if not port_refs[2][0]: + port_refs[2][1] = metref + port_refs[2][0] = True + if not port_refs[1][0]: + port_refs[1][1] = viaref + port_refs[1][0] = True gfinalmet = "met" + str(level2) gprevvia = "via" + str(level) metdim = max( @@ -85,13 +97,18 @@ def via_stack( + pdk.get_grule(gprevvia)["width"], pdk.get_grule(gfinalmet)["min_width"], ) - viastack << rectangle( + port_refs[0][1] = viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer(gfinalmet), centered=True ) + # add ports and implement center option + pre = ["top_met_","bottom_via_","bottom_met_"] + for i in range(3): + viastack.add_ports(port_refs[1][1].get_ports_list(),prefix=pre[i]) center_stack = Component() viastack_ref = center_stack << viastack if not centered: viastack_ref.movex(viastack.xmax).movey(viastack.ymax) + center_stack.add_ports(viastack_ref.get_ports_list()) return center_stack.flatten() @@ -112,6 +129,8 @@ def via_array( ****NOTE will not lay poly or active but will lay metals size: tuple is the (width, hieght) of the area to enclose ****NOTE: the size will be the dimensions of the top metal + ports (one port for each edge): + top_met_...all edges """ level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) viaarray = Component() @@ -158,7 +177,8 @@ def via_array( array_ref.movey(center_offsety) # place top metal and return top_met_layer = pdk.get_glayer("met" + str(level2)) - viaarray << rectangle(size=size, layer=top_met_layer, centered=True) + mref = viaarray << rectangle(size=size, layer=top_met_layer, centered=True) + viaarray.add_ports(mref.get_ports_list(),prefix="top_met_") return viaarray.flatten() @@ -169,7 +189,9 @@ def via_array( test_all = False if not test_all: - via_array(pdk, "active_diff", "met3").show() + myarray = via_array(pdk, "active_diff", "met3") + myarray.show() + print(myarray.ports) exit(0) layers = ["poly", "met1", "met2", "met3"] From dfd3d7dc14d762c39ba1f62517d54efe8d37655c Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 3 Jul 2023 02:16:11 -0400 Subject: [PATCH 09/64] gdsfactory-gen: mimcap and print_rules code print switch --- .../gdsfactory-gen/PDK/mappedpdk.py | 4 +- .../PDK/sky130_mapped/grules.py | 85 ++++++++++--------- .../PDK/sky130_mapped/sky130_mapped.py | 1 - .../gdsfactory-gen/PDK/util/print_rules.py | 18 ++-- openfasoc/generators/gdsfactory-gen/fet.py | 12 ++- openfasoc/generators/gdsfactory-gen/mimcap.py | 11 ++- openfasoc/generators/gdsfactory-gen/opamp.py | 9 +- .../generators/gdsfactory-gen/via_gen.py | 16 ++-- 8 files changed, 86 insertions(+), 70 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py index d942f9586..276d53a39 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py @@ -136,12 +136,12 @@ def has_required_glayers(self, layers_required: list[str]): ) self.validate_layers([self.glayers[layer]]) - def layer_to_glayer(self, layer: tuple[int,int]) -> str: + def layer_to_glayer(self, layer: tuple[int, int]) -> str: """if layer provided corresponds to a glayer, will return a glayer else will raise an exception takes layer as a tuple(int,int)""" # lambda for finding last matching key in dict from val - find_last = lambda val, d : [x for x,y in d.items() if y==val].pop() + find_last = lambda val, d: [x for x, y in d.items() if y == val].pop() # find glayer verfying presence along the way pdk_real_layers = self.layers.values() if layer in pdk_real_layers: diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py index 4028ef40f..34dfae03b 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py @@ -4,13 +4,13 @@ for glayer in MappedPDK.valid_glayers: grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) -grulesobj["dnwell"]["dnwell"] = {'min_width': 3.0, 'min_separation': 6.3} -grulesobj["dnwell"]["pwell"] = {'min_enclosure': 0.0} -grulesobj["dnwell"]["nwell"] = {'min_separation': 4.5} +grulesobj["dnwell"]["dnwell"] = {"min_width": 3.0, "min_separation": 6.3} +grulesobj["dnwell"]["pwell"] = {"min_enclosure": 0.0} +grulesobj["dnwell"]["nwell"] = {"min_separation": 4.5} grulesobj["dnwell"]["p+s/d"] = {} grulesobj["dnwell"]["n+s/d"] = {} grulesobj["dnwell"]["active_diff"] = {} -grulesobj["dnwell"]["active_tap"] = {'min_separation': 0.34} +grulesobj["dnwell"]["active_tap"] = {"min_separation": 0.34} grulesobj["dnwell"]["poly"] = {} grulesobj["dnwell"]["mcon"] = {} grulesobj["dnwell"]["met1"] = {} @@ -29,7 +29,7 @@ grulesobj["pwell"]["p+s/d"] = {} grulesobj["pwell"]["n+s/d"] = {} grulesobj["pwell"]["active_diff"] = {} -grulesobj["pwell"]["active_tap"] = {'min_enclosure': 0.18} +grulesobj["pwell"]["active_tap"] = {"min_enclosure": 0.18} grulesobj["pwell"]["poly"] = {} grulesobj["pwell"]["mcon"] = {} grulesobj["pwell"]["met1"] = {} @@ -44,11 +44,11 @@ grulesobj["pwell"]["capmet"] = {} grulesobj["nwell"]["dnwell"] = {} grulesobj["nwell"]["pwell"] = {} -grulesobj["nwell"]["nwell"] = {'min_width': 0.84, 'min_sepeartion': 1.27} +grulesobj["nwell"]["nwell"] = {"min_width": 0.84, "min_sepeartion": 1.27} grulesobj["nwell"]["p+s/d"] = {} grulesobj["nwell"]["n+s/d"] = {} grulesobj["nwell"]["active_diff"] = {} -grulesobj["nwell"]["active_tap"] = {'min_enclosure': 0.18} +grulesobj["nwell"]["active_tap"] = {"min_enclosure": 0.18} grulesobj["nwell"]["poly"] = {} grulesobj["nwell"]["mcon"] = {} grulesobj["nwell"]["met1"] = {} @@ -64,10 +64,10 @@ grulesobj["p+s/d"]["dnwell"] = {} grulesobj["p+s/d"]["pwell"] = {} grulesobj["p+s/d"]["nwell"] = {} -grulesobj["p+s/d"]["p+s/d"] = {'min_width': 0.38, 'min_separation': 0.38} +grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.38, "min_separation": 0.38} grulesobj["p+s/d"]["n+s/d"] = {} -grulesobj["p+s/d"]["active_diff"] = {'min_enclosure': 0.13, 'min_separation': 0.13} -grulesobj["p+s/d"]["active_tap"] = {'min_enclosure': 0.13, 'min_separation': 0.13} +grulesobj["p+s/d"]["active_diff"] = {"min_enclosure": 0.13, "min_separation": 0.13} +grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.13, "min_separation": 0.13} grulesobj["p+s/d"]["poly"] = {} grulesobj["p+s/d"]["mcon"] = {} grulesobj["p+s/d"]["met1"] = {} @@ -84,9 +84,9 @@ grulesobj["n+s/d"]["pwell"] = {} grulesobj["n+s/d"]["nwell"] = {} grulesobj["n+s/d"]["p+s/d"] = {} -grulesobj["n+s/d"]["n+s/d"] = {'min_width': 0.38, 'min_separation': 0.38} -grulesobj["n+s/d"]["active_diff"] = {'min_enclosure': 0.13, 'min_separation': 0.13} -grulesobj["n+s/d"]["active_tap"] = {'min_enclosure': 0.13, 'min_separation': 0.13} +grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.38, "min_separation": 0.38} +grulesobj["n+s/d"]["active_diff"] = {"min_enclosure": 0.13, "min_separation": 0.13} +grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.13, "min_separation": 0.13} grulesobj["n+s/d"]["poly"] = {} grulesobj["n+s/d"]["mcon"] = {} grulesobj["n+s/d"]["met1"] = {} @@ -104,10 +104,10 @@ grulesobj["active_diff"]["nwell"] = {} grulesobj["active_diff"]["p+s/d"] = {} grulesobj["active_diff"]["n+s/d"] = {} -grulesobj["active_diff"]["active_diff"] = {'min_width': 0.15, 'min_separation': 0.27} -grulesobj["active_diff"]["active_tap"] = {'min_separation': 0.27} -grulesobj["active_diff"]["poly"] = {'overhang': 0.25} -grulesobj["active_diff"]["mcon"] = {'min_enclosure': 0.06} +grulesobj["active_diff"]["active_diff"] = {"min_width": 0.15, "min_separation": 0.27} +grulesobj["active_diff"]["active_tap"] = {"min_separation": 0.27} +grulesobj["active_diff"]["poly"] = {"overhang": 0.25} +grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.06} grulesobj["active_diff"]["met1"] = {} grulesobj["active_diff"]["via1"] = {} grulesobj["active_diff"]["met2"] = {} @@ -124,9 +124,9 @@ grulesobj["active_tap"]["p+s/d"] = {} grulesobj["active_tap"]["n+s/d"] = {} grulesobj["active_tap"]["active_diff"] = {} -grulesobj["active_tap"]["active_tap"] = {'min_width': 0.15, 'min_separation': 0.27} +grulesobj["active_tap"]["active_tap"] = {"min_width": 0.15, "min_separation": 0.27} grulesobj["active_tap"]["poly"] = {} -grulesobj["active_tap"]["mcon"] = {'min_enclosure': 0.12} +grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.12} grulesobj["active_tap"]["met1"] = {} grulesobj["active_tap"]["via1"] = {} grulesobj["active_tap"]["met2"] = {} @@ -144,8 +144,12 @@ grulesobj["poly"]["n+s/d"] = {} grulesobj["poly"]["active_diff"] = {} grulesobj["poly"]["active_tap"] = {} -grulesobj["poly"]["poly"] = {'min_width': 0.15, 'min_separation': 0.21, 'extension': 0.13} -grulesobj["poly"]["mcon"] = {'min_enclosure': 0.05, 'min_separation': 0.06} +grulesobj["poly"]["poly"] = { + "min_width": 0.15, + "min_separation": 0.21, + "extension": 0.13, +} +grulesobj["poly"]["mcon"] = {"min_enclosure": 0.05, "min_separation": 0.06} grulesobj["poly"]["met1"] = {} grulesobj["poly"]["via1"] = {} grulesobj["poly"]["met2"] = {} @@ -164,8 +168,8 @@ grulesobj["mcon"]["active_diff"] = {} grulesobj["mcon"]["active_tap"] = {} grulesobj["mcon"]["poly"] = {} -grulesobj["mcon"]["mcon"] = {'min_width': 0.17, 'min_separation': 0.17, 'width': 0.17} -grulesobj["mcon"]["met1"] = {'min_enclosure': 0.08} +grulesobj["mcon"]["mcon"] = {"min_width": 0.17, "min_separation": 0.17, "width": 0.17} +grulesobj["mcon"]["met1"] = {"min_enclosure": 0.08} grulesobj["mcon"]["via1"] = {} grulesobj["mcon"]["met2"] = {} grulesobj["mcon"]["via2"] = {} @@ -184,8 +188,8 @@ grulesobj["met1"]["active_tap"] = {} grulesobj["met1"]["poly"] = {} grulesobj["met1"]["mcon"] = {} -grulesobj["met1"]["met1"] = {'min_width': 0.17, 'min_separation': 0.17} -grulesobj["met1"]["via1"] = {'min_enclosure': 0.0} +grulesobj["met1"]["met1"] = {"min_width": 0.17, "min_separation": 0.17} +grulesobj["met1"]["via1"] = {"min_enclosure": 0.0} grulesobj["met1"]["met2"] = {} grulesobj["met1"]["via2"] = {} grulesobj["met1"]["met3"] = {} @@ -204,8 +208,8 @@ grulesobj["via1"]["poly"] = {} grulesobj["via1"]["mcon"] = {} grulesobj["via1"]["met1"] = {} -grulesobj["via1"]["via1"] = {'min_width': 0.17, 'min_separation': 0.19, 'width': 0.17} -grulesobj["via1"]["met2"] = {'min_enclosure': 0.06} +grulesobj["via1"]["via1"] = {"min_width": 0.17, "min_separation": 0.19, "width": 0.17} +grulesobj["via1"]["met2"] = {"min_enclosure": 0.06} grulesobj["via1"]["via2"] = {} grulesobj["via1"]["met3"] = {} grulesobj["via1"]["via3"] = {} @@ -224,8 +228,8 @@ grulesobj["met2"]["mcon"] = {} grulesobj["met2"]["met1"] = {} grulesobj["met2"]["via1"] = {} -grulesobj["met2"]["met2"] = {'min_width': 0.14, 'min_separation': 0.14} -grulesobj["met2"]["via2"] = {'min_enclosure': 0.14} +grulesobj["met2"]["met2"] = {"min_width": 0.14, "min_separation": 0.14} +grulesobj["met2"]["via2"] = {"min_enclosure": 0.14} grulesobj["met2"]["met3"] = {} grulesobj["met2"]["via3"] = {} grulesobj["met2"]["met4"] = {} @@ -244,8 +248,8 @@ grulesobj["via2"]["met1"] = {} grulesobj["via2"]["via1"] = {} grulesobj["via2"]["met2"] = {} -grulesobj["via2"]["via2"] = {'min_width': 0.21, 'min_separation': 0.17, 'width': 0.15} -grulesobj["via2"]["met3"] = {'min_enclosure': 0.09} +grulesobj["via2"]["via2"] = {"min_width": 0.21, "min_separation": 0.17, "width": 0.15} +grulesobj["via2"]["met3"] = {"min_enclosure": 0.09} grulesobj["via2"]["via3"] = {} grulesobj["via2"]["met4"] = {} grulesobj["via2"]["via4"] = {} @@ -264,7 +268,7 @@ grulesobj["met3"]["via1"] = {} grulesobj["met3"]["met2"] = {} grulesobj["met3"]["via2"] = {} -grulesobj["met3"]["met3"] = {'min_width': 0.14, 'min_separation': 0.14} +grulesobj["met3"]["met3"] = {"min_width": 0.14, "min_separation": 0.14} grulesobj["met3"]["via3"] = {} grulesobj["met3"]["met4"] = {} grulesobj["met3"]["via4"] = {} @@ -284,8 +288,8 @@ grulesobj["via3"]["met2"] = {} grulesobj["via3"]["via2"] = {} grulesobj["via3"]["met3"] = {} -grulesobj["via3"]["via3"] = {'min_width': 0.2, 'min_separation': 0.2, 'width': 0.2} -grulesobj["via3"]["met4"] = {'min_enclosure': 0.65} +grulesobj["via3"]["via3"] = {"min_width": 0.2, "min_separation": 0.2, "width": 0.2} +grulesobj["via3"]["met4"] = {"min_enclosure": 0.65} grulesobj["via3"]["via4"] = {} grulesobj["via3"]["met5"] = {} grulesobj["via3"]["capmet"] = {} @@ -304,8 +308,8 @@ grulesobj["met4"]["via2"] = {} grulesobj["met4"]["met3"] = {} grulesobj["met4"]["via3"] = {} -grulesobj["met4"]["met4"] = {'min_width': 0.3, 'min_separation': 0.3} -grulesobj["met4"]["via4"] = {'min_enclosure': 0.09} +grulesobj["met4"]["met4"] = {"min_width": 0.3, "min_separation": 0.3} +grulesobj["met4"]["via4"] = {"min_enclosure": 0.09} grulesobj["met4"]["met5"] = {} grulesobj["met4"]["capmet"] = {} grulesobj["via4"]["dnwell"] = {} @@ -324,8 +328,8 @@ grulesobj["via4"]["met3"] = {} grulesobj["via4"]["via3"] = {} grulesobj["via4"]["met4"] = {} -grulesobj["via4"]["via4"] = {'width': 0.2, 'min_separation': 0.35} -grulesobj["via4"]["met5"] = {'min_enclosure': 0.07} +grulesobj["via4"]["via4"] = {"width": 0.2, "min_separation": 0.35} +grulesobj["via4"]["met5"] = {"min_enclosure": 0.07} grulesobj["via4"]["capmet"] = {} grulesobj["met5"]["dnwell"] = {} grulesobj["met5"]["pwell"] = {} @@ -344,7 +348,7 @@ grulesobj["met5"]["via3"] = {} grulesobj["met5"]["met4"] = {} grulesobj["met5"]["via4"] = {} -grulesobj["met5"]["met5"] = {'min_width': 0.3, 'min_separation': 0.3} +grulesobj["met5"]["met5"] = {"min_width": 0.3, "min_separation": 0.3} grulesobj["met5"]["capmet"] = {} grulesobj["capmet"]["dnwell"] = {} grulesobj["capmet"]["pwell"] = {} @@ -364,5 +368,4 @@ grulesobj["capmet"]["met4"] = {} grulesobj["capmet"]["via4"] = {} grulesobj["capmet"]["met5"] = {} -grulesobj["capmet"]["capmet"] = {'capmettop': (71, 20), 'capmetbottom': (70, 20)} - +grulesobj["capmet"]["capmet"] = {"capmettop": (71, 20), "capmetbottom": (70, 20)} diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 14dcd1c0a..79e750916 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -35,7 +35,6 @@ sky130_lydrc_file_path = Path(__file__).resolve().parent / "sky130.lydrc" - sky130_mapped_pdk = MappedPDK.from_gf_pdk( sky130.PDK, sky130_glayer_mapping, diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py b/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py index c7de6b9d9..28ed8b702 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py @@ -15,12 +15,12 @@ def split_rule(rule: str) -> tuple: """Accepts a rule in the expected format and splits into rule name and float value""" if (rule != "") and (not "," in rule): raise ValueError("rule may be formatted wrong " + rule) - rule = rule.replace(" ", "").split(",",maxsplit=1)[-1] + rule = rule.replace(" ", "").split(",", maxsplit=1)[-1] rtr = rule.split("=") if len(rtr) != 2: rtr.append("*****FIXTHIS!!!MANUALLY!*****") elif "," in rtr[1]: - strlist = rtr[1].replace("(","").replace(")","").split(",") + strlist = rtr[1].replace("(", "").replace(")", "").split(",") rtr[1] = tuple([int(layint) for layint in strlist]) else: rtr[1] = float(rtr[1]) @@ -74,11 +74,11 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): groupdata[colnum - 1][key_val_pair[0]] = key_val_pair[1] # finished with the group if group[0] == 2: # last in group - output += __str_rules(groupdata,group,glayers) + output += __str_rules(groupdata, group, glayers) # update group index group[0] = (group[0] + 1) % 3 # incase missed last group print one more time - last_grp_rules = __str_rules(groupdata,group,glayers) + last_grp_rules = __str_rules(groupdata, group, glayers) output += "\n" if last_grp_rules in output else last_grp_rules return output @@ -89,8 +89,13 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): parser = ArgumentParser( prog="print rules", description="read rule deck we have saved in google sheets" ) - parser.add_argument("-f", "--file",help="path of csv file to read") - parser.add_argument("-c", "--code",action='store_true',help="true/false write python file to current dir") + parser.add_argument("-f", "--file", help="path of csv file to read") + parser.add_argument( + "-c", + "--code", + action="store_true", + help="true/false write python file to current dir", + ) args = parser.parse_args() csvtoread = Path(args.file).resolve() output = create_ruledeck_python_dictionary_definition(csvtoread) @@ -104,4 +109,3 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): output = append_front + output with open("grules.py", "w") as outputpy: outputpy.write(output) - diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 882a0b031..987a54d53 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -109,7 +109,7 @@ def multiplier( g_conref = gate_route << via_array(pdk, "poly", "met2", size=routedims) gate_route_ref = multiplier << gate_route gate_route_ref.movey(-0.5 * (poly_height + gate_route_width + routing_pfac)) - multiplier.add_ports(gate_route_ref.get_ports_list(),prefix="gate_") + multiplier.add_ports(gate_route_ref.get_ports_list(), prefix="gate_") # source and drain routing sw_corner_os = [ fingerarray_ref.xmin + viasize / 2, @@ -143,7 +143,7 @@ def multiplier( for i, mof in enumerate([sw_corner_os[1], met2_ext.ymax - sdvia.ymax]): m2ref = multiplier << sd_met2_connect m2ref.movey(mof) - multiplier.add_ports(m2ref.get_ports_list(),prefix=prefix[i]) + multiplier.add_ports(m2ref.get_ports_list(), prefix=prefix[i]) # create dummy regions if isinstance(dummy, bool): dummyl = dummy @@ -200,12 +200,16 @@ def __mult_array_macro( + multiplier_comp.ymax - multiplier_comp.ymin ) - ref_displacment = multiplier_separation + multiplier_comp.ymax - multiplier_comp.ymin + ref_displacment = ( + multiplier_separation + multiplier_comp.ymax - multiplier_comp.ymin + ) for rownum in range(multipliers): row_displacment = rownum * ref_displacment row_ref = multiplier_arr << multiplier_comp row_ref.movey(ref_displacment) - multiplier_arr.add_ports(row_ref.get_ports_list(), prefix="multiplier_"+str(rownum)+"_") + multiplier_arr.add_ports( + row_ref.get_ports_list(), prefix="multiplier_" + str(rownum) + "_" + ) return multiplier_arr.flatten() diff --git a/openfasoc/generators/gdsfactory-gen/mimcap.py b/openfasoc/generators/gdsfactory-gen/mimcap.py index 888aa9a8e..e717865e7 100644 --- a/openfasoc/generators/gdsfactory-gen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/mimcap.py @@ -8,7 +8,7 @@ @cell def mimcap( - pdk: MappedPDK, size=(5.0, 5.0), route_layer: Optional[str]="met4" + pdk: MappedPDK, size=(5.0, 5.0), route_layer: Optional[str] = "met4" ) -> Component: """create a mimcap args: @@ -16,22 +16,25 @@ def mimcap( size=tuple(float,float) size of cap ****Note: size is the size of the capmet layer ports: - top_met_...all edges, this is the metal over the capmet + top_met_...all edges, this is the metal over the capmet """ # get cap layers and run error checking - pdk.has_required_glayers(["capmet",route_layer]) + pdk.has_required_glayers(["capmet", route_layer]) capmettop = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmettop"]) capmetbottom = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmetbottom"]) pdk.activate() # create top component mim_cap = Component() mim_cap << rectangle(size=size, layer=pdk.get_glayer("capmet"), centered=True) - top_met_ref = mim_cap << via_array(pdk,capmetbottom,capmettop,size=size,minus1=True) + top_met_ref = mim_cap << via_array( + pdk, capmetbottom, capmettop, size=size, minus1=True + ) # flatten and create ports mim_cap.add_ports(top_met_ref.get_ports_list()) mim_cap = mim_cap.flatten() return mim_cap + if __name__ == "__main__": from PDK.util.standard_main import pdk diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 03dd7f518..40e262ef6 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -123,9 +123,12 @@ def opamp( halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax)) # finish place ydim_ncomps = opamp_top.ymax - opamp_top.ymin - pmos_comps.add_padding(layers=[pdk.get_glayer("nwell")],default=pdk.get_grule("nwell","active_tap")["min_enclosure"]) - #tapcenter_rect = [2*pmos_comps.xmax+pdk.get_grule("nwell","active_tap")["min_separation"], 2*pmos_comps.ymax+pdk.get_grule("nwell","active_tap")["min_separation"]] - tapcenter_rect = [2*pmos_comps.xmax+1, 2*pmos_comps.ymax+1] + pmos_comps.add_padding( + layers=[pdk.get_glayer("nwell")], + default=pdk.get_grule("nwell", "active_tap")["min_enclosure"], + ) + # tapcenter_rect = [2*pmos_comps.xmax+pdk.get_grule("nwell","active_tap")["min_separation"], 2*pmos_comps.ymax+pdk.get_grule("nwell","active_tap")["min_separation"]] + tapcenter_rect = [2 * pmos_comps.xmax + 1, 2 * pmos_comps.ymax + 1] pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") pmos_comps_ref = opamp_top << pmos_comps pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax) diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 3067c3c03..952fe258f 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -45,8 +45,8 @@ def via_stack( # if same level return empty component if level1 == level2: return viastack - #topmet,bottomvia,bottommet, finalized?,what are they - port_refs = [[False,None],[False,None],[False,None]] + # topmet,bottomvia,bottommet, finalized?,what are they + port_refs = [[False, None], [False, None], [False, None]] # lay mcon if first layer is active or poly if not level1: pdk.has_required_glayers(["mcon", "met1"]) @@ -63,11 +63,11 @@ def via_stack( ) port_refs[1][0] = True port_refs[2][0] = True - level1 += 1 # make bottom met so we can use code below - if level1 == level2: # re-check same layer + level1 += 1 # make bottom met so we can use code below + if level1 == level2: # re-check same layer port_refs[0][1] = port_refs[2][1] port_refs[0][0] = True - elif level1 and level2: # construct metal stack if both are metals + elif level1 and level2: # construct metal stack if both are metals for level in range(level1, level2): gmetlayer = "met" + str(level) gnextvia = "via" + str(level) @@ -101,9 +101,9 @@ def via_stack( size=(metdim, metdim), layer=pdk.get_glayer(gfinalmet), centered=True ) # add ports and implement center option - pre = ["top_met_","bottom_via_","bottom_met_"] + pre = ["top_met_", "bottom_via_", "bottom_met_"] for i in range(3): - viastack.add_ports(port_refs[1][1].get_ports_list(),prefix=pre[i]) + viastack.add_ports(port_refs[1][1].get_ports_list(), prefix=pre[i]) center_stack = Component() viastack_ref = center_stack << viastack if not centered: @@ -178,7 +178,7 @@ def via_array( # place top metal and return top_met_layer = pdk.get_glayer("met" + str(level2)) mref = viaarray << rectangle(size=size, layer=top_met_layer, centered=True) - viaarray.add_ports(mref.get_ports_list(),prefix="top_met_") + viaarray.add_ports(mref.get_ports_list(), prefix="top_met_") return viaarray.flatten() From 5787520467f8e7c3fb81664e862feb2230290961 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 3 Jul 2023 03:12:49 -0400 Subject: [PATCH 10/64] opamp mimcaps --- .../PDK/sky130_mapped/grules.py | 4 +- openfasoc/generators/gdsfactory-gen/fet.py | 9 +-- openfasoc/generators/gdsfactory-gen/opamp.py | 66 ++++++++++++++++++- 3 files changed, 68 insertions(+), 11 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py index 34dfae03b..5aeba9c6b 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py @@ -308,7 +308,7 @@ grulesobj["met4"]["via2"] = {} grulesobj["met4"]["met3"] = {} grulesobj["met4"]["via3"] = {} -grulesobj["met4"]["met4"] = {"min_width": 0.3, "min_separation": 0.3} +grulesobj["met4"]["met4"] = {"min_width": 0.3, "min_separation": 0.4} grulesobj["met4"]["via4"] = {"min_enclosure": 0.09} grulesobj["met4"]["met5"] = {} grulesobj["met4"]["capmet"] = {} @@ -348,7 +348,7 @@ grulesobj["met5"]["via3"] = {} grulesobj["met5"]["met4"] = {} grulesobj["met5"]["via4"] = {} -grulesobj["met5"]["met5"] = {"min_width": 0.3, "min_separation": 0.3} +grulesobj["met5"]["met5"] = {"min_width": 0.3, "min_separation": 0.4} grulesobj["met5"]["capmet"] = {} grulesobj["capmet"]["dnwell"] = {} grulesobj["capmet"]["pwell"] = {} diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 987a54d53..4d25c5bdb 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -200,13 +200,10 @@ def __mult_array_macro( + multiplier_comp.ymax - multiplier_comp.ymin ) - ref_displacment = ( - multiplier_separation + multiplier_comp.ymax - multiplier_comp.ymin - ) for rownum in range(multipliers): - row_displacment = rownum * ref_displacment + row_displacment = rownum * multiplier_separation row_ref = multiplier_arr << multiplier_comp - row_ref.movey(ref_displacment) + row_ref.movey(row_displacment) multiplier_arr.add_ports( row_ref.get_ports_list(), prefix="multiplier_" + str(rownum) + "_" ) @@ -368,7 +365,7 @@ def pmos( if __name__ == "__main__": from PDK.util.standard_main import pdk - mytransistor = nmos(pdk, fingers=8, with_dummy=True) + mytransistor = nmos(pdk, fingers=8, multipliers=2, with_dummy=True) mytransistor.show() for key in mytransistor.ports.keys(): print(key) diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 40e262ef6..e52a10b35 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -6,6 +6,7 @@ from fet import nmos, pmos, multiplier from diff_pair import diff_pair from guardring import tapring +from mimcap import mimcap @cell @@ -14,13 +15,19 @@ def opamp( diffpair_params: Optional[tuple[float, float, int, int]] = (6, 0, 4, 2), tailcurrent_params: Optional[tuple[float, float, int, int]] = (6, 2, 4, 1), cmirror_hparams: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), + cmirror_outhparams: Optional[tuple[float, float, int, int]] = (6, 2, 2, 1), pamp_hparams: Optional[tuple[float, float, int, int]] = (7, 1, 10, 3), + mim_cap_size=(12, 12), + output_amphparams: Optional[tuple[float, float, int, int]] = (5, 1, 8, 1), ) -> Component: """create an opamp, args: pdk=pdk to use diffpair_params = diffpair (width,length,fingers,mults) tailcurrent_params = tailcurrent nmos (width,length,fingers,mults) - cmirror_hparams = cmirror_hparams (width,length,fingers,mults) + cmirror_hparams = west current mirror (width,length,fingers,mults) + cmirror_outhparams = east current mirror used to bias output fet (width,length,fingers,mults) + pamp_hparams = pmos top component amp (width,length,fingers,mults) + mim_cap_size = width,length of individual mim_cap """ opamp_top = Component() # place nmos components @@ -121,7 +128,7 @@ def opamp( ) halfMultp_ref = pmos_comps << halfMultp halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax)) - # finish place + # finish place central ydim_ncomps = opamp_top.ymax - opamp_top.ymin pmos_comps.add_padding( layers=[pdk.get_glayer("nwell")], @@ -132,7 +139,60 @@ def opamp( pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") pmos_comps_ref = opamp_top << pmos_comps pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax) - # route + # place mimcaps + mimcap_single = mimcap(pdk, mim_cap_size) + prev_xmax = opamp_top.xmax + center_xmax = opamp_top.xmax + mimcap_single.xmax + mimcap_space = ( + pdk.get_grule("met5")["min_separation"] + + mimcap_single.xmax + - mimcap_single.xmin + ) + mimcaps_ref = opamp_top.add_array( + mimcap_single, rows=3, columns=2, spacing=(mimcap_space, mimcap_space) + ) + # TODO: fix mimcap to transistor separation + displace_fact = 4 * pdk.get_grule("met5")["min_separation"] + mimcaps_ref.movex(center_xmax + displace_fact) + mimcaps_ref.movey(pmos_comps_ref.ymin + mimcap_single.ymax) + # place cmirror for output amp + cmirror_out = nmos( + pdk, + width=cmirror_outhparams[0], + length=cmirror_outhparams[1], + fingers=cmirror_outhparams[2], + multipliers=cmirror_outhparams[3], + with_tie=False, + with_dnwell=False, + with_substrate_tap=True, + with_dummy=True, + ) + cmirror_out_ref = opamp_top.add_ref(cmirror_out, "output fet bias current") + cmirror_out_ref.movex(prev_xmax + cmirror_out_ref.xmax + displace_fact).movey( + opamp_top.ymin + cmirror_out_ref.ymax + ) + # place output amp + output_amp = Component("output fet") + for side in [-1, 1]: + fet_half = nmos( + pdk, + width=output_amphparams[0], + length=output_amphparams[1], + fingers=output_amphparams[2], + multipliers=output_amphparams[3], + with_tie=False, + with_dnwell=False, + with_substrate_tap=False, + with_dummy=(bool(side - 1), bool(side + 1)), + ) + fet_half_ref = output_amp << fet_half + fet_half_ref.movex(side * fet_half_ref.xmax) + tapcenter_rectf = [2 * output_amp.xmax + 1, 2 * output_amp.ymax + 1] + output_amp << tapring(pdk, tapcenter_rectf, "p+s/d") + output_amp_ref = opamp_top << output_amp + output_amp_ref.movex(prev_xmax + output_amp.xmax + displace_fact).movey( + 2 * output_amp.ymax + ) # TODO: implement return opamp_top From c29356f8226d05ca62f6cd6e164efde45739b773 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:16:12 -0400 Subject: [PATCH 11/64] routing tools, L/C route, Port utils, snapping tools --- .../generators/gdsfactory-gen/L_route.py | 103 +++ .../PDK/gf180_mapped/gf180_mapped.py | 2 +- .../gdsfactory-gen/PDK/mappedpdk.py | 65 +- .../PDK/sky130_mapped/grules.py | 6 +- .../PDK/sky130_mapped/sky130_mapped.py | 6 +- .../PDK/util/custom_comp_utils.py | 346 +++++++ .../gdsfactory-gen/PDK/util/snap_to_grid.py | 44 + .../gdsfactory-gen/PDK/util/standard_main.py | 4 +- .../generators/gdsfactory-gen/c_route.py | 174 ++++ .../generators/gdsfactory-gen/diff_pair.py | 847 +++--------------- openfasoc/generators/gdsfactory-gen/fet.py | 220 +++-- .../generators/gdsfactory-gen/guardring.py | 13 +- openfasoc/generators/gdsfactory-gen/mimcap.py | 9 +- openfasoc/generators/gdsfactory-gen/opamp.py | 91 +- .../generators/gdsfactory-gen/via_gen.py | 114 ++- 15 files changed, 1107 insertions(+), 937 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/L_route.py create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py create mode 100644 openfasoc/generators/gdsfactory-gen/c_route.py diff --git a/openfasoc/generators/gdsfactory-gen/L_route.py b/openfasoc/generators/gdsfactory-gen/L_route.py new file mode 100644 index 000000000..1d8d7347c --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/L_route.py @@ -0,0 +1,103 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.port import Port +from PDK.mappedpdk import MappedPDK +from typing import Optional +from via_gen import via_stack +from gdsfactory.components.rectangle import rectangle +from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular + + +@cell +def L_route( + pdk: MappedPDK, + edge1: Port, + edge2: Port, + vwidth: Optional[float] = None, + hwidth: Optional[float] = None, + hglayer: Optional[str] = None, + vglayer: Optional[str] = None, + viaoffset: Optional[bool]=True +) -> Component: + """creates a L shaped route between two Ports. + + edge1 + | + ------|edge2 + + REQUIRES: + - ports (a.k.a. edges) be vertical or horizontal + - edges be perpindicular to each other + + DOES NOT REQUIRE: + - correct 180 degree orientation of the port (e.g. a south facing port may result in north facing route) + + ****NOTE: does no drc error checking (creates a dumb route) + args: + pdk = pdk to use + edge1 = first port + edge2 = second port + vwidth = optional will default to vertical edge width if None + hwidth = optional will default to horizontal edge width if None + hglayer = glayer for vertical route. Defaults to the layer of the edge oriented N/S + vglayer = glayer for horizontal route. Defaults to the layer of the edge oriented E/W + viaoffset = push the via away from both edges so that inside corner aligns with via corner + """ + # error checking, TODO: validate layers + assert_is_manhattan([edge1,edge2]) + assert_ports_perpindicular(edge1,edge2) + pdk.activate() + Lroute = Component() + # figure out which port is vertical + vport = None + hport = None + edge1_is_EW = bool(round(edge1.orientation + 90) % 180) + if edge1_is_EW: + vport, hport = edge1, edge2 + else: + hport, vport = edge1, edge2 + # arg setup + vwidth = vwidth if vwidth else vport.width + hwidth = hwidth if hwidth else hport.width + hglayer = hglayer if hglayer else pdk.layer_to_glayer(vport.layer) + vglayer = vglayer if vglayer else pdk.layer_to_glayer(hport.layer) + # compute required dimensions + hdim_center = vport.center[0] - hport.center[0] + vdim_center = hport.center[1] - vport.center[1] + hdim = abs(hdim_center) + hwidth/2 + vdim = abs(vdim_center) + vwidth/2 + # create and place vertical and horizontal connections + hconnect = rectangle(size=(hdim,vwidth),layer=pdk.get_glayer(hglayer)) + vconnect = rectangle(size=(hwidth,vdim),layer=pdk.get_glayer(vglayer)) + #xalign + valign = ("l","c") if hdim_center > 0 else ("r","c") + halign = ("c","b") if vdim_center > 0 else ("c","t") + #yalign + hconnect_ref = align_comp_to_port(hconnect, vport, valign) + Lroute.add(hconnect_ref) + vconnect_ref = align_comp_to_port(vconnect, hport, halign) + Lroute.add(vconnect_ref) + # create and place via + h_to_v_via_ref = Lroute << via_stack(pdk, hglayer, vglayer) + h_to_v_via_ref.move(destination=(hport.center[0], vport.center[1])) + if viaoffset: + viadim_os = evaluate_bbox(h_to_v_via_ref)[0]/2 + viaxofs = abs(hwidth/2-viadim_os) + viaxofs = viaxofs if hdim_center > 0 else -1*viaxofs + viayofs = abs(vwidth/2-viadim_os) + viayofs = viayofs if vdim_center > 0 else -1*viayofs + h_to_v_via_ref.movex(viaxofs).movey(viayofs) + return Lroute.flatten() + + +if __name__ == "__main__": + from PDK.util.standard_main import pdk + + routebetweentop = rectangle(layer=pdk.get_glayer("met1"),size=(1,1)).ref() + routebetweentop.movey(-4).movex(7) + routebetweenbottom = rectangle(layer=pdk.get_glayer("met1"), size=(1, 0.5)) + mycomp = L_route(pdk,routebetweentop.ports["e4"],routebetweenbottom.ports["e1"]) + mycomp.unlock() + mycomp.add(routebetweentop) + mycomp << routebetweenbottom + mycomp.flatten().show() diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index ee1ab3d6b..d1baf6cc0 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -125,7 +125,7 @@ grulesobj["active_diff"]["n+s/d"] = {"min_enclosure": 0.23} grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_separation": 0.28} grulesobj["active_diff"]["active_tap"] = { - "0.3)": "*****FIXTHIS!!!MANUALLY!*****", + #"0.3)": "*****FIXTHIS!!!MANUALLY!*****", "min_separation": 0.28, "max_separation": 20.0, } diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py index 276d53a39..872516209 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py @@ -5,10 +5,12 @@ from gdsfactory.pdk import Pdk from gdsfactory.typings import Component, PathType, Layer from pydantic import validator, StrictStr, ValidationError -from typing import ClassVar, Optional +from typing import ClassVar, Optional, Any from pathlib import Path +from decimal import Decimal, DefaultContext, setcontext, FloatOperation import tempfile import subprocess +from decimal import Decimal class MappedPDK(Pdk): @@ -41,7 +43,7 @@ class MappedPDK(Pdk): glayers: dict[StrictStr, StrictStr] # friendly way to implement a graph - grules: dict[StrictStr, dict[StrictStr, Optional[dict]]] + grules: dict[StrictStr, dict[StrictStr, Optional[dict[StrictStr, Any]]]] klayout_lydrc_file: Optional[Path] = None @validator("glayers") @@ -79,7 +81,7 @@ def drc( tempdir = None if isinstance(layout, Component): tempdir = tempfile.TemporaryDirectory() - layout_path = Path(layout.write_gds(tempdir)).resolve() + layout_path = Path(layout.write_gds(gdsdir=tempdir.name)).resolve() elif isinstance(layout, PathType): layout_path = Path(layout).resolve() else: @@ -192,28 +194,43 @@ def is_routable_glayer(cls, glayer: StrictStr): def from_gf_pdk( cls, gfpdk: Pdk, - glayers: dict[str, str], - grules: dict[StrictStr, dict[StrictStr, Optional[dict]]], - klayout_lydrc_file: Optional[PathType] = None, + **kwargs ): - """Construct a mapped pdk from an existing pdk and the extra parts of MappedPDK""" + """Construct a mapped pdk from an existing pdk and the extra parts of MappedPDK + grid is the grid size in nm""" # input type and value validation if not isinstance(gfpdk, Pdk): raise TypeError("from_gf_pdk: gfpdk arg only accepts GDSFactory PDK type") - # convert gfpdk to dictionary - parent_dict = gfpdk.dict() - # add glayers mapping and lydrc file - parent_dict["glayers"] = glayers - parent_dict["klayout_lydrc_file"] = Path(klayout_lydrc_file).resolve() - parent_dict["grules"] = grules - # get mapped value and try to resolve validation issues - try: - rtrval = cls.parse_obj(parent_dict) - except ValidationError as valerr: - errorobj_list = valerr.errors() - for errorobj in errorobj_list: - problem_field = errorobj["loc"][0] - if problem_field in parent_dict: - parent_dict.pop(problem_field) - rtrval = cls.parse_obj(parent_dict) - return rtrval + # create argument dictionary + passargs = dict() + # pdk args + passargs["name"]=gfpdk.name + passargs["cross_sections"]=gfpdk.cross_sections + passargs["cells"]=gfpdk.cells + passargs["symbols"]=gfpdk.symbols + passargs["default_symbol_factory"]=gfpdk.default_symbol_factory + passargs["containers"]=gfpdk.containers + passargs["base_pdk"]=gfpdk.base_pdk + passargs["default_decorator"]=gfpdk.default_decorator + passargs["layers"]=gfpdk.layers + passargs["layer_stack"]=gfpdk.layer_stack + #passargs["layer_views"]=gfpdk.layer_views#??? layer view broken??? + passargs["layer_transitions"]=gfpdk.layer_transitions + passargs["sparameters_path"]=gfpdk.sparameters_path + passargs["modes_path"]=gfpdk.modes_path + passargs["interconnect_cml_path"]=gfpdk.interconnect_cml_path + passargs["warn_off_grid_ports"]=gfpdk.warn_off_grid_ports + passargs["constants"]=gfpdk.constants + passargs["materials_index"]=gfpdk.materials_index + passargs["routing_strategies"]=gfpdk.routing_strategies + passargs["circuit_yaml_parser"]=gfpdk.circuit_yaml_parser + passargs["gds_write_settings"]=gfpdk.gds_write_settings + passargs["oasis_settings"]=gfpdk.oasis_settings + passargs["cell_decorator_settings"]=gfpdk.cell_decorator_settings + passargs["bend_points_distance"]=gfpdk.bend_points_distance + # MappedPDK args override existing args + passargs.update(kwargs) + # create and return MappedPDK + mappedpdk = MappedPDK(**passargs) + return mappedpdk + diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py index 5aeba9c6b..726717a55 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py @@ -269,7 +269,7 @@ grulesobj["met3"]["met2"] = {} grulesobj["met3"]["via2"] = {} grulesobj["met3"]["met3"] = {"min_width": 0.14, "min_separation": 0.14} -grulesobj["met3"]["via3"] = {} +grulesobj["met3"]["via3"] = {"min_enclosure":0.19} grulesobj["met3"]["met4"] = {} grulesobj["met3"]["via4"] = {} grulesobj["met3"]["met5"] = {} @@ -311,7 +311,7 @@ grulesobj["met4"]["met4"] = {"min_width": 0.3, "min_separation": 0.4} grulesobj["met4"]["via4"] = {"min_enclosure": 0.09} grulesobj["met4"]["met5"] = {} -grulesobj["met4"]["capmet"] = {} +grulesobj["met4"]["capmet"] = {"min_enclosure": 0.14} grulesobj["via4"]["dnwell"] = {} grulesobj["via4"]["pwell"] = {} grulesobj["via4"]["nwell"] = {} @@ -368,4 +368,4 @@ grulesobj["capmet"]["met4"] = {} grulesobj["capmet"]["via4"] = {} grulesobj["capmet"]["met5"] = {} -grulesobj["capmet"]["capmet"] = {"capmettop": (71, 20), "capmetbottom": (70, 20)} +grulesobj["capmet"]["capmet"] = {"capmettop": (71, 20), "capmetbottom": (70, 20), "min_separation": 1.2} diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 79e750916..110928dc4 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -32,12 +32,16 @@ "dnwell": "dnwelldrawing", } + sky130_lydrc_file_path = Path(__file__).resolve().parent / "sky130.lydrc" sky130_mapped_pdk = MappedPDK.from_gf_pdk( sky130.PDK, - sky130_glayer_mapping, + glayers=sky130_glayer_mapping, grules=grulesobj, klayout_lydrc_file=sky130_lydrc_file_path, ) +# set the grid size +sky130_mapped_pdk.gds_write_settings.precision = 5*10**-9 +sky130_mapped_pdk.cell_decorator_settings.cache=False diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py new file mode 100644 index 000000000..a2679c431 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -0,0 +1,346 @@ +from pydantic import validate_arguments +from gdsfactory.snap import snap_to_grid +from gdsfactory.typings import Component, ComponentReference +from gdsfactory.components.rectangle import rectangle +from gdsfactory.port import Port +from typing import Callable, Union, Optional,Iterable +from decimal import Decimal + +@validate_arguments +def rename_component_ports(custom_comp: Component, rename_function: Callable[[str, Port], str]) -> Component: + """uses rename_function(str, Port) -> str to decide which ports to rename. + rename_function accepts the current port name (string) and current port (Port) then returns the new port name + rename_function can return new name = current port name, in which case the name will not change + rename_function should raise error if custom requirments for rename are not met + if you want to pass additional args to rename_function, implement a functor + custom_comp is the components to modify. the modified component is returned + """ + names_to_modify = list() + # find ports and get new names + for pname, pobj in custom_comp.ports.items(): + # error checking + if not pname == pobj.name: + raise ValueError("component may have an invalid ports dict") + + new_name = rename_function(pname, pobj) + + names_to_modify.append((pname,new_name)) + # modify names + for namepair in names_to_modify: + if namepair[0] in custom_comp.ports.keys(): + portobj = custom_comp.ports.pop(namepair[0]) + portobj.name = namepair[1] + custom_comp.ports[namepair[1]] = portobj + else: + raise KeyError("name "+str(namepair[0])+" not in component ports") + # returns modified component/component ref + return custom_comp + + +@validate_arguments +def rename_ports_by_orientation__call(old_name: str, pobj: Port) -> str: + """internal implementation of port orientation rename""" + if not "_" in old_name: + raise ValueError("portname must contain underscore \"_\" " + old_name) + # get new suffix (port orientation) + new_suffix = None + angle = pobj.orientation % 360 if pobj.orientation is not None else 0 + angle = round(angle) + if angle <= 45 or angle >= 315: + new_suffix = "E" + elif angle <= 135 and angle >= 45: + new_suffix = "N" + elif angle <= 225 and angle >= 135: + new_suffix = "W" + else: + new_suffix = "S" + # construct new name + old_str_split = old_name.rsplit("_", 1) + old_str_split[1] = new_suffix + new_name = "_".join(old_str_split) + return new_name + +@validate_arguments +def rename_ports_by_orientation(custom_comp: Component) -> Component: + """replaces the last part of the port name + (after the last underscore) with a direction + direction is one of N,E,S,W + returns the modified component + """ + return rename_component_ports(custom_comp, rename_ports_by_orientation__call) + + +class rename_ports_by_list__call: + def __init__(self, replace_list: list[tuple[str,str]] = []): + self.replace_list = dict(replace_list) + self.replace_history = dict.fromkeys(self.replace_list.keys()) + for keyword in self.replace_history: + self.replace_history[keyword] = 0 + @validate_arguments + def __call__(self, old_name: str, pobj: Port) -> str: + for keyword, newname in self.replace_list.items(): + if keyword in old_name: + self.replace_history[keyword] += 1 + return newname + str(self.replace_history[keyword]) + return old_name + +@validate_arguments +def rename_ports_by_list(custom_comp: Component, replace_list: list[tuple[str,str]]) -> Component: + """replace_list is a list of tuple(string, string) + if a port name contains tuple[0], the port will be renamed to tuple[1] + if tuple[1] is None or empty string raise error + when anaylzing a single port, if multiple keywords from the replace_list are found, first match is returned + since we cannot have duplicate port names, different ports that end up with the same name get numbered""" + rename_func = rename_ports_by_list__call(replace_list) + return rename_component_ports(custom_comp, rename_func) + + +@validate_arguments +def add_ports_perimeter(custom_comp: Component, layer: tuple[int, int], prefix: Optional[str] = "_") -> Component: + """adds ports to the outside perimeter of a cell + custom_comp = component to add ports to (returns the modified component) + layer = will extract this layer and take it as the bbox, ports will also be on this layer + prefix = prefix to add to the port names. Adds an underscore by default + """ + if "_" not in prefix: + raise ValueError("you need underscore char in prefix") + compbbox = custom_comp.extract(layers=(layer,)).bbox + width = compbbox[1][0] - compbbox[0][0] + height = compbbox[1][1] - compbbox[0][1] + size = (width, height) + temp = Component() + swref = temp << rectangle(layer=layer,size=size) + swref.move(destination=(custom_comp.bbox[0])) + temp.add_ports(swref.get_ports_list(),prefix=prefix) + temp = rename_ports_by_orientation(temp) + custom_comp.add_ports(temp.get_ports_list()) + return custom_comp + + +@validate_arguments +def print_ports(custom_comp: Union[Component, ComponentReference], names_only: Optional[bool] = True) -> None: + """prints ports in comp in a nice way + custom_comp = component to use + names_only = only print names if True else print name and port + """ + for key,val in custom_comp.ports.items(): + print(key) + if not names_only: + print(val) + print() + + +@validate_arguments +def evaluate_bbox(custom_comp: Union[Component, ComponentReference], return_decimal: Optional[bool]=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: + """returns the length and height of a component like object""" + compbbox = custom_comp.bbox + width = Decimal(str(compbbox[1][0])) - Decimal(str(compbbox[0][0])) + height = Decimal(str(compbbox[1][1])) - Decimal(str(compbbox[0][1])) + if return_decimal: + return (width,height) + return (float(width),float(height)) + + +@validate_arguments +def move(custom_comp: Union[Port, ComponentReference], offsetxy: Optional[tuple[float,float]] = 0) -> Union[Port, ComponentReference]: + """moves custom_comp by offset[0]=x offset, offset[1]=y offset + returns the modified custom_comp + """ + if isinstance(custom_comp, Port): + custom_comp.move(offsetxy) + elif isinstance(custom_comp, ComponentReference): + custom_comp.movex(offsetxy[0]).movey(offsetxy[1]) + return custom_comp + + +@validate_arguments +def movex(custom_comp: Union[Port, ComponentReference], offsetx: Optional[float] = 0) -> Union[Port, ComponentReference]: + """moves custom_comp by offsetx in the x direction + returns the modified custom_comp + """ + return move(custom_comp, (offsetx,0)) + + +@validate_arguments +def movey(custom_comp: Union[Port, ComponentReference], offsety: Optional[float] = 0) -> Union[Port, ComponentReference]: + """moves custom_comp by offsety in the y direction + returns the modified custom_comp + """ + return move(custom_comp, (0,offsety)) + + +@validate_arguments +def get_orientation(orientation: str) -> int: + """returns the angle corresponding to port orientation + orientation must contain N/n,E/e,S/s,W/w + e.g. all the follwing are valid: + N/n or N/north,E/e or E/east,S/s or S/south, W/w or W/west + """ + orientation = orientation.lower() + if "n" in orientation: + return 90 + elif "e" in orientation: + return 0 + elif "w" in orientation: + return 180 + elif "s" in orientation: + return 270 + else: + raise ValueError("orientation must contain N/n,E/e,S/s,W/w") + + +@validate_arguments +def assert_is_manhattan(edges: Union[list[Port],Port]) -> bool: + """raises assertionerror if port is not vertical or horizontal""" + if isinstance(edges, Port): + edges = [edges] + for edge in edges: + if round(edge.orientation) % 90 != 0: + raise AssertionError("edge is not vertical or horizontal") + return True + + +@validate_arguments +def assert_ports_perpindicular(edge1: Port, edge2: Port) -> bool: + """raises assertionerror if edges are not perindicular""" + or1 = round(edge1.orientation) + or2 = round(edge2.orientation) + if abs(round(or1-or2)) != 90: + raise AssertionError("edges are not perpindicular") + return True + + +@validate_arguments +def set_orientation(custom_comp: Port, orientation: Union[float, int]) -> Port: + """creates a new port with the desired orientation and returns the new port""" + newport = Port( + name = custom_comp.name, + center = custom_comp.center, + orientation = orientation, + parent = custom_comp.parent, + port_type = custom_comp.port_type, + cross_section = custom_comp.cross_section, + shear_angle = custom_comp.shear_angle, + layer = custom_comp.layer, + width = custom_comp.width, + + ) + return newport + + +@validate_arguments +def align_comp_to_port(custom_comp: Component, align_to: Port, alignment: Optional[tuple[str,str]] = None) -> ComponentReference: + """Returns component reference of component aligned to port as specifed + custom_comp = component to align properly + align_to = Port to align to + ***NOTE, if left None, function will align component to outside and center of port (based on port orientation) + alignment = tuple(str,str) = (xalign,yalign) + ****xalign = either l/left or r/right or c/center. component will be flush to right or left side of port or centered + ****yalgin = either t/top or b/bottom or c/center. top or bottom edge or center of component will align with port top/bottom/center + """ + # error checks and decide orientation if None + xalign = alignment[0] + yalign = alignment[1] + if alignment is None: + if round(align_to.orientation) == 0:# facing east + xalign = "r" + yalign = "c" + elif round(align_to.orientation) == 180:# facing west + xalign = "l" + yalign = "c" + elif round(align_to.orientation) == 270:# facing south + xalign = "c" + yalign = "b" + elif round(align_to.orientation) == 90:#facing north + xalign = "c" + yalign = "t" + else: + raise ValueError("port must be vertical or horizontal") + # setup + is_EW = bool(round(align_to.orientation + 90) % 180) + xalign = xalign.lower() + yalign = yalign.lower() + comp_ref = custom_comp.ref_center() + comp_ref.move(align_to.center) + width = align_to.width + xdim = evaluate_bbox(custom_comp)[0] + ydim = evaluate_bbox(custom_comp)[1] + #xalign + xmov = 0 + if "l" in xalign: + if not is_EW: + xmov = -1 * abs((width - xdim)/2) + else: + xmov = -1 * abs(xdim/2) + elif "r" in xalign: + if not is_EW: + xmov = abs((width - xdim)/2) + else: + xmov = abs(xdim/2) + elif "c" in xalign: + pass + else: + raise ValueError("please specify valid x alignment of l/r/c") + # yalign + ymov = 0 + if "t" in yalign: + if not is_EW: + ymov = abs(ydim/2) + else: + ymov = abs((width - ydim)/2) + elif "b" in yalign: + if not is_EW: + ymov = -1 * abs(ydim/2) + else: + ymov = -1 * abs((width - ydim)/2) + elif "c" in yalign: + pass + else: + raise ValueError("please specify valid x alignment of l/r/c") + # move and return + return comp_ref.movex(xmov).movey(ymov) + + +@validate_arguments +def to_decimal(elements: Union[tuple,list,float,int,str]): + """converts all elements of list like object into decimals + or converts single num into decimal""" + if not isinstance(elements,Iterable): + return Decimal(str(elements)) + else: + elements = list(elements) + for i, element in enumerate(elements): + if isinstance(element,Union[int,float]): + elements[i] = Decimal(str(element)) + return elements + +@validate_arguments +def to_float(elements: Union[tuple,list,Decimal]): + """converts all elements of list like object into floats and snaps to grid + or converts single decimal into floats""" + if not isinstance(elements,Iterable): + return snap_to_grid(float(elements)) + else: + elements = list(elements) + for i, element in enumerate(elements): + if isinstance(element, Decimal): + elements[i] = snap_to_grid(float(element)) + return elements + +@validate_arguments +def prec_array(custom_comp: Component, columns: int, rows: int, spacing: tuple[Union[float,Decimal],Union[float,Decimal]]) -> Component: + # make sure to work with decimals + precspacing = list(spacing) + for i in range(2): + if isinstance(spacing[i],Union[int,float]): + precspacing[i] = Decimal(str(spacing[i])) + # create array + precarray = Component() + for colnum in range(columns): + coldisp = colnum * precspacing[0] + for rownum in range(rows): + rowdisp = rownum * precspacing[1] + cref = precarray << custom_comp + cref.movex(to_float(coldisp)).movey(to_float(rowdisp)) + precarray.add_ports(custom_comp.get_ports_list()) + return precarray.flatten() diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py new file mode 100644 index 000000000..0aefce1ad --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py @@ -0,0 +1,44 @@ +from gdsfactory.typings import Component +from pydantic import validate_arguments +from typing import Optional +from gdsfactory.pdk import get_grid_size +from tempfile import TemporaryDirectory +from pathlib import Path +from gdsfactory.read.import_gds import import_gds + +@validate_arguments +def component_snap_to_grid(comp: Component, nm: Optional[int]=None) -> Component: + """snaps all polygons in component to grid and correctly updates ports + comp = the component to snap to grid + NOTE this function will flatten the component + nm the grid to snap to, defaults to active pdk grid size""" + # flatten the component + comp = comp.flatten() + # figure out nm + if nm is None: + nm = int(get_grid_size() * 1000) + elif nm == 0: + return comp + elif nm < 0: + raise ValueError("nm must be an integer tolerance value greater than zero") + # iterate through ports and snap to grid + comp.snap_ports_to_grid(nm=nm) + save_ports = comp.get_ports_list() + save_name = comp.name + with TemporaryDirectory() as tmpdirname: + tmp_gds_path = Path(comp.write_gds(gdsdir=tmpdirname)).resolve() + comp = import_gds(gdspath=tmp_gds_path).copy() + comp.add_ports(save_ports) + comp.name = save_name + return comp + + +""" +from PDK.util.snap_to_grid import component_snap_to_grid +from PDK.util.standard_main import pdk +from gdsfactory.components.rectangle import rectangle + +mycomp = rectangle(layer=pdk.get_glayer("met1")) +mycomp = component_snap_to_grid(mycomp) +mycomp.show() +""" diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py b/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py index f79da7fe1..88c72bf01 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py @@ -11,8 +11,8 @@ the pdk is the pdk object which defaults to sky130 if none selected """ -from PDK.gf180_mapped import gf180_mapped_pdk from PDK.sky130_mapped import sky130_mapped_pdk +from PDK.gf180_mapped import gf180_mapped_pdk from argparse import ArgumentParser parser = ArgumentParser(prog="PDK agnostic fet generator") @@ -27,3 +27,5 @@ else: pdk = sky130_mapped_pdk pdk.activate() + + diff --git a/openfasoc/generators/gdsfactory-gen/c_route.py b/openfasoc/generators/gdsfactory-gen/c_route.py new file mode 100644 index 000000000..9954cbcd7 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/c_route.py @@ -0,0 +1,174 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component, copy +from gdsfactory.port import Port +from PDK.mappedpdk import MappedPDK +from typing import Optional, Union +from math import isclose +from via_gen import via_stack +from gdsfactory.routing.route_quad import route_quad +from gdsfactory.components.rectangle import rectangle +from PDK.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports + + +@cell +def c_route( + pdk: MappedPDK, + edge1: Port, + edge2: Port, + extension: Optional[float]=0.5, + width: Optional[float] = None, + eglayer: Optional[str] = None, + cglayer: Optional[str] = None, + viaoffset: Optional[Union[bool,tuple[Optional[bool],Optional[bool]]]]=(True,True), + fullbottom: Optional[bool] = False +) -> Component: + """creates a C shaped route between two Ports. + + edge1--| + | + edge2--| + + REQUIRES: ports be parralel vertical or horizontal edges + ****NOTE: does no drc error checking (creates a dumb route) + args: + pdk = pdk to use + edge1 = first port + edge2 = second port + width = optional will default to edge1 width if None + eglayer = glayer for the parts connecting to the ports. Default to layer of edge1 + cglayer = glayer for the connection part (part that goes through a via) defaults to eglayer met+1 + viaoffset = offsets the via so that it is flush with the cglayer (may be needed for drc) i.e. -| vs _| + - True offsets via towards the other via + - False offsets via away from the other via + - None means center (no offset) + ***NOTE: viaoffset pushes both vias towards each other slightly + """ + # error checking and figure out args + if round(edge1.orientation) % 90 or round(edge2.orientation) % 90: + raise ValueError("Ports must be vertical or horizontal") + if not isclose(edge1.orientation,edge2.orientation): + raise ValueError("Ports must be parralel and have same orientation") + width = width if width else edge1.width + eglayer = eglayer if eglayer else pdk.layer_to_glayer(edge1.layer) + eglayer_plusone = "met" + str(int(eglayer[-1])+1) + cglayer = cglayer if cglayer else eglayer_plusone + if not "met" in eglayer or not "met" in cglayer: + raise ValueError("given layers must be metals") + viaoffset = (None, None) if viaoffset is None else viaoffset + if isinstance(viaoffset,bool): + viaoffset = (True,True) if viaoffset else (False,False) + pdk.has_required_glayers([eglayer,cglayer]) + pdk.activate() + # create route + croute = Component() + viastack = via_stack(pdk,eglayer,cglayer,fullbottom=fullbottom) + # find extension + e1_length = extension + evaluate_bbox(viastack)[0] + e2_length = extension + evaluate_bbox(viastack)[0] + xdiff = abs(edge1.center[0] - edge2.center[0]) + ydiff = abs(edge1.center[1] - edge2.center[1]) + if not isclose(edge1.center[0],edge2.center[0]): + if round(edge1.orientation) == 0:# facing east + if edge1.center[0] > edge2.center[0]: + e2_length += xdiff + else: + e1_length += xdiff + elif round(edge1.orientation) == 180:# facing west + if edge1.center[0] < edge2.center[0]: + e2_length += xdiff + else: + e1_length += xdiff + if not isclose(edge1.center[1],edge2.center[1]): + if round(edge1.orientation) == 270:# facing south + if edge1.center[1] < edge2.center[1]: + e2_length += ydiff + else: + e1_length += ydiff + elif round(edge1.orientation) == 90:#facing north + if edge1.center[1] > edge2.center[1]: + e2_length += ydiff + else: + e1_length += ydiff + # move into position + e1_extension_comp = Component("edge1 extension") + e2_extension_comp = Component("edge2 extension") + box_dims = [(e1_length, width),(e2_length, width)] + if round(edge1.orientation) == 90 or round(edge1.orientation) == 270: + box_dims = [(width, e1_length),(width, e2_length)] + rect_c1 = copy(rectangle(size=box_dims[0], layer=pdk.get_glayer(eglayer),centered=True)) + rect_c2 = copy(rectangle(size=box_dims[1], layer=pdk.get_glayer(eglayer),centered=True)) + rect_c1 = rename_ports_by_orientation(rename_ports_by_list(rect_c1,[("e","e_")])) + rect_c2 = rename_ports_by_orientation(rename_ports_by_list(rect_c2,[("e","e_")])) + e1_extension = e1_extension_comp << rect_c1 + e2_extension = e2_extension_comp << rect_c2 + e1_extension.move(destination=edge1.center) + e2_extension.move(destination=edge2.center) + if round(edge1.orientation) == 0:# facing east + e1_extension.movex(evaluate_bbox(e1_extension)[0]/2) + e2_extension.movex(evaluate_bbox(e2_extension)[0]/2) + elif round(edge1.orientation) == 180:# facing west + e1_extension.movex(0-evaluate_bbox(e1_extension)[0]/2) + e2_extension.movex(0-evaluate_bbox(e2_extension)[0]/2) + elif round(edge1.orientation) == 270:# facing south + e1_extension.movey(0-evaluate_bbox(e1_extension)[1]/2) + e2_extension.movey(0-evaluate_bbox(e2_extension)[1]/2) + else:#facing north + e1_extension.movey(evaluate_bbox(e1_extension)[1]/2) + e2_extension.movey(evaluate_bbox(e2_extension)[1]/2) + # place viastacks + e1_extension_comp.add_ports(e1_extension.get_ports_list()) + e2_extension_comp.add_ports(e2_extension.get_ports_list()) + me1 = e1_extension_comp << viastack + me2 = e2_extension_comp << viastack + route_ports = [None,None] + via_flush = abs((width - evaluate_bbox(viastack)[0])/2) if viaoffset else 0 + via_flush1 = via_flush if viaoffset[0] else 0-via_flush + via_flush1 = 0 if viaoffset[0] is None else via_flush1 + via_flush2 = via_flush if viaoffset[1] else 0-via_flush + via_flush2 = 0 if viaoffset[1] is None else via_flush2 + if round(edge1.orientation) == 0:# facing east + me1.move(destination=e1_extension.ports["e_E"].center) + me2.move(destination=e2_extension.ports["e_E"].center) + via_flush *= 1 if me1.ymax > me2.ymax else -1 + me1.movex(0-viastack.xmax).movey(0-via_flush1) + me2.movex(0-viastack.xmax).movey(via_flush2) + route_ports = [me1.ports["top_met_S"],me2.ports["top_met_N"]] + elif round(edge1.orientation) == 180:# facing west + me1.move(destination=e1_extension.ports["e_W"].center) + me2.move(destination=e2_extension.ports["e_W"].center) + via_flush *= 1 if me1.ymax > me2.ymax else -1 + me1.movex(viastack.xmax).movey(0-via_flush1) + me2.movex(viastack.xmax).movey(via_flush2) + route_ports = [me1.ports["top_met_S"],me2.ports["top_met_N"]] + elif round(edge1.orientation) == 270:# facing south + me1.move(destination=e1_extension.ports["e_S"].center) + me2.move(destination=e2_extension.ports["e_S"].center) + via_flush *= 1 if me1.xmax > me2.xmax else -1 + me1.movey(viastack.xmax).movex(0-via_flush1) + me2.movey(viastack.xmax).movex(via_flush2) + route_ports = [me1.ports["top_met_E"],me2.ports["top_met_W"]] + else:#facing north + me1.move(destination=e1_extension.ports["e_N"].center) + me2.move(destination=e2_extension.ports["e_N"].center) + via_flush *= 1 if me1.xmax > me2.xmax else -1 + me1.movey(0-viastack.xmax).movex(0-via_flush1) + me2.movey(0-viastack.xmax).movex(via_flush2) + route_ports = [me1.ports["top_met_E"],me2.ports["top_met_W"]] + + croute << e1_extension_comp + croute << e2_extension_comp + cconnection = croute << route_quad(route_ports[0],route_ports[1],layer=pdk.get_glayer(cglayer)) + croute.add_ports(cconnection.get_ports_list(),prefix="con_") + return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) + +if __name__ == "__main__": + from PDK.util.standard_main import pdk + + routebetweentop = copy(rectangle(layer=pdk.get_glayer("met1"))).ref() + routebetweentop.movey(10) + routebetweenbottom = rectangle(layer=pdk.get_glayer("met1")) + mycomp = c_route(pdk,routebetweentop.ports["e3"],routebetweenbottom.ports["e3"]) + mycomp.unlock() + mycomp.add(routebetweentop) + mycomp << routebetweenbottom + mycomp.flatten().show() diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py index 75c92a3bd..5fa7a6d36 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -1,721 +1,126 @@ -from gdsfactory.cell import cell -from gdsfactory.component import Component -from gdsfactory.components.rectangle import rectangle -from fet import multiplier - - -@cell -def diff_pair(pdk, mult=3, fingers=3, cell_height=0.67) -> Component: - pwell_drawing = pdk.get_glayer("pwell") - dnwell_drawing = pdk.get_glayer("dnwell") - poly_drawing = pdk.get_glayer("poly") - - Top_cell = Component("top") - - mult = mult * 2 - # mos_comp = nmos(cell_height, fingers) - mos_comp = multiplier( - pdk, sdlayer="n+s/d", fingers=fingers, routing=False, dummy=False - ) - cell_height = mos_comp.ymax - mos_comp.ymin - cell_width = mos_comp.xmax - mos_comp.xmin - # cell_width = 1.1 + 0.55*(fingers-1) - space_bet_rows = 4 - space_bet_mult = 1.5 - rows = 2 - - ##pwell - pwell_width = cell_width * (mult / rows) + 0.11 + space_bet_mult - pwell_height = (cell_height * 1) * rows + 0.11 + space_bet_rows - - pwell_rect = rectangle(size=(pwell_width, pwell_height), layer=pwell_drawing) - # pwell_rect_ref = Top_cell << pwell_rect - # pwell_rect_ref.movex(-0.055).movey(-0.055) - - ##dnwell - # dnwell_width = (cell_width*((mult+1)/2)) + 0.91 - dnwell_width = cell_width * (mult / rows) + 0.91 + space_bet_mult - dnwell_height = (cell_height * 1) * rows + 0.91 + space_bet_rows - dnwell_rect = rectangle(size=(dnwell_width, dnwell_height), layer=dnwell_drawing) - # dnwell_rect_ref = Top_cell << dnwell_rect - # dnwell_rect_ref.movex(-0.455).movey(-0.455) - - for i in range(int(mult / rows)): - j = 0 - for j in range(rows): - print(j) - ref = Top_cell << mos_comp - if i == 0: - ref.movex(cell_width * i + cell_width / 2).movey( - cell_height * (j) + cell_height / 2 + space_bet_rows * (j) - ) - else: - ref.movex(cell_width * i + cell_width / 2 + space_bet_mult).movey( - cell_height * (j) + cell_height / 2 + space_bet_rows * (j) - ) - - met3_sq_dim = max( - pdk.get_grule("via2")["min_width"] - + 2 * pdk.get_grule("met3", "via2")["min_enclosure"], - pdk.get_grule("met3")["min_width"], - ) - - ##Change from 0.14 to 0.28 - met2_sq_dim = max( - pdk.get_grule("via1")["min_width"] - + 2 * pdk.get_grule("met2", "via1")["min_enclosure"], - pdk.get_grule("met2")["min_width"], - ) - ##VSS trunk -- merging - met3_VSS_trunk_width = cell_width * (i + 1) + space_bet_mult * i + 1 - met3_VSS_trunk = rectangle( - size=(met3_VSS_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") - ) - - met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk - met3_VSS_trunk_ref.movey(cell_height + space_bet_rows * 0.9 - met3_sq_dim / 2) - - met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk - met3_VSS_trunk_ref.movey(cell_height + space_bet_rows * 0.1 - met3_sq_dim / 2) - - met3_met2_VSS_trunk_height = space_bet_rows * 0.8 + met3_sq_dim - met3_met2_VSS_trunk = rectangle( - size=(met2_sq_dim, met3_met2_VSS_trunk_height), layer=pdk.get_glayer("met2") - ) - - met3_met2_VSS_trunk_ref = Top_cell << met3_met2_VSS_trunk - met3_met2_VSS_trunk_ref.movey( - cell_height + space_bet_rows * 0.1 - met3_sq_dim / 2 - ).movex(met3_VSS_trunk_width - met2_sq_dim) - - via2_via_dim = pdk.get_grule("via2")["min_width"] - via2_via = rectangle( - size=(via2_via_dim, via2_via_dim), layer=pdk.get_glayer("via2") - ) - - ## via2 pulled to met2 - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - cell_height + space_bet_rows * 0.1 - met3_sq_dim / 2 + via2_via_dim / 2 - ).movex(met3_VSS_trunk_width - met2_sq_dim + via2_via_dim / 2) - - ## via2 pulled to met2 - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - cell_height - + space_bet_rows * 0.1 - - met3_sq_dim - + met3_met2_VSS_trunk_height - - via2_via_dim / 2 - ).movex(met3_VSS_trunk_width - met2_sq_dim + via2_via_dim / 2) - - # Extending Poly trunk - for i in range(int(mult / rows)): - for j in range(rows): - - # poly extending trunk - poly_width = pdk.get_grule("poly")["min_width"] - mcon_poly_space = ( - 2 * pdk.get_grule("poly", "mcon")["min_separation"] - + pdk.get_grule("mcon")["width"] - ) - poly_finger2finger_x = poly_width + mcon_poly_space - - if fingers % 2 != 0: - poly_left_edge = ( - cell_width / 2 - - poly_width / 2 - - ((fingers - 1) / 2) * poly_finger2finger_x - ) - else: - poly_left_edge = ( - cell_width / 2 - - poly_width / 2 - - poly_finger2finger_x / 2 - - ((fingers / 2) - 1) * poly_finger2finger_x - ) - - poly_ext_trunk_width = poly_width + (fingers - 1) * poly_finger2finger_x - - ##poly_trunk - # poly_ext_trunk_height = pdk.get_grule("poly")['min_width'] - poly_ext_trunk_height = 0.5 - poly_ext_trunk_ref = rectangle( - size=(poly_ext_trunk_width, poly_ext_trunk_height), layer=poly_drawing - ) - - mcon_via = rectangle( - size=(pdk.get_grule("mcon")["width"], pdk.get_grule("mcon")["width"]), - layer=pdk.get_glayer("mcon"), - ) - - met1_sq_dim = max( - pdk.get_grule("mcon")["width"] - + 2 * pdk.get_grule("met1", "mcon")["min_enclosure"], - pdk.get_grule("met1")["min_width"], - ) - met1_square = rectangle( - size=(met1_sq_dim, met1_sq_dim), layer=pdk.get_glayer("met1") - ) - - via1_via_dim = pdk.get_grule("via1")["min_width"] - via1_via = rectangle( - size=(via1_via_dim, via1_via_dim), layer=pdk.get_glayer("via1") - ) - - ##Change from 0.14 to 0.28 - met2_sq_dim = max( - pdk.get_grule("via1")["min_width"] - + 2 * pdk.get_grule("met2", "via1")["min_enclosure"], - pdk.get_grule("met2")["min_width"], - ) - met2_square = rectangle( - size=(met2_sq_dim, met2_sq_dim), layer=pdk.get_glayer("met2") - ) - - met2_poly_ext_1_height = 1.5 - met2_poly_ext_2_height = met2_poly_ext_1_height + 1 - met2_poly_ext_1 = rectangle( - size=(met2_sq_dim, met2_poly_ext_1_height), layer=pdk.get_glayer("met2") - ) - met2_poly_ext_2 = rectangle( - size=(met2_sq_dim, met2_poly_ext_2_height), layer=pdk.get_glayer("met2") - ) - - via2_via_dim = pdk.get_grule("via2")["min_width"] - via2_via = rectangle( - size=(via2_via_dim, via2_via_dim), layer=pdk.get_glayer("via2") - ) - - via3_via_dim = pdk.get_grule("via3")["min_width"] - via3_via = rectangle( - size=(via3_via_dim, via3_via_dim), layer=pdk.get_glayer("via3") - ) - - met4_sq_dim = max( - pdk.get_grule("via3")["min_width"] - + 2 * pdk.get_grule("met4", "via3")["min_enclosure"], - pdk.get_grule("met4")["min_width"], - ) - - met3_sq_dim = max( - pdk.get_grule("via2")["min_width"] - + 2 * pdk.get_grule("met3", "via2")["min_enclosure"], - pdk.get_grule("met3")["min_width"], - ) - - met3_poly_ext_width = cell_width * (i + 1) + space_bet_mult * i + 2 - met3_poly_ext = rectangle( - size=(met3_poly_ext_width, met3_sq_dim), layer=pdk.get_glayer("met3") - ) - - met2_poly_ext_outer_trunk_h = cell_height * 2 + space_bet_rows + 2.7 * 2 - met2_poly_ext_outer_trunk = rectangle( - size=(met2_sq_dim, met2_poly_ext_outer_trunk_h), - layer=pdk.get_glayer("met2"), - ) - - met2_poly_ext_outer_trunk_ref = Top_cell << met2_poly_ext_outer_trunk - met2_poly_ext_outer_trunk_ref.movex(-2).movey(-2.7) - met2_poly_ext_outer_trunk_ref = Top_cell << met2_poly_ext_outer_trunk - met2_poly_ext_outer_trunk_ref.movex(-1).movey(-2.7) - - ## VSS extensions - met3_VSS_trunk_width = cell_width - met3_VSS_trunk = rectangle( - size=(met3_VSS_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") - ) - - ## Drain extensions - met3_Drain_trunk_width = cell_width - met3_Drain_trunk = rectangle( - size=(met3_Drain_trunk_width, met3_sq_dim), layer=pdk.get_glayer("met3") - ) - - ## Drain connections using met3 - ## In the center - met3_Drain_conn_width = space_bet_mult + 0.3 * 3 + via2_via_dim - met3_Drain_conn = rectangle( - size=(met3_Drain_conn_width, met3_sq_dim), layer=pdk.get_glayer("met3") - ) - # met3_Drain_conn - met3_Drain_conn_ref = Top_cell << met3_Drain_conn - met3_Drain_conn_ref.movex(cell_width - 0.3 - via2_via_dim * 1.5).movey( - cell_height + space_bet_rows / 2 - met3_sq_dim / 2 - ) - - ## via2 pulled to met2 - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - cell_height + space_bet_rows / 2 - via2_via_dim / 2 - ).movex(cell_width - 0.3 - via2_via_dim * 1) - - ## via2 pulled to met2 - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - cell_height + space_bet_rows / 2 - via2_via_dim / 2 - ).movex( - met3_Drain_conn_width - + cell_width - - 0.3 - - via2_via_dim * 1 - - met2_sq_dim - ) - - met2_met3_Drain_conn_height = space_bet_rows * 0.3 - met2_met3_Drain_conn = rectangle( - size=(met2_sq_dim, met2_met3_Drain_conn_height), - layer=pdk.get_glayer("met2"), - ) - # met2_Drain_conn - # met3_Drain_conn - met2_met3_Drain_conn_ref = Top_cell << met2_met3_Drain_conn - met2_met3_Drain_conn_ref.movex(cell_width - 0.3 - via2_via_dim * 1.5).movey( - cell_height + space_bet_rows / 2 - met3_sq_dim / 2 - ) - - met2_met3_Drain_conn_ref = Top_cell << met2_met3_Drain_conn - met2_met3_Drain_conn_ref.movex( - cell_width + space_bet_mult + 0.3 - via2_via_dim * 1.5 + met2_sq_dim / 2 - ).movey( - cell_height - + space_bet_rows / 2 - - met3_sq_dim / 2 - - met2_met3_Drain_conn_height - + met3_sq_dim - ) - - ## Drain connection using met1 - ## In the center - met2_Drain_conn_height = space_bet_rows * 0.48 - met2_Drain_conn = rectangle( - size=(met2_sq_dim, met2_Drain_conn_height), layer=pdk.get_glayer("met2") - ) - # met2_Drain_conn - met2_Drain_conn_ref = Top_cell << met2_Drain_conn - met2_Drain_conn_ref.movex( - cell_width + space_bet_mult / 2 - via2_via_dim / 2 - ).movey(cell_height + space_bet_rows * 0.3 - met3_sq_dim / 2) - - ## via2 pulled to met3 --- > hor - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - cell_height + space_bet_rows * 0.3 - via2_via_dim / 2 - ).movex(cell_width + space_bet_mult / 2) - - ## via2 pulled to met3 --- > hor - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - cell_height - + space_bet_rows * 0.3 - + met2_Drain_conn_height - - via2_via_dim / 2 - - met3_sq_dim - ).movex(cell_width + space_bet_mult / 2) - - ## met3 connecting cell extensions - ## In the center - met3_ext_conn_width = space_bet_mult * 0.5 + 0.3 + met2_sq_dim - met3_ext_conn = rectangle( - size=(met3_ext_conn_width, met3_sq_dim), layer=pdk.get_glayer("met3") - ) - # met3_Drain_conn - met3_ext_conn_ref = Top_cell << met3_ext_conn - met3_ext_conn_ref.movex(cell_width - 0.3).movey( - cell_height + space_bet_rows * 0.3 - met3_sq_dim / 2 - ) - - # met3_Drain_conn - met3_ext_conn_ref = Top_cell << met3_ext_conn - met3_ext_conn_ref.movex(cell_width + space_bet_mult / 2 - 0.3).movey( - cell_height + space_bet_rows * 0.7 - met3_sq_dim / 2 - ) - - if j == 1: - ##poly trunk - poly_trunk = Top_cell << poly_ext_trunk_ref - poly_trunk.movex( - poly_left_edge + cell_width * i + space_bet_mult * i - ).movey(cell_height * 2 + space_bet_rows * (j)) - poly_trunk_center_y = (poly_trunk.ymax - poly_trunk.ymin) / 2 - - ## Drain Stripes - for con in range(fingers + 1): - if con % 2 != 0: - y_move = cell_height + space_bet_rows * 0.7 - x_move = ( - cell_width * i - + space_bet_mult * i - + poly_left_edge - + poly_width / 2 - - poly_finger2finger_x / 2 - + con * poly_finger2finger_x - ) - - ## Drain extensions - met3_Drain_trunk_ref = Top_cell << met3_Drain_trunk - met3_Drain_trunk_ref.movex( - cell_width * i + space_bet_mult * i - ).movey(y_move - met3_sq_dim / 2) - - ## Drain extension connecting via - if i == 0: - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey(y_move - via2_via_dim / 2).movex( - cell_width * (i + 1) - + space_bet_mult * i - - 0.3 - - via2_via_dim - ) - else: - via3_via_ref = Top_cell << via3_via - via3_via_ref.movey(y_move - via3_via_dim / 2).movex( - cell_width * (i) + space_bet_mult * i + 0.3 - ) - - ## Drain stripes - met2_Drain_stripes = rectangle( - size=(met2_sq_dim, cell_height + space_bet_rows * 0.3), - layer=pdk.get_glayer("met2"), - ) - met2_square_ref = Top_cell << met2_Drain_stripes - met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( - x_move - met2_sq_dim / 2 - ) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey(y_move - via2_via_dim / 2).movex( - x_move - via2_via_dim / 2 - ) - - ## VSS Stripes - for con in range(fingers + 1): - if con % 2 == 0: - y_move = cell_height + space_bet_rows * 0.9 - x_move = ( - cell_width * i - + space_bet_mult * i - + poly_left_edge - + poly_width / 2 - - poly_finger2finger_x / 2 - + con * poly_finger2finger_x - ) - - ## VSS extensions - met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk - met3_VSS_trunk_ref.movex( - cell_width * i + space_bet_mult * i - ).movey(y_move - met3_sq_dim / 2) - - met2_VSS_stripes = rectangle( - size=(met2_sq_dim, cell_height + space_bet_rows * 0.25), - layer=pdk.get_glayer("met2"), - ) - met2_square_ref = Top_cell << met2_VSS_stripes - met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( - x_move - met2_sq_dim / 2 - ) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey(y_move - via2_via_dim / 2).movex( - x_move - via2_via_dim / 2 - ) - - ## Drain Stripes - for con in range(fingers + 1): - if con % 2 == 0: - y_move = ( - cell_height * 1 + space_bet_rows * (j) + poly_trunk_center_y - ) - x_move = ( - cell_width * i - + space_bet_mult * i - + poly_left_edge - + poly_width / 2 - - poly_finger2finger_x / 2 - + con * poly_finger2finger_x - ) - - # met2_VSS_stripes = rectangle(size=( met2_sq_dim, cell_height + space_bet_rows*0.25), layer=pdk.get_glayer("met2")) - # met2_square_ref = Top_cell << met2_VSS_stripes - # met2_square_ref.movey(0).movex( x_move - met2_sq_dim/2 ) - - # via2_via_ref = Top_cell << via2_via - # via2_via_ref.movey(cell_height + space_bet_rows/2 - via2_via_dim/2).movex( x_move - via2_via_dim/2) - - ## Contacts on Poly trunk - for con in range(fingers - 1): - y_move = ( - cell_height * 2 + space_bet_rows * (j) + poly_trunk_center_y - ) - x_move = ( - cell_width * i - + space_bet_mult * i - + poly_left_edge - + poly_width / 2 - + poly_finger2finger_x / 2 - + con * poly_finger2finger_x - ) - - mcon_via_ref = Top_cell << mcon_via - mcon_via_ref.movey( - y_move - pdk.get_grule("mcon")["width"] / 2 - ).movex(x_move - pdk.get_grule("mcon")["width"] / 2) - - met1_square_ref = Top_cell << met1_square - met1_square_ref.movey(y_move - met1_sq_dim / 2).movex( - x_move - met1_sq_dim / 2 - ) - - via1_via_ref = Top_cell << via1_via - via1_via_ref.movey(y_move - via1_via_dim / 2).movex( - x_move - via1_via_dim / 2 - ) - - met2_square_ref = Top_cell << met2_square - met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( - x_move - met2_sq_dim / 2 - ) - - if i == 0: - met2_poly_ext_1_ref = Top_cell << met2_poly_ext_1 - met2_poly_ext_1_ref.movey(y_move - met2_sq_dim / 2).movex( - x_move - met2_sq_dim / 2 - ) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_poly_ext_1_height - - met2_sq_dim - + y_move - - via2_via_dim / 2 - ).movex(x_move - via2_via_dim / 2) - - met3_poly_ext_ref = Top_cell << met3_poly_ext - met3_poly_ext_ref.movey( - y_move + met2_poly_ext_1_height - met2_sq_dim - via2_via_dim - ).movex(-2) - - # Connecting to trunk - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_poly_ext_1_height - - met2_sq_dim - + y_move - - via2_via_dim / 2 - ).movex(-1 + via2_via_dim / 2) - - # Connecting trunk - - if i == 1: - met2_poly_ext_2_ref = Top_cell << met2_poly_ext_2 - met2_poly_ext_2_ref.movey(y_move - met2_sq_dim / 2).movex( - x_move - met2_sq_dim / 2 - ) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_poly_ext_2_height - - met2_sq_dim - + y_move - - via2_via_dim / 2 - ).movex(x_move - via2_via_dim / 2) - - met3_poly_ext_ref = Top_cell << met3_poly_ext - met3_poly_ext_ref.movey( - y_move + met2_poly_ext_2_height - met2_sq_dim - via2_via_dim - ).movex(-2) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_poly_ext_2_height - - met2_sq_dim - + y_move - - via2_via_dim / 2 - ).movex(-2 + via2_via_dim / 2) - - if j == 0: - ##poly trunk - poly_trunk = Top_cell << poly_ext_trunk_ref - poly_trunk.movex( - poly_left_edge + cell_width * i + space_bet_mult * i - ).movey(-poly_ext_trunk_height + cell_height * j + space_bet_rows * (j)) - poly_trunk_center_y = (poly_trunk.ymax - poly_trunk.ymin) / 2 - - ## Drain Stripes - for con in range(fingers + 1): - if con % 2 != 0: - y_move = cell_height + space_bet_rows * 0.3 - x_move = ( - cell_width * i - + space_bet_mult * i - + poly_left_edge - + poly_width / 2 - - poly_finger2finger_x / 2 - + con * poly_finger2finger_x - ) - - ## Drain extensions - met3_Drain_trunk_ref = Top_cell << met3_Drain_trunk - met3_Drain_trunk_ref.movex( - cell_width * i + space_bet_mult * i - ).movey(y_move - met3_sq_dim / 2) - - ## Drain extension connecting via - if i == 1: - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey(y_move - via2_via_dim / 2).movex( - cell_width * (i) + space_bet_mult * i + 0.3 - ) - met2_Drain_stripes = rectangle( - size=(met2_sq_dim, cell_height + space_bet_rows * 0.3), - layer=pdk.get_glayer("met2"), - ) - met2_square_ref = Top_cell << met2_Drain_stripes - met2_square_ref.movey(0 + met2_sq_dim + 0.05).movex( - x_move - met2_sq_dim / 2 - ) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey(y_move - via2_via_dim / 2).movex( - x_move - via2_via_dim / 2 - ) - - ## VSS Stripes - for con in range(fingers + 1): - if con % 2 == 0: - y_move = cell_height + space_bet_rows * 0.1 - x_move = ( - cell_width * i - + space_bet_mult * i - + poly_left_edge - + poly_width / 2 - - poly_finger2finger_x / 2 - + con * poly_finger2finger_x - ) - - ## VSS extensions - met3_VSS_trunk_ref = Top_cell << met3_VSS_trunk - met3_VSS_trunk_ref.movex( - cell_width * i + space_bet_mult * i - ).movey(y_move - met3_sq_dim / 2) - - met2_VSS_stripes = rectangle( - size=(met2_sq_dim, cell_height + space_bet_rows * 0.25), - layer=pdk.get_glayer("met2"), - ) - met2_square_ref = Top_cell << met2_VSS_stripes - met2_square_ref.movey(0 - met2_sq_dim - 0.15).movex( - x_move - met2_sq_dim / 2 - ) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey(y_move - via2_via_dim / 2).movex( - x_move - via2_via_dim / 2 - ) - - ## Contacts on Poly trunk - for con in range(fingers - 1): - y_move = ( - -poly_ext_trunk_height - + cell_height * j - + space_bet_rows * (j) - + poly_trunk_center_y - ) - x_move = ( - cell_width * i - + space_bet_mult * i - + poly_left_edge - + poly_width / 2 - + poly_finger2finger_x / 2 - + con * poly_finger2finger_x - ) - - mcon_via_ref = Top_cell << mcon_via - mcon_via_ref.movey( - y_move - pdk.get_grule("mcon")["width"] / 2 - ).movex(x_move - pdk.get_grule("mcon")["width"] / 2) - - met1_square_ref = Top_cell << met1_square - met1_square_ref.movey(y_move - met1_sq_dim / 2).movex( - x_move - met1_sq_dim / 2 - ) - - via1_via_ref = Top_cell << via1_via - via1_via_ref.movey(y_move - via1_via_dim / 2).movex( - x_move - via1_via_dim / 2 - ) - - met2_square_ref = Top_cell << met2_square - met2_square_ref.movey(y_move - met2_sq_dim / 2).movex( - x_move - met2_sq_dim / 2 - ) - - if i == 1: - met2_poly_ext_1_ref = Top_cell << met2_poly_ext_1 - met2_poly_ext_1_ref.movey( - met2_sq_dim - - met2_poly_ext_1_height - + y_move - - met2_sq_dim / 2 - ).movex(x_move - met2_sq_dim / 2) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_sq_dim - - met2_poly_ext_1_height - + y_move - - via2_via_dim / 2 - ).movex(x_move - via2_via_dim / 2) - - met3_poly_ext_ref = Top_cell << met3_poly_ext - met3_poly_ext_ref.movey( - met2_sq_dim - met2_poly_ext_1_height + y_move - via2_via_dim - ).movex(-2) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_sq_dim - - met2_poly_ext_1_height - + y_move - - via2_via_dim / 2 - ).movex(-2 + via2_via_dim / 2) - - if i == 0: - met2_poly_ext_2_ref = Top_cell << met2_poly_ext_2 - met2_poly_ext_2_ref.movey( - met2_sq_dim - - met2_poly_ext_2_height - + y_move - - met2_sq_dim / 2 - ).movex(x_move - met2_sq_dim / 2) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_sq_dim - - met2_poly_ext_2_height - + y_move - - via2_via_dim / 2 - ).movex(x_move - via2_via_dim / 2) - - met3_poly_ext_ref = Top_cell << met3_poly_ext - met3_poly_ext_ref.movey( - met2_sq_dim - met2_poly_ext_2_height + y_move - via2_via_dim - ).movex(-2) - - via2_via_ref = Top_cell << via2_via - via2_via_ref.movey( - met2_sq_dim - - met2_poly_ext_2_height - + y_move - - via2_via_dim / 2 - ).movex(-1 + via2_via_dim / 2) - - return Top_cell - - -if __name__ == "__main__": - from PDK.util.standard_main import pdk - - Top_cell = diff_pair(pdk, mult=2, fingers=4, cell_height=1.34) - Top_cell.show() +# 1- create single transistor component +# 2- create a 4 array of them with top transistors mirrored along xaxis such that gate routes are facing out +# separation in the middle should be max of + +from gdsfactory.cell import cell +from gdsfactory.component import Component, copy +from gdsfactory.components.rectangle import rectangle +from fet import nmos, pmos +from PDK.mappedpdk import MappedPDK +from typing import Optional +from gdsfactory.routing.route_quad import route_quad +from gdsfactory.routing.route_sharp import route_sharp +from c_route import c_route +from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, movex, movey, get_orientation, set_orientation, evaluate_bbox, align_comp_to_port +from via_gen import via_stack + +#diffpair << route_sharp(b_topr.ports["multiplier_0_source_E"],viam2m3_ref_tr.ports["bottom_met_W"], width=connect_width, layer=pdk.get_glayer("met2"), path_type="manhattan") + +@cell +def diff_pair( + pdk: MappedPDK, + width: Optional[float] = 3, + fingers: Optional[int] = 4, + length: Optional[float] = None, + n_or_p_fet: Optional[bool] = True, +) -> Component: + """create a diffpair with 2 transistors placed in two rows with common centroid place. Sources are shorted + width = width of the transistors + fingers = number of fingers in the transistors (must be 2 or more) + length = length of the transistors, None means use min length + short_source = if true connects source of both transistors + n_or_p_fet = if true the diffpair is made of nfets else it is made of pfets + """ + # TODO: error checking + pdk.activate() + diffpair = Component() + # create transistors + well = None + if n_or_p_fet: + fet = nmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,with_dnwell=False,with_substrate_tap=False) + min_spacing_x = pdk.get_grule("n+s/d")["min_separation"] - 2*(fet.xmax - fet.ports["multiplier_0_plusdoped_E"].center[0]) + well = "pwell" + else: + fet = pmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,dnwell=False,with_substrate_tap=False) + min_spacing_x = pdk.get_grule("p+s/d")["min_separation"] - 2*(fet.xmax - fet.ports["multiplier_0_plusdoped_E"].center[0]) + well = "nwell" + # place transistors + viam2m3 = via_stack(pdk,"met2","met3",centered=True) + metal_min_dim = max(pdk.get_grule("met2")["min_width"],pdk.get_grule("met3")["min_width"]) + metal_space = max(pdk.get_grule("met2")["min_separation"],pdk.get_grule("met3")["min_separation"],metal_min_dim) + gate_route_os = evaluate_bbox(viam2m3)[0] - fet.ports["multiplier_0_gate_W"].width + metal_space + min_spacing_y = metal_space + 2*gate_route_os + min_spacing_y = min_spacing_y - 2*abs(fet.ports["well_S"].center[1] - fet.ports["multiplier_0_gate_S"].center[1]) + a_topl = (diffpair << fet).movey(fet.ymax+min_spacing_y/2).movex(0-fet.xmax-min_spacing_x/2) + b_topr = (diffpair << fet).movey(fet.ymax+min_spacing_y/2).movex(fet.xmax+min_spacing_x/2) + a_botr = (diffpair << fet) + a_botr.mirror_y().movey(0-fet.ymax-min_spacing_y/2).movex(fet.xmax+min_spacing_x/2) + b_botl = (diffpair << fet) + b_botl.mirror_y().movey(0-fet.ymax-min_spacing_y/2).movex(0-fet.xmax-min_spacing_x/2) + # create gate route between transistor A mults + avia_gate_tl = align_comp_to_port(viam2m3, a_topl.ports["multiplier_0_gate_E"], ('r','b')) + diffpair.add(avia_gate_tl) + avia_gate_br = align_comp_to_port(viam2m3, a_botr.ports["multiplier_0_gate_W"], ('l','t')) + diffpair.add(avia_gate_br) + # lay metal spacer + min_metal_spacer = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, metal_space), layer=pdk.get_glayer("met3"), centered=True) + metal_space_tl = align_comp_to_port(min_metal_spacer, avia_gate_tl.ports["top_met_S"], ('l','b')) + diffpair.add(metal_space_tl) + metal_space_br = align_comp_to_port(min_metal_spacer, avia_gate_br.ports["top_met_N"], ('r','t')) + diffpair.add(metal_space_br) + # lay cross metal + amet_cross_width = abs(metal_space_br.ports["e3"].center[0] - metal_space_tl.ports["e1"].center[0]) + amet_cross_hieght = abs(metal_space_tl.ports["e4"].center[1] - metal_space_br.ports["e2"].center[1]) + amet_gate_cross = rectangle(size=(amet_cross_width, amet_cross_hieght), layer=pdk.get_glayer("met3"), centered=True) + cross_metal_gate_a = align_comp_to_port(amet_gate_cross, metal_space_br.ports["e2"], ('l','t')) + diffpair.add(cross_metal_gate_a) + # create gate route between transistor B mults + min_metal_spacer_2 = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, gate_route_os), layer=pdk.get_glayer("met2"), centered=True) + # lay metal spacers + metal_space_bl = align_comp_to_port(min_metal_spacer_2, b_botl.ports["multiplier_0_gate_S"], ('r','t')) + diffpair.add(metal_space_bl) + metal_space_tr = align_comp_to_port(min_metal_spacer_2, b_topr.ports["multiplier_0_gate_S"], ('l','b')) + diffpair.add(metal_space_tr) + # lay cross metal + bmet_cross_width = abs(metal_space_tr.ports["e3"].center[0] - metal_space_bl.ports["e1"].center[0]) + bmet_gate_cross = rectangle(size=(bmet_cross_width, metal_space), layer=pdk.get_glayer("met2"), centered=True) + cross_metal_gate_b = align_comp_to_port(bmet_gate_cross, metal_space_tr.ports["e4"], ('l','b')) + diffpair.add(cross_metal_gate_b) + # route sources (short sources) + diffpair << route_quad(a_topl.ports["multiplier_0_source_E"], b_topr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) + diffpair << route_quad(b_botl.ports["multiplier_0_source_E"], a_botr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) + sextension = b_topr.ports["well_E"].center[0] - b_topr.ports["multiplier_0_source_E"].center[0] + source_routeE = diffpair << c_route(pdk, b_topr.ports["multiplier_0_source_E"], a_botr.ports["multiplier_0_source_E"],extension=sextension) + source_routeW = diffpair << c_route(pdk, a_topl.ports["multiplier_0_source_W"], b_botl.ports["multiplier_0_source_W"],extension=sextension) + # route drains + # place via at the drain + drain_br_via = diffpair << viam2m3 + drain_bl_via = diffpair << viam2m3 + drain_br_via.move(a_botr.ports["multiplier_0_drain_N"].center).movey(viam2m3.ymin) + drain_bl_via.move(b_botl.ports["multiplier_0_drain_N"].center).movey(viam2m3.ymin) + drain_br_viatm = diffpair << viam2m3 + drain_bl_viatm = diffpair << viam2m3 + drain_br_viatm.move(a_botr.ports["multiplier_0_drain_N"].center).movey(viam2m3.ymin) + drain_bl_viatm.move(b_botl.ports["multiplier_0_drain_N"].center).movey(-1.5 * evaluate_bbox(viam2m3)[1] - metal_space) + # create route to drain via + width_drain_route = b_topr.ports["multiplier_0_drain_E"].width + dextension = source_routeE.xmax - b_topr.ports["multiplier_0_drain_E"].center[0] + metal_space + bottom_extension = viam2m3.ymax + width_drain_route/2 + 2*metal_space + drain_br_viatm.movey(0-bottom_extension - metal_space - width_drain_route/2 - viam2m3.ymax) + diffpair << route_quad(drain_br_viatm.ports["top_met_N"], drain_br_via.ports["top_met_S"], layer=pdk.get_glayer("met3")) + diffpair << route_quad(drain_bl_viatm.ports["top_met_N"], drain_bl_via.ports["top_met_S"], layer=pdk.get_glayer("met3")) + floating_port_drain_bottom_L = set_orientation(movey(drain_bl_via.ports["bottom_met_W"],0-bottom_extension), get_orientation("E")) + floating_port_drain_bottom_R = set_orientation(movey(drain_br_via.ports["bottom_met_E"],0-bottom_extension - metal_space - width_drain_route), get_orientation("W")) + drain_routeTR_BL = diffpair << c_route(pdk, floating_port_drain_bottom_L, b_topr.ports["multiplier_0_drain_E"],extension=dextension, width=width_drain_route) + drain_routeTL_BR = diffpair << c_route(pdk, floating_port_drain_bottom_R, a_topl.ports["multiplier_0_drain_W"],extension=dextension, width=width_drain_route) + # correct pwell place, add ports, flatten, and return + diffpair.add_padding(layers=(pdk.get_glayer(well),), default=0) + return rename_ports_by_orientation(diffpair.flatten()) + + +if __name__ == "__main__": + from PDK.util.standard_main import pdk + mycomp = diff_pair(pdk) + mycomp.show() + print_ports(mycomp) + diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 4d25c5bdb..471156078 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -7,6 +7,10 @@ from via_gen import via_array, via_stack from guardring import tapring from pydantic import validate_arguments +from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array +from c_route import c_route +from PDK.util.snap_to_grid import component_snap_to_grid +from decimal import Decimal @cell @@ -18,6 +22,8 @@ def multiplier( routing: Optional[bool] = True, dummy: Optional[Union[bool, tuple[bool, bool]]] = True, length: Optional[float] = None, + sd_route_topmet: Optional[str] = "met2", + gate_route_topmet: Optional[str] = "met2" ) -> Component: """Generic poly/sd vias generator args: @@ -36,130 +42,131 @@ def multiplier( # error checking if "+s/d" not in sdlayer: raise ValueError("specify + doped region for multiplier") + if not "met" in sd_route_topmet or not "met" in gate_route_topmet: + raise ValueError("topmet specified must be metal layer") multiplier = Component() if fingers == 0: return multiplier # create the poly gate length = length or pdk.get_grule("poly")["min_width"] - poly_overhang = pdk.get_grule("poly", "active_diff")["overhang"] + length = Decimal(str(length)) + poly_overhang = Decimal(str(pdk.get_grule("poly", "active_diff")["overhang"])) + width = Decimal(str(width)) poly_height = width + 2 * poly_overhang - routing_pfac = pdk.get_grule("met1")["min_separation"] if routing else 0 + routing_pfac = Decimal(str(max(pdk.get_grule("met1")["min_separation"],pdk.get_grule("met2")["min_separation"]) if routing else 0)) poly_height += routing_pfac poly_gate_comp = Component("temp poly gate") tempref = poly_gate_comp << rectangle( - size=(length, poly_height), layer=pdk.get_glayer("poly"), centered=True + size=to_float((length, poly_height)), layer=pdk.get_glayer("poly"), centered=True ) - tempref.movey(-0.5 * routing_pfac) + tempref.movey(float(0-routing_pfac/2)) # figure out poly spacing s.t. metal/via does not overlap transistor tempviastack = via_stack(pdk, "active_diff", "met1") - viasize = tempviastack.xmax - tempviastack.xmin + viasize = evaluate_bbox(tempviastack,True)[0] mcon_poly_space = ( - 2 * pdk.get_grule("poly", "mcon")["min_separation"] - + pdk.get_grule("mcon")["width"] + 2 * Decimal(str(pdk.get_grule("poly", "mcon")["min_separation"])) + + Decimal(str(pdk.get_grule("mcon")["width"])) ) poly_spacing = max(viasize, mcon_poly_space) # create a single finger finger = Component("temp finger comp") finger << poly_gate_comp - routing_mfac = pdk.get_grule("met1")["min_separation"] if routing else 0 + routing_mfac = Decimal(str(pdk.get_grule("met1")["min_separation"] if routing else 0)) vwidth = width + routing_mfac - sd_via_comp = via_array(pdk, "active_diff", "met1", size=(viasize, vwidth)) + sd_via_comp = via_array(pdk, "active_diff", "met1", size=to_float((viasize, vwidth)), minus1=True) sd_via_ref_arr = finger << sd_via_comp - finger_dim = poly_spacing + max(length, pdk.get_grule("met1")["min_separation"]) - sd_via_ref_arr.movex(finger_dim / 2).movey(routing_mfac / 2) + finger_dim = poly_spacing + max(length, Decimal(str(pdk.get_grule("met1")["min_separation"]))) + sd_via_ref_arr.movex(to_float(finger_dim / 2)).movey(to_float(routing_mfac / 2)) # create finger array and add to multiplier fingerarray = Component("temp finger array") - fingerarray.add_array(finger, columns=fingers, rows=1, spacing=(finger_dim, 1)) + fingerarray = prec_array(finger, columns=fingers, rows=1, spacing=(finger_dim, 1)) sd_via_ref_left = fingerarray << sd_via_comp - sd_via_ref_left.movex(-0.5 * finger_dim).movey(routing_mfac / 2) + sd_via_ref_left.movex(to_float(0-finger_dim/2)).movey(to_float(routing_mfac / 2)) + fingerarray = component_snap_to_grid(fingerarray) fingerarray_ref = multiplier << fingerarray - offset = (fingers - 1) * finger_dim * 0.5 - fingerarray_ref.movex(-1 * offset) + offset = (fingers - 1) * finger_dim / 2 + fingerarray_ref.movex(to_float(-1 * offset)) # create diffusion and +doped region diff_dims = ( - multiplier.xmax - - multiplier.xmin - + 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"], + evaluate_bbox(multiplier,True)[0] + + 2 * Decimal(str(pdk.get_grule("mcon", "active_diff")["min_enclosure"])), width, ) - diff_area = copy( - rectangle(size=diff_dims, layer=pdk.get_glayer("active_diff"), centered=True) - ) - sd_ovhg = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] - diff_area.add_padding(layers=(pdk.get_glayer(sdlayer),), default=sd_ovhg) - multiplier << diff_area + multiplier << rectangle(size=to_float(diff_dims), layer=pdk.get_glayer("active_diff"), centered=True) + sd_ovhg = Decimal(str(pdk.get_grule(sdlayer, "active_diff")["min_enclosure"])) + sd_ovhg_dims = [dim + sd_ovhg for dim in diff_dims] + sdlayer_ref = multiplier << rectangle(layer=pdk.get_glayer(sdlayer), size=to_float(sd_ovhg_dims), centered=True) + multiplier.add_ports(sdlayer_ref.get_ports_list(),prefix="plusdoped_") # route all drains/ gates/ sources if routing: if fingers == 1: raise NotImplementedError("fingers=1 not supported for routing") # create sdvia (need dims) - sdvia = via_stack(pdk, "met1", "met2") + sdvia = via_stack(pdk, "met1", sd_route_topmet) # TODO: fix poly overhang / met1 separation extracted_gates = multiplier.extract([pdk.get_glayer("poly")]) gate_route_width = ( - pdk.get_grule("mcon")["width"] - + 2 * pdk.get_grule("poly", "mcon")["min_enclosure"] + Decimal(str(pdk.get_grule("mcon")["width"])) + + 2 * Decimal(str(pdk.get_grule("poly", "mcon")["min_enclosure"])) ) - gate_route_length = extracted_gates.xmax - extracted_gates.xmin + gate_route_length = evaluate_bbox(extracted_gates,True)[0] routedims = [gate_route_length, gate_route_width] - gate_route = copy( - rectangle(size=routedims, layer=pdk.get_glayer("poly"), centered=True) - ) - routedims[1] = 2 * via_stack(pdk, "poly", "met2").ymax - g_conref = gate_route << via_array(pdk, "poly", "met2", size=routedims) + gate_route = Component("gate route") + gate_route << rectangle(size=to_float(routedims), layer=pdk.get_glayer("poly"), centered=True) + routedims[1] = 2 * Decimal(str(via_stack(pdk, "poly", gate_route_topmet).ymax)) + va_ref_ = gate_route << via_array(pdk, "poly", gate_route_topmet, size=to_float(routedims)) + gate_route.add_ports([_p for _p in va_ref_.get_ports_list() if "top_met" in _p.name]) gate_route_ref = multiplier << gate_route - gate_route_ref.movey(-0.5 * (poly_height + gate_route_width + routing_pfac)) + gate_route_ref.movey(float(0-(poly_height + gate_route_width + routing_pfac)/2)) multiplier.add_ports(gate_route_ref.get_ports_list(), prefix="gate_") # source and drain routing - sw_corner_os = [ - fingerarray_ref.xmin + viasize / 2, - fingerarray_ref.parent.extract([pdk.get_glayer("met1")]).ymax - + sdvia.extract([pdk.get_glayer("met1")]).ymax, - ] + sdtop_coords = [ Decimal(str(fingerarray_ref.xmin)) + viasize / 2, + Decimal(str(fingerarray_ref.parent.extract([pdk.get_glayer("met1")]).ymax))] + sd_offsets = list() for finger in range(fingers + 1): - sdrouting = Component("temp routing comp") - sdrouting << sdvia - doffset_met1 = 0 + # extend the source drain connection to acamodate via + met1_core_size = Decimal(str(sdvia.extract([pdk.get_glayer("met1")]).ymax)) + extendm_length = Decimal(str(sdvia.ymax)) + met1_core_size if finger % 2: - doffset_met1 = sdvia.ymax - sdvia.extract([pdk.get_glayer("met1")]).ymax - doffset = (2 * sdvia.ymax) + pdk.get_grule("met2")["min_separation"] - extendm = sdrouting << rectangle( - size=(viasize, doffset + doffset_met1), - centered=True, + top_met_seperation = Decimal(str(pdk.get_grule(sd_route_topmet)["min_separation"])) + Decimal(str(0.1)) + extendm_length += 2*Decimal(str(sdvia.ymax)) + top_met_seperation + extendm = multiplier << rectangle( + size=to_float((viasize, extendm_length)), layer=pdk.get_glayer("met1"), ) - extendm.movey(-0.5 * doffset - sdvia.ymax + doffset_met1 / 2) - sdrouting_ref = multiplier << sdrouting - sdrouting_ref.move(destination=(sw_corner_os)) - if finger % 2: - sdrouting_ref.movey(extendm.ymax - extendm.ymin) - sw_corner_os[0] += finger_dim - met2_ext = multiplier.extract([pdk.get_glayer("met2")]) - met2route_dims = (met2_ext.xmax - met2_ext.xmin, 2 * sdvia.ymax) - sd_met2_connect = rectangle( - layer=pdk.get_glayer("met2"), size=met2route_dims, centered=True + else: + extendm = multiplier << rectangle(size=to_float((viasize, extendm_length)), layer=pdk.get_glayer("met1")) + extendm.move(destination=to_float(sdtop_coords)).movex(to_float(0-viasize/2)) + # create the via between s/d connection and s/d route + sdvia_ref = multiplier << sdvia + sdvia_ref.move(destination=to_float(sdtop_coords)) + sdvia_ref.movey(to_float(extendm_length - met1_core_size)) + sdtop_coords[0] += finger_dim + extendm_length += sdtop_coords[1] - met1_core_size + sd_offsets += [extendm_length] if len(sd_offsets) < 2 else [] + mett_ext = multiplier.extract([pdk.get_glayer(sd_route_topmet)]) + mettroute_dims = (evaluate_bbox(mett_ext,True)[0], 2 * Decimal(str(sdvia.ymax))) + sd_mett_connect = rectangle( + layer=pdk.get_glayer(sd_route_topmet), size=to_float(mettroute_dims), centered=True ) prefix = ["source_", "drain_"] - for i, mof in enumerate([sw_corner_os[1], met2_ext.ymax - sdvia.ymax]): - m2ref = multiplier << sd_met2_connect - m2ref.movey(mof) + for i, mof in enumerate(sd_offsets): + m2ref = (multiplier << sd_mett_connect).movey(to_float(mof)) multiplier.add_ports(m2ref.get_ports_list(), prefix=prefix[i]) # create dummy regions if isinstance(dummy, bool): - dummyl = dummy - dummyr = dummy + dummyl = dummyr = dummy else: - dummyl = dummy[0] - dummyr = dummy[1] + dummyl, dummyr = dummy if dummyl or dummyr: dummy = Component("temp dummy region") size = (length, width) dummy << rectangle( - layer=pdk.get_glayer("active_diff"), size=size, centered=True + layer=pdk.get_glayer("active_diff"), size=to_float(size), centered=True ) dummy_space = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] dummy.add_padding(layers=(pdk.get_glayer(sdlayer),), default=dummy_space) - dummy_space += pdk.get_grule(sdlayer)["min_separation"] + size[0] / 2 + dummy_space = dummy_space + pdk.get_grule(sdlayer)["min_separation"] + float(size[0] / 2) sides = list() if dummyl: sides.append(-1) @@ -168,7 +175,9 @@ def multiplier( for side in sides: dummy_ref = multiplier << dummy dummy_ref.movex(side * (dummy_space + multiplier.xmax)) - return multiplier.flatten() + # ensure correct port names and return + multiplier = rename_ports_by_list(multiplier, [("source","source_"),("drain","drain_"),("gate","gate_"),("plusdoped","plusdoped_")]) + return component_snap_to_grid(rename_ports_by_orientation(multiplier)) @validate_arguments @@ -181,7 +190,11 @@ def __mult_array_macro( routing: Optional[bool] = True, dummy: Optional[Union[bool, tuple[bool, bool]]] = True, length: Optional[float] = None, + sd_route_topmet: Optional[str] = "met2", + gate_route_topmet: Optional[str] = "met2", + sd_route_left: Optional[bool] = True, ) -> Component: + """create a multiplier array with multiplier_0 at the bottom""" # create multiplier array pdk.activate() # TODO: error checking @@ -194,20 +207,49 @@ def __mult_array_macro( dummy=dummy, routing=routing, length=length, + sd_route_topmet=sd_route_topmet, + gate_route_topmet=gate_route_topmet ) multiplier_separation = ( - pdk.get_grule("met2")["min_separation"] - + multiplier_comp.ymax - - multiplier_comp.ymin + to_decimal(pdk.get_grule("met2")["min_separation"]) + + evaluate_bbox(multiplier_comp, True)[1] ) for rownum in range(multipliers): row_displacment = rownum * multiplier_separation row_ref = multiplier_arr << multiplier_comp - row_ref.movey(row_displacment) + row_ref.movey(to_float(row_displacment)) multiplier_arr.add_ports( row_ref.get_ports_list(), prefix="multiplier_" + str(rownum) + "_" ) - return multiplier_arr.flatten() + # TODO: fix extension (both extension are broken. IDK src extension and drain extension IDK metal layer) + src_extension = to_decimal(0.6) + drain_extension = src_extension + 3*to_decimal(pdk.get_grule("met4")["min_separation"]) + sd_side = "W" if sd_route_left else "E" + gate_side = "E" if sd_route_left else "W" + if routing and multipliers > 1: + for rownum in range(multipliers-1): + thismult = "multiplier_" + str(rownum) + "_" + nextmult = "multiplier_" + str(rownum+1) + "_" + # route sources left + srcpfx = thismult + "source_" + this_src = multiplier_arr.ports[srcpfx+sd_side] + next_src = multiplier_arr.ports[nextmult + "source_"+sd_side] + src_ref = multiplier_arr << c_route(pdk, this_src, next_src, viaoffset=(True,False), extension=to_float(src_extension)) + multiplier_arr.add_ports(src_ref.get_ports_list(), prefix=srcpfx) + # route drains left + drainpfx = thismult + "drain_" + this_drain = multiplier_arr.ports[drainpfx+sd_side] + next_drain = multiplier_arr.ports[nextmult + "drain_"+sd_side] + drain_ref = multiplier_arr << c_route(pdk, this_drain, next_drain, viaoffset=(True,False), extension=to_float(drain_extension)) + multiplier_arr.add_ports(drain_ref.get_ports_list(), prefix=drainpfx) + # route gates right + gatepfx = thismult + "gate_" + this_gate = multiplier_arr.ports[gatepfx+gate_side] + next_gate = multiplier_arr.ports[nextmult + "gate_"+gate_side] + gate_ref = multiplier_arr << c_route(pdk, this_gate, next_gate, viaoffset=(True,False), extension=to_float(src_extension)) + multiplier_arr.add_ports(gate_ref.get_ports_list(), prefix=gatepfx) + # clean TODO: solution is in pmos/nmos do a real copy instead of adding ref + return component_snap_to_grid(rename_ports_by_orientation(multiplier_arr)) @cell @@ -221,6 +263,9 @@ def nmos( with_dnwell: Optional[bool] = True, with_substrate_tap: Optional[bool] = True, length: Optional[float] = None, + sd_route_topmet: Optional[str] = "met2", + gate_route_topmet: Optional[str] = "met2", + sd_route_left: Optional[bool] = True ) -> Component: """Generic NMOS generator width = expands the NMOS in the y direction @@ -234,7 +279,7 @@ def nmos( nfet = Component() # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length + pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left ) multiplier_arr_ref = multiplier_arr.ref_center() nfet.add(multiplier_arr_ref) @@ -263,6 +308,7 @@ def nmos( layers=(pdk.get_glayer("pwell"),), default=pdk.get_grule("pwell", "active_tap")["min_enclosure"], ) + nfet = add_ports_perimeter(nfet,layer=pdk.get_glayer("pwell"),prefix="well_") # add dnwell if dnwell if with_dnwell: nfet.add_padding( @@ -285,7 +331,7 @@ def nmos( horizontal_glayer="met2", vertical_glayer="met1", ) - return nfet.flatten() + return rename_ports_by_orientation(nfet).flatten() @cell @@ -299,6 +345,9 @@ def pmos( with_dummy: Optional[Union[bool, tuple[bool, bool]]] = True, with_substrate_tap: Optional[bool] = True, length: Optional[float] = None, + sd_route_topmet: Optional[str] = "met2", + gate_route_topmet: Optional[str] = "met2", + sd_route_left: Optional[bool] = True ) -> Component: """Generic PMOS generator width = expands the PMOS in the y direction @@ -312,7 +361,7 @@ def pmos( pfet = Component() # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length + pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left ) multiplier_arr_ref = multiplier_arr.ref_center() pfet.add(multiplier_arr_ref) @@ -338,11 +387,11 @@ def pmos( ) # add nwell nwell_glayer = "dnwell" if dnwell else "nwell" - nwell_layer = pdk.get_glayer(nwell_glayer) pfet.add_padding( - layers=(nwell_layer,), + layers=(pdk.get_glayer(nwell_glayer),), default=pdk.get_grule("active_tap", nwell_glayer)["min_enclosure"], ) + pfet = add_ports_perimeter(pfet,layer=pdk.get_glayer(nwell_glayer),prefix="well_") # add substrate tap if with_substrate_tap if with_substrate_tap: substrate_tap_separation = pdk.get_grule("dnwell", "active_tap")[ @@ -359,13 +408,22 @@ def pmos( horizontal_glayer="met2", vertical_glayer="met1", ) - return pfet.flatten() + return rename_ports_by_orientation(pfet).flatten() if __name__ == "__main__": from PDK.util.standard_main import pdk - mytransistor = nmos(pdk, fingers=8, multipliers=2, with_dummy=True) - mytransistor.show() - for key in mytransistor.ports.keys(): + showmult = False + if showmult: + mycomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1) + else: + #mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True) + mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True) + print(*mycomp.get_polygons(),sep="\n") + #large = pmos(pdk, fingers=20, length=1, multipliers=5, width=6, with_dummy=True) + #large.show() + #mycomp = pmos(pdk, fingers=8, multipliers=2, with_dummy=False, gate_route_topmet="met4",sd_route_topmet="met4") + mycomp.show() + for key in mycomp.ports.keys(): print(key) diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index 5ae6741e7..aed8b697a 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -6,6 +6,7 @@ from via_gen import via_array, via_stack from typing import Optional from math import ceil +from PDK.util.snap_to_grid import component_snap_to_grid @cell @@ -83,15 +84,15 @@ def tapring( metal_ref_e = ptapring << vertical_arr metal_ref_s = ptapring << horizontal_arr metal_ref_w = ptapring << vertical_arr - metal_ref_n.movey(0.5 * (enclosed_rectangle[1] + tap_width)) - metal_ref_e.movex(0.5 * (enclosed_rectangle[0] + tap_width)) - metal_ref_s.movey(-0.5 * (enclosed_rectangle[1] + tap_width)) - metal_ref_w.movex(-0.5 * (enclosed_rectangle[0] + tap_width)) + metal_ref_n.movey(round(0.5 * (enclosed_rectangle[1] + tap_width),4)) + metal_ref_e.movex(round(0.5 * (enclosed_rectangle[0] + tap_width),4)) + metal_ref_s.movey(round(-0.5 * (enclosed_rectangle[1] + tap_width),4)) + metal_ref_w.movex(round(-0.5 * (enclosed_rectangle[0] + tap_width),4)) # done, flatten and return - return ptapring.flatten() + return component_snap_to_grid(ptapring) if __name__ == "__main__": from PDK.util.standard_main import pdk - tapring(pdk, "p+s/d", enclosed_rectangle=(5, 5)).show() + tapring(pdk, "p+s/d", enclosed_rectangle=(26, 10)).show() diff --git a/openfasoc/generators/gdsfactory-gen/mimcap.py b/openfasoc/generators/gdsfactory-gen/mimcap.py index e717865e7..9b757a821 100644 --- a/openfasoc/generators/gdsfactory-gen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/mimcap.py @@ -4,6 +4,7 @@ from PDK.mappedpdk import MappedPDK from typing import Optional from via_gen import via_array +from PDK.util.custom_comp_utils import rename_ports_by_orientation @cell @@ -21,18 +22,20 @@ def mimcap( # get cap layers and run error checking pdk.has_required_glayers(["capmet", route_layer]) capmettop = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmettop"]) + capmetbottom_actual = pdk.get_grule("capmet")["capmetbottom"] capmetbottom = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmetbottom"]) pdk.activate() # create top component mim_cap = Component() mim_cap << rectangle(size=size, layer=pdk.get_glayer("capmet"), centered=True) top_met_ref = mim_cap << via_array( - pdk, capmetbottom, capmettop, size=size, minus1=True + pdk, capmetbottom, capmettop, size=size, minus1=True, lay_bottom=False ) + bottom_met_enclosure = pdk.get_grule(capmetbottom,"capmet")["min_enclosure"] + mim_cap.add_padding(layers=(capmetbottom_actual,),default=bottom_met_enclosure) # flatten and create ports mim_cap.add_ports(top_met_ref.get_ports_list()) - mim_cap = mim_cap.flatten() - return mim_cap + return rename_ports_by_orientation(mim_cap).flatten() if __name__ == "__main__": diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index e52a10b35..4e5f12988 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -1,4 +1,5 @@ -from gdsfactory.cell import cell +#TODO: report as bug (clear_cache) +from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle from PDK.mappedpdk import MappedPDK @@ -7,12 +8,14 @@ from diff_pair import diff_pair from guardring import tapring from mimcap import mimcap - +from L_route import L_route +from c_route import c_route +from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox @cell def opamp( pdk: MappedPDK, - diffpair_params: Optional[tuple[float, float, int, int]] = (6, 0, 4, 2), + diffpair_params: Optional[tuple[float, float, int, int]] = (6, 0, 4), tailcurrent_params: Optional[tuple[float, float, int, int]] = (6, 2, 4, 1), cmirror_hparams: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), cmirror_outhparams: Optional[tuple[float, float, int, int]] = (6, 2, 2, 1), @@ -22,7 +25,7 @@ def opamp( ) -> Component: """create an opamp, args: pdk=pdk to use - diffpair_params = diffpair (width,length,fingers,mults) + diffpair_params = diffpair (width,length,fingers) tailcurrent_params = tailcurrent nmos (width,length,fingers,mults) cmirror_hparams = west current mirror (width,length,fingers,mults) cmirror_outhparams = east current mirror used to bias output fet (width,length,fingers,mults) @@ -35,9 +38,9 @@ def opamp( diffpair_i_ = Component("temp diffpair and current source") center_diffpair_comp = diff_pair( pdk, - cell_height=diffpair_params[0], + width=diffpair_params[0], fingers=diffpair_params[2], - mult=diffpair_params[3], + length=1 ) diffpair_i_.add(center_diffpair_comp.ref_center()) # create and position tail current source @@ -59,11 +62,9 @@ def opamp( ) # add to opamp comp opamp_top.add(diffpair_i_.ref_center()) - # create tap ring - # tapcenter_rect = [2*opamp_top.xmax, 2*opamp_top.ymax] - # opamp_top << tapring(pdk, tapcenter_rect, "p+s/d") # create and position current mirror symetrically x_dim_center = opamp_top.xmax + src_gnd_port = [None,None] for i, dummy in enumerate([(False, True), (True, False)]): halfMultn = nmos( pdk, @@ -75,23 +76,29 @@ def opamp( with_dnwell=False, with_substrate_tap=False, with_dummy=dummy, + sd_route_left = bool(i) ) halfMultn_ref = opamp_top << halfMultn direction = (-1) ** i halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax)) + opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="nfet_Isrc_"+str(i)+"_") + opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) + opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=20,fullbottom=True) # place pmos components pmos_comps = Component("temp pmos section top") # center and position shared_gate_comps = Component("temp pmos shared gates") - pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False)) + #TODO: report as bug + clear_cache() pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True)) - (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax) - (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin) + pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False)) + (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax - 0.1) + (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin + 0.1) # center relative_dim_comp = multiplier( pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False ) - single_dim = relative_dim_comp.xmax + single_dim = relative_dim_comp.xmax + 0.1 for i in [-2, -1, 1, 2]: dummy = False extra_t = 0 @@ -113,6 +120,8 @@ def opamp( ytranslation_pcenter = 2 * pcenterfourunits.ymax (pmos_comps << shared_gate_comps).movey(ytranslation_pcenter) (pmos_comps << shared_gate_comps).movey(-1 * ytranslation_pcenter) + shared_gate_comps.show() + pmos_comps.show() # pcore to output x_dim_center = pmos_comps.xmax for direction in [-1, 1]: @@ -125,9 +134,10 @@ def opamp( with_tie=True, dnwell=False, with_substrate_tap=False, + sd_route_left=bool(direction-1) ) halfMultp_ref = pmos_comps << halfMultp - halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax)) + halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax+1)) # finish place central ydim_ncomps = opamp_top.ymax - opamp_top.ymin pmos_comps.add_padding( @@ -144,55 +154,26 @@ def opamp( prev_xmax = opamp_top.xmax center_xmax = opamp_top.xmax + mimcap_single.xmax mimcap_space = ( - pdk.get_grule("met5")["min_separation"] - + mimcap_single.xmax - - mimcap_single.xmin + pdk.get_grule("capmet")["min_separation"] + + evaluate_bbox(mimcap_single)[0] ) + # TODO: fix glayer should be capmet + 1, size should be standardized + h_mimcap_spacer = rectangle(size=(1,pdk.get_grule("capmet")["min_separation"]+2),layer=pdk.get_glayer("met5"),centered=True) + v_mimcap_spacer = rectangle(size=(pdk.get_grule("capmet")["min_separation"]+2,1),layer=pdk.get_glayer("met5"),centered=True) mimcaps_ref = opamp_top.add_array( mimcap_single, rows=3, columns=2, spacing=(mimcap_space, mimcap_space) ) + spacing_factory_h = [dim + evaluate_bbox(h_mimcap_spacer)[1] for dim in evaluate_bbox(mimcap_single)] + mimcap_hspacer = opamp_top.add_array(h_mimcap_spacer,rows=2,columns=2,spacing=spacing_factory_h) + mimcap_vspacer = opamp_top.add_array(v_mimcap_spacer, rows=3,columns=1,spacing=spacing_factory_h) # TODO: fix mimcap to transistor separation displace_fact = 4 * pdk.get_grule("met5")["min_separation"] mimcaps_ref.movex(center_xmax + displace_fact) + mimcap_hspacer.movex(center_xmax + displace_fact) + mimcap_vspacer.movex(center_xmax + displace_fact + mimcap_single.xmax) mimcaps_ref.movey(pmos_comps_ref.ymin + mimcap_single.ymax) - # place cmirror for output amp - cmirror_out = nmos( - pdk, - width=cmirror_outhparams[0], - length=cmirror_outhparams[1], - fingers=cmirror_outhparams[2], - multipliers=cmirror_outhparams[3], - with_tie=False, - with_dnwell=False, - with_substrate_tap=True, - with_dummy=True, - ) - cmirror_out_ref = opamp_top.add_ref(cmirror_out, "output fet bias current") - cmirror_out_ref.movex(prev_xmax + cmirror_out_ref.xmax + displace_fact).movey( - opamp_top.ymin + cmirror_out_ref.ymax - ) - # place output amp - output_amp = Component("output fet") - for side in [-1, 1]: - fet_half = nmos( - pdk, - width=output_amphparams[0], - length=output_amphparams[1], - fingers=output_amphparams[2], - multipliers=output_amphparams[3], - with_tie=False, - with_dnwell=False, - with_substrate_tap=False, - with_dummy=(bool(side - 1), bool(side + 1)), - ) - fet_half_ref = output_amp << fet_half - fet_half_ref.movex(side * fet_half_ref.xmax) - tapcenter_rectf = [2 * output_amp.xmax + 1, 2 * output_amp.ymax + 1] - output_amp << tapring(pdk, tapcenter_rectf, "p+s/d") - output_amp_ref = opamp_top << output_amp - output_amp_ref.movex(prev_xmax + output_amp.xmax + displace_fact).movey( - 2 * output_amp.ymax - ) + mimcap_hspacer.movey(pmos_comps_ref.ymin + 2*mimcap_single.ymax) + mimcap_vspacer.movey(pmos_comps_ref.ymin + mimcap_single.ymax) # TODO: implement return opamp_top diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 952fe258f..e72ae5f32 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -4,7 +4,10 @@ from pydantic import validate_arguments from PDK.mappedpdk import MappedPDK from math import floor -from typing import Optional +from typing import Optional, Union +from PDK.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array +from PDK.util.snap_to_grid import component_snap_to_grid +from decimal import Decimal @validate_arguments @@ -18,14 +21,16 @@ def __error_check_order_layers( raise ValueError("via_stack: specify between two routable layers") level1 = int(glayer1[-1]) if "met" in glayer1 else 0 level2 = int(glayer2[-1]) if "met" in glayer2 else 0 + lay1, lay2 = glayer1, glayer2 if level1 > level2: level1, level2 = level2, level1 - return level1, level2 + lay1, lay2 = glayer2, glayer1 + return ((level1,level2),(lay1,lay2)) @cell def via_stack( - pdk: MappedPDK, glayer1: str, glayer2: str, centered: Optional[bool] = True + pdk: MappedPDK, glayer1: str, glayer2: str, centered: Optional[bool] = True, fullbottom: Optional[bool] = False ) -> Component: """produces a single via stack between two metal layers does not produce via arrays @@ -40,7 +45,7 @@ def via_stack( bottom_via_...all edges bottom_met_...all edges """ - level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) + level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2)[0] viastack = Component() # if same level return empty component if level1 == level2: @@ -54,10 +59,10 @@ def via_stack( port_refs[1][1] = viastack << rectangle( size=(mcondim, mcondim), layer=pdk.get_glayer("mcon"), centered=True ) - metdim = max( + metdim = round(max( 2 * pdk.get_grule("met1", "mcon")["min_enclosure"] + mcondim, pdk.get_grule("met1")["min_width"], - ) + ),6) port_refs[2][1] = viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer("met1"), centered=True ) @@ -72,11 +77,11 @@ def via_stack( gmetlayer = "met" + str(level) gnextvia = "via" + str(level) pdk.has_required_glayers([gmetlayer, gnextvia]) - metdim = max( + metdim = round(max( 2 * pdk.get_grule(gmetlayer, gnextvia)["min_enclosure"] + pdk.get_grule(gnextvia)["width"], pdk.get_grule(gmetlayer)["min_width"], - ) + ),6) metref = viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer(gmetlayer), centered=True ) @@ -92,24 +97,27 @@ def via_stack( port_refs[1][0] = True gfinalmet = "met" + str(level2) gprevvia = "via" + str(level) - metdim = max( + metdim = round(max( 2 * pdk.get_grule(gfinalmet, gprevvia)["min_enclosure"] + pdk.get_grule(gprevvia)["width"], pdk.get_grule(gfinalmet)["min_width"], - ) + ),6) port_refs[0][1] = viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer(gfinalmet), centered=True ) # add ports and implement center option pre = ["top_met_", "bottom_via_", "bottom_met_"] for i in range(3): - viastack.add_ports(port_refs[1][1].get_ports_list(), prefix=pre[i]) + viastack.add_ports(port_refs[i][1].get_ports_list(), prefix=pre[i]) + if fullbottom: + viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer("met"+str(level1)), centered=True) center_stack = Component() viastack_ref = center_stack << viastack if not centered: viastack_ref.movex(viastack.xmax).movey(viastack.ymax) + center_stack.add_ports(viastack_ref.get_ports_list()) - return center_stack.flatten() + return rename_ports_by_orientation(center_stack.flatten()) @cell @@ -119,82 +127,106 @@ def via_array( glayer2: str, size=(4.0, 1.0), minus1: Optional[bool] = False, + lay_bottom: Optional[bool] = False ) -> Component: """Fill a region with vias. Will automatically decide num rows and columns args: pdk: MappedPDK is the pdk to use glayer1: str is the glayer to start on glayer2: str is the glayer to end on + lay_bottom: bool if true will lay bottom met ****NOTE it does not matter what order you pass layers ****NOTE will not lay poly or active but will lay metals size: tuple is the (width, hieght) of the area to enclose ****NOTE: the size will be the dimensions of the top metal ports (one port for each edge): top_met_...all edges + bottom_met_...all edges (only if lay_bottom is specified) """ - level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2) + tmpsize = list(size) + for i in range(2): + if isinstance(size[i],Union[float,int]): + tmpsize[i] = Decimal(str(size[i])) + size = tmpsize + # setup + layer_ordering = __error_check_order_layers(pdk, glayer1, glayer2) + level1, level2 = layer_ordering[0] + glayer1, glayer2 = layer_ordering[1] viaarray = Component() # if same level return empty component if level1 == level2: return viaarray # figure out min space between via stacks - via_spacing = [] if level1 else [pdk.get_grule("mcon")["min_separation"]] - level1 = level1 if level1 else level1 + 1 - for level in range(level1, level2): + viastack = via_stack(pdk, glayer1, glayer2).remove_layers(layers=[pdk.get_glayer(glayer2)]) + via_spacing = [] if level1 else [Decimal(str(pdk.get_grule("mcon")["min_separation"]))] + level1_met = level1 if level1 else level1 + 1 + get_sep = lambda _pdk, rule, _lay_, comp : 2*(rule/2+Decimal(str(comp.extract(layers=[_pdk.get_glayer(_lay_)]).xmax))-Decimal(str(comp.xmax))) + outer_enclosure = 0 + for level in range(level1_met, level2): met_glayer = "met" + str(level) via_glayer = "via" + str(level) - via_spacing.append(pdk.get_grule(met_glayer)["min_separation"]) - via_spacing.append(pdk.get_grule(via_glayer)["min_separation"]) - via_spacing.append(pdk.get_grule("met" + str(level2))["min_separation"]) + mrule = Decimal(str(pdk.get_grule(met_glayer)["min_separation"])) + vrule = Decimal(str(pdk.get_grule(via_glayer)["min_separation"])) + via_spacing.append(get_sep(pdk, mrule,met_glayer,viastack)) + via_spacing.append(get_sep(pdk, vrule,via_glayer,viastack)) + if level == (level2-1): + outer_enclosure = Decimal(str(pdk.get_grule(glayer2,via_glayer)["min_enclosure"])) via_spacing = max(via_spacing) # error check size and get viaspacing_full - viastack = via_stack(pdk, glayer1, glayer2) - viadim = max(viastack.xmax - viastack.xmin, viastack.ymax - viastack.ymin) + viadim = 2*Decimal(str(viastack.xmax)) for i, dim in enumerate(size): - if round(viadim, 8) > round(dim, 8): + if viadim > dim: raise ValueError(f"via_array,size:dim {i}={dim} less than {viadim}") viaspacing_full = via_spacing + viadim # num_vias[0]=x, num_vias[1]=y - num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in size] + encsize = [dim - outer_enclosure for dim in size] + num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in encsize] if minus1: num_vias = [(dim - 1 if dim > 1 else dim) for dim in num_vias] # create array and add to component - temparray = Component("temp horizontal vias") - temparray.add_array( + temparray = Component("via array") + temparray << prec_array( viastack, columns=num_vias[0], rows=num_vias[1], spacing=[viaspacing_full, viaspacing_full], ) - array_ref = viaarray << temparray - center_offsety = -1 * viaspacing_full * floor(num_vias[1] / 2) - center_offsetx = -1 * viaspacing_full * floor(num_vias[0] / 2) - if (num_vias[0] % 2) == 0: # even num columns - center_offsetx += viaspacing_full / 2 - if (num_vias[1] % 2) == 0: # even num rows - center_offsety += viaspacing_full / 2 - array_ref.movex(center_offsetx) - array_ref.movey(center_offsety) - # place top metal and return + # center the array + array_ref = viaarray.add(temparray.ref_center()) + # place bottom metal, top metal, add ports, and return + if lay_bottom: + if level1: + keymetdims = viaarray.extract(layers=[pdk.get_glayer("met"+str(level1_met))]).bbox + bheight = 2*keymetdims[1][1] + bwidth = 2*keymetdims[1][0] + else: + bviadims = viaarray.extract(layers=[pdk.get_glayer("mcon")]).bbox + added_enclosure = 2*pdk.get_grule(glayer1,"mcon")["min_enclosure"] + bheight = 2*bviadims[1][1] + added_enclosure + bwidth = 2*bviadims[1][0] + added_enclosure + b_met_dims = [bwidth, bheight] + bref = viaarray << rectangle(size=b_met_dims, layer=pdk.get_glayer(glayer1), centered=True) + viaarray.add_ports(bref.get_ports_list(), prefix="bottom_met_") top_met_layer = pdk.get_glayer("met" + str(level2)) - mref = viaarray << rectangle(size=size, layer=top_met_layer, centered=True) - viaarray.add_ports(mref.get_ports_list(), prefix="top_met_") - return viaarray.flatten() + tref = viaarray << rectangle(size=(float(size[0]),float(size[1])), layer=top_met_layer, centered=True) + viaarray.add_ports(tref.get_ports_list(), prefix="top_met_") + return component_snap_to_grid(rename_ports_by_orientation(viaarray)) if __name__ == "__main__": from PDK.util.standard_main import pdk + from PDK.util.custom_comp_utils import print_ports from sys import exit test_all = False if not test_all: - myarray = via_array(pdk, "active_diff", "met3") + myarray = via_array(pdk, "poly", "met2",size=(5,4)) myarray.show() - print(myarray.ports) + print_ports(myarray, False) exit(0) layers = ["poly", "met1", "met2", "met3"] for lay1 in layers: for lay2 in layers: - via_array(pdk, lay1, lay2).show() + via_array(pdk, lay1, lay2, lay_bottom=True).show() From edd419630c948b829adb868fd1e709b973a52c59 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 7 Jul 2023 13:24:17 -0400 Subject: [PATCH 12/64] fix snapping issues fet --- .../PDK/sky130_mapped/sky130_mapped.py | 1 + .../PDK/util/custom_comp_utils.py | 21 +++++++++++++++++-- openfasoc/generators/gdsfactory-gen/fet.py | 20 +++++++++++------- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 110928dc4..554b99ce0 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -45,3 +45,4 @@ # set the grid size sky130_mapped_pdk.gds_write_settings.precision = 5*10**-9 sky130_mapped_pdk.cell_decorator_settings.cache=False +sky130_mapped_pdk.gds_write_settings.flatten_invalid_refs=False diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index a2679c431..d7e80237d 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -315,7 +315,7 @@ def to_decimal(elements: Union[tuple,list,float,int,str]): return elements @validate_arguments -def to_float(elements: Union[tuple,list,Decimal]): +def to_float(elements: Union[tuple,list,Decimal,float]): """converts all elements of list like object into floats and snaps to grid or converts single decimal into floats""" if not isinstance(elements,Iterable): @@ -323,12 +323,14 @@ def to_float(elements: Union[tuple,list,Decimal]): else: elements = list(elements) for i, element in enumerate(elements): - if isinstance(element, Decimal): + if isinstance(element, Union[float,Decimal]): elements[i] = snap_to_grid(float(element)) return elements @validate_arguments def prec_array(custom_comp: Component, columns: int, rows: int, spacing: tuple[Union[float,Decimal],Union[float,Decimal]]) -> Component: + """instead of using the component.add_array function, if you are having grid snapping issues try using this function + works the same way as add_array but uses decimals and snaps to grid to mitigate grid snapping issues""" # make sure to work with decimals precspacing = list(spacing) for i in range(2): @@ -344,3 +346,18 @@ def prec_array(custom_comp: Component, columns: int, rows: int, spacing: tuple[U cref.movex(to_float(coldisp)).movey(to_float(rowdisp)) precarray.add_ports(custom_comp.get_ports_list()) return precarray.flatten() + + +@validate_arguments +def prec_center(custom_comp: Union[Component,ComponentReference], return_decimal: bool=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: + """instead of using component.ref_center() to get the center of a component, + use this function which will return the correct offset to center a component + you can then run component.move(prec_center(component)) + returns (x,y) corrections + if return_decimal=True, return in Decimal, otherwise return float""" + correctmax = [dim/2 for dim in evaluate_bbox(custom_comp, True)] + currentmax = to_decimal((custom_comp.xmax,custom_comp.ymax)) + correctionxy = [correctmax[i] - currentmax[i] for i in range(2)] + if return_decimal: + return correctionxy + return to_float(correctionxy) diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 471156078..0c3a2be48 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -7,7 +7,7 @@ from via_gen import via_array, via_stack from guardring import tapring from pydantic import validate_arguments -from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array +from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center from c_route import c_route from PDK.util.snap_to_grid import component_snap_to_grid from decimal import Decimal @@ -194,7 +194,8 @@ def __mult_array_macro( gate_route_topmet: Optional[str] = "met2", sd_route_left: Optional[bool] = True, ) -> Component: - """create a multiplier array with multiplier_0 at the bottom""" + """create a multiplier array with multiplier_0 at the bottom + The array is correctly centered""" # create multiplier array pdk.activate() # TODO: error checking @@ -215,7 +216,7 @@ def __mult_array_macro( + evaluate_bbox(multiplier_comp, True)[1] ) for rownum in range(multipliers): - row_displacment = rownum * multiplier_separation + row_displacment = rownum * multiplier_separation - (multiplier_separation/2 * (multipliers-1)) row_ref = multiplier_arr << multiplier_comp row_ref.movey(to_float(row_displacment)) multiplier_arr.add_ports( @@ -248,8 +249,13 @@ def __mult_array_macro( next_gate = multiplier_arr.ports[nextmult + "gate_"+gate_side] gate_ref = multiplier_arr << c_route(pdk, this_gate, next_gate, viaoffset=(True,False), extension=to_float(src_extension)) multiplier_arr.add_ports(gate_ref.get_ports_list(), prefix=gatepfx) - # clean TODO: solution is in pmos/nmos do a real copy instead of adding ref - return component_snap_to_grid(rename_ports_by_orientation(multiplier_arr)) + multiplier_arr = component_snap_to_grid(rename_ports_by_orientation(multiplier_arr)) + # recenter + final_arr = Component() + marrref = final_arr << multiplier_arr + correctionxy = prec_center(marrref) + marrref.movex(correctionxy[0]).movey(correctionxy[1]) + return component_snap_to_grid(final_arr) @cell @@ -281,7 +287,7 @@ def nmos( multiplier_arr = __mult_array_macro( pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left ) - multiplier_arr_ref = multiplier_arr.ref_center() + multiplier_arr_ref = multiplier_arr.ref() nfet.add(multiplier_arr_ref) nfet.add_ports(multiplier_arr_ref.get_ports_list()) # add tie if tie @@ -363,7 +369,7 @@ def pmos( multiplier_arr = __mult_array_macro( pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left ) - multiplier_arr_ref = multiplier_arr.ref_center() + multiplier_arr_ref = multiplier_arr.ref() pfet.add(multiplier_arr_ref) pfet.add_ports(multiplier_arr_ref.get_ports_list()) # add tie if tie From 25f414a105557e8655dd637346283cea0edcbd88 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Sat, 8 Jul 2023 02:50:29 -0400 Subject: [PATCH 13/64] opamp route nfet comp rings --- .../generators/gdsfactory-gen/L_route.py | 42 +++++---- .../PDK/util/custom_comp_utils.py | 33 ++++++- .../generators/gdsfactory-gen/c_route.py | 93 ++++++++++++------- .../generators/gdsfactory-gen/diff_pair.py | 14 ++- openfasoc/generators/gdsfactory-gen/fet.py | 8 +- .../generators/gdsfactory-gen/guardring.py | 30 ++++-- openfasoc/generators/gdsfactory-gen/opamp.py | 48 ++++++++-- .../gdsfactory-gen/straight_route.py | 92 ++++++++++++++++++ .../generators/gdsfactory-gen/via_gen.py | 13 ++- 9 files changed, 298 insertions(+), 75 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/straight_route.py diff --git a/openfasoc/generators/gdsfactory-gen/L_route.py b/openfasoc/generators/gdsfactory-gen/L_route.py index 1d8d7347c..10c085160 100644 --- a/openfasoc/generators/gdsfactory-gen/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/L_route.py @@ -3,9 +3,10 @@ from gdsfactory.port import Port from PDK.mappedpdk import MappedPDK from typing import Optional -from via_gen import via_stack +from via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular +from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular, to_decimal, to_float, prec_ref_center +from decimal import Decimal @cell @@ -57,18 +58,18 @@ def L_route( else: hport, vport = edge1, edge2 # arg setup - vwidth = vwidth if vwidth else vport.width - hwidth = hwidth if hwidth else hport.width + vwidth = to_decimal(vwidth if vwidth else vport.width) + hwidth = to_decimal(hwidth if hwidth else hport.width) hglayer = hglayer if hglayer else pdk.layer_to_glayer(vport.layer) vglayer = vglayer if vglayer else pdk.layer_to_glayer(hport.layer) # compute required dimensions - hdim_center = vport.center[0] - hport.center[0] - vdim_center = hport.center[1] - vport.center[1] + hdim_center = to_decimal(vport.center[0]) - to_decimal(hport.center[0]) + vdim_center = to_decimal(hport.center[1]) - to_decimal(vport.center[1]) hdim = abs(hdim_center) + hwidth/2 vdim = abs(vdim_center) + vwidth/2 # create and place vertical and horizontal connections - hconnect = rectangle(size=(hdim,vwidth),layer=pdk.get_glayer(hglayer)) - vconnect = rectangle(size=(hwidth,vdim),layer=pdk.get_glayer(vglayer)) + hconnect = rectangle(size=to_float((hdim,vwidth)),layer=pdk.get_glayer(hglayer)) + vconnect = rectangle(size=to_float((hwidth,vdim)),layer=pdk.get_glayer(vglayer)) #xalign valign = ("l","c") if hdim_center > 0 else ("r","c") halign = ("c","b") if vdim_center > 0 else ("c","t") @@ -77,17 +78,26 @@ def L_route( Lroute.add(hconnect_ref) vconnect_ref = align_comp_to_port(vconnect, hport, halign) Lroute.add(vconnect_ref) - # create and place via - h_to_v_via_ref = Lroute << via_stack(pdk, hglayer, vglayer) + # create and place via (decide between via stack and via array) + hv_via = via_stack(pdk, hglayer, vglayer,fullbottom=True) + hv_via_dims = evaluate_bbox(hv_via,True) + use_stack = hv_via_dims[0] > hwidth or hv_via_dims[1] > vwidth + if not use_stack: + hv_via = via_array(pdk, hglayer, vglayer, size=to_float((hwidth,vwidth)), lay_bottom=True) + h_to_v_via_ref = prec_ref_center(hv_via) + Lroute.add(h_to_v_via_ref) h_to_v_via_ref.move(destination=(hport.center[0], vport.center[1])) if viaoffset: - viadim_os = evaluate_bbox(h_to_v_via_ref)[0]/2 - viaxofs = abs(hwidth/2-viadim_os) - viaxofs = viaxofs if hdim_center > 0 else -1*viaxofs - viayofs = abs(vwidth/2-viadim_os) - viayofs = viayofs if vdim_center > 0 else -1*viayofs + viadim_osx = evaluate_bbox(h_to_v_via_ref,True)[0]/2 + viaxofs = abs(hwidth/2-viadim_osx) + viaxofs = to_float(viaxofs if hdim_center > 0 else -1*viaxofs) + viadim_osy = evaluate_bbox(h_to_v_via_ref,True)[1]/2 + viayofs = abs(vwidth/2-viadim_osy) + viayofs = to_float(viayofs if vdim_center > 0 else -1*viayofs) h_to_v_via_ref.movex(viaxofs).movey(viayofs) - return Lroute.flatten() + # add ports and return + Lroute.add_ports(h_to_v_via_ref.get_ports_list()) + return rename_ports_by_orientation(Lroute.flatten()) if __name__ == "__main__": diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index d7e80237d..756eebeb3 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -205,7 +205,8 @@ def assert_ports_perpindicular(edge1: Port, edge2: Port) -> bool: """raises assertionerror if edges are not perindicular""" or1 = round(edge1.orientation) or2 = round(edge2.orientation) - if abs(round(or1-or2)) != 90: + angle_difference = abs(round(or1-or2)) + if angle_difference != 90 and angle_difference != 270: raise AssertionError("edges are not perpindicular") return True @@ -223,7 +224,23 @@ def set_orientation(custom_comp: Port, orientation: Union[float, int]) -> Port: shear_angle = custom_comp.shear_angle, layer = custom_comp.layer, width = custom_comp.width, - + ) + return newport + + +@validate_arguments +def set_port_width(custom_comp: Port, width: float) -> Port: + """creates a new port with the desired width and returns the new port""" + newport = Port( + name = custom_comp.name, + center = custom_comp.center, + orientation = custom_comp.orientation, + parent = custom_comp.parent, + port_type = custom_comp.port_type, + cross_section = custom_comp.cross_section, + shear_angle = custom_comp.shear_angle, + layer = custom_comp.layer, + width = width, ) return newport @@ -352,7 +369,6 @@ def prec_array(custom_comp: Component, columns: int, rows: int, spacing: tuple[U def prec_center(custom_comp: Union[Component,ComponentReference], return_decimal: bool=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: """instead of using component.ref_center() to get the center of a component, use this function which will return the correct offset to center a component - you can then run component.move(prec_center(component)) returns (x,y) corrections if return_decimal=True, return in Decimal, otherwise return float""" correctmax = [dim/2 for dim in evaluate_bbox(custom_comp, True)] @@ -361,3 +377,14 @@ def prec_center(custom_comp: Union[Component,ComponentReference], return_decimal if return_decimal: return correctionxy return to_float(correctionxy) + +@validate_arguments +def prec_ref_center(custom_comp: Union[Component,ComponentReference], return_decimal: bool=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: + """instead of using component.ref_center() to get a ref to center at origin, + use this function which will return a centered ref + you can then run component.add(prec_ref_center(custom_comp)) to add the reference to your component + returns component reference + """ + compref = custom_comp if isinstance(custom_comp, ComponentReference) else custom_comp.ref() + xcor, ycor = prec_center(compref, False) + return compref.movex(xcor).movey(ycor) diff --git a/openfasoc/generators/gdsfactory-gen/c_route.py b/openfasoc/generators/gdsfactory-gen/c_route.py index 9954cbcd7..87dd58129 100644 --- a/openfasoc/generators/gdsfactory-gen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/c_route.py @@ -1,5 +1,5 @@ from gdsfactory.cell import cell -from gdsfactory.component import Component, copy +from gdsfactory.component import Component from gdsfactory.port import Port from PDK.mappedpdk import MappedPDK from typing import Optional, Union @@ -7,17 +7,27 @@ from via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from PDK.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports +from PDK.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width +from pydantic import validate_arguments +@validate_arguments +def __fill_empty_viastack__macro(pdk: MappedPDK, glayer: str, size: tuple[float,float]) -> Component: + """returns a rectangle with ports that pretend to be viastack ports""" + comp = rectangle(size=size,layer=pdk.get_glayer(glayer),centered=True) + return rename_ports_by_orientation(rename_ports_by_list(comp,replace_list=[("e","top_met_")])).flatten() + @cell def c_route( pdk: MappedPDK, edge1: Port, edge2: Port, extension: Optional[float]=0.5, - width: Optional[float] = None, - eglayer: Optional[str] = None, + width1: Optional[float] = None, + width2: Optional[float] = None, + cwidth: Optional[float] = None, + e1glayer: Optional[str] = None, + e2glayer: Optional[str] = None, cglayer: Optional[str] = None, viaoffset: Optional[Union[bool,tuple[Optional[bool],Optional[bool]]]]=(True,True), fullbottom: Optional[bool] = False @@ -34,9 +44,11 @@ def c_route( pdk = pdk to use edge1 = first port edge2 = second port - width = optional will default to edge1 width if None - eglayer = glayer for the parts connecting to the ports. Default to layer of edge1 - cglayer = glayer for the connection part (part that goes through a via) defaults to eglayer met+1 + width1 = optional will default to edge1 width if None + width2 = optional will default to edge2 width if None + e1glayer = glayer for the parts connecting to the edge1. Default to layer of edge1 + e2glayer = glayer for the parts connecting to the edge2. Default to layer of edge2 + cglayer = glayer for the connection part (part that goes through a via) defaults to e1glayer met+1 viaoffset = offsets the via so that it is flush with the cglayer (may be needed for drc) i.e. -| vs _| - True offsets via towards the other via - False offsets via away from the other via @@ -48,23 +60,32 @@ def c_route( raise ValueError("Ports must be vertical or horizontal") if not isclose(edge1.orientation,edge2.orientation): raise ValueError("Ports must be parralel and have same orientation") - width = width if width else edge1.width - eglayer = eglayer if eglayer else pdk.layer_to_glayer(edge1.layer) - eglayer_plusone = "met" + str(int(eglayer[-1])+1) + width1 = width1 if width1 else edge1.width + width2 = width2 if width2 else edge1.width + e1glayer = e1glayer if e1glayer else pdk.layer_to_glayer(edge1.layer) + e2glayer = e2glayer if e2glayer else pdk.layer_to_glayer(edge2.layer) + eglayer_plusone = "met" + str(int(e1glayer[-1])+1) cglayer = cglayer if cglayer else eglayer_plusone - if not "met" in eglayer or not "met" in cglayer: + if not "met" in e1glayer or not "met" in e2glayer or not "met" in cglayer: raise ValueError("given layers must be metals") viaoffset = (None, None) if viaoffset is None else viaoffset if isinstance(viaoffset,bool): viaoffset = (True,True) if viaoffset else (False,False) - pdk.has_required_glayers([eglayer,cglayer]) + pdk.has_required_glayers([e1glayer,e2glayer,cglayer]) pdk.activate() # create route croute = Component() - viastack = via_stack(pdk,eglayer,cglayer,fullbottom=fullbottom) + viastack1 = via_stack(pdk,e1glayer,cglayer,fullbottom=fullbottom) + viastack2 = via_stack(pdk,e2glayer,cglayer,fullbottom=fullbottom) + if e1glayer == e2glayer: + __fill_empty_viastack__macro(pdk,e1glayer,size=(width1,width2)) + elif e1glayer == cglayer: + viastack1 = __fill_empty_viastack__macro(pdk,e1glayer,size=evaluate_bbox(viastack2)) + elif e2glayer == cglayer: + viastack2 = __fill_empty_viastack__macro(pdk,e2glayer,size=evaluate_bbox(viastack1)) # find extension - e1_length = extension + evaluate_bbox(viastack)[0] - e2_length = extension + evaluate_bbox(viastack)[0] + e1_length = extension + evaluate_bbox(viastack1)[0] + e2_length = extension + evaluate_bbox(viastack2)[0] xdiff = abs(edge1.center[0] - edge2.center[0]) ydiff = abs(edge1.center[1] - edge2.center[1]) if not isclose(edge1.center[0],edge2.center[0]): @@ -92,11 +113,11 @@ def c_route( # move into position e1_extension_comp = Component("edge1 extension") e2_extension_comp = Component("edge2 extension") - box_dims = [(e1_length, width),(e2_length, width)] + box_dims = [(e1_length, width1),(e2_length, width2)] if round(edge1.orientation) == 90 or round(edge1.orientation) == 270: - box_dims = [(width, e1_length),(width, e2_length)] - rect_c1 = copy(rectangle(size=box_dims[0], layer=pdk.get_glayer(eglayer),centered=True)) - rect_c2 = copy(rectangle(size=box_dims[1], layer=pdk.get_glayer(eglayer),centered=True)) + box_dims = [(width1, e1_length),(width2, e2_length)] + rect_c1 = rectangle(size=box_dims[0], layer=pdk.get_glayer(e1glayer),centered=True).copy() + rect_c2 = rectangle(size=box_dims[1], layer=pdk.get_glayer(e2glayer),centered=True).copy() rect_c1 = rename_ports_by_orientation(rename_ports_by_list(rect_c1,[("e","e_")])) rect_c2 = rename_ports_by_orientation(rename_ports_by_list(rect_c2,[("e","e_")])) e1_extension = e1_extension_comp << rect_c1 @@ -118,10 +139,10 @@ def c_route( # place viastacks e1_extension_comp.add_ports(e1_extension.get_ports_list()) e2_extension_comp.add_ports(e2_extension.get_ports_list()) - me1 = e1_extension_comp << viastack - me2 = e2_extension_comp << viastack + me1 = e1_extension_comp << viastack1 + me2 = e2_extension_comp << viastack2 route_ports = [None,None] - via_flush = abs((width - evaluate_bbox(viastack)[0])/2) if viaoffset else 0 + via_flush = abs((width1 - evaluate_bbox(viastack1)[0])/2) if viaoffset else 0 via_flush1 = via_flush if viaoffset[0] else 0-via_flush via_flush1 = 0 if viaoffset[0] is None else via_flush1 via_flush2 = via_flush if viaoffset[1] else 0-via_flush @@ -130,33 +151,39 @@ def c_route( me1.move(destination=e1_extension.ports["e_E"].center) me2.move(destination=e2_extension.ports["e_E"].center) via_flush *= 1 if me1.ymax > me2.ymax else -1 - me1.movex(0-viastack.xmax).movey(0-via_flush1) - me2.movex(0-viastack.xmax).movey(via_flush2) - route_ports = [me1.ports["top_met_S"],me2.ports["top_met_N"]] + me1.movex(0-viastack1.xmax).movey(0-via_flush1) + me2.movex(0-viastack2.xmax).movey(via_flush2) + me1, me2 = (me1, me2) if (me1.origin[1] > me2.origin[1]) else (me2, me1) + route_ports = [me1.ports["top_met_N"],me2.ports["top_met_S"]] elif round(edge1.orientation) == 180:# facing west me1.move(destination=e1_extension.ports["e_W"].center) me2.move(destination=e2_extension.ports["e_W"].center) via_flush *= 1 if me1.ymax > me2.ymax else -1 - me1.movex(viastack.xmax).movey(0-via_flush1) - me2.movex(viastack.xmax).movey(via_flush2) - route_ports = [me1.ports["top_met_S"],me2.ports["top_met_N"]] + me1.movex(viastack1.xmax).movey(0-via_flush1) + me2.movex(viastack2.xmax).movey(via_flush2) + me1, me2 = (me1, me2) if (me1.origin[1] > me2.origin[1]) else (me2, me1) + route_ports = [me1.ports["top_met_N"],me2.ports["top_met_S"]] elif round(edge1.orientation) == 270:# facing south me1.move(destination=e1_extension.ports["e_S"].center) me2.move(destination=e2_extension.ports["e_S"].center) via_flush *= 1 if me1.xmax > me2.xmax else -1 - me1.movey(viastack.xmax).movex(0-via_flush1) - me2.movey(viastack.xmax).movex(via_flush2) + me1.movey(viastack1.xmax).movex(0-via_flush1) + me2.movey(viastack2.xmax).movex(via_flush2) + me1, me2 = (me1, me2) if (me1.origin[0] > me2.origin[0]) else (me2, me1) route_ports = [me1.ports["top_met_E"],me2.ports["top_met_W"]] else:#facing north me1.move(destination=e1_extension.ports["e_N"].center) me2.move(destination=e2_extension.ports["e_N"].center) via_flush *= 1 if me1.xmax > me2.xmax else -1 - me1.movey(0-viastack.xmax).movex(0-via_flush1) - me2.movey(0-viastack.xmax).movex(via_flush2) + me1.movey(0-viastack1.xmax).movex(0-via_flush1) + me2.movey(0-viastack2.xmax).movex(via_flush2) + me1, me2 = (me1, me2) if (me1.origin[0] > me2.origin[0]) else (me2, me1) route_ports = [me1.ports["top_met_E"],me2.ports["top_met_W"]] - + # connect extensions, add ports, return croute << e1_extension_comp croute << e2_extension_comp + if cwidth: + route_ports = [set_port_width(port_,cwidth) for port_ in route_ports] cconnection = croute << route_quad(route_ports[0],route_ports[1],layer=pdk.get_glayer(cglayer)) croute.add_ports(cconnection.get_ports_list(),prefix="con_") return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py index 5fa7a6d36..81f0ce094 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -13,6 +13,7 @@ from c_route import c_route from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, movex, movey, get_orientation, set_orientation, evaluate_bbox, align_comp_to_port from via_gen import via_stack +from PDK.util.snap_to_grid import component_snap_to_grid #diffpair << route_sharp(b_topr.ports["multiplier_0_source_E"],viam2m3_ref_tr.ports["bottom_met_W"], width=connect_width, layer=pdk.get_glayer("met2"), path_type="manhattan") @@ -38,6 +39,7 @@ def diff_pair( well = None if n_or_p_fet: fet = nmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,with_dnwell=False,with_substrate_tap=False) + #print_ports(fet) min_spacing_x = pdk.get_grule("n+s/d")["min_separation"] - 2*(fet.xmax - fet.ports["multiplier_0_plusdoped_E"].center[0]) well = "pwell" else: @@ -111,16 +113,20 @@ def diff_pair( diffpair << route_quad(drain_bl_viatm.ports["top_met_N"], drain_bl_via.ports["top_met_S"], layer=pdk.get_glayer("met3")) floating_port_drain_bottom_L = set_orientation(movey(drain_bl_via.ports["bottom_met_W"],0-bottom_extension), get_orientation("E")) floating_port_drain_bottom_R = set_orientation(movey(drain_br_via.ports["bottom_met_E"],0-bottom_extension - metal_space - width_drain_route), get_orientation("W")) - drain_routeTR_BL = diffpair << c_route(pdk, floating_port_drain_bottom_L, b_topr.ports["multiplier_0_drain_E"],extension=dextension, width=width_drain_route) - drain_routeTL_BR = diffpair << c_route(pdk, floating_port_drain_bottom_R, a_topl.ports["multiplier_0_drain_W"],extension=dextension, width=width_drain_route) + drain_routeTR_BL = diffpair << c_route(pdk, floating_port_drain_bottom_L, b_topr.ports["multiplier_0_drain_E"],extension=dextension, width1=width_drain_route,width2=width_drain_route) + drain_routeTL_BR = diffpair << c_route(pdk, floating_port_drain_bottom_R, a_topl.ports["multiplier_0_drain_W"],extension=dextension, width1=width_drain_route,width2=width_drain_route) # correct pwell place, add ports, flatten, and return + diffpair.add_ports(a_topl.get_ports_list(),prefix="tl_") + diffpair.add_ports(b_topr.get_ports_list(),prefix="tr_") + diffpair.add_ports(b_botl.get_ports_list(),prefix="bl_") + diffpair.add_ports(a_botr.get_ports_list(),prefix="br_") diffpair.add_padding(layers=(pdk.get_glayer(well),), default=0) - return rename_ports_by_orientation(diffpair.flatten()) + return component_snap_to_grid(rename_ports_by_orientation(diffpair)) if __name__ == "__main__": from PDK.util.standard_main import pdk - mycomp = diff_pair(pdk) + mycomp = diff_pair(pdk,length=1,width=6,fingers=4) mycomp.show() print_ports(mycomp) diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 0c3a2be48..5eacc7c17 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -255,6 +255,7 @@ def __mult_array_macro( marrref = final_arr << multiplier_arr correctionxy = prec_center(marrref) marrref.movex(correctionxy[0]).movey(correctionxy[1]) + final_arr.add_ports(marrref.get_ports_list()) return component_snap_to_grid(final_arr) @@ -302,13 +303,14 @@ def nmos( 2 * (tap_separation + nfet.xmax), 2 * (tap_separation + nfet.ymax), ) - nfet << tapring( + tiering_ref = nfet << tapring( pdk, enclosed_rectangle=tap_encloses, sdlayer="p+s/d", horizontal_glayer="met2", vertical_glayer="met1", ) + nfet.add_ports(tiering_ref.get_ports_list(), prefix="tie_") # add pwell nfet.add_padding( layers=(pdk.get_glayer("pwell"),), @@ -330,13 +332,15 @@ def nmos( 2 * (substrate_tap_separation + nfet.xmax), 2 * (substrate_tap_separation + nfet.ymax), ) - nfet << tapring( + ringtoadd = tapring( pdk, enclosed_rectangle=substrate_tap_encloses, sdlayer="p+s/d", horizontal_glayer="met2", vertical_glayer="met1", ) + tapring_ref = nfet << ringtoadd + nfet.add_ports(tapring_ref.get_ports_list(),prefix="guardring_") return rename_ports_by_orientation(nfet).flatten() diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index aed8b697a..0b4be33d9 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -6,7 +6,9 @@ from via_gen import via_array, via_stack from typing import Optional from math import ceil +from PDK.util.custom_comp_utils import print_ports from PDK.util.snap_to_grid import component_snap_to_grid +from L_route import L_route @cell @@ -25,6 +27,12 @@ def tapring( ****NOTE: the enclosed_rectangle will be the enclosed dimensions of active_tap horizontal_glayer: string=met2, layer used over the ring horizontally vertical_glayer: string=met1, layer used over the ring vertically + ports: + Narr_... all ports in top via array + Sarr_... all ports in bottom via array + Earr_... all ports in right via array + Warr_... all ports in left via array + bl_corner_...all ports in bottom left L route """ # check layers, activate pdk, create top cell pdk.has_required_glayers( @@ -61,25 +69,26 @@ def tapring( layer=pdk.get_glayer(sdlayer), ) # create via arrs - via_width_horizontal = 2 * via_stack(pdk, "active_diff", horizontal_glayer).ymax + via_width_horizontal = 2 * via_stack(pdk, "active_tap", horizontal_glayer).ymax arr_size_horizontal = enclosed_rectangle[0] horizontal_arr = via_array( pdk, - "active_diff", + "active_tap", horizontal_glayer, (arr_size_horizontal, via_width_horizontal), minus1=True, ) - via_width_vertical = 2 * via_stack(pdk, "active_diff", vertical_glayer).ymax + via_width_vertical = 2 * via_stack(pdk, "active_tap", vertical_glayer).ymax arr_size_vertical = enclosed_rectangle[1] vertical_arr = via_array( pdk, - "active_diff", + "active_tap", vertical_glayer, (via_width_vertical, arr_size_vertical), minus1=True, ) # add via arrs + refs_prefixes = list() metal_ref_n = ptapring << horizontal_arr metal_ref_e = ptapring << vertical_arr metal_ref_s = ptapring << horizontal_arr @@ -88,11 +97,20 @@ def tapring( metal_ref_e.movex(round(0.5 * (enclosed_rectangle[0] + tap_width),4)) metal_ref_s.movey(round(-0.5 * (enclosed_rectangle[1] + tap_width),4)) metal_ref_w.movex(round(-0.5 * (enclosed_rectangle[0] + tap_width),4)) - # done, flatten and return + refs_prefixes += [(metal_ref_n,"N_"), (metal_ref_e,"E_"), (metal_ref_s,"S_"), (metal_ref_w,"W_")] + # connect vertices + tlvia = ptapring << L_route(pdk, metal_ref_n.ports["top_met_W"], metal_ref_w.ports["top_met_N"]) + trvia = ptapring << L_route(pdk, metal_ref_n.ports["top_met_E"], metal_ref_e.ports["top_met_N"]) + blvia = ptapring << L_route(pdk, metal_ref_s.ports["top_met_W"], metal_ref_w.ports["top_met_S"]) + brvia = ptapring << L_route(pdk, metal_ref_s.ports["top_met_E"], metal_ref_e.ports["top_met_S"]) + refs_prefixes += [(tlvia,"tl_"),(trvia,"tr_"),(blvia,"bl_"),(brvia,"br_")] + # add ports, flatten and return + for ref_, prefix in refs_prefixes: + ptapring.add_ports(ref_.get_ports_list(),prefix=prefix) return component_snap_to_grid(ptapring) if __name__ == "__main__": from PDK.util.standard_main import pdk - tapring(pdk, "p+s/d", enclosed_rectangle=(26, 10)).show() + tapring(pdk, sdlayer="p+s/d", enclosed_rectangle=(26, 10)).show() diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 4e5f12988..38f50ad40 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -10,7 +10,15 @@ from mimcap import mimcap from L_route import L_route from c_route import c_route -from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox +from gdsfactory.routing.route_quad import route_quad +from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center +from sys import exit +from straight_route import straight_route + + +#@validate_arguments + + @cell def opamp( @@ -42,7 +50,9 @@ def opamp( fingers=diffpair_params[2], length=1 ) - diffpair_i_.add(center_diffpair_comp.ref_center()) + diffpair_i_.add(prec_ref_center(center_diffpair_comp)) + diffpair_i_.add_ports(center_diffpair_comp.get_ports_list()) + #exit() # create and position tail current source tailcurrent_comp = nmos( pdk, @@ -54,14 +64,24 @@ def opamp( with_dnwell=False, with_substrate_tap=False, with_dummy=False, + gate_route_topmet="met3", + sd_route_topmet="met3" ) tailcurrent_ref = diffpair_i_ << tailcurrent_comp tailcurrent_ref.movey( -0.5 * (center_diffpair_comp.ymax - center_diffpair_comp.ymin) - abs(tailcurrent_ref.ymax) ) + diffpair_i_.add_ports(tailcurrent_ref.get_ports_list()) + gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) + gndpin.movey(tailcurrent_ref.ymin - 2) # add to opamp comp - opamp_top.add(diffpair_i_.ref_center()) + diffpair_i_ref = prec_ref_center(diffpair_i_) + opamp_top.add(diffpair_i_ref) + opamp_top.add_ports(diffpair_i_ref.get_ports_list(),prefix="centerNMOS_") + # route tailcurrent_comp + opamp_top << c_route(pdk, opamp_top.ports["centerNMOS_multiplier_0_source_W"],gndpin.ports["e1"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) + opamp_top << c_route(pdk, opamp_top.ports["centerNMOS_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) # create and position current mirror symetrically x_dim_center = opamp_top.xmax src_gnd_port = [None,None] @@ -83,7 +103,11 @@ def opamp( halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax)) opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="nfet_Isrc_"+str(i)+"_") opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) - opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=20,fullbottom=True) + # gnd sources of halfMultn + _cref = opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"].center[1]),fullbottom=True) + # gnd guardring of halfMultn + opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_0_tie_S_top_met_S"],gndpin.ports["e1"],width=2,glayer1="met3") + opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_1_tie_S_top_met_S"],gndpin.ports["e3"],width=2,glayer1="met3") # place pmos components pmos_comps = Component("temp pmos section top") # center and position @@ -92,13 +116,15 @@ def opamp( clear_cache() pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True)) pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False)) - (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax - 0.1) - (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin + 0.1) + _prefL = (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax - 0.1) + _prefR = (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin + 0.1) + shared_gate_comps << route_quad(_prefL.ports["plusdoped_E"], _prefR.ports["plusdoped_W"], layer=pdk.get_glayer("p+s/d")) # center relative_dim_comp = multiplier( pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False ) single_dim = relative_dim_comp.xmax + 0.1 + LRplusdopedPorts = list() for i in [-2, -1, 1, 2]: dummy = False extra_t = 0 @@ -116,12 +142,12 @@ def opamp( extra_t = single_dim else: pcenterfourunits = relative_dim_comp - (pmos_comps << pcenterfourunits).movex(i * single_dim + extra_t) + pref_ = (pmos_comps << pcenterfourunits).movex(i * single_dim + extra_t) + LRplusdopedPorts += [pref_.ports["plusdoped_W"] , pref_.ports["plusdoped_E"]] + pmos_comps << route_quad(LRplusdopedPorts[0],LRplusdopedPorts[-1],layer=pdk.get_glayer("p+s/d")) ytranslation_pcenter = 2 * pcenterfourunits.ymax (pmos_comps << shared_gate_comps).movey(ytranslation_pcenter) (pmos_comps << shared_gate_comps).movey(-1 * ytranslation_pcenter) - shared_gate_comps.show() - pmos_comps.show() # pcore to output x_dim_center = pmos_comps.xmax for direction in [-1, 1]: @@ -136,6 +162,7 @@ def opamp( with_substrate_tap=False, sd_route_left=bool(direction-1) ) + halfMultp.show() halfMultp_ref = pmos_comps << halfMultp halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax+1)) # finish place central @@ -144,6 +171,7 @@ def opamp( layers=[pdk.get_glayer("nwell")], default=pdk.get_grule("nwell", "active_tap")["min_enclosure"], ) + pmos_comps.show() # tapcenter_rect = [2*pmos_comps.xmax+pdk.get_grule("nwell","active_tap")["min_separation"], 2*pmos_comps.ymax+pdk.get_grule("nwell","active_tap")["min_separation"]] tapcenter_rect = [2 * pmos_comps.xmax + 1, 2 * pmos_comps.ymax + 1] pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") @@ -174,6 +202,8 @@ def opamp( mimcaps_ref.movey(pmos_comps_ref.ymin + mimcap_single.ymax) mimcap_hspacer.movey(pmos_comps_ref.ymin + 2*mimcap_single.ymax) mimcap_vspacer.movey(pmos_comps_ref.ymin + mimcap_single.ymax) + # connect mimcap to gnd + opamp_top << L_route(pdk,mimcaps_ref.ports["top_met_S"],_cref.ports["con_E"],hwidth=3) # TODO: implement return opamp_top diff --git a/openfasoc/generators/gdsfactory-gen/straight_route.py b/openfasoc/generators/gdsfactory-gen/straight_route.py new file mode 100644 index 000000000..1bd9a3faf --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/straight_route.py @@ -0,0 +1,92 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.port import Port +from PDK.mappedpdk import MappedPDK +from typing import Optional +from via_gen import via_stack, via_array +from gdsfactory.components.rectangle import rectangle +from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan + + +@cell +def straight_route( + pdk: MappedPDK, + edge1: Port, + edge2: Port, + glayer1: Optional[str] = None, + width: Optional[float] = None, + glayer2: Optional[str] = None, +) -> Component: + """extends a route from edge1 until perpindicular with edge2, then places a via + This depends on the orientation of edge1 and edge2 + + REQUIRES: + edge1 is not parrallel to edge2 + + DOES NOT REQUIRE: + edge2 is directly inline with edge1 + + example: + edge2 + + edge1-------- + + args: + pdk to use + edge1, edge2 Ports + glayer1 = defaults to edge1.layer, layer of the route. + ****If not edge1.layer, a via will be placed + glayer2 = defaults to edge2.layer, end layer of the via + width = defaults to edge1.width + """ + #TODO: error checking + width = width if width else edge1.width + glayer1 = glayer1 if glayer1 else pdk.layer_to_glayer(edge1.layer) + front_via = None + if glayer1 != pdk.layer_to_glayer(edge1.layer): + front_via = via_stack(pdk,glayer1,pdk.layer_to_glayer(edge1.layer),fullbottom=True) + glayer2 = glayer2 if glayer2 else pdk.layer_to_glayer(edge2.layer) + assert_is_manhattan([edge1,edge2]) + if edge1.orientation == edge2.orientation: + raise ValueError("edge1 and edge2 cannot be parrallel") + pdk.activate() + # find extension length and direction + edge1_is_EW = bool(round(edge1.orientation + 90) % 180) + if edge1_is_EW: + startx = edge1.center[0] + endx = edge2.center[0] + extension = endx-startx + viaport_name = "e3" if extension > 0 else "e1" + alignment = ("r","c") if extension > 0 else ("l","c") + size = (abs(extension),width) + else: + starty = edge1.center[1] + endy = edge2.center[1] + extension = endy-starty + viaport_name = "e2" if extension > 0 else "e4" + alignment = ("c","t") if extension > 0 else ("c","b") + size = (width,abs(extension)) + # create route and via + route = rectangle(layer=pdk.get_glayer(glayer1),size=size,centered=True) + out_via = via_stack(pdk,glayer1,glayer2,fullbottom=True) + # place route and via + straightroute = Component() + route_ref = align_comp_to_port(route,edge1,alignment=alignment) + straightroute.add(route_ref) + straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],alignment=("c","c"))) + if front_via is not None: + straightroute.add(align_comp_to_port(front_via,edge1,alignment=("c","c"))) + return straightroute.flatten() + + +if __name__ == "__main__": + from PDK.util.standard_main import pdk + + routebetweentop = rectangle(layer=pdk.get_glayer("met3"),size=(1,1)).ref() + routebetweentop.movex(20).movey(-3) + routebetweenbottom = rectangle(layer=pdk.get_glayer("met1"), size=(1, 1)) + mycomp = straight_route(pdk,routebetweentop.ports["e3"],routebetweenbottom.ports["e1"]) + mycomp.unlock() + mycomp.add(routebetweentop) + mycomp << routebetweenbottom + mycomp.flatten().show() diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index e72ae5f32..df1547cb3 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -40,6 +40,7 @@ def via_stack( glayer2: str is the glayer to end on ****NOTE it does not matter what order you pass layers ****NOTE will not lay poly or active but will lay metals + fullbottom: will lay the bottom glayer all over the area of the viastack ports (one port for each edge): top_met_...all edges bottom_via_...all edges @@ -76,11 +77,17 @@ def via_stack( for level in range(level1, level2): gmetlayer = "met" + str(level) gnextvia = "via" + str(level) + if level != level1: + gprevvia = "via" + str(level-1) + gprevvia_rule = 2 * pdk.get_grule(gmetlayer, gprevvia)["min_enclosure"] + pdk.get_grule(gprevvia)["width"] + else: + gprevvia_rule=0 pdk.has_required_glayers([gmetlayer, gnextvia]) metdim = round(max( 2 * pdk.get_grule(gmetlayer, gnextvia)["min_enclosure"] + pdk.get_grule(gnextvia)["width"], pdk.get_grule(gmetlayer)["min_width"], + gprevvia_rule ),6) metref = viastack << rectangle( size=(metdim, metdim), layer=pdk.get_glayer(gmetlayer), centered=True @@ -110,14 +117,16 @@ def via_stack( for i in range(3): viastack.add_ports(port_refs[i][1].get_ports_list(), prefix=pre[i]) if fullbottom: - viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer("met"+str(level1)), centered=True) + gprevia = "via"+str(level1-1) if level1 != 1 else "mcon" + bottomsize = max(2*pdk.get_grule("met"+str(level1),gprevia)["min_enclosure"] + pdk.get_grule(gprevia)["width"], evaluate_bbox(viastack)[0]) + viastack << rectangle(size=2*[bottomsize],layer=pdk.get_glayer("met"+str(level1)), centered=True) center_stack = Component() viastack_ref = center_stack << viastack if not centered: viastack_ref.movex(viastack.xmax).movey(viastack.ymax) center_stack.add_ports(viastack_ref.get_ports_list()) - return rename_ports_by_orientation(center_stack.flatten()) + return rename_ports_by_orientation(center_stack).flatten() @cell From 261fd49ea885348c6a3f694cd889551a73b2f69f Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 10 Jul 2023 01:51:47 -0400 Subject: [PATCH 14/64] sky130 npc implemented as a function call to existing component --- .../PDK/sky130_mapped/sky130_add_npc.py | 59 ++++++++++ .../PDK/sky130_mapped/sky130_mapped.py | 3 +- .../PDK/util/custom_comp_utils.py | 70 ++++++++---- .../generators/gdsfactory-gen/c_route.py | 9 +- .../generators/gdsfactory-gen/diff_pair.py | 19 ++++ openfasoc/generators/gdsfactory-gen/fet.py | 9 +- openfasoc/generators/gdsfactory-gen/opamp.py | 103 +++++++++++++----- .../gdsfactory-gen/straight_route.py | 5 +- 8 files changed, 219 insertions(+), 58 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py new file mode 100644 index 000000000..ff2a14964 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py @@ -0,0 +1,59 @@ +from gdsfactory.component import Component +from gdsfactory.polygon import Polygon +from gdsfactory.geometry.boolean import boolean + + + +def sky130_add_npc(comp: Component) -> Component: + """To keep with the generic generator structure, + we do NOT add nitride poly cut layer in the generic generators (npc is specfic to sky130). + Because it is easy to add idenpedently, + we implement this as a function wrapper to correctly lay npc + returns the modified component""" + # extract licon polygons which are over poly (using klayout booleans) + licon_comp = comp.extract(layers=[(66,44)]) + poly_comp = comp.extract(layers=[(66,20)]) + liconANDpoly = boolean(licon_comp, poly_comp, layer=(1,2), operation="and") + licon_polygons = liconANDpoly.get_polygons(as_array=False) + # iterate through all licon and create npc (ignore merges for now) + npc_polygons = list() + for licon_polygon in licon_polygons: + bbox = licon_polygon.bounding_box() + licon_polygonxmin = bbox[0][0] + licon_polygonymin = bbox[0][1] + licon_polygonxmax = bbox[1][0] + licon_polygonymax = bbox[1][1] + padding_points = [ + [licon_polygonxmin - 0.1, licon_polygonymin - 0.1], + [licon_polygonxmax + 0.1, licon_polygonymin - 0.1], + [licon_polygonxmax + 0.1, licon_polygonymax + 0.1], + [licon_polygonxmin - 0.1, licon_polygonymax + 0.1], + ] + npc_polygons.append(Polygon(padding_points, layer=(95,20))) + # determine which npc polygons should be merged + # also merge them by adding a polygon over them + # naive approach, n^2 complexity + npc_merged_polygons = list() + for i, npc_polygon in enumerate(npc_polygons): + for j, other_polygon in enumerate(npc_polygons): + # use the fact that all npc polys have the same width (at this point) + yviolation = abs(npc_polygon.center[1] - other_polygon.center[1]) < 0.64#0.27+0.37 + xviolation = abs(npc_polygon.center[0] - other_polygon.center[0]) < 0.64 + if i==j:#skip same polygon + continue + elif (xviolation and yviolation): + nxmax = max(npc_polygon.xmax, other_polygon.xmax) + nxmin = min(npc_polygon.xmin, other_polygon.xmin) + nymax = max(npc_polygon.ymax, other_polygon.ymax) + nymin = min(npc_polygon.ymin, other_polygon.ymin) + points = [ + [nxmin,nymin], + [nxmax,nymin], + [nxmax,nymax], + [nxmin,nymax], + ] + npc_merged_polygons.append(Polygon(points=points,layer=(95,20))) + # add npc and return + npc_polygons_to_add = npc_polygons + npc_merged_polygons + comp.add(npc_polygons_to_add) + return comp diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index 554b99ce0..be6a16461 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -24,7 +24,8 @@ "mcon": "licon1drawing", "poly": "polydrawing", "active_diff": "diffdrawing", - "active_tap": "tapdrawing", + "active_tap": "diffdrawing", + #"active_tap": "tapdrawing", "n+s/d": "nsdmdrawing", "p+s/d": "psdmdrawing", "nwell": "nwelldrawing", diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index 756eebeb3..0c4a1df2f 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -134,59 +134,83 @@ def print_ports(custom_comp: Union[Component, ComponentReference], names_only: O def evaluate_bbox(custom_comp: Union[Component, ComponentReference], return_decimal: Optional[bool]=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: """returns the length and height of a component like object""" compbbox = custom_comp.bbox - width = Decimal(str(compbbox[1][0])) - Decimal(str(compbbox[0][0])) - height = Decimal(str(compbbox[1][1])) - Decimal(str(compbbox[0][1])) + width = abs(Decimal(str(compbbox[1][0])) - Decimal(str(compbbox[0][0]))) + height = abs(Decimal(str(compbbox[1][1])) - Decimal(str(compbbox[0][1]))) if return_decimal: return (width,height) return (float(width),float(height)) @validate_arguments -def move(custom_comp: Union[Port, ComponentReference], offsetxy: Optional[tuple[float,float]] = 0) -> Union[Port, ComponentReference]: +def move(custom_comp: Union[Port, ComponentReference], offsetxy: Optional[tuple[float,float]] = 0, destination: Optional[tuple[Optional[float],Optional[float]]]=None) -> Union[Port, ComponentReference]: """moves custom_comp by offset[0]=x offset, offset[1]=y offset + destination (x,y) if not none overrides offset option returns the modified custom_comp """ + if destination is not None: + xoffset = destination[0] - custom_comp.center[0] if destination[0] is not None else 0 + yoffset = destination[1] - custom_comp.center[1] if destination[1] is not None else 0 if isinstance(custom_comp, Port): - custom_comp.move(offsetxy) + if destination is None: + custom_comp.move(offsetxy) + else: + custom_comp.move((xoffset,yoffset)) elif isinstance(custom_comp, ComponentReference): - custom_comp.movex(offsetxy[0]).movey(offsetxy[1]) + if destination is None: + custom_comp.movex(offsetxy[0]).movey(offsetxy[1]) + else: + custom_comp.movex(xoffset).movey(yoffset) return custom_comp @validate_arguments -def movex(custom_comp: Union[Port, ComponentReference], offsetx: Optional[float] = 0) -> Union[Port, ComponentReference]: +def movex(custom_comp: Union[Port, ComponentReference], offsetx: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference]: """moves custom_comp by offsetx in the x direction returns the modified custom_comp """ - return move(custom_comp, (offsetx,0)) + if destination is not None: + destination = (destination, None) + return move(custom_comp, (offsetx,0),destination) @validate_arguments -def movey(custom_comp: Union[Port, ComponentReference], offsety: Optional[float] = 0) -> Union[Port, ComponentReference]: +def movey(custom_comp: Union[Port, ComponentReference], offsety: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference]: """moves custom_comp by offsety in the y direction returns the modified custom_comp """ - return move(custom_comp, (0,offsety)) + if destination is not None: + destination = (None, destination) + return move(custom_comp, (0,offsety),destination) @validate_arguments -def get_orientation(orientation: str) -> int: +def get_orientation(orientation: Union[int,float,str]) -> Union[float,int,str]: """returns the angle corresponding to port orientation orientation must contain N/n,E/e,S/s,W/w e.g. all the follwing are valid: N/n or N/north,E/e or E/east,S/s or S/south, W/w or W/west """ - orientation = orientation.lower() - if "n" in orientation: - return 90 - elif "e" in orientation: - return 0 - elif "w" in orientation: - return 180 - elif "s" in orientation: - return 270 - else: - raise ValueError("orientation must contain N/n,E/e,S/s,W/w") + if isinstance(orientation,str): + orientation = orientation.lower() + if "n" in orientation: + return 90 + elif "e" in orientation: + return 0 + elif "w" in orientation: + return 180 + elif "s" in orientation: + return 270 + else: + raise ValueError("orientation must contain N/n,E/e,S/s,W/w") + else:# must be a float/int + orientation = int(orientation) + orientation_index = int((orientation % 360) / 90) + orientations = ["E","N","W","S"] + try: + orientation = orientations[orientation_index] + except IndexError as e: + raise ValueError("orientation must be 0,90,180,270 to use this function") + return orientation @validate_arguments @@ -212,8 +236,10 @@ def assert_ports_perpindicular(edge1: Port, edge2: Port) -> bool: @validate_arguments -def set_orientation(custom_comp: Port, orientation: Union[float, int]) -> Port: +def set_orientation(custom_comp: Port, orientation: Union[float, int, str]) -> Port: """creates a new port with the desired orientation and returns the new port""" + if isinstance(orientation,str): + orientation = get_orientation(orientation) newport = Port( name = custom_comp.name, center = custom_comp.center, diff --git a/openfasoc/generators/gdsfactory-gen/c_route.py b/openfasoc/generators/gdsfactory-gen/c_route.py index 87dd58129..044b05599 100644 --- a/openfasoc/generators/gdsfactory-gen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/c_route.py @@ -7,7 +7,7 @@ from via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from PDK.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width +from PDK.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_orientation, get_orientation from pydantic import validate_arguments @@ -185,7 +185,12 @@ def c_route( if cwidth: route_ports = [set_port_width(port_,cwidth) for port_ in route_ports] cconnection = croute << route_quad(route_ports[0],route_ports[1],layer=pdk.get_glayer(cglayer)) - croute.add_ports(cconnection.get_ports_list(),prefix="con_") + for i,port_to_add in enumerate(route_ports): + orta = get_orientation(port_to_add.orientation) + #orta = "S" if orta=="N" else ("N" if orta=="S" else orta) + #orta = "E" if orta=="W" else ("W" if orta=="E" else orta) + route_ports[i] = set_orientation(port_to_add, orta) + croute.add_ports(route_ports,prefix="con_") return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) if __name__ == "__main__": diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py index 81f0ce094..8a488de11 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -24,6 +24,7 @@ def diff_pair( fingers: Optional[int] = 4, length: Optional[float] = None, n_or_p_fet: Optional[bool] = True, + plus_minus_seperation: Optional[float] = 0 ) -> Component: """create a diffpair with 2 transistors placed in two rows with common centroid place. Sources are shorted width = width of the transistors @@ -115,11 +116,29 @@ def diff_pair( floating_port_drain_bottom_R = set_orientation(movey(drain_br_via.ports["bottom_met_E"],0-bottom_extension - metal_space - width_drain_route), get_orientation("W")) drain_routeTR_BL = diffpair << c_route(pdk, floating_port_drain_bottom_L, b_topr.ports["multiplier_0_drain_E"],extension=dextension, width1=width_drain_route,width2=width_drain_route) drain_routeTL_BR = diffpair << c_route(pdk, floating_port_drain_bottom_R, a_topl.ports["multiplier_0_drain_W"],extension=dextension, width1=width_drain_route,width2=width_drain_route) + # cross gate route top with c_route. bar_minus ABOVE bar_plus + get_left_extension = lambda bar, a_topl=a_topl, diffpair=diffpair, pdk=pdk : (abs(diffpair.xmin-min(a_topl.ports["multiplier_0_gate_W"].center[0],bar.ports["e1"].center[0])) + pdk.get_grule("met2")["min_separation"]) + get_right_extension = lambda bar, b_topr=b_topr, diffpair=diffpair, pdk=pdk : (abs(diffpair.xmax-max(b_topr.ports["multiplier_0_gate_E"].center[0],bar.ports["e3"].center[0])) + pdk.get_grule("met2")["min_separation"]) + # lay bar plus and PLUSgate_routeW + bar_comp = rectangle(centered=True,size=(abs(b_topr.xmax-a_topl.xmin), b_topr.ports["multiplier_0_gate_E"].width),layer=pdk.get_glayer("met2")) + bar_plus = (diffpair << bar_comp).movey(diffpair.ymax + bar_comp.ymax + pdk.get_grule("met2")["min_separation"]) + PLUSgate_routeW = diffpair << c_route(pdk, a_topl.ports["multiplier_0_gate_W"], bar_plus.ports["e1"], extension=get_left_extension(bar_plus)) + #lay bar minus and MINUSgate_routeE + plus_minus_seperation = max(pdk.get_grule("met2")["min_separation"], plus_minus_seperation) + bar_minus = (diffpair << bar_comp).movey(diffpair.ymax +bar_comp.ymax + plus_minus_seperation) + MINUSgate_routeE = diffpair << c_route(pdk, b_topr.ports["multiplier_0_gate_E"], bar_minus.ports["e3"], extension=get_right_extension(bar_minus)) + # lay MINUSgate_routeW and PLUSgate_routeE + MINUSgate_routeW = diffpair << c_route(pdk, set_orientation(b_botl.ports["multiplier_0_gate_E"],"W"), bar_minus.ports["e1"], extension=get_left_extension(bar_minus)) + PLUSgate_routeE = diffpair << c_route(pdk, set_orientation(a_botr.ports["multiplier_0_gate_W"],"E"), bar_plus.ports["e3"], extension=get_right_extension(bar_plus)) # correct pwell place, add ports, flatten, and return diffpair.add_ports(a_topl.get_ports_list(),prefix="tl_") diffpair.add_ports(b_topr.get_ports_list(),prefix="tr_") diffpair.add_ports(b_botl.get_ports_list(),prefix="bl_") diffpair.add_ports(a_botr.get_ports_list(),prefix="br_") + diffpair.add_ports(source_routeE.get_ports_list(),prefix="source_routeE_") + diffpair.add_ports(source_routeW.get_ports_list(),prefix="source_routeW_") + diffpair.add_ports(drain_routeTR_BL.get_ports_list(),prefix="drain_routeTR_BL_") + diffpair.add_ports(drain_routeTL_BR.get_ports_list(),prefix="drain_routeTL_BR_") diffpair.add_padding(layers=(pdk.get_glayer(well),), default=0) return component_snap_to_grid(rename_ports_by_orientation(diffpair)) diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index 5eacc7c17..e962d2ff9 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -94,7 +94,7 @@ def multiplier( ) multiplier << rectangle(size=to_float(diff_dims), layer=pdk.get_glayer("active_diff"), centered=True) sd_ovhg = Decimal(str(pdk.get_grule(sdlayer, "active_diff")["min_enclosure"])) - sd_ovhg_dims = [dim + sd_ovhg for dim in diff_dims] + sd_ovhg_dims = [dim + 2*sd_ovhg for dim in diff_dims] sdlayer_ref = multiplier << rectangle(layer=pdk.get_glayer(sdlayer), size=to_float(sd_ovhg_dims), centered=True) multiplier.add_ports(sdlayer_ref.get_ports_list(),prefix="plusdoped_") # route all drains/ gates/ sources @@ -256,7 +256,7 @@ def __mult_array_macro( correctionxy = prec_center(marrref) marrref.movex(correctionxy[0]).movey(correctionxy[1]) final_arr.add_ports(marrref.get_ports_list()) - return component_snap_to_grid(final_arr) + return component_snap_to_grid(rename_ports_by_orientation(final_arr)) @cell @@ -388,13 +388,14 @@ def pmos( 2 * (tap_separation + pfet.xmax), 2 * (tap_separation + pfet.ymax), ) - pfet << tapring( + tapring_ref = pfet << tapring( pdk, enclosed_rectangle=tap_encloses, sdlayer="n+s/d", horizontal_glayer="met2", vertical_glayer="met1", ) + pfet.add_ports(tapring_ref.get_ports_list(),prefix="tie_") # add nwell nwell_glayer = "dnwell" if dnwell else "nwell" pfet.add_padding( @@ -424,7 +425,7 @@ def pmos( if __name__ == "__main__": from PDK.util.standard_main import pdk - showmult = False + showmult = True if showmult: mycomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1) else: diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 38f50ad40..f3fe9ea4b 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -11,12 +11,10 @@ from L_route import L_route from c_route import c_route from gdsfactory.routing.route_quad import route_quad -from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center +from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, set_orientation, to_decimal, to_float, move from sys import exit from straight_route import straight_route - - -#@validate_arguments +from PDK.sky130_mapped.sky130_add_npc import sky130_add_npc @@ -52,7 +50,6 @@ def opamp( ) diffpair_i_.add(prec_ref_center(center_diffpair_comp)) diffpair_i_.add_ports(center_diffpair_comp.get_ports_list()) - #exit() # create and position tail current source tailcurrent_comp = nmos( pdk, @@ -73,15 +70,10 @@ def opamp( - abs(tailcurrent_ref.ymax) ) diffpair_i_.add_ports(tailcurrent_ref.get_ports_list()) - gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) - gndpin.movey(tailcurrent_ref.ymin - 2) - # add to opamp comp + # add diff pair and tailcurrent_comp to opamp diffpair_i_ref = prec_ref_center(diffpair_i_) opamp_top.add(diffpair_i_ref) - opamp_top.add_ports(diffpair_i_ref.get_ports_list(),prefix="centerNMOS_") - # route tailcurrent_comp - opamp_top << c_route(pdk, opamp_top.ports["centerNMOS_multiplier_0_source_W"],gndpin.ports["e1"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) - opamp_top << c_route(pdk, opamp_top.ports["centerNMOS_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) + opamp_top.add_ports(diffpair_i_ref.get_ports_list(),prefix="centerNcomps_") # create and position current mirror symetrically x_dim_center = opamp_top.xmax src_gnd_port = [None,None] @@ -103,15 +95,31 @@ def opamp( halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax)) opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="nfet_Isrc_"+str(i)+"_") opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) + # add ground pin + gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) + gndpin.movey(tailcurrent_ref.ymin - 2) + # route tailcurrent_comp + opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_W"],gndpin.ports["e1"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) + opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) # gnd sources of halfMultn _cref = opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"].center[1]),fullbottom=True) + # connect gates and drains of halfMultn + halfMultn_left_gate_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(cmirror_hparams[3]-2)+"_gate_con_N"] + halfMultn_right_gate_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(cmirror_hparams[3]-2)+"_gate_con_N"] + halfmultn_gate_routeref = opamp_top << c_route(pdk, halfMultn_left_gate_port, halfMultn_right_gate_port, extension=abs(opamp_top.ymax-halfMultn_left_gate_port.center[1])+1,fullbottom=True) + halfMultn_left_drain_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(cmirror_hparams[3]-2)+"_drain_con_N"] + halfMultn_right_drain_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(cmirror_hparams[3]-2)+"_drain_con_N"] + halfmultn_drain_routeref = opamp_top << c_route(pdk, halfMultn_left_drain_port, halfMultn_right_drain_port, extension=abs(opamp_top.ymax-halfMultn_left_drain_port.center[1])+1,fullbottom=True) # gnd guardring of halfMultn opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_0_tie_S_top_met_S"],gndpin.ports["e1"],width=2,glayer1="met3") opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_1_tie_S_top_met_S"],gndpin.ports["e3"],width=2,glayer1="met3") + # route source of diffpair to drain of tailcurrent_comp + opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeW_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_W"]) + opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeE_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_E"]) # place pmos components - pmos_comps = Component("temp pmos section top") + pmos_comps = Component("pmos_section_top") # center and position - shared_gate_comps = Component("temp pmos shared gates") + shared_gate_comps = Component("pmos_shared_gates") #TODO: report as bug clear_cache() pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True)) @@ -123,7 +131,8 @@ def opamp( relative_dim_comp = multiplier( pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False ) - single_dim = relative_dim_comp.xmax + 0.1 + # TODO: figure out single dim spacing rule then delete both test delete and this + single_dim = to_decimal(relative_dim_comp.xmax) + to_decimal(0.1) LRplusdopedPorts = list() for i in [-2, -1, 1, 2]: dummy = False @@ -142,7 +151,8 @@ def opamp( extra_t = single_dim else: pcenterfourunits = relative_dim_comp - pref_ = (pmos_comps << pcenterfourunits).movex(i * single_dim + extra_t) + pcenterfourunits + pref_ = (pmos_comps << pcenterfourunits).movex(to_float(i * single_dim + extra_t)) LRplusdopedPorts += [pref_.ports["plusdoped_W"] , pref_.ports["plusdoped_E"]] pmos_comps << route_quad(LRplusdopedPorts[0],LRplusdopedPorts[-1],layer=pdk.get_glayer("p+s/d")) ytranslation_pcenter = 2 * pcenterfourunits.ymax @@ -162,21 +172,56 @@ def opamp( with_substrate_tap=False, sd_route_left=bool(direction-1) ) - halfMultp.show() + halfMultp halfMultp_ref = pmos_comps << halfMultp halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax+1)) + label = "l_" if direction==-1 else "r_" + pmos_comps.add_ports(halfMultp_ref.get_ports_list(),prefix="halfp_"+label) # finish place central - ydim_ncomps = opamp_top.ymax - opamp_top.ymin + ydim_ncomps = opamp_top.ymax pmos_comps.add_padding( layers=[pdk.get_glayer("nwell")], default=pdk.get_grule("nwell", "active_tap")["min_enclosure"], ) - pmos_comps.show() - # tapcenter_rect = [2*pmos_comps.xmax+pdk.get_grule("nwell","active_tap")["min_separation"], 2*pmos_comps.ymax+pdk.get_grule("nwell","active_tap")["min_separation"]] tapcenter_rect = [2 * pmos_comps.xmax + 1, 2 * pmos_comps.ymax + 1] - pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") + topptap = pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") + pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") pmos_comps_ref = opamp_top << pmos_comps - pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax) + pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax+3) + opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") + # route halfmultp source, drain, and gate together, place vdd pin in the middle + halfmultp_Lsrcport = opamp_top.ports["pcomps_halfp_l_multiplier_0_source_con_N"] + halfmultp_Rsrcport = opamp_top.ports["pcomps_halfp_r_multiplier_0_source_con_N"] + opamp_top << c_route(pdk, halfmultp_Lsrcport, halfmultp_Rsrcport, extension=opamp_top.ymax-halfmultp_Lsrcport.center[1], fullbottom=True,viaoffset=(False,False)) + # place vdd pin + vddpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) + vddpin.movey(opamp_top.ymax) + # drain route above vdd pin + halfmultp_Ldrainport = opamp_top.ports["pcomps_halfp_l_multiplier_0_drain_con_N"] + halfmultp_Rdrainport = opamp_top.ports["pcomps_halfp_r_multiplier_0_drain_con_N"] + halfmultp_drain_routeref = opamp_top << c_route(pdk, halfmultp_Ldrainport, halfmultp_Rdrainport, extension=opamp_top.ymax-halfmultp_Ldrainport.center[1]+pdk.get_grule("met5")["min_separation"], fullbottom=True) + halfmultp_Lgateport = opamp_top.ports["pcomps_halfp_l_multiplier_0_gate_con_S"] + halfmultp_Rgateport = opamp_top.ports["pcomps_halfp_r_multiplier_0_gate_con_S"] + opamp_top << c_route(pdk, halfmultp_Lgateport, halfmultp_Rgateport, extension=abs(pmos_comps_ref.ymin-halfmultp_Lgateport.center[1])+pdk.get_grule("met5")["min_separation"],fullbottom=True,viaoffset=(False,False)) + # halfmultn to halfmultp drain to drain route + extensionL = min(halfmultn_drain_routeref.ports["con_W"].center[0],halfmultp_drain_routeref.ports["con_W"].center[0]) + extensionR = max(halfmultn_drain_routeref.ports["con_E"].center[0],halfmultp_drain_routeref.ports["con_E"].center[0]) + opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_W"], halfmultp_drain_routeref.ports["con_W"],extension=abs(opamp_top.xmin-extensionL)+2,cwidth=2) + opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_E"], halfmultp_drain_routeref.ports["con_E"],extension=abs(opamp_top.xmax-extensionR)+2,cwidth=2) + # top nwell taps to vdd, top p substrate taps to gnd + opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_bl_top_met_S"], opamp_top.ports["nfet_Isrc_1_tie_N_top_met_W"],hwidth=2) + opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_br_top_met_S"], opamp_top.ports["nfet_Isrc_0_tie_N_top_met_E"],hwidth=2) + L_toptapn_route = opamp_top.ports["pcomps_halfp_l_tie_N_top_met_N"] + R_toptapn_route = opamp_top.ports["pcomps_halfp_r_tie_N_top_met_N"] + opamp_top << straight_route(pdk, movex(vddpin.ports["e4"],destination=L_toptapn_route.center[0]), L_toptapn_route, glayer1="met3") + opamp_top << straight_route(pdk, movex(vddpin.ports["e4"],destination=R_toptapn_route.center[0]), R_toptapn_route, glayer1="met3") + # vbias1 and vbias2 pins + vbias1 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) + vbias1.movey(opamp_top.ymin - 1.5 - 2) + opamp_top << straight_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_gate_S"], vbias1.ports["e2"],width=1,fullbottom=False) + vbias2 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) + vbias2.movex(opamp_top.xmin-2).movey(opamp_top.ymin+vbias2.ymax) + opamp_top << L_route(pdk, halfmultn_gate_routeref.ports["con_W"], vbias2.ports["e2"],hwidth=2) # place mimcaps mimcap_single = mimcap(pdk, mim_cap_size) prev_xmax = opamp_top.xmax @@ -186,12 +231,14 @@ def opamp( + evaluate_bbox(mimcap_single)[0] ) # TODO: fix glayer should be capmet + 1, size should be standardized - h_mimcap_spacer = rectangle(size=(1,pdk.get_grule("capmet")["min_separation"]+2),layer=pdk.get_glayer("met5"),centered=True) - v_mimcap_spacer = rectangle(size=(pdk.get_grule("capmet")["min_separation"]+2,1),layer=pdk.get_glayer("met5"),centered=True) + h_mimcap_spacer = rectangle(size=(1,pdk.get_grule("capmet")["min_separation"]+2),layer=pdk.get_glayer("met5"),centered=True).copy() + h_mimcap_spacer << rectangle(size=(1,pdk.get_grule("capmet")["min_separation"]+2),layer=pdk.get_glayer("met4"),centered=True) + v_mimcap_spacer = rectangle(size=(pdk.get_grule("capmet")["min_separation"]+2,1),layer=pdk.get_glayer("met5"),centered=True).copy() + v_mimcap_spacer << rectangle(size=(pdk.get_grule("capmet")["min_separation"]+2,1),layer=pdk.get_glayer("met4"),centered=True) mimcaps_ref = opamp_top.add_array( mimcap_single, rows=3, columns=2, spacing=(mimcap_space, mimcap_space) ) - spacing_factory_h = [dim + evaluate_bbox(h_mimcap_spacer)[1] for dim in evaluate_bbox(mimcap_single)] + spacing_factory_h = [dim + evaluate_bbox(h_mimcap_spacer)[1]/2 for dim in evaluate_bbox(mimcap_single)] mimcap_hspacer = opamp_top.add_array(h_mimcap_spacer,rows=2,columns=2,spacing=spacing_factory_h) mimcap_vspacer = opamp_top.add_array(v_mimcap_spacer, rows=3,columns=1,spacing=spacing_factory_h) # TODO: fix mimcap to transistor separation @@ -203,9 +250,11 @@ def opamp( mimcap_hspacer.movey(pmos_comps_ref.ymin + 2*mimcap_single.ymax) mimcap_vspacer.movey(pmos_comps_ref.ymin + mimcap_single.ymax) # connect mimcap to gnd - opamp_top << L_route(pdk,mimcaps_ref.ports["top_met_S"],_cref.ports["con_E"],hwidth=3) + opamp_top << L_route(pdk,movex(mimcaps_ref.ports["top_met_S"],spacing_factory_h[0]),_cref.ports["con_E"],hwidth=3) # TODO: implement - return opamp_top + return opamp_top.flatten() + #print("now running long function") + #return sky130_add_npc(opamp_top.flatten()) if __name__ == "__main__": diff --git a/openfasoc/generators/gdsfactory-gen/straight_route.py b/openfasoc/generators/gdsfactory-gen/straight_route.py index 1bd9a3faf..eca5ac235 100644 --- a/openfasoc/generators/gdsfactory-gen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/straight_route.py @@ -16,6 +16,7 @@ def straight_route( glayer1: Optional[str] = None, width: Optional[float] = None, glayer2: Optional[str] = None, + fullbottom: Optional[bool] = False ) -> Component: """extends a route from edge1 until perpindicular with edge2, then places a via This depends on the orientation of edge1 and edge2 @@ -44,7 +45,7 @@ def straight_route( glayer1 = glayer1 if glayer1 else pdk.layer_to_glayer(edge1.layer) front_via = None if glayer1 != pdk.layer_to_glayer(edge1.layer): - front_via = via_stack(pdk,glayer1,pdk.layer_to_glayer(edge1.layer),fullbottom=True) + front_via = via_stack(pdk,glayer1,pdk.layer_to_glayer(edge1.layer),fullbottom=fullbottom) glayer2 = glayer2 if glayer2 else pdk.layer_to_glayer(edge2.layer) assert_is_manhattan([edge1,edge2]) if edge1.orientation == edge2.orientation: @@ -68,7 +69,7 @@ def straight_route( size = (width,abs(extension)) # create route and via route = rectangle(layer=pdk.get_glayer(glayer1),size=size,centered=True) - out_via = via_stack(pdk,glayer1,glayer2,fullbottom=True) + out_via = via_stack(pdk,glayer1,glayer2,fullbottom=fullbottom) # place route and via straightroute = Component() route_ref = align_comp_to_port(route,edge1,alignment=alignment) From 276f0f376e466294f1f64bfe169a921c1998e8aa Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:17:44 -0400 Subject: [PATCH 15/64] gf180 cap rules and sky130 npc decorator --- .../PDK/gf180_mapped/gf180_mapped.py | 280 +------------ .../gdsfactory-gen/PDK/gf180_mapped/grules.py | 368 ++++++++++++++++++ .../PDK/sky130_mapped/sky130_add_npc.py | 11 +- .../PDK/sky130_mapped/sky130_mapped.py | 4 +- openfasoc/generators/gdsfactory-gen/opamp.py | 2 +- 5 files changed, 390 insertions(+), 275 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/grules.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py index d1baf6cc0..45d0211d8 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py @@ -1,13 +1,15 @@ -# TODO: gf180 mimcap generator """ usage: from gf180_mapped import gf180_mapped_pdk """ from gf180.layers import LAYER # , LAYER_VIEWS - +from PDK.gf180_mapped.grules import grulesobj from PDK.mappedpdk import MappedPDK from pathlib import Path +LAYER = LAYER.dict() +#LAYER["fusetop"]=(75, 0) +LAYER["CAP_MK"] = (117,5) gf180_glayer_mapping = { "met5": "metal5", @@ -28,282 +30,22 @@ "nwell": "nwell", "pwell": "lvpwell", "dnwell": "dnwell", + "capmet": "CAP_MK" } -# note for DRC, there is mim_option 'A' which runs by default or mim_option 'B' +# note for DRC, there is mim_option 'A'. This is the one configured for use gf180_lydrc_file_path = Path(__file__).resolve().parent / "gf180mcu_drc.lydrc" -grulesobj = dict() -for glayer in MappedPDK.valid_glayers: - grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) - -grulesobj["dnwell"]["dnwell"] = {"min_width": 1.7, "min_separation": 5.42} -grulesobj["dnwell"]["pwell"] = {"min_enclosure": 2.5} -grulesobj["dnwell"]["nwell"] = {"min_separation": 3.1, "min_enclosure": 0.5} -grulesobj["dnwell"]["p+s/d"] = {} -grulesobj["dnwell"]["n+s/d"] = {} -grulesobj["dnwell"]["active_diff"] = {"min_enclosure": 0.93} -grulesobj["dnwell"]["active_tap"] = {"min_enclosure": 0.62, "min_separation": 2.5} -grulesobj["dnwell"]["poly"] = {} -grulesobj["dnwell"]["mcon"] = {} -grulesobj["dnwell"]["met1"] = {} -grulesobj["dnwell"]["via1"] = {} -grulesobj["dnwell"]["met2"] = {} -grulesobj["dnwell"]["via2"] = {} -grulesobj["dnwell"]["met3"] = {} -grulesobj["dnwell"]["via3"] = {} -grulesobj["dnwell"]["met4"] = {} -grulesobj["pwell"]["dnwell"] = {} -grulesobj["pwell"]["pwell"] = {"min_width": 0.6, "min_separation": 1.4} -grulesobj["pwell"]["nwell"] = {"min_separation": 0.0} -grulesobj["pwell"]["p+s/d"] = {} -grulesobj["pwell"]["n+s/d"] = {} -grulesobj["pwell"]["active_diff"] = {"min_enclosure": 0.43} -grulesobj["pwell"]["active_tap"] = {"min_enclosure": 0.12} -grulesobj["pwell"]["poly"] = {} -grulesobj["pwell"]["mcon"] = {} -grulesobj["pwell"]["met1"] = {} -grulesobj["pwell"]["via1"] = {} -grulesobj["pwell"]["met2"] = {} -grulesobj["pwell"]["via2"] = {} -grulesobj["pwell"]["met3"] = {} -grulesobj["pwell"]["via3"] = {} -grulesobj["pwell"]["met4"] = {} -grulesobj["nwell"]["dnwell"] = {} -grulesobj["nwell"]["pwell"] = {} -grulesobj["nwell"]["nwell"] = {"min_width": 0.86, "min_separation": 1.4} -grulesobj["nwell"]["p+s/d"] = {} -grulesobj["nwell"]["n+s/d"] = {} -grulesobj["nwell"]["active_diff"] = {"min_enclosure": 0.43} -grulesobj["nwell"]["active_tap"] = {"min_enclosure": 0.12} -grulesobj["nwell"]["poly"] = {} -grulesobj["nwell"]["mcon"] = {} -grulesobj["nwell"]["met1"] = {} -grulesobj["nwell"]["via1"] = {} -grulesobj["nwell"]["met2"] = {} -grulesobj["nwell"]["via2"] = {} -grulesobj["nwell"]["met3"] = {} -grulesobj["nwell"]["via3"] = {} -grulesobj["nwell"]["met4"] = {} -grulesobj["p+s/d"]["dnwell"] = {} -grulesobj["p+s/d"]["pwell"] = {} -grulesobj["p+s/d"]["nwell"] = {} -grulesobj["p+s/d"]["p+s/d"] = {"min_width": 0.4, "min_separation": 0.4} -grulesobj["p+s/d"]["n+s/d"] = {} -grulesobj["p+s/d"]["active_diff"] = {} -grulesobj["p+s/d"]["active_tap"] = {"min_enclosure": 0.16} -grulesobj["p+s/d"]["poly"] = {} -grulesobj["p+s/d"]["mcon"] = {} -grulesobj["p+s/d"]["met1"] = {} -grulesobj["p+s/d"]["via1"] = {} -grulesobj["p+s/d"]["met2"] = {} -grulesobj["p+s/d"]["via2"] = {} -grulesobj["p+s/d"]["met3"] = {} -grulesobj["p+s/d"]["via3"] = {} -grulesobj["p+s/d"]["met4"] = {} -grulesobj["n+s/d"]["dnwell"] = {} -grulesobj["n+s/d"]["pwell"] = {} -grulesobj["n+s/d"]["nwell"] = {} -grulesobj["n+s/d"]["p+s/d"] = {} -grulesobj["n+s/d"]["n+s/d"] = {"min_width": 0.4, "min_separation": 0.4} -grulesobj["n+s/d"]["active_diff"] = {} -grulesobj["n+s/d"]["active_tap"] = {"min_enclosure": 0.16} -grulesobj["n+s/d"]["poly"] = {} -grulesobj["n+s/d"]["mcon"] = {} -grulesobj["n+s/d"]["met1"] = {} -grulesobj["n+s/d"]["via1"] = {} -grulesobj["n+s/d"]["met2"] = {} -grulesobj["n+s/d"]["via2"] = {} -grulesobj["n+s/d"]["met3"] = {} -grulesobj["n+s/d"]["via3"] = {} -grulesobj["n+s/d"]["met4"] = {} -grulesobj["active_diff"]["dnwell"] = {} -grulesobj["active_diff"]["pwell"] = {} -grulesobj["active_diff"]["nwell"] = {} -grulesobj["active_diff"]["p+s/d"] = {"min_enclosure": 0.23} -grulesobj["active_diff"]["n+s/d"] = {"min_enclosure": 0.23} -grulesobj["active_diff"]["active_diff"] = {"min_width": 0.22, "min_separation": 0.28} -grulesobj["active_diff"]["active_tap"] = { - #"0.3)": "*****FIXTHIS!!!MANUALLY!*****", - "min_separation": 0.28, - "max_separation": 20.0, -} -grulesobj["active_diff"]["poly"] = {"overhang": 0.24, "min_separation": 0.1} -grulesobj["active_diff"]["mcon"] = {"min_enclosure": 0.07} -grulesobj["active_diff"]["met1"] = {} -grulesobj["active_diff"]["via1"] = {} -grulesobj["active_diff"]["met2"] = {} -grulesobj["active_diff"]["via2"] = {} -grulesobj["active_diff"]["met3"] = {} -grulesobj["active_diff"]["via3"] = {} -grulesobj["active_diff"]["met4"] = {} -grulesobj["active_tap"]["dnwell"] = {} -grulesobj["active_tap"]["pwell"] = {} -grulesobj["active_tap"]["nwell"] = {} -grulesobj["active_tap"]["p+s/d"] = {} -grulesobj["active_tap"]["n+s/d"] = {} -grulesobj["active_tap"]["active_diff"] = {} -grulesobj["active_tap"]["active_tap"] = {"min_width": 0.22, "min_separation": 0.28} -grulesobj["active_tap"]["poly"] = {"min_separation": 0.1} -grulesobj["active_tap"]["mcon"] = {"min_enclosure": 0.07} -grulesobj["active_tap"]["met1"] = {} -grulesobj["active_tap"]["via1"] = {} -grulesobj["active_tap"]["met2"] = {} -grulesobj["active_tap"]["via2"] = {} -grulesobj["active_tap"]["met3"] = {} -grulesobj["active_tap"]["via3"] = {} -grulesobj["active_tap"]["met4"] = {} -grulesobj["poly"]["dnwell"] = {} -grulesobj["poly"]["pwell"] = {} -grulesobj["poly"]["nwell"] = {} -grulesobj["poly"]["p+s/d"] = {} -grulesobj["poly"]["n+s/d"] = {} -grulesobj["poly"]["active_diff"] = {} -grulesobj["poly"]["active_tap"] = {} -grulesobj["poly"]["poly"] = {"min_width": 0.28} -grulesobj["poly"]["mcon"] = {"min_enclosure": 0.07, "min_separation": 0.17} -grulesobj["poly"]["met1"] = {} -grulesobj["poly"]["via1"] = {} -grulesobj["poly"]["met2"] = {} -grulesobj["poly"]["via2"] = {} -grulesobj["poly"]["met3"] = {} -grulesobj["poly"]["via3"] = {} -grulesobj["poly"]["met4"] = {} -grulesobj["mcon"]["dnwell"] = {} -grulesobj["mcon"]["pwell"] = {} -grulesobj["mcon"]["nwell"] = {} -grulesobj["mcon"]["p+s/d"] = {} -grulesobj["mcon"]["n+s/d"] = {} -grulesobj["mcon"]["active_diff"] = {} -grulesobj["mcon"]["active_tap"] = {} -grulesobj["mcon"]["poly"] = {} -grulesobj["mcon"]["mcon"] = {"min_separation": 0.28, "width": 0.22} -grulesobj["mcon"]["met1"] = {"min_enclosure": 0.12} -grulesobj["mcon"]["via1"] = {} -grulesobj["mcon"]["met2"] = {} -grulesobj["mcon"]["via2"] = {} -grulesobj["mcon"]["met3"] = {} -grulesobj["mcon"]["via3"] = {} -grulesobj["mcon"]["met4"] = {} -grulesobj["met1"]["dnwell"] = {} -grulesobj["met1"]["pwell"] = {} -grulesobj["met1"]["nwell"] = {} -grulesobj["met1"]["p+s/d"] = {} -grulesobj["met1"]["n+s/d"] = {} -grulesobj["met1"]["active_diff"] = {} -grulesobj["met1"]["active_tap"] = {} -grulesobj["met1"]["poly"] = {} -grulesobj["met1"]["mcon"] = {} -grulesobj["met1"]["met1"] = {"min_width": 0.23, "min_separation": 0.3} -grulesobj["met1"]["via1"] = {"min_enclosure": 0.12} -grulesobj["met1"]["met2"] = {} -grulesobj["met1"]["via2"] = {} -grulesobj["met1"]["met3"] = {} -grulesobj["met1"]["via3"] = {} -grulesobj["met1"]["met4"] = {} -grulesobj["via1"]["dnwell"] = {} -grulesobj["via1"]["pwell"] = {} -grulesobj["via1"]["nwell"] = {} -grulesobj["via1"]["p+s/d"] = {} -grulesobj["via1"]["n+s/d"] = {} -grulesobj["via1"]["active_diff"] = {} -grulesobj["via1"]["active_tap"] = {} -grulesobj["via1"]["poly"] = {} -grulesobj["via1"]["mcon"] = {} -grulesobj["via1"]["met1"] = {} -grulesobj["via1"]["via1"] = {"width": 0.26, "min_separation": 0.36} -grulesobj["via1"]["met2"] = {"min_enclosure": 0.12} -grulesobj["via1"]["via2"] = {} -grulesobj["via1"]["met3"] = {} -grulesobj["via1"]["via3"] = {} -grulesobj["via1"]["met4"] = {} -grulesobj["met2"]["dnwell"] = {} -grulesobj["met2"]["pwell"] = {} -grulesobj["met2"]["nwell"] = {} -grulesobj["met2"]["p+s/d"] = {} -grulesobj["met2"]["n+s/d"] = {} -grulesobj["met2"]["active_diff"] = {} -grulesobj["met2"]["active_tap"] = {} -grulesobj["met2"]["poly"] = {} -grulesobj["met2"]["mcon"] = {} -grulesobj["met2"]["met1"] = {} -grulesobj["met2"]["via1"] = {} -grulesobj["met2"]["met2"] = {"min_width": 0.28, "min_separation": 0.3} -grulesobj["met2"]["via2"] = {"min_enclosure": 0.12} -grulesobj["met2"]["met3"] = {} -grulesobj["met2"]["via3"] = {} -grulesobj["met2"]["met4"] = {} -grulesobj["via2"]["dnwell"] = {} -grulesobj["via2"]["pwell"] = {} -grulesobj["via2"]["nwell"] = {} -grulesobj["via2"]["p+s/d"] = {} -grulesobj["via2"]["n+s/d"] = {} -grulesobj["via2"]["active_diff"] = {} -grulesobj["via2"]["active_tap"] = {} -grulesobj["via2"]["poly"] = {} -grulesobj["via2"]["mcon"] = {} -grulesobj["via2"]["met1"] = {} -grulesobj["via2"]["via1"] = {} -grulesobj["via2"]["met2"] = {} -grulesobj["via2"]["via2"] = {"width": 0.26, "min_separation": 0.36} -grulesobj["via2"]["met3"] = {"min_enclosure": 0.12} -grulesobj["via2"]["via3"] = {} -grulesobj["via2"]["met4"] = {} -grulesobj["met3"]["dnwell"] = {} -grulesobj["met3"]["pwell"] = {} -grulesobj["met3"]["nwell"] = {} -grulesobj["met3"]["p+s/d"] = {} -grulesobj["met3"]["n+s/d"] = {} -grulesobj["met3"]["active_diff"] = {} -grulesobj["met3"]["active_tap"] = {} -grulesobj["met3"]["poly"] = {} -grulesobj["met3"]["mcon"] = {} -grulesobj["met3"]["met1"] = {} -grulesobj["met3"]["via1"] = {} -grulesobj["met3"]["met2"] = {} -grulesobj["met3"]["via2"] = {} -grulesobj["met3"]["met3"] = {"min_width": 0.28, "min_separation": 0.3} -grulesobj["met3"]["via3"] = {"min_enclosure": 0.12} -grulesobj["met3"]["met4"] = {} -grulesobj["via3"]["dnwell"] = {} -grulesobj["via3"]["pwell"] = {} -grulesobj["via3"]["nwell"] = {} -grulesobj["via3"]["p+s/d"] = {} -grulesobj["via3"]["n+s/d"] = {} -grulesobj["via3"]["active_diff"] = {} -grulesobj["via3"]["active_tap"] = {} -grulesobj["via3"]["poly"] = {} -grulesobj["via3"]["mcon"] = {} -grulesobj["via3"]["met1"] = {} -grulesobj["via3"]["via1"] = {} -grulesobj["via3"]["met2"] = {} -grulesobj["via3"]["via2"] = {} -grulesobj["via3"]["met3"] = {} -grulesobj["via3"]["via3"] = {"width": 0.26, "min_separation": 0.36} -grulesobj["via3"]["met4"] = {"min_enclosure": 0.12} -grulesobj["met4"]["dnwell"] = {} -grulesobj["met4"]["pwell"] = {} -grulesobj["met4"]["nwell"] = {} -grulesobj["met4"]["p+s/d"] = {} -grulesobj["met4"]["n+s/d"] = {} -grulesobj["met4"]["active_diff"] = {} -grulesobj["met4"]["active_tap"] = {} -grulesobj["met4"]["poly"] = {} -grulesobj["met4"]["mcon"] = {} -grulesobj["met4"]["met1"] = {} -grulesobj["met4"]["via1"] = {} -grulesobj["met4"]["met2"] = {} -grulesobj["met4"]["via2"] = {} -grulesobj["met4"]["met3"] = {} -grulesobj["met4"]["via3"] = {} -grulesobj["met4"]["met4"] = {"min_width": 0.28, "min_separation": 0.3} - gf180_mapped_pdk = MappedPDK( name="gf180", glayers=gf180_glayer_mapping, - layers=LAYER.dict(), + layers=LAYER, klayout_lydrc_file=gf180_lydrc_file_path, grules=grulesobj, ) + +# configure the grid size and other settings +gf180_mapped_pdk.gds_write_settings.precision = 5*10**-9 +gf180_mapped_pdk.cell_decorator_settings.cache=False diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/grules.py new file mode 100644 index 000000000..689d55ac8 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/grules.py @@ -0,0 +1,368 @@ +from PDK.mappedpdk import MappedPDK + +grulesobj = dict() +for glayer in MappedPDK.valid_glayers: + grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers) + +grulesobj["dnwell"]["dnwell"] = {'min_width': 1.7, 'min_separation': 5.42} +grulesobj["dnwell"]["pwell"] = {'min_enclosure': 2.5} +grulesobj["dnwell"]["nwell"] = {'min_separation': 3.1, 'min_enclosure': 0.5} +grulesobj["dnwell"]["p+s/d"] = {} +grulesobj["dnwell"]["n+s/d"] = {} +grulesobj["dnwell"]["active_diff"] = {'min_enclosure': 0.93} +grulesobj["dnwell"]["active_tap"] = {'min_enclosure': 0.62, 'min_separation': 2.5} +grulesobj["dnwell"]["poly"] = {} +grulesobj["dnwell"]["mcon"] = {} +grulesobj["dnwell"]["met1"] = {} +grulesobj["dnwell"]["via1"] = {} +grulesobj["dnwell"]["met2"] = {} +grulesobj["dnwell"]["via2"] = {} +grulesobj["dnwell"]["met3"] = {} +grulesobj["dnwell"]["via3"] = {} +grulesobj["dnwell"]["met4"] = {} +grulesobj["dnwell"]["via4"] = {} +grulesobj["dnwell"]["met5"] = {} +grulesobj["dnwell"]["capmet"] = {} +grulesobj["pwell"]["dnwell"] = {} +grulesobj["pwell"]["pwell"] = {'min_width': 0.6, 'min_separation': 1.4} +grulesobj["pwell"]["nwell"] = {'min_separation': 0.0} +grulesobj["pwell"]["p+s/d"] = {} +grulesobj["pwell"]["n+s/d"] = {} +grulesobj["pwell"]["active_diff"] = {'min_enclosure': 0.43} +grulesobj["pwell"]["active_tap"] = {'min_enclosure': 0.12} +grulesobj["pwell"]["poly"] = {} +grulesobj["pwell"]["mcon"] = {} +grulesobj["pwell"]["met1"] = {} +grulesobj["pwell"]["via1"] = {} +grulesobj["pwell"]["met2"] = {} +grulesobj["pwell"]["via2"] = {} +grulesobj["pwell"]["met3"] = {} +grulesobj["pwell"]["via3"] = {} +grulesobj["pwell"]["met4"] = {} +grulesobj["pwell"]["via4"] = {} +grulesobj["pwell"]["met5"] = {} +grulesobj["pwell"]["capmet"] = {} +grulesobj["nwell"]["dnwell"] = {} +grulesobj["nwell"]["pwell"] = {} +grulesobj["nwell"]["nwell"] = {'min_width': 0.86, 'min_separation': 1.4} +grulesobj["nwell"]["p+s/d"] = {} +grulesobj["nwell"]["n+s/d"] = {} +grulesobj["nwell"]["active_diff"] = {'min_enclosure': 0.43} +grulesobj["nwell"]["active_tap"] = {'min_enclosure': 0.12} +grulesobj["nwell"]["poly"] = {} +grulesobj["nwell"]["mcon"] = {} +grulesobj["nwell"]["met1"] = {} +grulesobj["nwell"]["via1"] = {} +grulesobj["nwell"]["met2"] = {} +grulesobj["nwell"]["via2"] = {} +grulesobj["nwell"]["met3"] = {} +grulesobj["nwell"]["via3"] = {} +grulesobj["nwell"]["met4"] = {} +grulesobj["nwell"]["via4"] = {} +grulesobj["nwell"]["met5"] = {} +grulesobj["nwell"]["capmet"] = {} +grulesobj["p+s/d"]["dnwell"] = {} +grulesobj["p+s/d"]["pwell"] = {} +grulesobj["p+s/d"]["nwell"] = {} +grulesobj["p+s/d"]["p+s/d"] = {'min_width': 0.4, 'min_separation': 0.4} +grulesobj["p+s/d"]["n+s/d"] = {} +grulesobj["p+s/d"]["active_diff"] = {'min_enclosure': 0.23} +grulesobj["p+s/d"]["active_tap"] = {'min_enclosure': 0.16} +grulesobj["p+s/d"]["poly"] = {} +grulesobj["p+s/d"]["mcon"] = {} +grulesobj["p+s/d"]["met1"] = {} +grulesobj["p+s/d"]["via1"] = {} +grulesobj["p+s/d"]["met2"] = {} +grulesobj["p+s/d"]["via2"] = {} +grulesobj["p+s/d"]["met3"] = {} +grulesobj["p+s/d"]["via3"] = {} +grulesobj["p+s/d"]["met4"] = {} +grulesobj["p+s/d"]["via4"] = {} +grulesobj["p+s/d"]["met5"] = {} +grulesobj["p+s/d"]["capmet"] = {} +grulesobj["n+s/d"]["dnwell"] = {} +grulesobj["n+s/d"]["pwell"] = {} +grulesobj["n+s/d"]["nwell"] = {} +grulesobj["n+s/d"]["p+s/d"] = {} +grulesobj["n+s/d"]["n+s/d"] = {'min_width': 0.4, 'min_separation': 0.4} +grulesobj["n+s/d"]["active_diff"] = {'min_enclosure': 0.23} +grulesobj["n+s/d"]["active_tap"] = {'min_enclosure': 0.16} +grulesobj["n+s/d"]["poly"] = {} +grulesobj["n+s/d"]["mcon"] = {} +grulesobj["n+s/d"]["met1"] = {} +grulesobj["n+s/d"]["via1"] = {} +grulesobj["n+s/d"]["met2"] = {} +grulesobj["n+s/d"]["via2"] = {} +grulesobj["n+s/d"]["met3"] = {} +grulesobj["n+s/d"]["via3"] = {} +grulesobj["n+s/d"]["met4"] = {} +grulesobj["n+s/d"]["via4"] = {} +grulesobj["n+s/d"]["met5"] = {} +grulesobj["n+s/d"]["capmet"] = {} +grulesobj["active_diff"]["dnwell"] = {} +grulesobj["active_diff"]["pwell"] = {} +grulesobj["active_diff"]["nwell"] = {} +grulesobj["active_diff"]["p+s/d"] = {} +grulesobj["active_diff"]["n+s/d"] = {} +grulesobj["active_diff"]["active_diff"] = {'min_width': 0.22, 'min_separation': 0.28} +grulesobj["active_diff"]["active_tap"] = {'min_separation': 0.28, 'max_separation': 20.0} +grulesobj["active_diff"]["poly"] = {'overhang': 0.24, 'min_separation': 0.1} +grulesobj["active_diff"]["mcon"] = {'min_enclosure': 0.07} +grulesobj["active_diff"]["met1"] = {} +grulesobj["active_diff"]["via1"] = {} +grulesobj["active_diff"]["met2"] = {} +grulesobj["active_diff"]["via2"] = {} +grulesobj["active_diff"]["met3"] = {} +grulesobj["active_diff"]["via3"] = {} +grulesobj["active_diff"]["met4"] = {} +grulesobj["active_diff"]["via4"] = {} +grulesobj["active_diff"]["met5"] = {} +grulesobj["active_diff"]["capmet"] = {} +grulesobj["active_tap"]["dnwell"] = {} +grulesobj["active_tap"]["pwell"] = {} +grulesobj["active_tap"]["nwell"] = {} +grulesobj["active_tap"]["p+s/d"] = {} +grulesobj["active_tap"]["n+s/d"] = {} +grulesobj["active_tap"]["active_diff"] = {} +grulesobj["active_tap"]["active_tap"] = {'min_width': 0.22, 'min_separation': 0.28} +grulesobj["active_tap"]["poly"] = {'min_separation': 0.1} +grulesobj["active_tap"]["mcon"] = {'min_enclosure': 0.07} +grulesobj["active_tap"]["met1"] = {} +grulesobj["active_tap"]["via1"] = {} +grulesobj["active_tap"]["met2"] = {} +grulesobj["active_tap"]["via2"] = {} +grulesobj["active_tap"]["met3"] = {} +grulesobj["active_tap"]["via3"] = {} +grulesobj["active_tap"]["met4"] = {} +grulesobj["active_tap"]["via4"] = {} +grulesobj["active_tap"]["met5"] = {} +grulesobj["active_tap"]["capmet"] = {} +grulesobj["poly"]["dnwell"] = {} +grulesobj["poly"]["pwell"] = {} +grulesobj["poly"]["nwell"] = {} +grulesobj["poly"]["p+s/d"] = {} +grulesobj["poly"]["n+s/d"] = {} +grulesobj["poly"]["active_diff"] = {} +grulesobj["poly"]["active_tap"] = {} +grulesobj["poly"]["poly"] = {'min_width': 0.28} +grulesobj["poly"]["mcon"] = {'min_enclosure': 0.07, 'min_separation': 0.17} +grulesobj["poly"]["met1"] = {} +grulesobj["poly"]["via1"] = {} +grulesobj["poly"]["met2"] = {} +grulesobj["poly"]["via2"] = {} +grulesobj["poly"]["met3"] = {} +grulesobj["poly"]["via3"] = {} +grulesobj["poly"]["met4"] = {} +grulesobj["poly"]["via4"] = {} +grulesobj["poly"]["met5"] = {} +grulesobj["poly"]["capmet"] = {} +grulesobj["mcon"]["dnwell"] = {} +grulesobj["mcon"]["pwell"] = {} +grulesobj["mcon"]["nwell"] = {} +grulesobj["mcon"]["p+s/d"] = {} +grulesobj["mcon"]["n+s/d"] = {} +grulesobj["mcon"]["active_diff"] = {} +grulesobj["mcon"]["active_tap"] = {} +grulesobj["mcon"]["poly"] = {} +grulesobj["mcon"]["mcon"] = {'min_separation': 0.28, 'width': 0.22} +grulesobj["mcon"]["met1"] = {'min_enclosure': 0.12} +grulesobj["mcon"]["via1"] = {} +grulesobj["mcon"]["met2"] = {} +grulesobj["mcon"]["via2"] = {} +grulesobj["mcon"]["met3"] = {} +grulesobj["mcon"]["via3"] = {} +grulesobj["mcon"]["met4"] = {} +grulesobj["mcon"]["via4"] = {} +grulesobj["mcon"]["met5"] = {} +grulesobj["mcon"]["capmet"] = {} +grulesobj["met1"]["dnwell"] = {} +grulesobj["met1"]["pwell"] = {} +grulesobj["met1"]["nwell"] = {} +grulesobj["met1"]["p+s/d"] = {} +grulesobj["met1"]["n+s/d"] = {} +grulesobj["met1"]["active_diff"] = {} +grulesobj["met1"]["active_tap"] = {} +grulesobj["met1"]["poly"] = {} +grulesobj["met1"]["mcon"] = {} +grulesobj["met1"]["met1"] = {'min_width': 0.23, 'min_separation': 0.3} +grulesobj["met1"]["via1"] = {'min_enclosure': 0.12} +grulesobj["met1"]["met2"] = {} +grulesobj["met1"]["via2"] = {} +grulesobj["met1"]["met3"] = {} +grulesobj["met1"]["via3"] = {} +grulesobj["met1"]["met4"] = {} +grulesobj["met1"]["via4"] = {} +grulesobj["met1"]["met5"] = {} +grulesobj["met1"]["capmet"] = {} +grulesobj["via1"]["dnwell"] = {} +grulesobj["via1"]["pwell"] = {} +grulesobj["via1"]["nwell"] = {} +grulesobj["via1"]["p+s/d"] = {} +grulesobj["via1"]["n+s/d"] = {} +grulesobj["via1"]["active_diff"] = {} +grulesobj["via1"]["active_tap"] = {} +grulesobj["via1"]["poly"] = {} +grulesobj["via1"]["mcon"] = {} +grulesobj["via1"]["met1"] = {} +grulesobj["via1"]["via1"] = {'width': 0.26, 'min_separation': 0.36} +grulesobj["via1"]["met2"] = {'min_enclosure': 0.12} +grulesobj["via1"]["via2"] = {} +grulesobj["via1"]["met3"] = {} +grulesobj["via1"]["via3"] = {} +grulesobj["via1"]["met4"] = {} +grulesobj["via1"]["via4"] = {} +grulesobj["via1"]["met5"] = {} +grulesobj["via1"]["capmet"] = {} +grulesobj["met2"]["dnwell"] = {} +grulesobj["met2"]["pwell"] = {} +grulesobj["met2"]["nwell"] = {} +grulesobj["met2"]["p+s/d"] = {} +grulesobj["met2"]["n+s/d"] = {} +grulesobj["met2"]["active_diff"] = {} +grulesobj["met2"]["active_tap"] = {} +grulesobj["met2"]["poly"] = {} +grulesobj["met2"]["mcon"] = {} +grulesobj["met2"]["met1"] = {} +grulesobj["met2"]["via1"] = {} +grulesobj["met2"]["met2"] = {'min_width': 0.28, 'min_separation': 0.3} +grulesobj["met2"]["via2"] = {'min_enclosure': 0.12} +grulesobj["met2"]["met3"] = {} +grulesobj["met2"]["via3"] = {} +grulesobj["met2"]["met4"] = {} +grulesobj["met2"]["via4"] = {} +grulesobj["met2"]["met5"] = {} +grulesobj["met2"]["capmet"] = {'min_enclosure': 0.6} +grulesobj["via2"]["dnwell"] = {} +grulesobj["via2"]["pwell"] = {} +grulesobj["via2"]["nwell"] = {} +grulesobj["via2"]["p+s/d"] = {} +grulesobj["via2"]["n+s/d"] = {} +grulesobj["via2"]["active_diff"] = {} +grulesobj["via2"]["active_tap"] = {} +grulesobj["via2"]["poly"] = {} +grulesobj["via2"]["mcon"] = {} +grulesobj["via2"]["met1"] = {} +grulesobj["via2"]["via1"] = {} +grulesobj["via2"]["met2"] = {} +grulesobj["via2"]["via2"] = {'width': 0.26, 'min_separation': 0.36} +grulesobj["via2"]["met3"] = {'min_enclosure': 0.12} +grulesobj["via2"]["via3"] = {} +grulesobj["via2"]["met4"] = {} +grulesobj["via2"]["via4"] = {} +grulesobj["via2"]["met5"] = {} +grulesobj["via2"]["capmet"] = {} +grulesobj["met3"]["dnwell"] = {} +grulesobj["met3"]["pwell"] = {} +grulesobj["met3"]["nwell"] = {} +grulesobj["met3"]["p+s/d"] = {} +grulesobj["met3"]["n+s/d"] = {} +grulesobj["met3"]["active_diff"] = {} +grulesobj["met3"]["active_tap"] = {} +grulesobj["met3"]["poly"] = {} +grulesobj["met3"]["mcon"] = {} +grulesobj["met3"]["met1"] = {} +grulesobj["met3"]["via1"] = {} +grulesobj["met3"]["met2"] = {} +grulesobj["met3"]["via2"] = {} +grulesobj["met3"]["met3"] = {'min_width': 0.28, 'min_separation': 0.3} +grulesobj["met3"]["via3"] = {'min_enclosure': 0.12} +grulesobj["met3"]["met4"] = {} +grulesobj["met3"]["via4"] = {} +grulesobj["met3"]["met5"] = {} +grulesobj["met3"]["capmet"] = {} +grulesobj["via3"]["dnwell"] = {} +grulesobj["via3"]["pwell"] = {} +grulesobj["via3"]["nwell"] = {} +grulesobj["via3"]["p+s/d"] = {} +grulesobj["via3"]["n+s/d"] = {} +grulesobj["via3"]["active_diff"] = {} +grulesobj["via3"]["active_tap"] = {} +grulesobj["via3"]["poly"] = {} +grulesobj["via3"]["mcon"] = {} +grulesobj["via3"]["met1"] = {} +grulesobj["via3"]["via1"] = {} +grulesobj["via3"]["met2"] = {} +grulesobj["via3"]["via2"] = {} +grulesobj["via3"]["met3"] = {} +grulesobj["via3"]["via3"] = {'width': 0.26, 'min_separation': 0.36} +grulesobj["via3"]["met4"] = {'min_enclosure': 0.12} +grulesobj["via3"]["via4"] = {} +grulesobj["via3"]["met5"] = {} +grulesobj["via3"]["capmet"] = {} +grulesobj["met4"]["dnwell"] = {} +grulesobj["met4"]["pwell"] = {} +grulesobj["met4"]["nwell"] = {} +grulesobj["met4"]["p+s/d"] = {} +grulesobj["met4"]["n+s/d"] = {} +grulesobj["met4"]["active_diff"] = {} +grulesobj["met4"]["active_tap"] = {} +grulesobj["met4"]["poly"] = {} +grulesobj["met4"]["mcon"] = {} +grulesobj["met4"]["met1"] = {} +grulesobj["met4"]["via1"] = {} +grulesobj["met4"]["met2"] = {} +grulesobj["met4"]["via2"] = {} +grulesobj["met4"]["met3"] = {} +grulesobj["met4"]["via3"] = {} +grulesobj["met4"]["met4"] = {'min_width': 0.28, 'min_separation': 0.3} +grulesobj["met4"]["via4"] = {'min_enclosure': 0.12} +grulesobj["met4"]["met5"] = {} +grulesobj["met4"]["capmet"] = {} +grulesobj["via4"]["dnwell"] = {} +grulesobj["via4"]["pwell"] = {} +grulesobj["via4"]["nwell"] = {} +grulesobj["via4"]["p+s/d"] = {} +grulesobj["via4"]["n+s/d"] = {} +grulesobj["via4"]["active_diff"] = {} +grulesobj["via4"]["active_tap"] = {} +grulesobj["via4"]["poly"] = {} +grulesobj["via4"]["mcon"] = {} +grulesobj["via4"]["met1"] = {} +grulesobj["via4"]["via1"] = {} +grulesobj["via4"]["met2"] = {} +grulesobj["via4"]["via2"] = {} +grulesobj["via4"]["met3"] = {} +grulesobj["via4"]["via3"] = {} +grulesobj["via4"]["met4"] = {} +grulesobj["via4"]["via4"] = {'width': 0.26, 'min_separation': 0.36} +grulesobj["via4"]["met5"] = {'min_enclosure': 0.12} +grulesobj["via4"]["capmet"] = {} +grulesobj["met5"]["dnwell"] = {} +grulesobj["met5"]["pwell"] = {} +grulesobj["met5"]["nwell"] = {} +grulesobj["met5"]["p+s/d"] = {} +grulesobj["met5"]["n+s/d"] = {} +grulesobj["met5"]["active_diff"] = {} +grulesobj["met5"]["active_tap"] = {} +grulesobj["met5"]["poly"] = {} +grulesobj["met5"]["mcon"] = {} +grulesobj["met5"]["met1"] = {} +grulesobj["met5"]["via1"] = {} +grulesobj["met5"]["met2"] = {} +grulesobj["met5"]["via2"] = {} +grulesobj["met5"]["met3"] = {} +grulesobj["met5"]["via3"] = {} +grulesobj["met5"]["met4"] = {} +grulesobj["met5"]["via4"] = {} +grulesobj["met5"]["met5"] = {'min_width': 0.28, 'min_separation': 0.3} +grulesobj["met5"]["capmet"] = {} +grulesobj["capmet"]["dnwell"] = {} +grulesobj["capmet"]["pwell"] = {} +grulesobj["capmet"]["nwell"] = {} +grulesobj["capmet"]["p+s/d"] = {} +grulesobj["capmet"]["n+s/d"] = {} +grulesobj["capmet"]["active_diff"] = {} +grulesobj["capmet"]["active_tap"] = {} +grulesobj["capmet"]["poly"] = {} +grulesobj["capmet"]["mcon"] = {} +grulesobj["capmet"]["met1"] = {} +grulesobj["capmet"]["via1"] = {} +grulesobj["capmet"]["met2"] = {} +grulesobj["capmet"]["via2"] = {} +grulesobj["capmet"]["met3"] = {} +grulesobj["capmet"]["via3"] = {} +grulesobj["capmet"]["met4"] = {} +grulesobj["capmet"]["via4"] = {} +grulesobj["capmet"]["met5"] = {} +grulesobj["capmet"]["capmet"] = {'capmettop': (42, 0), 'capmetbottom': (36, 0), 'min_separation': 1.2} + diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py index ff2a14964..618b874fe 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py @@ -3,16 +3,19 @@ from gdsfactory.geometry.boolean import boolean - def sky130_add_npc(comp: Component) -> Component: """To keep with the generic generator structure, we do NOT add nitride poly cut layer in the generic generators (npc is specfic to sky130). Because it is easy to add idenpedently, we implement this as a function wrapper to correctly lay npc returns the modified component""" - # extract licon polygons which are over poly (using klayout booleans) - licon_comp = comp.extract(layers=[(66,44)]) - poly_comp = comp.extract(layers=[(66,20)]) + # extract licon polygons which are over poly (using booleans) + licon_comp = Component("tempLICON_ONLY") + licon_comp.add(comp.get_polygons(by_spec=(66,44), depth=None, as_array=False)) + poly_comp = Component("tempPOLY_ONLY") + poly_comp.add(comp.get_polygons(by_spec=(66,20), depth=None, as_array=False)) + if not len(licon_comp.get_polygons()) or not len(poly_comp.get_polygons()): + return comp liconANDpoly = boolean(licon_comp, poly_comp, layer=(1,2), operation="and") licon_polygons = liconANDpoly.get_polygons(as_array=False) # iterate through all licon and create npc (ignore merges for now) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py index be6a16461..302ba5677 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py @@ -6,6 +6,7 @@ from PDK.mappedpdk import MappedPDK from PDK.sky130_mapped.grules import grulesobj from pathlib import Path +from PDK.sky130_mapped.sky130_add_npc import sky130_add_npc sky130.PDK.layers["capm3"] = (89, 44) @@ -42,8 +43,9 @@ glayers=sky130_glayer_mapping, grules=grulesobj, klayout_lydrc_file=sky130_lydrc_file_path, + default_decorator=sky130_add_npc ) # set the grid size sky130_mapped_pdk.gds_write_settings.precision = 5*10**-9 -sky130_mapped_pdk.cell_decorator_settings.cache=False +#sky130_mapped_pdk.cell_decorator_settings.cache=False sky130_mapped_pdk.gds_write_settings.flatten_invalid_refs=False diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index f3fe9ea4b..297e054ca 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -21,7 +21,7 @@ @cell def opamp( pdk: MappedPDK, - diffpair_params: Optional[tuple[float, float, int, int]] = (6, 0, 4), + diffpair_params: Optional[tuple[float, float, int]] = (6, 0, 4), tailcurrent_params: Optional[tuple[float, float, int, int]] = (6, 2, 4, 1), cmirror_hparams: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), cmirror_outhparams: Optional[tuple[float, float, int, int]] = (6, 2, 2, 1), From 8c6cd2a5573a76956848239bee46961248a84dc5 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 11 Jul 2023 03:00:55 -0400 Subject: [PATCH 16/64] gf180 rule set updates --- .../PDK/sky130_mapped/sky130_add_npc.py | 12 ++- .../PDK/util/custom_comp_utils.py | 10 +- .../generators/gdsfactory-gen/diff_pair.py | 4 + openfasoc/generators/gdsfactory-gen/mimcap.py | 4 +- openfasoc/generators/gdsfactory-gen/opamp.py | 92 +++++++++++++++---- 5 files changed, 94 insertions(+), 28 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py index 618b874fe..a0f2766cf 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py @@ -10,13 +10,15 @@ def sky130_add_npc(comp: Component) -> Component: we implement this as a function wrapper to correctly lay npc returns the modified component""" # extract licon polygons which are over poly (using booleans) - licon_comp = Component("tempLICON_ONLY") - licon_comp.add(comp.get_polygons(by_spec=(66,44), depth=None, as_array=False)) - poly_comp = Component("tempPOLY_ONLY") - poly_comp.add(comp.get_polygons(by_spec=(66,20), depth=None, as_array=False)) - if not len(licon_comp.get_polygons()) or not len(poly_comp.get_polygons()): + licon_comp = comp.extract(layers=[(66,44)]) + poly_comp = comp.extract(layers=[(66,20)]) + existing_npc = comp.extract(layers=[(95,20)]) + # TODO: look into better method for filtering small cells + if len(licon_comp.get_polygons()) < 2 and len(poly_comp.get_polygons()) < 2: return comp liconANDpoly = boolean(licon_comp, poly_comp, layer=(1,2), operation="and") + if len(existing_npc.get_polygons()) > 1: + liconANDpoly = boolean(liconANDpoly, existing_npc, layer=(1,2), operation="A-B") licon_polygons = liconANDpoly.get_polygons(as_array=False) # iterate through all licon and create npc (ignore merges for now) npc_polygons = list() diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index 0c4a1df2f..f5c53f285 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -281,9 +281,12 @@ def align_comp_to_port(custom_comp: Component, align_to: Port, alignment: Option ****xalign = either l/left or r/right or c/center. component will be flush to right or left side of port or centered ****yalgin = either t/top or b/bottom or c/center. top or bottom edge or center of component will align with port top/bottom/center """ + if isinstance(custom_comp, Component): + try: + custom_comp.is_unlocked() + except ValueError: + custom_comp = custom_comp.copy() # error checks and decide orientation if None - xalign = alignment[0] - yalign = alignment[1] if alignment is None: if round(align_to.orientation) == 0:# facing east xalign = "r" @@ -299,6 +302,9 @@ def align_comp_to_port(custom_comp: Component, align_to: Port, alignment: Option yalign = "t" else: raise ValueError("port must be vertical or horizontal") + else: + xalign = alignment[0] + yalign = alignment[1] # setup is_EW = bool(round(align_to.orientation + 90) % 180) xalign = xalign.lower() diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py index 8a488de11..6666b7e1d 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -139,6 +139,10 @@ def diff_pair( diffpair.add_ports(source_routeW.get_ports_list(),prefix="source_routeW_") diffpair.add_ports(drain_routeTR_BL.get_ports_list(),prefix="drain_routeTR_BL_") diffpair.add_ports(drain_routeTL_BR.get_ports_list(),prefix="drain_routeTL_BR_") + diffpair.add_ports(MINUSgate_routeW.get_ports_list(),prefix="MINUSgateroute_W_") + diffpair.add_ports(MINUSgate_routeE.get_ports_list(),prefix="MINUSgateroute_E_") + diffpair.add_ports(PLUSgate_routeW.get_ports_list(),prefix="PLUSgateroute_W_") + diffpair.add_ports(PLUSgate_routeE.get_ports_list(),prefix="PLUSgateroute_E_") diffpair.add_padding(layers=(pdk.get_glayer(well),), default=0) return component_snap_to_grid(rename_ports_by_orientation(diffpair)) diff --git a/openfasoc/generators/gdsfactory-gen/mimcap.py b/openfasoc/generators/gdsfactory-gen/mimcap.py index 9b757a821..f3e7f43e1 100644 --- a/openfasoc/generators/gdsfactory-gen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/mimcap.py @@ -4,7 +4,7 @@ from PDK.mappedpdk import MappedPDK from typing import Optional from via_gen import via_array -from PDK.util.custom_comp_utils import rename_ports_by_orientation +from PDK.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter @cell @@ -18,6 +18,7 @@ def mimcap( ****Note: size is the size of the capmet layer ports: top_met_...all edges, this is the metal over the capmet + bottom_met_...all edges, this is the metal below capmet """ # get cap layers and run error checking pdk.has_required_glayers(["capmet", route_layer]) @@ -34,6 +35,7 @@ def mimcap( bottom_met_enclosure = pdk.get_grule(capmetbottom,"capmet")["min_enclosure"] mim_cap.add_padding(layers=(capmetbottom_actual,),default=bottom_met_enclosure) # flatten and create ports + mim_cap = add_ports_perimeter(mim_cap, layer=capmetbottom_actual, prefix="bottom_met_") mim_cap.add_ports(top_met_ref.get_ports_list()) return rename_ports_by_orientation(mim_cap).flatten() diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 297e054ca..efd92ba22 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -10,8 +10,9 @@ from mimcap import mimcap from L_route import L_route from c_route import c_route +from via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad -from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, set_orientation, to_decimal, to_float, move +from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, movey, set_orientation, to_decimal, to_float, move, align_comp_to_port from sys import exit from straight_route import straight_route from PDK.sky130_mapped.sky130_add_npc import sky130_add_npc @@ -38,6 +39,7 @@ def opamp( pamp_hparams = pmos top component amp (width,length,fingers,mults) mim_cap_size = width,length of individual mim_cap """ + _max_metal_seperation_ps = max([pdk.get_grule("met"+str(i))["min_separation"] for i in range(1,5)]) opamp_top = Component() # place nmos components # create and center diffpair @@ -60,7 +62,6 @@ def opamp( with_tie=False, with_dnwell=False, with_substrate_tap=False, - with_dummy=False, gate_route_topmet="met3", sd_route_topmet="met3" ) @@ -92,7 +93,7 @@ def opamp( ) halfMultn_ref = opamp_top << halfMultn direction = (-1) ** i - halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax)) + halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax + _max_metal_seperation_ps)) opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="nfet_Isrc_"+str(i)+"_") opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) # add ground pin @@ -101,18 +102,18 @@ def opamp( # route tailcurrent_comp opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_W"],gndpin.ports["e1"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) - # gnd sources of halfMultn + # route to gnd the sources of halfMultn _cref = opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"].center[1]),fullbottom=True) # connect gates and drains of halfMultn halfMultn_left_gate_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(cmirror_hparams[3]-2)+"_gate_con_N"] halfMultn_right_gate_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(cmirror_hparams[3]-2)+"_gate_con_N"] - halfmultn_gate_routeref = opamp_top << c_route(pdk, halfMultn_left_gate_port, halfMultn_right_gate_port, extension=abs(opamp_top.ymax-halfMultn_left_gate_port.center[1])+1,fullbottom=True) + halfmultn_gate_routeref = opamp_top << c_route(pdk, halfMultn_left_gate_port, halfMultn_right_gate_port, extension=abs(opamp_top.ymax-halfMultn_left_gate_port.center[1])+1,fullbottom=True, viaoffset=(False,False)) halfMultn_left_drain_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(cmirror_hparams[3]-2)+"_drain_con_N"] halfMultn_right_drain_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(cmirror_hparams[3]-2)+"_drain_con_N"] halfmultn_drain_routeref = opamp_top << c_route(pdk, halfMultn_left_drain_port, halfMultn_right_drain_port, extension=abs(opamp_top.ymax-halfMultn_left_drain_port.center[1])+1,fullbottom=True) - # gnd guardring of halfMultn - opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_0_tie_S_top_met_S"],gndpin.ports["e1"],width=2,glayer1="met3") - opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_1_tie_S_top_met_S"],gndpin.ports["e3"],width=2,glayer1="met3") + # route to gnd the guardring of halfMultn + opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_0_tie_S_top_met_S"],movey(gndpin.ports["e1"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) + opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_1_tie_S_top_met_S"],movey(gndpin.ports["e3"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) # route source of diffpair to drain of tailcurrent_comp opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeW_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_W"]) opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeE_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_E"]) @@ -124,9 +125,12 @@ def opamp( clear_cache() pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True)) pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False)) - _prefL = (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax - 0.1) - _prefR = (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin + 0.1) - shared_gate_comps << route_quad(_prefL.ports["plusdoped_E"], _prefR.ports["plusdoped_W"], layer=pdk.get_glayer("p+s/d")) + pcomp_AB_spacing = max(2*_max_metal_seperation_ps + 6*pdk.get_grule("met4")["min_width"],pdk.get_grule("p+s/d")["min_separation"]) + _prefL = (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax - pcomp_AB_spacing/2) + _prefR = (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin + pcomp_AB_spacing/2) + shared_gate_comps.add_ports(_prefL.get_ports_list(),prefix="L_") + shared_gate_comps.add_ports(_prefR.get_ports_list(),prefix="R_") + shared_gate_comps << route_quad(_prefL.ports["gate_W"], _prefR.ports["gate_E"], layer=pdk.get_glayer("met2")) # center relative_dim_comp = multiplier( pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False @@ -134,6 +138,9 @@ def opamp( # TODO: figure out single dim spacing rule then delete both test delete and this single_dim = to_decimal(relative_dim_comp.xmax) + to_decimal(0.1) LRplusdopedPorts = list() + LRgatePorts = list() + LRdrainsPorts = list() + LRsourcesPorts = list() for i in [-2, -1, 1, 2]: dummy = False extra_t = 0 @@ -151,15 +158,45 @@ def opamp( extra_t = single_dim else: pcenterfourunits = relative_dim_comp - pcenterfourunits pref_ = (pmos_comps << pcenterfourunits).movex(to_float(i * single_dim + extra_t)) LRplusdopedPorts += [pref_.ports["plusdoped_W"] , pref_.ports["plusdoped_E"]] + LRgatePorts += [pref_.ports["gate_W"],pref_.ports["gate_E"]] + LRdrainsPorts += [pref_.ports["source_W"],pref_.ports["source_E"]] + LRsourcesPorts += [pref_.ports["drain_W"],pref_.ports["drain_E"]] + # connect p+s/d layer of the transistors pmos_comps << route_quad(LRplusdopedPorts[0],LRplusdopedPorts[-1],layer=pdk.get_glayer("p+s/d")) - ytranslation_pcenter = 2 * pcenterfourunits.ymax - (pmos_comps << shared_gate_comps).movey(ytranslation_pcenter) - (pmos_comps << shared_gate_comps).movey(-1 * ytranslation_pcenter) + # connect drain of the left 2 and right 2, short sources of all 4 + pmos_comps << route_quad(LRdrainsPorts[0],LRdrainsPorts[3],layer=LRdrainsPorts[0].layer) + pmos_comps << route_quad(LRdrainsPorts[4],LRdrainsPorts[7],layer=LRdrainsPorts[0].layer) + pmos_comps << route_quad(LRsourcesPorts[0],LRsourcesPorts[-1],layer=LRsourcesPorts[0].layer) + pcomps_2L_2R_sourcevia = pmos_comps << via_stack(pdk,pdk.layer_to_glayer(LRsourcesPorts[0].layer), "met4") + pcomps_2L_2R_sourcevia.movey(evaluate_bbox(pcomps_2L_2R_sourcevia.parent.extract(layers=[LRsourcesPorts[0].layer,]))[1]/2 + LRsourcesPorts[0].center[1]) + pmos_comps.add_ports(pcomps_2L_2R_sourcevia.get_ports_list(),prefix="2L2Rsrcvia_") + # short all the gates + pmos_comps << route_quad(LRgatePorts[0],LRgatePorts[-1],layer=pdk.get_glayer("met2")) + ytranslation_pcenter = 2 * pcenterfourunits.ymax + 4*_max_metal_seperation_ps + ptop_AB = (pmos_comps << shared_gate_comps).movey(ytranslation_pcenter) + pbottom_AB = (pmos_comps << shared_gate_comps).movey(-1 * ytranslation_pcenter) + pmos_comps.add_ports(ptop_AB.get_ports_list(),prefix="ptopAB_") + pmos_comps.add_ports(pbottom_AB.get_ports_list(),prefix="pbottomAB_") + # short all gates of pmos_comps + pcenter_gate_route_extension = pmos_comps.xmax - min(ptop_AB.ports["R_gate_E"].center[0], LRgatePorts[-1].center[0]) - pdk.get_grule("active_diff")["min_width"] + pcenter_l_croute = pmos_comps << c_route(pdk, ptop_AB.ports["L_gate_W"], pbottom_AB.ports["L_gate_W"],extension=pcenter_gate_route_extension) + pcenter_r_croute = pmos_comps << c_route(pdk, ptop_AB.ports["R_gate_E"], pbottom_AB.ports["R_gate_E"],extension=pcenter_gate_route_extension) + pmos_comps << straight_route(pdk, LRgatePorts[0], pcenter_l_croute.ports["con_N"]) + pmos_comps << straight_route(pdk, LRgatePorts[-1], pcenter_r_croute.ports["con_N"]) + # connect drain of A to the shorted gates + pmos_comps << L_route(pdk,ptop_AB.ports["L_source_W"],pcenter_l_croute.ports["con_N"]) + pmos_comps << straight_route(pdk,pbottom_AB.ports["R_source_E"],pcenter_r_croute.ports["con_N"]) + # connect source of A to the drain of 2L + pmos_comps << c_route(pdk, ptop_AB.ports["L_drain_W"], LRdrainsPorts[0], extension=pmos_comps.xmax-max(ptop_AB.ports["R_drain_E"].center[0], LRdrainsPorts[-1].center[0])+_max_metal_seperation_ps) + row_rectangle_routing = rectangle(layer=ptop_AB.ports["L_drain_W"].layer,size=(pbottom_AB.ports["R_source_N"].width,pbottom_AB.ports["R_source_W"].width)).copy() + Aextra_top_connection = align_comp_to_port(row_rectangle_routing, pbottom_AB.ports["R_source_N"], ('c','t')).movey(row_rectangle_routing.ymax + _max_metal_seperation_ps) + pmos_comps.add(Aextra_top_connection) + pmos_comps << straight_route(pdk,Aextra_top_connection.ports["e4"],pbottom_AB.ports["R_source_N"]) + pmos_comps << c_route(pdk,Aextra_top_connection.ports["e1"],LRsourcesPorts[0], extension=0.1) # pcore to output - x_dim_center = pmos_comps.xmax + x_dim_center = max(abs(pmos_comps.xmax),abs(pmos_comps.xmin)) for direction in [-1, 1]: halfMultp = pmos( pdk, @@ -187,7 +224,7 @@ def opamp( topptap = pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") pmos_comps_ref = opamp_top << pmos_comps - pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax+3) + pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax+8) opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") # route halfmultp source, drain, and gate together, place vdd pin in the middle halfmultp_Lsrcport = opamp_top.ports["pcomps_halfp_l_multiplier_0_source_con_N"] @@ -196,6 +233,8 @@ def opamp( # place vdd pin vddpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) vddpin.movey(opamp_top.ymax) + # route vdd to source of 2L/2R + opamp_top << straight_route(pdk, opamp_top.ports["pcomps_2L2Rsrcvia_top_met_N"], vddpin.ports["e4"]) # drain route above vdd pin halfmultp_Ldrainport = opamp_top.ports["pcomps_halfp_l_multiplier_0_drain_con_N"] halfmultp_Rdrainport = opamp_top.ports["pcomps_halfp_r_multiplier_0_drain_con_N"] @@ -207,7 +246,7 @@ def opamp( extensionL = min(halfmultn_drain_routeref.ports["con_W"].center[0],halfmultp_drain_routeref.ports["con_W"].center[0]) extensionR = max(halfmultn_drain_routeref.ports["con_E"].center[0],halfmultp_drain_routeref.ports["con_E"].center[0]) opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_W"], halfmultp_drain_routeref.ports["con_W"],extension=abs(opamp_top.xmin-extensionL)+2,cwidth=2) - opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_E"], halfmultp_drain_routeref.ports["con_E"],extension=abs(opamp_top.xmax-extensionR)+2,cwidth=2) + n_to_p_output_route = opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_E"], halfmultp_drain_routeref.ports["con_E"],extension=abs(opamp_top.xmax-extensionR)+2,cwidth=2) # top nwell taps to vdd, top p substrate taps to gnd opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_bl_top_met_S"], opamp_top.ports["nfet_Isrc_1_tie_N_top_met_W"],hwidth=2) opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_br_top_met_S"], opamp_top.ports["nfet_Isrc_0_tie_N_top_met_E"],hwidth=2) @@ -222,6 +261,20 @@ def opamp( vbias2 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) vbias2.movex(opamp_top.xmin-2).movey(opamp_top.ymin+vbias2.ymax) opamp_top << L_route(pdk, halfmultn_gate_routeref.ports["con_W"], vbias2.ports["e2"],hwidth=2) + # out pin + output = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met5"),centered=True) + output.movex(opamp_top.xmax).movey(opamp_top.ymin+output.ymax) + opamp_top << L_route(pdk, output.ports["e2"], set_orientation(n_to_p_output_route.ports["con_S"],"E")) + # route + and - pins + plus_pin = opamp_top << rectangle(size=(5,2),layer=pdk.get_glayer("met4"),centered=True) + plus_pin.movex(opamp_top.xmin).movey(_max_metal_seperation_ps + plus_pin.ymax + halfmultn_drain_routeref.ports["con_W"].center[1] + halfmultn_drain_routeref.ports["con_W"].width/2) + route_to_pluspin = opamp_top << L_route(pdk, opamp_top.ports["centerNcomps_MINUSgateroute_W_con_N"], plus_pin.ports["e3"]) + minus_pin = opamp_top << rectangle(size=(5,2),layer=pdk.get_glayer("met4"),centered=True) + minus_pin.movex(opamp_top.xmin + minus_pin.xmax).movey(_max_metal_seperation_ps + plus_pin.ymax + minus_pin.ymax) + opamp_top << L_route(pdk, opamp_top.ports["centerNcomps_PLUSgateroute_E_con_N"], minus_pin.ports["e3"]) + # route top center components to diffpair + print_ports(opamp_top) + opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tr_multiplier_0_drain_N"],0.1), opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) # place mimcaps mimcap_single = mimcap(pdk, mim_cap_size) prev_xmax = opamp_top.xmax @@ -251,10 +304,9 @@ def opamp( mimcap_vspacer.movey(pmos_comps_ref.ymin + mimcap_single.ymax) # connect mimcap to gnd opamp_top << L_route(pdk,movex(mimcaps_ref.ports["top_met_S"],spacing_factory_h[0]),_cref.ports["con_E"],hwidth=3) + opamp_top << L_route(pdk, mimcaps_ref.ports["bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) # TODO: implement return opamp_top.flatten() - #print("now running long function") - #return sky130_add_npc(opamp_top.flatten()) if __name__ == "__main__": From 8285f3df3747d8f030b15f11e89b2a5b255aa0ad Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 11 Jul 2023 17:46:31 -0400 Subject: [PATCH 17/64] opamp routing bug fix (drc issues resolved) --- .../generators/gdsfactory-gen/L_route.py | 13 +++++-- .../PDK/util/custom_comp_utils.py | 23 ++++++++--- openfasoc/generators/gdsfactory-gen/opamp.py | 38 +++++++++++++++---- .../gdsfactory-gen/straight_route.py | 11 +++--- .../generators/gdsfactory-gen/via_gen.py | 9 +++-- 5 files changed, 68 insertions(+), 26 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/L_route.py b/openfasoc/generators/gdsfactory-gen/L_route.py index 10c085160..74a527401 100644 --- a/openfasoc/generators/gdsfactory-gen/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/L_route.py @@ -2,7 +2,7 @@ from gdsfactory.component import Component from gdsfactory.port import Port from PDK.mappedpdk import MappedPDK -from typing import Optional +from typing import Optional, Union from via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular, to_decimal, to_float, prec_ref_center @@ -18,7 +18,7 @@ def L_route( hwidth: Optional[float] = None, hglayer: Optional[str] = None, vglayer: Optional[str] = None, - viaoffset: Optional[bool]=True + viaoffset: Optional[Union[tuple[bool,bool],bool]]=True ) -> Component: """creates a L shaped route between two Ports. @@ -43,6 +43,7 @@ def L_route( hglayer = glayer for vertical route. Defaults to the layer of the edge oriented N/S vglayer = glayer for horizontal route. Defaults to the layer of the edge oriented E/W viaoffset = push the via away from both edges so that inside corner aligns with via corner + ****via offset can also be specfied as a tuple(bool,bool): movex? if viaoffset[0] and movey? if viaoffset[1] """ # error checking, TODO: validate layers assert_is_manhattan([edge1,edge2]) @@ -62,6 +63,8 @@ def L_route( hwidth = to_decimal(hwidth if hwidth else hport.width) hglayer = hglayer if hglayer else pdk.layer_to_glayer(vport.layer) vglayer = vglayer if vglayer else pdk.layer_to_glayer(hport.layer) + if isinstance(viaoffset,bool): + viaoffset = (True,True) if viaoffset else (False,False) # compute required dimensions hdim_center = to_decimal(vport.center[0]) - to_decimal(hport.center[0]) vdim_center = to_decimal(hport.center[1]) - to_decimal(vport.center[1]) @@ -79,7 +82,7 @@ def L_route( vconnect_ref = align_comp_to_port(vconnect, hport, halign) Lroute.add(vconnect_ref) # create and place via (decide between via stack and via array) - hv_via = via_stack(pdk, hglayer, vglayer,fullbottom=True) + hv_via = via_stack(pdk, hglayer, vglayer,fullbottom=True,fulltop=True) hv_via_dims = evaluate_bbox(hv_via,True) use_stack = hv_via_dims[0] > hwidth or hv_via_dims[1] > vwidth if not use_stack: @@ -87,13 +90,15 @@ def L_route( h_to_v_via_ref = prec_ref_center(hv_via) Lroute.add(h_to_v_via_ref) h_to_v_via_ref.move(destination=(hport.center[0], vport.center[1])) - if viaoffset: + if viaoffset[0] or viaoffset[1]: viadim_osx = evaluate_bbox(h_to_v_via_ref,True)[0]/2 viaxofs = abs(hwidth/2-viadim_osx) viaxofs = to_float(viaxofs if hdim_center > 0 else -1*viaxofs) + viaxofs = viaxofs if viaoffset[0] else 0 viadim_osy = evaluate_bbox(h_to_v_via_ref,True)[1]/2 viayofs = abs(vwidth/2-viadim_osy) viayofs = to_float(viayofs if vdim_center > 0 else -1*viayofs) + viayofs = viayofs if viaoffset[1] else 0 h_to_v_via_ref.movex(viaxofs).movey(viayofs) # add ports and return Lroute.add_ports(h_to_v_via_ref.get_ports_list()) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index f5c53f285..702402566 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -184,11 +184,14 @@ def movey(custom_comp: Union[Port, ComponentReference], offsety: Optional[float] @validate_arguments -def get_orientation(orientation: Union[int,float,str]) -> Union[float,int,str]: +def get_orientation(orientation: Union[int,float,str], int_only: Optional[bool]=False) -> Union[float,int,str]: """returns the angle corresponding to port orientation orientation must contain N/n,E/e,S/s,W/w e.g. all the follwing are valid: N/n or N/north,E/e or E/east,S/s or S/south, W/w or W/west + if int_only, will return int regardless of input type, + else will return the opposite type of that given + (i.e. will return str if given int/float and int if given str) """ if isinstance(orientation,str): orientation = orientation.lower() @@ -204,6 +207,8 @@ def get_orientation(orientation: Union[int,float,str]) -> Union[float,int,str]: raise ValueError("orientation must contain N/n,E/e,S/s,W/w") else:# must be a float/int orientation = int(orientation) + if int_only: + return orientation orientation_index = int((orientation % 360) / 90) orientations = ["E","N","W","S"] try: @@ -236,10 +241,12 @@ def assert_ports_perpindicular(edge1: Port, edge2: Port) -> bool: @validate_arguments -def set_orientation(custom_comp: Port, orientation: Union[float, int, str]) -> Port: +def set_orientation(custom_comp: Port, orientation: Union[float, int, str], flip180: Optional[bool]=False) -> Port: """creates a new port with the desired orientation and returns the new port""" if isinstance(orientation,str): - orientation = get_orientation(orientation) + orientation = get_orientation(orientation, int_only=True) + if flip180: + orientation = (orientation + 180) % 360 newport = Port( name = custom_comp.name, center = custom_comp.center, @@ -272,7 +279,7 @@ def set_port_width(custom_comp: Port, width: float) -> Port: @validate_arguments -def align_comp_to_port(custom_comp: Component, align_to: Port, alignment: Optional[tuple[str,str]] = None) -> ComponentReference: +def align_comp_to_port(custom_comp: Union[Component,ComponentReference], align_to: Port, alignment: Optional[tuple[str,str]] = None) -> ComponentReference: """Returns component reference of component aligned to port as specifed custom_comp = component to align properly align_to = Port to align to @@ -309,8 +316,12 @@ def align_comp_to_port(custom_comp: Component, align_to: Port, alignment: Option is_EW = bool(round(align_to.orientation + 90) % 180) xalign = xalign.lower() yalign = yalign.lower() - comp_ref = custom_comp.ref_center() - comp_ref.move(align_to.center) + if isinstance(custom_comp, Component): + comp_ref = custom_comp.ref_center() + comp_ref.move(align_to.center) + else: + comp_ref = custom_comp + move(comp_ref, destination=tuple(align_to.center)) width = align_to.width xdim = evaluate_bbox(custom_comp)[0] ydim = evaluate_bbox(custom_comp)[1] diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index efd92ba22..46afd0e63 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -1,4 +1,3 @@ -#TODO: report as bug (clear_cache) from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle @@ -68,7 +67,7 @@ def opamp( tailcurrent_ref = diffpair_i_ << tailcurrent_comp tailcurrent_ref.movey( -0.5 * (center_diffpair_comp.ymax - center_diffpair_comp.ymin) - - abs(tailcurrent_ref.ymax) + - abs(tailcurrent_ref.ymax) - _max_metal_seperation_ps ) diffpair_i_.add_ports(tailcurrent_ref.get_ports_list()) # add diff pair and tailcurrent_comp to opamp @@ -189,12 +188,28 @@ def opamp( pmos_comps << L_route(pdk,ptop_AB.ports["L_source_W"],pcenter_l_croute.ports["con_N"]) pmos_comps << straight_route(pdk,pbottom_AB.ports["R_source_E"],pcenter_r_croute.ports["con_N"]) # connect source of A to the drain of 2L - pmos_comps << c_route(pdk, ptop_AB.ports["L_drain_W"], LRdrainsPorts[0], extension=pmos_comps.xmax-max(ptop_AB.ports["R_drain_E"].center[0], LRdrainsPorts[-1].center[0])+_max_metal_seperation_ps) + pcomps_route_A_drain_extension = pmos_comps.xmax-max(ptop_AB.ports["R_drain_E"].center[0], LRdrainsPorts[-1].center[0])+_max_metal_seperation_ps + pcomps_route_A_drain = pmos_comps << c_route(pdk, ptop_AB.ports["L_drain_W"], LRdrainsPorts[0], extension=pcomps_route_A_drain_extension) row_rectangle_routing = rectangle(layer=ptop_AB.ports["L_drain_W"].layer,size=(pbottom_AB.ports["R_source_N"].width,pbottom_AB.ports["R_source_W"].width)).copy() Aextra_top_connection = align_comp_to_port(row_rectangle_routing, pbottom_AB.ports["R_source_N"], ('c','t')).movey(row_rectangle_routing.ymax + _max_metal_seperation_ps) pmos_comps.add(Aextra_top_connection) - pmos_comps << straight_route(pdk,Aextra_top_connection.ports["e4"],pbottom_AB.ports["R_source_N"]) - pmos_comps << c_route(pdk,Aextra_top_connection.ports["e1"],LRsourcesPorts[0], extension=0.1) + pmos_comps << straight_route(pdk,Aextra_top_connection.ports["e4"],pbottom_AB.ports["R_drain_N"]) + pmos_comps << L_route(pdk,pcomps_route_A_drain.ports["con_S"], Aextra_top_connection.ports["e1"],viaoffset=(False,True)) + # connect source of B to drain of 2R + pcomps_route_B_source_extension = pmos_comps.xmax-max(LRsourcesPorts[-1].center[0],ptop_AB.ports["R_source_E"].center[0])+_max_metal_seperation_ps + pmos_comps << c_route(pdk, ptop_AB.ports["R_source_E"], LRdrainsPorts[-1],extension=pcomps_route_B_source_extension,viaoffset=(True,False)) + bottom_pcompB_floating_port = set_orientation(movey(movex(pbottom_AB.ports["L_source_E"].copy(),4*_max_metal_seperation_ps), destination=Aextra_top_connection.ports["e1"].center[1]+Aextra_top_connection.ports["e1"].width+_max_metal_seperation_ps),"S") + pmos_bsource_2Rdrain_v = pmos_comps << L_route(pdk,pbottom_AB.ports["L_source_E"],bottom_pcompB_floating_port,vglayer="met3") + pmos_comps << c_route(pdk, LRdrainsPorts[-1], set_orientation(bottom_pcompB_floating_port,"E"),extension=pcomps_route_B_source_extension,viaoffset=(True,False)) + pmos_bsource_2Rdrain_v_center = via_stack(pdk,"met2","met3",fulltop=True) + pmos_comps.add(align_comp_to_port(pmos_bsource_2Rdrain_v_center, bottom_pcompB_floating_port,('r','t'))) + # connect drain of B to each other directly over where the diffpair top left drain will be + pmos_bdrain_diffpair_v = pmos_comps << via_stack(pdk, "met2","met5",fullbottom=True) + align_comp_to_port(pmos_bdrain_diffpair_v, movex(pbottom_AB.ports["L_gate_S"].copy(),destination=opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0])).movey(0-_max_metal_seperation_ps) + pcomps_route_B_drain_extension = pmos_comps.xmax-ptop_AB.ports["R_drain_E"].center[0]+_max_metal_seperation_ps + pmos_comps << c_route(pdk, ptop_AB.ports["R_drain_E"], pmos_bdrain_diffpair_v.ports["bottom_met_E"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) + pmos_comps << c_route(pdk, pbottom_AB.ports["L_drain_W"], pmos_bdrain_diffpair_v.ports["bottom_met_W"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) + pmos_comps.add_ports(pmos_bdrain_diffpair_v.get_ports_list(),prefix="minusvia_") # pcore to output x_dim_center = max(abs(pmos_comps.xmax),abs(pmos_comps.xmin)) for direction in [-1, 1]: @@ -220,7 +235,7 @@ def opamp( layers=[pdk.get_glayer("nwell")], default=pdk.get_grule("nwell", "active_tap")["min_enclosure"], ) - tapcenter_rect = [2 * pmos_comps.xmax + 1, 2 * pmos_comps.ymax + 1] + tapcenter_rect = [evaluate_bbox(pmos_comps)[0] + 1, evaluate_bbox(pmos_comps)[1] + 1] topptap = pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") pmos_comps_ref = opamp_top << pmos_comps @@ -241,7 +256,7 @@ def opamp( halfmultp_drain_routeref = opamp_top << c_route(pdk, halfmultp_Ldrainport, halfmultp_Rdrainport, extension=opamp_top.ymax-halfmultp_Ldrainport.center[1]+pdk.get_grule("met5")["min_separation"], fullbottom=True) halfmultp_Lgateport = opamp_top.ports["pcomps_halfp_l_multiplier_0_gate_con_S"] halfmultp_Rgateport = opamp_top.ports["pcomps_halfp_r_multiplier_0_gate_con_S"] - opamp_top << c_route(pdk, halfmultp_Lgateport, halfmultp_Rgateport, extension=abs(pmos_comps_ref.ymin-halfmultp_Lgateport.center[1])+pdk.get_grule("met5")["min_separation"],fullbottom=True,viaoffset=(False,False)) + ptop_halfmultp_gate_route = opamp_top << c_route(pdk, halfmultp_Lgateport, halfmultp_Rgateport, extension=abs(pmos_comps_ref.ymin-halfmultp_Lgateport.center[1])+pdk.get_grule("met5")["min_separation"],fullbottom=True,viaoffset=(False,False)) # halfmultn to halfmultp drain to drain route extensionL = min(halfmultn_drain_routeref.ports["con_W"].center[0],halfmultp_drain_routeref.ports["con_W"].center[0]) extensionR = max(halfmultn_drain_routeref.ports["con_E"].center[0],halfmultp_drain_routeref.ports["con_E"].center[0]) @@ -273,8 +288,11 @@ def opamp( minus_pin.movex(opamp_top.xmin + minus_pin.xmax).movey(_max_metal_seperation_ps + plus_pin.ymax + minus_pin.ymax) opamp_top << L_route(pdk, opamp_top.ports["centerNcomps_PLUSgateroute_E_con_N"], minus_pin.ports["e3"]) # route top center components to diffpair - print_ports(opamp_top) opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tr_multiplier_0_drain_N"],0.1), opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) + opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"],0.1), opamp_top.ports["pcomps_minusvia_top_met_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) + # route minus transistor drain to output + outputvia_diff_pcomps = opamp_top << via_stack(pdk,"met5","met4") + outputvia_diff_pcomps.movex(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0]).movey(ptop_halfmultp_gate_route.ports["con_E"].center[1]) # place mimcaps mimcap_single = mimcap(pdk, mim_cap_size) prev_xmax = opamp_top.xmax @@ -312,4 +330,8 @@ def opamp( if __name__ == "__main__": from PDK.util.standard_main import pdk +# iterate=False +# if iterate: +# for diffpair_params + opamp(pdk).show() diff --git a/openfasoc/generators/gdsfactory-gen/straight_route.py b/openfasoc/generators/gdsfactory-gen/straight_route.py index eca5ac235..7da4bde0f 100644 --- a/openfasoc/generators/gdsfactory-gen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/straight_route.py @@ -5,7 +5,7 @@ from typing import Optional from via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan +from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan, set_orientation @cell @@ -20,9 +20,8 @@ def straight_route( ) -> Component: """extends a route from edge1 until perpindicular with edge2, then places a via This depends on the orientation of edge1 and edge2 - - REQUIRES: - edge1 is not parrallel to edge2 + if edge1 has the same orientation as edge2, the generator will rotate edge2 180 degrees + Will not modify edge1 or edge2 DOES NOT REQUIRE: edge2 is directly inline with edge1 @@ -49,7 +48,9 @@ def straight_route( glayer2 = glayer2 if glayer2 else pdk.layer_to_glayer(edge2.layer) assert_is_manhattan([edge1,edge2]) if edge1.orientation == edge2.orientation: - raise ValueError("edge1 and edge2 cannot be parrallel") + import pdb; pdb.set_trace() + edge2 = set_orientation(edge2,edge2.orientation,flip180=True) + #pass#raise ValueError("edge1 and edge2 cannot be parrallel") pdk.activate() # find extension length and direction edge1_is_EW = bool(round(edge1.orientation + 90) % 180) diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index df1547cb3..2ebb37095 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -30,7 +30,7 @@ def __error_check_order_layers( @cell def via_stack( - pdk: MappedPDK, glayer1: str, glayer2: str, centered: Optional[bool] = True, fullbottom: Optional[bool] = False + pdk: MappedPDK, glayer1: str, glayer2: str, centered: Optional[bool] = True, fullbottom: Optional[bool] = False, fulltop: Optional[bool] = False ) -> Component: """produces a single via stack between two metal layers does not produce via arrays @@ -41,6 +41,7 @@ def via_stack( ****NOTE it does not matter what order you pass layers ****NOTE will not lay poly or active but will lay metals fullbottom: will lay the bottom glayer all over the area of the viastack + fulltop: will lay the top glayer all over the area of the viastack ports (one port for each edge): top_met_...all edges bottom_via_...all edges @@ -116,10 +117,12 @@ def via_stack( pre = ["top_met_", "bottom_via_", "bottom_met_"] for i in range(3): viastack.add_ports(port_refs[i][1].get_ports_list(), prefix=pre[i]) + gprevia = "via"+str(level1-1) if level1 != 1 else "mcon" + bottomsize = max(2*pdk.get_grule("met"+str(level1),gprevia)["min_enclosure"] + pdk.get_grule(gprevia)["width"], evaluate_bbox(viastack)[0]) if fullbottom: - gprevia = "via"+str(level1-1) if level1 != 1 else "mcon" - bottomsize = max(2*pdk.get_grule("met"+str(level1),gprevia)["min_enclosure"] + pdk.get_grule(gprevia)["width"], evaluate_bbox(viastack)[0]) viastack << rectangle(size=2*[bottomsize],layer=pdk.get_glayer("met"+str(level1)), centered=True) + if fulltop: + viastack << rectangle(size=2*[bottomsize],layer=pdk.get_glayer("met"+str(level2)), centered=True) center_stack = Component() viastack_ref = center_stack << viastack if not centered: From 8b4e3d9aee6cc829f8beedd615d73293b6e33376 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Sun, 16 Jul 2023 03:00:56 -0400 Subject: [PATCH 18/64] via refactor --- .../PDK/util/custom_comp_utils.py | 16 +- .../gdsfactory-gen/PDK/util/snap_to_grid.py | 37 ++- .../gdsfactory-gen/PDK/util/standard_main.py | 16 +- .../generators/gdsfactory-gen/c_route.py | 4 +- .../generators/gdsfactory-gen/diff_pair.py | 2 +- openfasoc/generators/gdsfactory-gen/fet.py | 5 +- .../generators/gdsfactory-gen/guardring.py | 11 +- openfasoc/generators/gdsfactory-gen/mimcap.py | 82 +++++- openfasoc/generators/gdsfactory-gen/opamp.py | 152 +++++----- .../gdsfactory-gen/straight_route.py | 2 - .../generators/gdsfactory-gen/via_gen.py | 273 +++++++++++------- 11 files changed, 379 insertions(+), 221 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index 702402566..a1fd0d8dd 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -388,14 +388,24 @@ def to_float(elements: Union[tuple,list,Decimal,float]): return elements @validate_arguments -def prec_array(custom_comp: Component, columns: int, rows: int, spacing: tuple[Union[float,Decimal],Union[float,Decimal]]) -> Component: +def prec_array(custom_comp: Component, rows: int, columns: int, spacing: tuple[Union[float,Decimal],Union[float,Decimal]], absolute_spacing: Optional[bool]=False) -> Component: """instead of using the component.add_array function, if you are having grid snapping issues try using this function - works the same way as add_array but uses decimals and snaps to grid to mitigate grid snapping issues""" + works the same way as add_array but uses decimals and snaps to grid to mitigate grid snapping issues + args + custom_comp: Component type to make an array from + columns: num cols in the array + rows: num rows in the array + absolute_spacing: the spacing mode of spacing variable + spacing: IF absolute_spacing spacing BETWEEN elements in the array ELSE spacing BETWEEN ORIGINS of elements in the array + ****NOTE do not use negative spacing, instead specify absolute_spacing=True + """ # make sure to work with decimals precspacing = list(spacing) for i in range(2): if isinstance(spacing[i],Union[int,float]): precspacing[i] = Decimal(str(spacing[i])) + if not absolute_spacing: + precspacing = [precspacing[i] + evaluate_bbox(custom_comp,True)[i] for i in range(2)] # create array precarray = Component() for colnum in range(columns): @@ -404,7 +414,7 @@ def prec_array(custom_comp: Component, columns: int, rows: int, spacing: tuple[U rowdisp = rownum * precspacing[1] cref = precarray << custom_comp cref.movex(to_float(coldisp)).movey(to_float(rowdisp)) - precarray.add_ports(custom_comp.get_ports_list()) + precarray.add_ports(cref.get_ports_list(),prefix=f"row{rownum}_col{colnum}_") return precarray.flatten() diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py index 0aefce1ad..7ad61a2d3 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py @@ -1,10 +1,13 @@ from gdsfactory.typings import Component from pydantic import validate_arguments -from typing import Optional +from typing import Optional, Union, Iterable, Literal from gdsfactory.pdk import get_grid_size from tempfile import TemporaryDirectory from pathlib import Path from gdsfactory.read.import_gds import import_gds +from decimal import Decimal +from gdsfactory.snap import snap_to_grid + @validate_arguments def component_snap_to_grid(comp: Component, nm: Optional[int]=None) -> Component: @@ -33,12 +36,26 @@ def component_snap_to_grid(comp: Component, nm: Optional[int]=None) -> Component return comp -""" -from PDK.util.snap_to_grid import component_snap_to_grid -from PDK.util.standard_main import pdk -from gdsfactory.components.rectangle import rectangle - -mycomp = rectangle(layer=pdk.get_glayer("met1")) -mycomp = component_snap_to_grid(mycomp) -mycomp.show() -""" +@validate_arguments +def snap_to_2xgrid(dims: Union[list[Union[float,Decimal]], Union[float,Decimal]], return_type: Literal["decimal","float","same"]="same") -> Union[list[Union[float,Decimal]], Union[float,Decimal]]: + """snap all numbers in dims to double the grid size. + This is useful when a generator accepts a size or dimension argument + because there is a chance the cell may be centered (resulting in off grid components) + args: + dims = a list OR single number specifying the dimensions to snap to grid + return_type = return a decimal, float, or the same type that was passed to the function + """ + dims = dims if isinstance(dims, Iterable) else [dims] + dimtype_in = None + nm = 2 * 1000 * int(get_grid_size()) + # snap dims to grid + snapped_dims = list() + for dim in dims: + dimtype_in = type(dim) + snapped_dims.append(snap_to_grid(float(dim), nm=nm)) + # convert to correct type + if return_type=="decimal" or (return_type=="same" and dimtype_in==Decimal): + for i, snapped_dim in enumerate(snapped_dims): + snapped_dims[i] = Decimal(str(snapped_dim)) + # correctly return list or single element + return snapped_dims[0] if len(snapped_dims)==1 else snapped_dims diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py b/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py index 88c72bf01..b8cff2a23 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py @@ -11,21 +11,21 @@ the pdk is the pdk object which defaults to sky130 if none selected """ -from PDK.sky130_mapped import sky130_mapped_pdk -from PDK.gf180_mapped import gf180_mapped_pdk from argparse import ArgumentParser -parser = ArgumentParser(prog="PDK agnostic fet generator") +parser = ArgumentParser(prog="PDK agnostic generator") parser.add_argument("--pdk", "-p", choices=["sky130", "gf180"]) -args = parser.parse_args() +args = parser.parse_known_args() pdk = None -if args.pdk == "sky130": - pdk = sky130_mapped_pdk -elif args.pdk == "gf180": + +if args[0].pdk == "gf180": + from PDK.gf180_mapped import gf180_mapped_pdk pdk = gf180_mapped_pdk -else: +else: #default to sky130 + from PDK.sky130_mapped import sky130_mapped_pdk pdk = sky130_mapped_pdk + pdk.activate() diff --git a/openfasoc/generators/gdsfactory-gen/c_route.py b/openfasoc/generators/gdsfactory-gen/c_route.py index 044b05599..6f76dee7d 100644 --- a/openfasoc/generators/gdsfactory-gen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/c_route.py @@ -75,8 +75,8 @@ def c_route( pdk.activate() # create route croute = Component() - viastack1 = via_stack(pdk,e1glayer,cglayer,fullbottom=fullbottom) - viastack2 = via_stack(pdk,e2glayer,cglayer,fullbottom=fullbottom) + viastack1 = via_stack(pdk,e1glayer,cglayer,fullbottom=fullbottom,assume_bottom_via=True) + viastack2 = via_stack(pdk,e2glayer,cglayer,fullbottom=fullbottom,assume_bottom_via=True) if e1glayer == e2glayer: __fill_empty_viastack__macro(pdk,e1glayer,size=(width1,width2)) elif e1glayer == cglayer: diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/diff_pair.py index 6666b7e1d..a9ce9cdd4 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/diff_pair.py @@ -29,7 +29,7 @@ def diff_pair( """create a diffpair with 2 transistors placed in two rows with common centroid place. Sources are shorted width = width of the transistors fingers = number of fingers in the transistors (must be 2 or more) - length = length of the transistors, None means use min length + length = length of the transistors, None or 0 means use min length short_source = if true connects source of both transistors n_or_p_fet = if true the diffpair is made of nfets else it is made of pfets """ diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/fet.py index e962d2ff9..73226bbc3 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/fet.py @@ -79,7 +79,7 @@ def multiplier( sd_via_ref_arr.movex(to_float(finger_dim / 2)).movey(to_float(routing_mfac / 2)) # create finger array and add to multiplier fingerarray = Component("temp finger array") - fingerarray = prec_array(finger, columns=fingers, rows=1, spacing=(finger_dim, 1)) + fingerarray = prec_array(finger, columns=fingers, rows=1, spacing=(finger_dim, 1), absolute_spacing=True) sd_via_ref_left = fingerarray << sd_via_comp sd_via_ref_left.movex(to_float(0-finger_dim/2)).movey(to_float(routing_mfac / 2)) fingerarray = component_snap_to_grid(fingerarray) @@ -211,8 +211,9 @@ def __mult_array_macro( sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet ) + _max_metal_seperation_ps = max([pdk.get_grule("met"+str(i))["min_separation"] for i in range(1,5)]) multiplier_separation = ( - to_decimal(pdk.get_grule("met2")["min_separation"]) + to_decimal(_max_metal_seperation_ps) + evaluate_bbox(multiplier_comp, True)[1] ) for rownum in range(multipliers): diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index 0b4be33d9..1c568dc6f 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -5,10 +5,11 @@ from gdsfactory.components.rectangular_ring import rectangular_ring from via_gen import via_array, via_stack from typing import Optional -from math import ceil -from PDK.util.custom_comp_utils import print_ports +from PDK.util.custom_comp_utils import print_ports, to_decimal, to_float from PDK.util.snap_to_grid import component_snap_to_grid from L_route import L_route +from decimal import ROUND_UP, Decimal +from PDK.util.snap_to_grid import snap_to_2xgrid @cell @@ -34,6 +35,7 @@ def tapring( Warr_... all ports in left via array bl_corner_...all ports in bottom left L route """ + enclosed_rectangle = snap_to_2xgrid(enclosed_rectangle) # check layers, activate pdk, create top cell pdk.has_required_glayers( [sdlayer, "active_tap", "mcon", horizontal_glayer, vertical_glayer] @@ -113,4 +115,7 @@ def tapring( if __name__ == "__main__": from PDK.util.standard_main import pdk - tapring(pdk, sdlayer="p+s/d", enclosed_rectangle=(26, 10)).show() + mycomp = Component("displacment test") + tapref = mycomp << tapring(pdk, sdlayer="p+s/d", enclosed_rectangle=(75.9, 31.0)) + #tapref.movey(100.105) + mycomp.show() diff --git a/openfasoc/generators/gdsfactory-gen/mimcap.py b/openfasoc/generators/gdsfactory-gen/mimcap.py index f3e7f43e1..a5d0bd5c2 100644 --- a/openfasoc/generators/gdsfactory-gen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/mimcap.py @@ -4,12 +4,28 @@ from PDK.mappedpdk import MappedPDK from typing import Optional from via_gen import via_array -from PDK.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter +from PDK.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter, prec_array, print_ports, to_decimal, to_float +from pydantic import validate_arguments +from straight_route import straight_route +from decimal import ROUND_UP, Decimal +from PDK.util.snap_to_grid import snap_to_2xgrid + + +@validate_arguments +def __get_mimcap_layerconstruction_info(pdk: MappedPDK) -> tuple[str,str]: + """returns the glayer metal below and glayer metal above capmet + args: pdk + """ + capmettop = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmettop"]) + capmetbottom = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmetbottom"]) + pdk.has_required_glayers(["capmet",capmettop,capmetbottom]) + pdk.activate() + return capmettop, capmetbottom @cell def mimcap( - pdk: MappedPDK, size=(5.0, 5.0), route_layer: Optional[str] = "met4" + pdk: MappedPDK, size: tuple[float,float]=(5.0, 5.0) ) -> Component: """create a mimcap args: @@ -20,12 +36,9 @@ def mimcap( top_met_...all edges, this is the metal over the capmet bottom_met_...all edges, this is the metal below capmet """ - # get cap layers and run error checking - pdk.has_required_glayers(["capmet", route_layer]) - capmettop = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmettop"]) - capmetbottom_actual = pdk.get_grule("capmet")["capmetbottom"] - capmetbottom = pdk.layer_to_glayer(pdk.get_grule("capmet")["capmetbottom"]) - pdk.activate() + size = snap_to_2xgrid(size) + # error checking and + capmettop, capmetbottom = __get_mimcap_layerconstruction_info(pdk) # create top component mim_cap = Component() mim_cap << rectangle(size=size, layer=pdk.get_glayer("capmet"), centered=True) @@ -33,17 +46,60 @@ def mimcap( pdk, capmetbottom, capmettop, size=size, minus1=True, lay_bottom=False ) bottom_met_enclosure = pdk.get_grule(capmetbottom,"capmet")["min_enclosure"] - mim_cap.add_padding(layers=(capmetbottom_actual,),default=bottom_met_enclosure) + mim_cap.add_padding(layers=(pdk.get_glayer(capmetbottom),),default=bottom_met_enclosure) # flatten and create ports - mim_cap = add_ports_perimeter(mim_cap, layer=capmetbottom_actual, prefix="bottom_met_") + mim_cap = add_ports_perimeter(mim_cap, layer=pdk.get_glayer(capmetbottom), prefix="bottom_met_") mim_cap.add_ports(top_met_ref.get_ports_list()) return rename_ports_by_orientation(mim_cap).flatten() +@cell +def mimcap_array(pdk: MappedPDK, rows: int, columns: int, size: tuple[float,float] = (5.0,5.0), rmult: Optional[int]=1) -> Component: + """create mimcap array + args: + pdk to use + size = tuple(float,float) size of a single cap + ****Note: size is the size of the capmet layer + ports: + cap_x_y_top_met_...all edges, this is the metal over the capmet in row x, col y + cap_x_y_bottom_met_...all edges, this is the metal below capmet in row x, col y + """ + capmettop, capmetbottom = __get_mimcap_layerconstruction_info(pdk) + mimcap_arr = Component() + # create the mimcap array + mimcap_single = mimcap(pdk, size) + mimcap_space = pdk.get_grule("capmet")["min_separation"] #+ evaluate_bbox(mimcap_single)[0] + array_ref = mimcap_arr << prec_array(mimcap_single, rows, columns, spacing=2*[mimcap_space]) + mimcap_arr.add_ports(array_ref.get_ports_list()) + # create a list of ports that should be routed to connect the array + port_pairs = list() + for rownum in range(rows): + for colnum in range(columns): + bl_mimcap = f"row{rownum}_col{colnum}_" + right_mimcap = f"row{rownum}_col{colnum+1}_" + top_mimcap = f"row{rownum+1}_col{colnum}_" + for level,layer in [("bottom_met_",capmetbottom),("top_met_",capmettop)]: + bl_east_port = mimcap_arr.ports.get(bl_mimcap+level+"E") + r_west_port = mimcap_arr.ports.get(right_mimcap+level+"W") + bl_north_port = mimcap_arr.ports.get(bl_mimcap+level+"N") + top_south_port = mimcap_arr.ports.get(top_mimcap+level+"S") + if rownum == rows-1 and colnum == columns-1: + continue + elif rownum == rows-1: + port_pairs.append((bl_east_port,r_west_port,layer)) + elif colnum == columns-1: + port_pairs.append((bl_north_port,top_south_port,layer)) + else: + port_pairs.append((bl_east_port,r_west_port,layer)) + port_pairs.append((bl_north_port,top_south_port,layer)) + for port_pair in port_pairs: + mimcap_arr << straight_route(pdk,port_pair[0],port_pair[1],width=rmult*pdk.get_grule(port_pair[2])["min_width"]) + return mimcap_arr.flatten() + + if __name__ == "__main__": from PDK.util.standard_main import pdk - mycap = mimcap(pdk) + mycap = mimcap_array(pdk,1,1) mycap.show() - for portname in mycap.ports.keys(): - print(portname) + print_ports(mycap) diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 46afd0e63..8c6312b9c 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -6,7 +6,7 @@ from fet import nmos, pmos, multiplier from diff_pair import diff_pair from guardring import tapring -from mimcap import mimcap +from mimcap import mimcap_array, mimcap from L_route import L_route from c_route import c_route from via_gen import via_stack, via_array @@ -14,27 +14,24 @@ from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, movey, set_orientation, to_decimal, to_float, move, align_comp_to_port from sys import exit from straight_route import straight_route -from PDK.sky130_mapped.sky130_add_npc import sky130_add_npc - +from PDK.util.snap_to_grid import component_snap_to_grid @cell def opamp( pdk: MappedPDK, - diffpair_params: Optional[tuple[float, float, int]] = (6, 0, 4), - tailcurrent_params: Optional[tuple[float, float, int, int]] = (6, 2, 4, 1), - cmirror_hparams: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), - cmirror_outhparams: Optional[tuple[float, float, int, int]] = (6, 2, 2, 1), + diffpair_params: Optional[tuple[float, float, int]] = (6, 1, 4), + diffpair_bias: Optional[tuple[float, float, int]] = (6, 2, 4), + houtput_bias: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), pamp_hparams: Optional[tuple[float, float, int, int]] = (7, 1, 10, 3), mim_cap_size=(12, 12), - output_amphparams: Optional[tuple[float, float, int, int]] = (5, 1, 8, 1), + mim_cap_rows=3 ) -> Component: """create an opamp, args: pdk=pdk to use diffpair_params = diffpair (width,length,fingers) - tailcurrent_params = tailcurrent nmos (width,length,fingers,mults) - cmirror_hparams = west current mirror (width,length,fingers,mults) - cmirror_outhparams = east current mirror used to bias output fet (width,length,fingers,mults) + diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) + houtput_bias = west current mirror (width,length,fingers,mults), two halves pamp_hparams = pmos top component amp (width,length,fingers,mults) mim_cap_size = width,length of individual mim_cap """ @@ -46,18 +43,18 @@ def opamp( center_diffpair_comp = diff_pair( pdk, width=diffpair_params[0], + length=diffpair_params[1], fingers=diffpair_params[2], - length=1 ) diffpair_i_.add(prec_ref_center(center_diffpair_comp)) diffpair_i_.add_ports(center_diffpair_comp.get_ports_list()) # create and position tail current source tailcurrent_comp = nmos( pdk, - width=tailcurrent_params[0], - length=tailcurrent_params[1], - fingers=tailcurrent_params[2], - multipliers=tailcurrent_params[3], + width=diffpair_bias[0], + length=diffpair_bias[1], + fingers=diffpair_bias[2], + multipliers=1, with_tie=False, with_dnwell=False, with_substrate_tap=False, @@ -80,10 +77,10 @@ def opamp( for i, dummy in enumerate([(False, True), (True, False)]): halfMultn = nmos( pdk, - width=cmirror_hparams[0], - length=cmirror_hparams[1], - fingers=cmirror_hparams[2], - multipliers=cmirror_hparams[3], + width=houtput_bias[0], + length=houtput_bias[1], + fingers=houtput_bias[2], + multipliers=houtput_bias[3], with_tie=True, with_dnwell=False, with_substrate_tap=False, @@ -97,18 +94,18 @@ def opamp( opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) # add ground pin gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) - gndpin.movey(tailcurrent_ref.ymin - 2) + gndpin.movey(opamp_top.ymin-_max_metal_seperation_ps-gndpin.ymax) # route tailcurrent_comp opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_W"],gndpin.ports["e1"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) # route to gnd the sources of halfMultn _cref = opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"].center[1]),fullbottom=True) # connect gates and drains of halfMultn - halfMultn_left_gate_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(cmirror_hparams[3]-2)+"_gate_con_N"] - halfMultn_right_gate_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(cmirror_hparams[3]-2)+"_gate_con_N"] + halfMultn_left_gate_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(houtput_bias[3]-2)+"_gate_con_N"] + halfMultn_right_gate_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(houtput_bias[3]-2)+"_gate_con_N"] halfmultn_gate_routeref = opamp_top << c_route(pdk, halfMultn_left_gate_port, halfMultn_right_gate_port, extension=abs(opamp_top.ymax-halfMultn_left_gate_port.center[1])+1,fullbottom=True, viaoffset=(False,False)) - halfMultn_left_drain_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(cmirror_hparams[3]-2)+"_drain_con_N"] - halfMultn_right_drain_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(cmirror_hparams[3]-2)+"_drain_con_N"] + halfMultn_left_drain_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(houtput_bias[3]-2)+"_drain_con_N"] + halfMultn_right_drain_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(houtput_bias[3]-2)+"_drain_con_N"] halfmultn_drain_routeref = opamp_top << c_route(pdk, halfMultn_left_drain_port, halfMultn_right_drain_port, extension=abs(opamp_top.ymax-halfMultn_left_drain_port.center[1])+1,fullbottom=True) # route to gnd the guardring of halfMultn opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_0_tie_S_top_met_S"],movey(gndpin.ports["e1"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) @@ -231,15 +228,16 @@ def opamp( pmos_comps.add_ports(halfMultp_ref.get_ports_list(),prefix="halfp_"+label) # finish place central ydim_ncomps = opamp_top.ymax + # TODO: use remove layers and make padding only around transistors (ignore the bottom routes) pmos_comps.add_padding( layers=[pdk.get_glayer("nwell")], default=pdk.get_grule("nwell", "active_tap")["min_enclosure"], ) - tapcenter_rect = [evaluate_bbox(pmos_comps)[0] + 1, evaluate_bbox(pmos_comps)[1] + 1] + tapcenter_rect = [(evaluate_bbox(pmos_comps)[0] + 1), (evaluate_bbox(pmos_comps)[1] + 1)] topptap = pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") pmos_comps_ref = opamp_top << pmos_comps - pmos_comps_ref.movey(ydim_ncomps + pmos_comps_ref.ymax+8) + pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") # route halfmultp source, drain, and gate together, place vdd pin in the middle halfmultp_Lsrcport = opamp_top.ports["pcomps_halfp_l_multiplier_0_source_con_N"] @@ -271,7 +269,7 @@ def opamp( opamp_top << straight_route(pdk, movex(vddpin.ports["e4"],destination=R_toptapn_route.center[0]), R_toptapn_route, glayer1="met3") # vbias1 and vbias2 pins vbias1 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) - vbias1.movey(opamp_top.ymin - 1.5 - 2) + vbias1.movey(opamp_top.ymin - _max_metal_seperation_ps - vbias1.ymax) opamp_top << straight_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_gate_S"], vbias1.ports["e2"],width=1,fullbottom=False) vbias2 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) vbias2.movex(opamp_top.xmin-2).movey(opamp_top.ymin+vbias2.ymax) @@ -288,50 +286,74 @@ def opamp( minus_pin.movex(opamp_top.xmin + minus_pin.xmax).movey(_max_metal_seperation_ps + plus_pin.ymax + minus_pin.ymax) opamp_top << L_route(pdk, opamp_top.ports["centerNcomps_PLUSgateroute_E_con_N"], minus_pin.ports["e3"]) # route top center components to diffpair - opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tr_multiplier_0_drain_N"],0.1), opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) - opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"],0.1), opamp_top.ports["pcomps_minusvia_top_met_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) + opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tr_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) + opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_minusvia_top_met_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) # route minus transistor drain to output outputvia_diff_pcomps = opamp_top << via_stack(pdk,"met5","met4") outputvia_diff_pcomps.movex(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0]).movey(ptop_halfmultp_gate_route.ports["con_E"].center[1]) # place mimcaps - mimcap_single = mimcap(pdk, mim_cap_size) - prev_xmax = opamp_top.xmax - center_xmax = opamp_top.xmax + mimcap_single.xmax - mimcap_space = ( - pdk.get_grule("capmet")["min_separation"] - + evaluate_bbox(mimcap_single)[0] - ) - # TODO: fix glayer should be capmet + 1, size should be standardized - h_mimcap_spacer = rectangle(size=(1,pdk.get_grule("capmet")["min_separation"]+2),layer=pdk.get_glayer("met5"),centered=True).copy() - h_mimcap_spacer << rectangle(size=(1,pdk.get_grule("capmet")["min_separation"]+2),layer=pdk.get_glayer("met4"),centered=True) - v_mimcap_spacer = rectangle(size=(pdk.get_grule("capmet")["min_separation"]+2,1),layer=pdk.get_glayer("met5"),centered=True).copy() - v_mimcap_spacer << rectangle(size=(pdk.get_grule("capmet")["min_separation"]+2,1),layer=pdk.get_glayer("met4"),centered=True) - mimcaps_ref = opamp_top.add_array( - mimcap_single, rows=3, columns=2, spacing=(mimcap_space, mimcap_space) - ) - spacing_factory_h = [dim + evaluate_bbox(h_mimcap_spacer)[1]/2 for dim in evaluate_bbox(mimcap_single)] - mimcap_hspacer = opamp_top.add_array(h_mimcap_spacer,rows=2,columns=2,spacing=spacing_factory_h) - mimcap_vspacer = opamp_top.add_array(v_mimcap_spacer, rows=3,columns=1,spacing=spacing_factory_h) - # TODO: fix mimcap to transistor separation - displace_fact = 4 * pdk.get_grule("met5")["min_separation"] - mimcaps_ref.movex(center_xmax + displace_fact) - mimcap_hspacer.movex(center_xmax + displace_fact) - mimcap_vspacer.movex(center_xmax + displace_fact + mimcap_single.xmax) - mimcaps_ref.movey(pmos_comps_ref.ymin + mimcap_single.ymax) - mimcap_hspacer.movey(pmos_comps_ref.ymin + 2*mimcap_single.ymax) - mimcap_vspacer.movey(pmos_comps_ref.ymin + mimcap_single.ymax) + mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) + displace_fact = max(_max_metal_seperation_ps,pdk.get_grule("capmet")["min_separation"]) + mimcaps_ref.movex(opamp_top.xmax + displace_fact + mim_cap_size[0]/2) + mimcaps_ref.movey(pmos_comps_ref.ymin + mim_cap_size[1]/2) # connect mimcap to gnd - opamp_top << L_route(pdk,movex(mimcaps_ref.ports["top_met_S"],spacing_factory_h[0]),_cref.ports["con_E"],hwidth=3) - opamp_top << L_route(pdk, mimcaps_ref.ports["bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) - # TODO: implement + opamp_top << L_route(pdk,mimcaps_ref.ports["row0_col1_top_met_S"],_cref.ports["con_E"],hwidth=3) + opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + # return return opamp_top.flatten() if __name__ == "__main__": - from PDK.util.standard_main import pdk + from PDK.util.standard_main import pdk + + iterate=False +# TO TRY: + #pdk = pdk to use + #diffpair_params = diffpair (width,length,fingers) + #diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) + #houtput_bias = west current mirror (width,length,fingers,mults), two halves + #pamp_hparams = pmos top component amp (width,length,fingers,mults) + #mim_cap_size = width,length of individual mim_cap + if iterate: # 486 versions + # construct all diffpairs to try + diffpairs = list() + for width in [4,6,8]: + for length in [0,1]: + for fingers in [3,4,5]: + diffpairs.append((width,length,fingers)) + # construct all bias1 (diffpair bias) transistors to try + bias1s = list() + for width in [4,6,8]: + for length in [1,2,4]: + for fingers in [3,4,5]: + bias1s.append((width,length,fingers)) + cap_arrays = [1,3] + opamps = list() + for diffpair_v in diffpairs: + for bias1_v in bias1s: + for cap_array_v in cap_arrays: + comp = opamp(pdk,diffpair_params=diffpair_v,diffpair_bias=bias1_v,mim_cap_rows=cap_array_v) + opamps.append(comp) + for i,comp in enumerate(opamps): + comp.write_gds(str(i)+".gds") + else: + opamp(pdk).show() + + +#[0.7,1,0.02] +#bias_points = list() +#for bias1_point in bias1_points: +# for bias2_point in bias2_points: +# run design +# bias_points.append(bias_point) + +#best_bias = max(bias_points) +#0.8 +#0.78,0.82,0.005 -# iterate=False -# if iterate: -# for diffpair_params - - opamp(pdk).show() +""" +for row in range(4): + for col in range(8): + ref = mycomp << opamps[8*row+col] + ref.movex(150*col).movey(150*row) +""" diff --git a/openfasoc/generators/gdsfactory-gen/straight_route.py b/openfasoc/generators/gdsfactory-gen/straight_route.py index 7da4bde0f..9b15b3dbe 100644 --- a/openfasoc/generators/gdsfactory-gen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/straight_route.py @@ -48,9 +48,7 @@ def straight_route( glayer2 = glayer2 if glayer2 else pdk.layer_to_glayer(edge2.layer) assert_is_manhattan([edge1,edge2]) if edge1.orientation == edge2.orientation: - import pdb; pdb.set_trace() edge2 = set_orientation(edge2,edge2.orientation,flip180=True) - #pass#raise ValueError("edge1 and edge2 cannot be parrallel") pdk.activate() # find extension length and direction edge1_is_EW = bool(round(edge1.orientation + 90) % 180) diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 2ebb37095..55c4a02e0 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -5,15 +5,16 @@ from PDK.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from PDK.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array +from PDK.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float from PDK.util.snap_to_grid import component_snap_to_grid from decimal import Decimal +from typing import Literal @validate_arguments def __error_check_order_layers( pdk: MappedPDK, glayer1: str, glayer2: str -) -> tuple[int, int]: +) -> tuple[tuple[int, int], tuple[str, str]]: """correctly order layers (level1 should be lower than level2)""" pdk.activate() # check that the generic layers specfied can be routed between @@ -21,115 +22,138 @@ def __error_check_order_layers( raise ValueError("via_stack: specify between two routable layers") level1 = int(glayer1[-1]) if "met" in glayer1 else 0 level2 = int(glayer2[-1]) if "met" in glayer2 else 0 - lay1, lay2 = glayer1, glayer2 if level1 > level2: level1, level2 = level2, level1 - lay1, lay2 = glayer2, glayer1 - return ((level1,level2),(lay1,lay2)) + glayer1, glayer2 = glayer2, glayer1 + # check that all layers needed between glayer1-glayer2 are present + required_glayers = [glayer2] + for level in range(level1,level2): + via_name = "mcon" if level==0 else "via"+str(level) + layer_name = glayer1 if level==0 else "met"+str(level) + required_glayers += [via_name,layer_name] + pdk.has_required_glayers(required_glayers) + return ((level1,level2),(glayer1,glayer2)) + + +@validate_arguments +def __get_layer_dim(pdk: MappedPDK, glayer: str, mode: Literal["both","above","below"]="both") -> float: + """Returns the required dimension of a routable layer in a via stack + glayer is the routable glayer + mode is one of [both,below,above] + This specfies the vias to consider. + ****enclosure rules of the via above and below are considered by default, via1<->met2<->via2 + ****using below specfier only considers the enclosure rules for the via below, via1<->met2 + ****using above specfier only considers the enclosure rules for the via above, met2<->via2 + ****specfying both or below for active/poly layer is valid, function knows to ignore below + """ + # error checking + if not pdk.is_routable_glayer(glayer): + raise ValueError("__get_layer_dim: glayer must be a routable layer") + # split into above rules and below rules + consider_above = (mode=="both" or mode=="above") + consider_below = (mode=="both" or mode=="below") + is_lvl0 = any([hint in glayer for hint in ["poly","active"]]) + layer_dim=0 + if consider_below and not is_lvl0: + via_below = "mcon" if glayer=="met1" else "via"+str(int(glayer[-1])-1) + layer_dim = pdk.get_grule(via_below)["width"] + 2*pdk.get_grule(via_below,glayer)["min_enclosure"] + if consider_above: + via_above = "mcon" if is_lvl0 else "via"+str(glayer[-1]) + layer_dim = max(layer_dim, pdk.get_grule(via_above)["width"] + 2*pdk.get_grule(via_above,glayer)["min_enclosure"]) + layer_dim = max(layer_dim, pdk.get_grule(glayer)["min_width"]) + return layer_dim @cell def via_stack( - pdk: MappedPDK, glayer1: str, glayer2: str, centered: Optional[bool] = True, fullbottom: Optional[bool] = False, fulltop: Optional[bool] = False + pdk: MappedPDK, + glayer1: str, + glayer2: str, + centered: bool = True, + fullbottom: bool = False, + fulltop: bool = False, + assume_bottom_via: bool = False, + same_layer_behavior: Literal["lay_nothing","min_square"] = "lay_nothing" ) -> Component: - """produces a single via stack between two metal layers - does not produce via arrays + """produces a single via stack between two layers that are routable (metal, poly, or active) + args: pdk: MappedPDK is the pdk to use glayer1: str is the glayer to start on glayer2: str is the glayer to end on ****NOTE it does not matter what order you pass layers - ****NOTE will not lay poly or active but will lay metals - fullbottom: will lay the bottom glayer all over the area of the viastack - fulltop: will lay the top glayer all over the area of the viastack - ports (one port for each edge): + fullbottom: if True will lay the bottom layer all over the area of the viastack else makes minimum legal size + assume_bottom_via: assume that the via underneath the bottom met is present (legalize viastack under this assumption) + fulltop: if True will lay the top layer all over the area of the viastack else makes minimum legal size + ****NOTE: generator can figure out which layer is top and which is bottom (i.e. met5 is higher than met1) + same_layer_behavior: sometimes (especially when used in other generators) it is unknown what two layers are specfied + this option provides the generator with guidance on how to handle a case where same layer is given + by default, (lay_nothing option) nothing is laid and an empty component is returned + if min_square is specfied, a square of min_width * min_width is laid + + PORTS, some ports are not layed when it does not make sense (e.g. empty component): top_met_...all edges bottom_via_...all edges bottom_met_...all edges + bottom_layer_...all edges (may be different than bottom met if on diff/poly) """ - level1, level2 = __error_check_order_layers(pdk, glayer1, glayer2)[0] + ordered_layer_info = __error_check_order_layers(pdk, glayer1, glayer2) + level1, level2 = ordered_layer_info[0] + glayer1, glayer2 = ordered_layer_info[1] viastack = Component() - # if same level return empty component + # if same level return component with min_width rectangle on that layer if level1 == level2: - return viastack - # topmet,bottomvia,bottommet, finalized?,what are they - port_refs = [[False, None], [False, None], [False, None]] - # lay mcon if first layer is active or poly - if not level1: - pdk.has_required_glayers(["mcon", "met1"]) - mcondim = pdk.get_grule("mcon")["width"] - port_refs[1][1] = viastack << rectangle( - size=(mcondim, mcondim), layer=pdk.get_glayer("mcon"), centered=True - ) - metdim = round(max( - 2 * pdk.get_grule("met1", "mcon")["min_enclosure"] + mcondim, - pdk.get_grule("met1")["min_width"], - ),6) - port_refs[2][1] = viastack << rectangle( - size=(metdim, metdim), layer=pdk.get_glayer("met1"), centered=True - ) - port_refs[1][0] = True - port_refs[2][0] = True - level1 += 1 # make bottom met so we can use code below - if level1 == level2: # re-check same layer - port_refs[0][1] = port_refs[2][1] - port_refs[0][0] = True - elif level1 and level2: # construct metal stack if both are metals - for level in range(level1, level2): - gmetlayer = "met" + str(level) - gnextvia = "via" + str(level) - if level != level1: - gprevvia = "via" + str(level-1) - gprevvia_rule = 2 * pdk.get_grule(gmetlayer, gprevvia)["min_enclosure"] + pdk.get_grule(gprevvia)["width"] - else: - gprevvia_rule=0 - pdk.has_required_glayers([gmetlayer, gnextvia]) - metdim = round(max( - 2 * pdk.get_grule(gmetlayer, gnextvia)["min_enclosure"] - + pdk.get_grule(gnextvia)["width"], - pdk.get_grule(gmetlayer)["min_width"], - gprevvia_rule - ),6) - metref = viastack << rectangle( - size=(metdim, metdim), layer=pdk.get_glayer(gmetlayer), centered=True - ) - viadim = pdk.get_grule(gnextvia)["width"] - viaref = viastack << rectangle( - size=(viadim, viadim), layer=pdk.get_glayer(gnextvia), centered=True - ) - if not port_refs[2][0]: - port_refs[2][1] = metref - port_refs[2][0] = True - if not port_refs[1][0]: - port_refs[1][1] = viaref - port_refs[1][0] = True - gfinalmet = "met" + str(level2) - gprevvia = "via" + str(level) - metdim = round(max( - 2 * pdk.get_grule(gfinalmet, gprevvia)["min_enclosure"] - + pdk.get_grule(gprevvia)["width"], - pdk.get_grule(gfinalmet)["min_width"], - ),6) - port_refs[0][1] = viastack << rectangle( - size=(metdim, metdim), layer=pdk.get_glayer(gfinalmet), centered=True - ) - # add ports and implement center option - pre = ["top_met_", "bottom_via_", "bottom_met_"] - for i in range(3): - viastack.add_ports(port_refs[i][1].get_ports_list(), prefix=pre[i]) - gprevia = "via"+str(level1-1) if level1 != 1 else "mcon" - bottomsize = max(2*pdk.get_grule("met"+str(level1),gprevia)["min_enclosure"] + pdk.get_grule(gprevia)["width"], evaluate_bbox(viastack)[0]) - if fullbottom: - viastack << rectangle(size=2*[bottomsize],layer=pdk.get_glayer("met"+str(level1)), centered=True) - if fulltop: - viastack << rectangle(size=2*[bottomsize],layer=pdk.get_glayer("met"+str(level2)), centered=True) - center_stack = Component() - viastack_ref = center_stack << viastack - if not centered: - viastack_ref.movex(viastack.xmax).movey(viastack.ymax) - - center_stack.add_ports(viastack_ref.get_ports_list()) - return rename_ports_by_orientation(center_stack).flatten() + if same_layer_behavior=="lay_nothing": + return viastack + min_square = viastack << rectangle(size=2*[pdk.get_grule(glayer1)["min_width"]],layer=pdk.get_glayer(glayer1), centered=centered) + # update ports + if level1==0:# both poly or active + viastack.add_ports(min_square.get_ports_list(),prefix="bottom_layer_") + else:# both mets + viastack.add_ports(min_square.get_ports_list(),prefix="top_met_") + viastack.add_ports(min_square.get_ports_list(),prefix="bottom_met_") + else: + ports_to_add = dict() + for level in range(level1,level2+1): + via_name = "mcon" if level==0 else "via"+str(level) + layer_name = glayer1 if level==0 else "met"+str(level) + # get layer sizing + mode = "below" if level==level2 else ("above" if level==level1 else "both") + mode = "both" if assume_bottom_via and level==level1 else mode + layer_dim = __get_layer_dim(pdk, layer_name, mode=mode) + # place met/via, do not place via if on top layer + if level != level2: + via_dim = pdk.get_grule(via_name)["width"] + via_ref = viastack << rectangle(size=[via_dim,via_dim],layer=pdk.get_glayer(via_name), centered=True) + lay_ref = viastack << rectangle(size=[layer_dim,layer_dim],layer=pdk.get_glayer(layer_name), centered=True) + # update ports + if layer_name == glayer1: + ports_to_add["bottom_layer_"] = lay_ref.get_ports_list() + ports_to_add["bottom_via_"] = via_ref.get_ports_list() + if (level1==0 and level==1) or (level1>0 and layer_name==glayer1): + ports_to_add["bottom_met_"] = lay_ref.get_ports_list() + if layer_name == glayer2: + ports_to_add["top_met_"] = lay_ref.get_ports_list() + # implement fulltop and fullbottom options. update ports_to_add accordingly + if fullbottom: + bot_ref = viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer(glayer1), centered=True) + if level1!=0: + ports_to_add["bottom_met_"] = bot_ref.get_ports_list() + ports_to_add["bottom_layer_"] = bot_ref.get_ports_list() + if fulltop: + ports_to_add["top_met_"] = (viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer(glayer2), centered=True)).get_ports_list() + # add all ports in ports_to_add + for prefix, ports_list in ports_to_add.items(): + viastack.add_ports(ports_list,prefix=prefix) + # implement centering of the component + center_stack = Component() + viastack_ref = center_stack << viastack + if not centered: + viastack_ref.movex(viastack.xmax).movey(viastack.ymax) + center_stack.add_ports(viastack_ref.get_ports_list()) + center_stack.flatten() + viastack = center_stack + return rename_ports_by_orientation(viastack.flatten()) @cell @@ -137,20 +161,22 @@ def via_array( pdk: MappedPDK, glayer1: str, glayer2: str, - size=(4.0, 1.0), - minus1: Optional[bool] = False, - lay_bottom: Optional[bool] = False + size: tuple[float,float] = (4.0, 1.0), + minus1: bool = False, + lay_bottom: bool = False ) -> Component: """Fill a region with vias. Will automatically decide num rows and columns args: pdk: MappedPDK is the pdk to use glayer1: str is the glayer to start on glayer2: str is the glayer to end on - lay_bottom: bool if true will lay bottom met + lay_bottom: bool if true will lay bottom met all over size (by default only lays top met all over size) ****NOTE it does not matter what order you pass layers ****NOTE will not lay poly or active but will lay metals size: tuple is the (width, hieght) of the area to enclose ****NOTE: the size will be the dimensions of the top metal + minus1: if true removes 1 via from rows/cols num vias + ****use if you want extra space at the edges of the array ports (one port for each edge): top_met_...all edges bottom_met_...all edges (only if lay_bottom is specified) @@ -184,10 +210,10 @@ def via_array( if level == (level2-1): outer_enclosure = Decimal(str(pdk.get_grule(glayer2,via_glayer)["min_enclosure"])) via_spacing = max(via_spacing) - # error check size and get viaspacing_full + # error check size viadim = 2*Decimal(str(viastack.xmax)) for i, dim in enumerate(size): - if viadim > dim: + if Decimal(str(to_float(viadim))) > Decimal(str(to_float(dim))): raise ValueError(f"via_array,size:dim {i}={dim} less than {viadim}") viaspacing_full = via_spacing + viadim # num_vias[0]=x, num_vias[1]=y @@ -202,6 +228,7 @@ def via_array( columns=num_vias[0], rows=num_vias[1], spacing=[viaspacing_full, viaspacing_full], + absolute_spacing=True ) # center the array array_ref = viaarray.add(temparray.ref_center()) @@ -226,19 +253,41 @@ def via_array( if __name__ == "__main__": - from PDK.util.standard_main import pdk + from PDK.util.standard_main import pdk, parser from PDK.util.custom_comp_utils import print_ports - from sys import exit - - test_all = False + from pathlib import Path - if not test_all: + # default behavoir is to run one design and exit + parser.add_argument("--all", "-a", action="store_true", help="runs all tests") + parser.add_argument("--viastack", "-s", action="store_true", help="runs all via_stack tests") + parser.add_argument("--viaarray", "-v", action="store_true", help="runs all via_array tests") + parser.add_argument("--write", "-w", help="writes all gds files to directory specfied") + parser.add_argument("--ports", action="store_true", help="print ports") + args = parser.parse_args() + # run comps + comps = list() + if args.viaarray or args.all: + layers = ["poly", "met1", "met2", "met3"] + for lay1 in layers: + for lay2 in layers: + comps.append(via_array(pdk, lay1, lay2, lay_bottom=True)) + elif args.viastack or args.all: + layers = ["poly", "met1", "met2", "met3"] + for lay1 in layers: + for lay2 in layers: + comps.append(via_stack(pdk, lay1, lay2,fullbottom=True,fulltop=True)) + else: myarray = via_array(pdk, "poly", "met2",size=(5,4)) - myarray.show() - print_ports(myarray, False) - exit(0) - - layers = ["poly", "met1", "met2", "met3"] - for lay1 in layers: - for lay2 in layers: - via_array(pdk, lay1, lay2, lay_bottom=True).show() + # show and write (if write is specfied) + if args.write: + gds_write_path = Path(args.write) + if not gds_write_path.is_dir(): + raise ValueError("gds write must be a dir path") + for comp in comps: + comp.write_gds(comp.name+".gds") + for comp in comps: + comp.show() + # print_ports + if args.ports: + for comp in comps: + print_ports(myarray) From 1ba2572b47cc74cbb364b258983a2fca6602dc59 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Sun, 16 Jul 2023 20:06:14 -0400 Subject: [PATCH 19/64] via_gen refactor --- .../PDK/sky130_mapped/sky130_add_npc.py | 2 +- .../gdsfactory-gen/PDK/util/custom_comp_utils.py | 12 +++++++++--- .../gdsfactory-gen/{ => deprecated}/Makefile | 0 .../drc-check/magic_commands.tcl | 0 .../line-res_via-chain/drc-check/run_drc.sh | 0 .../drc-check/sky130A/sky130A.magicrc | 0 .../drc-check/sky130A/sky130A_setup.tcl | 0 .../scripts/line-res_via-chain/line_res_gen.py | 0 .../scripts/line-res_via-chain/merge_structures.py | 0 .../line-res_via-chain/pad_forty_met1_met5.GDS | Bin .../scripts/line-res_via-chain/via_chain_gen.py | 0 .../mimcap-array/drc-check/magic_commands.tcl | 0 .../scripts/mimcap-array/drc-check/run_drc.sh | 0 .../mimcap-array/drc-check/sky130A/sky130A.magicrc | 0 .../drc-check/sky130A/sky130A_setup.tcl | 0 .../scripts/mimcap-array/mimcap_gen.py | 0 .../scripts/mimcap-array/pad_forty_met1_met5.GDS | Bin .../sky130_fd_pr__cap_mim_m3_1_FJK8MM.gds | Bin .../sky130_fd_pr__cap_mim_m3_2_FJK8MM.gds | Bin openfasoc/generators/gdsfactory-gen/guardring.py | 7 +++---- .../gdsfactory-gen/sky130_nist_tapeout.py | 10 ++++++++++ openfasoc/generators/gdsfactory-gen/via_gen.py | 13 ++++--------- 22 files changed, 27 insertions(+), 17 deletions(-) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/Makefile (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/drc-check/magic_commands.tcl (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/drc-check/run_drc.sh (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/drc-check/sky130A/sky130A.magicrc (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/drc-check/sky130A/sky130A_setup.tcl (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/line_res_gen.py (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/merge_structures.py (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/pad_forty_met1_met5.GDS (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/line-res_via-chain/via_chain_gen.py (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/drc-check/magic_commands.tcl (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/drc-check/run_drc.sh (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/drc-check/sky130A/sky130A.magicrc (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/drc-check/sky130A/sky130A_setup.tcl (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/mimcap_gen.py (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/pad_forty_met1_met5.GDS (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_1_FJK8MM.gds (100%) rename openfasoc/generators/gdsfactory-gen/{ => deprecated}/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_2_FJK8MM.gds (100%) create mode 100644 openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py index a0f2766cf..04d411181 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py @@ -13,7 +13,7 @@ def sky130_add_npc(comp: Component) -> Component: licon_comp = comp.extract(layers=[(66,44)]) poly_comp = comp.extract(layers=[(66,20)]) existing_npc = comp.extract(layers=[(95,20)]) - # TODO: look into better method for filtering small cells + # TODO: see about an implemtation using gdsfactory component metadata if len(licon_comp.get_polygons()) < 2 and len(poly_comp.get_polygons()) < 2: return comp liconANDpoly = boolean(licon_comp, poly_comp, layer=(1,2), operation="and") diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index a1fd0d8dd..702064264 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -5,6 +5,7 @@ from gdsfactory.port import Port from typing import Callable, Union, Optional,Iterable from decimal import Decimal +from gdsfactory.functions import transformed @validate_arguments def rename_component_ports(custom_comp: Component, rename_function: Callable[[str, Port], str]) -> Component: @@ -142,7 +143,7 @@ def evaluate_bbox(custom_comp: Union[Component, ComponentReference], return_deci @validate_arguments -def move(custom_comp: Union[Port, ComponentReference], offsetxy: Optional[tuple[float,float]] = 0, destination: Optional[tuple[Optional[float],Optional[float]]]=None) -> Union[Port, ComponentReference]: +def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: Optional[tuple[float,float]] = 0, destination: Optional[tuple[Optional[float],Optional[float]]]=None) -> Union[Port, ComponentReference, Component]: """moves custom_comp by offset[0]=x offset, offset[1]=y offset destination (x,y) if not none overrides offset option returns the modified custom_comp @@ -160,11 +161,16 @@ def move(custom_comp: Union[Port, ComponentReference], offsetxy: Optional[tuple[ custom_comp.movex(offsetxy[0]).movey(offsetxy[1]) else: custom_comp.movex(xoffset).movey(yoffset) + elif isinstance(custom_comp, Component): + ref = custom_comp.ref() + # this is a recursive call but with type=component reference + ref = move(ref, offsetxy, destination) + custom_comp = transformed(ref) return custom_comp @validate_arguments -def movex(custom_comp: Union[Port, ComponentReference], offsetx: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference]: +def movex(custom_comp: Union[Port, ComponentReference, Component], offsetx: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference, Component]: """moves custom_comp by offsetx in the x direction returns the modified custom_comp """ @@ -174,7 +180,7 @@ def movex(custom_comp: Union[Port, ComponentReference], offsetx: Optional[float] @validate_arguments -def movey(custom_comp: Union[Port, ComponentReference], offsety: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference]: +def movey(custom_comp: Union[Port, ComponentReference, Component], offsety: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference, Component]: """moves custom_comp by offsety in the y direction returns the modified custom_comp """ diff --git a/openfasoc/generators/gdsfactory-gen/Makefile b/openfasoc/generators/gdsfactory-gen/deprecated/Makefile similarity index 100% rename from openfasoc/generators/gdsfactory-gen/Makefile rename to openfasoc/generators/gdsfactory-gen/deprecated/Makefile diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/magic_commands.tcl b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/magic_commands.tcl similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/magic_commands.tcl rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/magic_commands.tcl diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/run_drc.sh b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/run_drc.sh similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/run_drc.sh rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/run_drc.sh diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/sky130A/sky130A.magicrc b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/sky130A/sky130A.magicrc similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/sky130A/sky130A.magicrc rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/sky130A/sky130A.magicrc diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/sky130A/sky130A_setup.tcl b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/sky130A/sky130A_setup.tcl similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/drc-check/sky130A/sky130A_setup.tcl rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/drc-check/sky130A/sky130A_setup.tcl diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/line_res_gen.py b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/line_res_gen.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/line_res_gen.py rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/line_res_gen.py diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/merge_structures.py b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/merge_structures.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/merge_structures.py rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/merge_structures.py diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/pad_forty_met1_met5.GDS b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/pad_forty_met1_met5.GDS similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/pad_forty_met1_met5.GDS rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/pad_forty_met1_met5.GDS diff --git a/openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/via_chain_gen.py b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/via_chain_gen.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/line-res_via-chain/via_chain_gen.py rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/line-res_via-chain/via_chain_gen.py diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/magic_commands.tcl b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/magic_commands.tcl similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/magic_commands.tcl rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/magic_commands.tcl diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/run_drc.sh b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/run_drc.sh similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/run_drc.sh rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/run_drc.sh diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/sky130A/sky130A.magicrc b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/sky130A/sky130A.magicrc similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/sky130A/sky130A.magicrc rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/sky130A/sky130A.magicrc diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/sky130A/sky130A_setup.tcl b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/sky130A/sky130A_setup.tcl similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/drc-check/sky130A/sky130A_setup.tcl rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/drc-check/sky130A/sky130A_setup.tcl diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/mimcap_gen.py b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/mimcap_gen.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/mimcap_gen.py rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/mimcap_gen.py diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/pad_forty_met1_met5.GDS b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/pad_forty_met1_met5.GDS similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/pad_forty_met1_met5.GDS rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/pad_forty_met1_met5.GDS diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_1_FJK8MM.gds b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_1_FJK8MM.gds similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_1_FJK8MM.gds rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_1_FJK8MM.gds diff --git a/openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_2_FJK8MM.gds b/openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_2_FJK8MM.gds similarity index 100% rename from openfasoc/generators/gdsfactory-gen/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_2_FJK8MM.gds rename to openfasoc/generators/gdsfactory-gen/deprecated/scripts/mimcap-array/sky130_fd_pr__cap_mim_m3_2_FJK8MM.gds diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/guardring.py index 1c568dc6f..ebbb0ad72 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/guardring.py @@ -5,10 +5,9 @@ from gdsfactory.components.rectangular_ring import rectangular_ring from via_gen import via_array, via_stack from typing import Optional -from PDK.util.custom_comp_utils import print_ports, to_decimal, to_float +from PDK.util.custom_comp_utils import print_ports, to_decimal, to_float, evaluate_bbox from PDK.util.snap_to_grid import component_snap_to_grid from L_route import L_route -from decimal import ROUND_UP, Decimal from PDK.util.snap_to_grid import snap_to_2xgrid @@ -71,7 +70,7 @@ def tapring( layer=pdk.get_glayer(sdlayer), ) # create via arrs - via_width_horizontal = 2 * via_stack(pdk, "active_tap", horizontal_glayer).ymax + via_width_horizontal = evaluate_bbox(via_stack(pdk, "active_tap", horizontal_glayer))[0] arr_size_horizontal = enclosed_rectangle[0] horizontal_arr = via_array( pdk, @@ -80,7 +79,7 @@ def tapring( (arr_size_horizontal, via_width_horizontal), minus1=True, ) - via_width_vertical = 2 * via_stack(pdk, "active_tap", vertical_glayer).ymax + via_width_vertical = evaluate_bbox(via_stack(pdk, "active_tap", vertical_glayer))[1] arr_size_vertical = enclosed_rectangle[1] vertical_arr = via_array( pdk, diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py new file mode 100644 index 000000000..2a9cfc32e --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -0,0 +1,10 @@ +from opamp import opamp +from gdsfactory.read.import_gds import import_gds + +def opamp_add_pads(): + """adds the MPW-5 pads to opamp. + Also adds text labels and pin layers so that extraction is nice + """ + pad = import_gds("mpw5_pad.gds") + + diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/via_gen.py index 55c4a02e0..a2c6f2011 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/via_gen.py @@ -5,7 +5,7 @@ from PDK.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from PDK.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float +from PDK.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move from PDK.util.snap_to_grid import component_snap_to_grid from decimal import Decimal from typing import Literal @@ -83,7 +83,7 @@ def via_stack( glayer2: str is the glayer to end on ****NOTE it does not matter what order you pass layers fullbottom: if True will lay the bottom layer all over the area of the viastack else makes minimum legal size - assume_bottom_via: assume that the via underneath the bottom met is present (legalize viastack under this assumption) + assume_bottom_via: legalize viastack assuming the via underneath bottom met is present, e.g. if bottom met is met3, assume via2 is present fulltop: if True will lay the top layer all over the area of the viastack else makes minimum legal size ****NOTE: generator can figure out which layer is top and which is bottom (i.e. met5 is higher than met1) same_layer_behavior: sometimes (especially when used in other generators) it is unknown what two layers are specfied @@ -145,14 +145,9 @@ def via_stack( # add all ports in ports_to_add for prefix, ports_list in ports_to_add.items(): viastack.add_ports(ports_list,prefix=prefix) - # implement centering of the component - center_stack = Component() - viastack_ref = center_stack << viastack + # move SW corner to 0,0 if centered=False if not centered: - viastack_ref.movex(viastack.xmax).movey(viastack.ymax) - center_stack.add_ports(viastack_ref.get_ports_list()) - center_stack.flatten() - viastack = center_stack + viastack = move(viastack,(viastack.xmax,viastack.ymax)) return rename_ports_by_orientation(viastack.flatten()) From ffe9bc903e74f4a8a4202a2c9fad2f79b2487478 Mon Sep 17 00:00:00 2001 From: ryanrocket Date: Sun, 16 Jul 2023 20:06:41 -0400 Subject: [PATCH 20/64] add pass/fail drc functionality --- openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py index 872516209..7606e7ee8 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py @@ -11,7 +11,7 @@ import tempfile import subprocess from decimal import Decimal - +import xml.etree.ElementTree as ET class MappedPDK(Pdk): """Inherits everything from the PDK class but also requires mapping to glayers @@ -125,7 +125,15 @@ def drc( # there is a drc parsing open-source at: # https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/blob/main/rules/klayout/drc # eventually I can return more info on the drc run, but for now just void and view the lyrdb in klayout - # return True or False + + # Open DRC output XML file + drc_tree = ET.parse(report_path.resolve()) + drc_root = drc_tree.getroot() + if drc_root.tag != "report-database": + raise TypeError("DRC report file is not a valid report-database") + # Check if DRC passed + drc_error_count = len(drc_root[7]) + return (drc_error_count == 0) def has_required_glayers(self, layers_required: list[str]): """Raises ValueError if any of the generic layers in layers_required: list[str] From 72fc06ebae6f91066b31dfc066f45c1824197816 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 17 Jul 2023 11:51:14 -0400 Subject: [PATCH 21/64] pad wrapper --- .../PDK/util/custom_comp_utils.py | 6 ++- openfasoc/generators/gdsfactory-gen/opamp.py | 11 ++++- .../gdsfactory-gen/sky130_mpw5_pad.gds | Bin 0 -> 96874 bytes .../gdsfactory-gen/sky130_nist_tapeout.py | 44 ++++++++++++++++-- 4 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/sky130_mpw5_pad.gds diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py index 702064264..1937c6c88 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py @@ -148,6 +148,8 @@ def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: Opti destination (x,y) if not none overrides offset option returns the modified custom_comp """ + #xcenter = custom_comp.xmin + evaluate_bbox(custom_comp)[0]/2 if isinstance(custom_comp, Component) else custom_comp.center[0] + #ycenter = custom_comp.ymin + evaluate_bbox(custom_comp)[1]/2 if isinstance(custom_comp, Component) else custom_comp.center[1] if destination is not None: xoffset = destination[0] - custom_comp.center[0] if destination[0] is not None else 0 yoffset = destination[1] - custom_comp.center[1] if destination[1] is not None else 0 @@ -162,10 +164,10 @@ def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: Opti else: custom_comp.movex(xoffset).movey(yoffset) elif isinstance(custom_comp, Component): - ref = custom_comp.ref() + ref = custom_comp.copy().ref() # this is a recursive call but with type=component reference ref = move(ref, offsetxy, destination) - custom_comp = transformed(ref) + custom_comp = transformed(ref).copy() return custom_comp diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/opamp.py index 8c6312b9c..1bffdc9b1 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/opamp.py @@ -297,10 +297,17 @@ def opamp( mimcaps_ref.movex(opamp_top.xmax + displace_fact + mim_cap_size[0]/2) mimcaps_ref.movey(pmos_comps_ref.ymin + mim_cap_size[1]/2) # connect mimcap to gnd - opamp_top << L_route(pdk,mimcaps_ref.ports["row0_col1_top_met_S"],_cref.ports["con_E"],hwidth=3) + gnd_pin_mimcap_route = opamp_top << L_route(pdk,mimcaps_ref.ports["row0_col1_top_met_S"],_cref.ports["con_E"],hwidth=3) opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) # return - return opamp_top.flatten() + opamp_top.add_ports(gnd_pin_mimcap_route.get_ports_list(), prefix="gnd_pin_") + opamp_top.add_ports(vddpin.get_ports_list(), prefix="vdd_pin_") + opamp_top.add_ports(vbias1.get_ports_list(), prefix="vbias1_pin_") + opamp_top.add_ports(vbias2.get_ports_list(), prefix="vbias2_pin_") + opamp_top.add_ports(plus_pin.get_ports_list(), prefix="plus_pin_") + opamp_top.add_ports(minus_pin.get_ports_list(), prefix="minus_pin_") + opamp_top.add_ports(output.get_ports_list(), prefix="output_pin_") + return rename_ports_by_orientation(component_snap_to_grid(opamp_top)) if __name__ == "__main__": diff --git a/openfasoc/generators/gdsfactory-gen/sky130_mpw5_pad.gds b/openfasoc/generators/gdsfactory-gen/sky130_mpw5_pad.gds new file mode 100644 index 0000000000000000000000000000000000000000..d6cd9b9d2cdd8701138c1e596e282f7a58639b46 GIT binary patch literal 96874 zcmdU&U#y_bqW1ui_0vrPI2@q;4PVIn0Fn@w&6)*{es`W)JjYdav<%=rx!o6^= zeCd%o;iA3>y&0<-jVz5+RLQ-tNx@K=o&;hSawr%o_c$fR4Fy6ul?4gZnQzwfuKhdj z@o3iG!?#}MI2Y(ip8Y;&?X~vWYp?zKJKq_t8Le9NA4fBvS#`-`MciT3;WLLKRzfRZ9E!OvTWN*1In!D!Z^Z4}a=lnl^&cq%3e~CYFp3MKe{ha^5 z{_DRy=U6xJ|Ht}G5dR0e{lCfg|M@f9U-BbAj2<&OfWqte@Hb&S-S$ImgT9EcV+*BM{zjdHr7&|Iui>t(mP) zhg!b}*ZKMh;p6plyK9d+&g^shAiQB{U-Ms8^cNL92ya-`Pw#d6*KK$EAiQCyzj(p@ z6w3cK2YZzNWjxet{`YNl`}ePQ`yjkwsL$HJV#en$)cmhF)1&5J#zXsAz5FN6#2tjM z#eazWyQ;*0s>C0JHw^v1+G3_S2^GI<*7XQ)80zK!*U$O--#ceo+kYUuVW_|UfZG?! z{tdf&l>IUu>bK3fUMT&xGd)UQ#zXy$3$7PRf78Jpr7z>5Uj7qj;ts-p+VQ8(QTIUj zTK!u;-l%vcF#W$-Z0F+A?iPU z4t);@U+aIe^Ov4HA#XtVTK;6$Z;1G9*y`)|<<-7^AiQC?e%bxI(*2Lt?~CW$|6AtV ze-Pd<^j~`FEOi%zuhrin`d`+GbpzpR>!-@6tp_e-BRN&hJO^jY*>AbhR=lAe9Wz60S~ z`;RyicM!f7f7z!`pl<--Tm1w3jC}{f*Y;nw|J*q1>nEI~f6wX_Kk5W^1B9>Dk0J8k z;@kDV#2th;4C_}m{@MH;;{2vgQMW+&TK&rQAKCgb#Q9I1pl*Qht@=Toq;7)nwfdRO z|Lpm{vghx3{6<%Q93P$?kAJ#Ob;wcg-+esVf8+7b4yb-PO83?-*9+m}_YdRo&lmhT zq4e(^>`{6jkL{nGalKIbvuApg-p6D8N3*UMO8@b?9;Ns3SpU?5>xI%kUFI*8-p6D8 zk=OM8*WTe9-oM)Z?d8vUgpcn(uKW5q$9v~o55mXy7uVf!)N#u`*MsnJ|LeM2_d4FT z-Sr@Re15xbL-GI1#eWb!uK%w8V)6f$;y(x<*ALgPE&k6G|3Ucp{B!+u@&CHwKL{V! zZ`WT{{GTfRgYa?va{Z;n|I3R1Abi}vxqemg|DxhQ2p{)P&vT*j|5(|7Lgl}Y z$NB&KtUo7|{)KftO7G*bKD&Rj^&?xqvh_1tzfYC*6Dt0v%K8Zve;<$I|H^_tCzSrx zgFQ;`ImeJ=>VA$Z2igBKlx9ePTvl~xB7RULkGgw^x679ME-Km;NAhk zx9%T2hYp0V>9hNPi2BbxiF*?W-?~5X96AubrqA|2+5SuU&pnTO9|+&N|M46;5Wc3* z_Me)6_Wb3Z%DokYZ{1%xXE}F4_}2N09qfYeE&H6aoVy@=?fg~zI43zbLHOGFDLr+b zx(~wF>c8~d^SSqf@U{ED^we4EE(l+%zeCuk&QbS3_*(swed+{t1B9>D59!%w>^l&? zw*RCj&&WFvzLkHh6YB=T*VgasjP(%q`ETKq-_`rm9^q@B|332CczkZJ`jGMXSKIae zuSfWEd*l1NbRTYY{V!I#9)$m}+W(Bl@1Jx1;+*S2`1jA%?Z180_3!L+JqZ8y(YpT4 z;{TcAKM4P3!~fI8|DP29LHN@R|6eQqzh3+Y;a_X`KVSTRx%dyl&o}%(Ui?2%{0HHW zH~gO~{{Nu(55mti{C}qS|7`Iegny>u|3|a7_Ll!b<^RX)dW5g#|5FRD7fS#1!5*de z@i>2u&A47D{joDWO7G*bKD&RPpLP2}*?*zBkL|yBz@HOJ|I)4=rT6hz|MLac z3#EVWV2{%Kc&vY==!Me1TJ%EceLU8mn(^m^(w{ohqx3!=>wk8@^+M_2+SQ}AB}} z?*-vo_h0N_7ld!w=bp^H8HB&k@6W`ExPkDk_;JtX-VMUH?%&wKE(qVUKY!HwKkn@y z{DpphCr`*55WbZ^^ttrCAbhL;#SV5s_?CU%^YGpWgm1n7;W>05d`o|NtFJ%rjX?O; z`y-x12g0}X-`tcp#$Mt zdhSWwn?U&Z{-oaGykGFO>fF?)`_O^kuyA`Td;!t_9Z% zW&iGjJ<5I=5AA35+h*LpQ1-W-=~4E}cxXSX-#+X1g|h!(SwErdm+{d4L*G&VXP?0{ z{MB~*?A^8=;p6xBOFzG}GpT*+FFO0bSnc*f__+Vj_fxo^LfOBf#9t`?%Xrm)J6}8d zi*s%tgpbePVf?rArL+IeKDQ6T$LEi}U&Q?s%KtS7dzAlWyz0N5FP;4}W&J_;`22C5 z)t65HgR*`ge69W{@9cc(^gk(j5I#PCTxaKdr+;?N;|IdW=fCU7^GWhw^SAS2d)*Xaztv~yeeG9_3_AhZJ?jU?C{@B4T2w$_m(*4H}`=2^X-38%m z^*6i!viY0s-?RGlrT-GD|5#u8FQNL6GG6UJh%<2q;cM|9!anC5=N<@OJO6Gh{g+Vw z-&Fc9q5Lo7q5oO^^#|OJQ1)-w)uZf}@z8!&fAy@}7s~!M>w1*^G9KDj{Uy%C9fYsN ze+c{Z8T1_>e69b;-aoSadsd&Fzt)d95jPON7C-6fv*^1(_*(y!UH@$UXXh_HeI9)u z2w&^}vh`z#`pG<*Hwa&wzx?N(#JvfGuic-r=T~x@f3owJ zo<5nr8HBI(&)NN(-9Op+OHZFp-wwjp`u7R;?>Ca)|9+l+g72SRrl08hznAIxes{;^ z-^E?|{`Y12y#1X26Mg^sviWEI&)d)WpO60p-+#X>enZ&zpP}62d*8v}``?$@&#&JE z@%QiVp8W4WoTty(pD6z4*`Hwjm+ABNbN)}X|CY^vqWt+k^q)9?&(r7p&&PkI*MIq$ z!@dWD{eNEka`Qj$Z>)T>zrVuYe>iOS_kXazzhL;}AKBkuc%(=8BmZ#T=gnDVd*U#;)J?S{}sM`nO4VS+^T9$vVTUGQI6+H-VSk+HI?my?cjcy-=Hw^U` ze_&ekUnu|AJk}$8%m4d!y8Zj!b^A*Qzw^_xf5jG`zfkkP;zW;{e;E(`&+3(b#F@B* z@U{34k$+c}IA2xbzl89W_+P!p<0n-7uDQHN#jlKq@st1ePW$@b`-Ew2|1BZ>biDr8 zA9njf*}vhD9%a9bhxWH^alKIbZ6|t^zKnrwhL9_r=)O2$imPJLC1s?%$Q}f3$wLOuPTLJmLN?A^ddgzx32u>MjUhtG`3^znS&Z z{MVjz|G77T@P^_3&7L1a+<%BOaR=dR@t6P8kGuce8$fu&(0}QvbJRT$-Z0c>>%Z)0 z`rje?k4*oi`DgbZaVG8{d@cU6Z~ei<{hRa~cDjD4Zc<0#cgE|V?LV{qS5`0osT0%< z5WZGFhRFYwjDI$Nhd95fQ`9XGzE;1kKWw>c_bj3M&rf>)&(@Et_qctb>`(IkBU?W* z^)s9Q+4Fy8&tLn!@oxPbAAZ2Tf97(nqodxx`*>9U?0aV{@ARBdy0;$b5#I7MI6v+C zeLir#Q2O^C>rr|ikM(D_xLzpz*%LiV@8hxlqdl${O8;^3Unsqg$NHx}@aKfmKV9Z8 zl-|c<{gL9$m3*WVWd-*TR5I#JATzBtu!6#gQF9<(fw|~b;*Kc{$^&ouQf4T0~ z#~p9m=z0)7KEGYJVQ0a2UB3Z@Z}@-9wCitq!u3lC-|&C!N!QOj>Ut1Ugm3tN*|h5~d&2E6A$-ICRVQ74(W9;h;jO<4_wTVSp65d4 z|FIK2D*t^v)<3_;^+M@iuzd$g@8hvPyMMFwBU`_+_0#L~wi|Coqsld+4aljPd0zE z`zO19v-Klezq0i+yZ%G;KP%lot#toIpGMyX!q@t@?EcgG(dW_kf$+8dFS~!U_Otn) z-G7>Yw*SrOv-Kxi|KxwRf6wT%^?!)`<(|R41B7qgKX?uu2w&4@_x}*}pL-JbCJ?@L zf8sfGAbd@q?SHcUm-0V*|I6sJ{io)iJ%6+J*X;S5wa+=rxeLPA&R@lkbCPotgs+{S z(r4vwjGz5B7xe+!@dBfUTE5x(~M?<4Qq_h&q=_eb`z5FIx~_lwr0d^#)b$|z+tvKH-(P;*^=FFzApDyR|4;99{psTW z62dq9e|_5ZuNVK95WeC6{7KipT>J;&=NtYXf86yaivJ+|@rM6%J6%6l{9i)&hX2n_ zyZ+hY{}RGi{Qqc=X)XVS%Kwiq?-9P1|4)73dZF}BKh~r4J|5@au`R9_N`LG`kJ9^i ztk3S>=l8gMq3pj<{1?i;kH_|3JnYX2rGM#>9;Ns3SpV}6TrZUVy~lc#-p6D8D@8Aq z{?(!vO7G*b{?rzKPAL7U6Fo}reLm-i^WkH>od z`EF+=>}S_6o4?uh%kKZIKAXQfKQr|&tIzI#+0WGfZ2YtJFPp#F{gXXER=R#<&(G}s z&+fl${%7+qyZ+huXZ6|nXXBS$zij?w^Vja+Qu)syGsJqX{*f1X1J!ngFi z=iNz5j5OzKjQ- zA6y#mo|{B}*9UH2DE-}!^(gygJhY$HZ`Unu(zmh}_L zei;w#KlCT+|Lik(hQHcqpS@e(BYgb+e(C3Tb|$s|;ZC>z;k#~s3E{*3N#9T5ehOv( ziV}aJ{4e8G{}-p-{^ApEe+l8k_s7HdZ|6%F|92jB`yhOL{^)y0+)ttWU-MXx^1qB% z{kQX_vwx}(+2w%(pZ2i>y$#e1^ zgm2})ozI>BCpNnOAbfm&yDpRe+4F0N{LSuv@`Str;cNMm?LXu{=iDUcpY*IV>kh)V z)<3&{v+>W^U+Mm1i2a|bzuEnl&EIVQp4G1}{g+Vv$NJKL3Dtj;@oN8(iT@DxGw0up zrT-Gj|C>txC6xbVJoG=Szy7e>5z77zkMt<}WjwT>)nC2G?F(i9n#+5X{W2cfSN+Vy ze+c{Z8T1_>e69b;-aoSadsd&Fzt)d95jPON7C-6fv*^1(_*(y!UH@$UXXh_{rvJ;< zk0I)3X8!U&bAQU7U)lYWoxk+-x%9mte69b@?%(YG$lnbz_jgf|TJ*B@~ELfOAz zSC6t^#zXzK8P^M?-*%=)>C1Sizj49!Lg{Zh*rW7iJk-m7;!NB@_)k0j)H&)N2w$sz z>u215q5NN8;wO~IVZwNIRhI|yHk{}A>$Cpb4i_}clAT|dSDj-wVs!!7$PcDDaPc*8J$+5MZ% zpCRfmaVG8{d@cTp8+DSp3BuRvXEy({`#)R1v-u#&lPBa22w%&e?D`E6zYSY`{l2`~*AIj@4A(Eae^I3c!=TK{|3g5`ec6DR2(WuHEaz6*q}^wci`->W|~Yv-bPv>r{sv_5R(*qy1;UcYZ+i%TcCc|&QFw1*l$7B6d3$7PR|8$wZPEi!&#eWb!uHUY| zs`x)u{0HIV`sMmdi~pAu|3Ub;e{=n+;{Qd(e-J+IpX~cdW<1Y@%Ku|!{|S}{mRzQZ2dk})=#MTpDODoRQ!EBj{hqQ{+v+yR}c0m zy^qKG7Z12zDE&*jdX(PBV|_M%viX~>|5<%@{@M6t*Dsqt+5FA!pX~n4){kuc%GS^9 z`VZ0n&?l`_|3sff-vz>d+Wi-O8hslGU+dqp`%mjfpGV&Z!q@u0?EcN#&*p!2|7rg8 zx%9mt{D$!ThxczhhYp0V>9h4GTmR%geL8(R2;b`8c@7;2U(;vn{}B1hJ%f7(2;aJY z@Ekf2zNXLa{~_u>_ayF3Abjio#B=CC_?kZ3|780w;A`c=s@_IKHGn4 z{@L@Fdn)%<5WaPP<(%c*1>sxgFLtmC!nf>m&T{U8@U`<-@#CE2+yvok=cn}4dFnn0 zU#tJpbI<4A55m{(|I$-usk0Ii^^0?^2jSm8SGWK6QP;n-&-Ebu+ehpAH;eyg zivJ+|n+^X@7yo}!{0HGrH~fFC`2TwGAB2Cc;s1Q`|K;L82tVKO|9J8LMDZVlKi=?v zuK53h;y(yK*YN+D;{UV7e-QqeivJ(Y+S*(G3zh#Luj>)Mmj6#JxLzpz(+7K$-pAwo zIX2^Zq4dYj^eDZL$NKF4eSX&M3uXU>;=fS#eLS}R;sJk7DE&*jdX(PBWBtz;TrZUV zy@NeU@8hxlm7*6)|7y_-rT6hze`>~`6H0&TOpnt0c&z`~0oMzqe`{Bd())OJf+5FY{`OG=XAw%jO2w$szS$%f@%RY6U zx(~wF>VG!=Uf;aVY5#oE`j^e$?EcA~A1hryvgc=Z|7Z7KHvhBvmtFsC{ImM({Il`P zu3t8Pvia-%f%gfM^be}P+|wqxzh&!3)_%5rX6;MQJ(YVa2;aKD@*Fx4zNP1$%e@zb zZ{2^fgIy55WuJR8_hu0OLcc!~C*lUex8lb=n|n71-@1Qe2fHAA%l`aP@Bg^BgYXyn z{hd4^Z$S7~{?O;r_k!@P{uevg1>sxvdC$Xp9}vFv{)gw#f$%N;>8-y0yf*^jTknr} z4jl;J(v#=pJqX{*f1X1J!ngF~Ie8DlxALFo(1GwR{qemXf8Kk6@U8b>Jcka1Z|S)w zac=_Qbe z5B4bgWjwT>)o+_|`$E~@cBV(!FXN&8tbY5f+ZW3IgJu1MvR}qS`wx9b{hxgX&+u2< z?X!2=dW4VP-!J|A&d#Lvt-t8(|6;Y<2jS!XL*Gx~ehOv(iV}aJ{4e8G|LuJ3>@Uu_ zeGooAe~0nk&X>;qJNw)|2p^w6`hF4jQz-w}9PCm4m+`9qcD{7>&y@8C;p6kibyi{r_TQC#Xblh zpI@#c&&hibzLx*8kDvGr!ngb<&&hibzLx*8Z|7s@|I7P4{vdpOe!7l4C+|V{TK;G2 zr{+(dllLHeEC20$?)*Qo-TepQ|Lp!}omqDfzP0}BQ}!(g-`c;#nYe@St@vXHyC8hc{z~^BL+pR*EOi%zuhrk| z{>$cXwtvs+*O&fFsQzPp>A!^PKgxKu{~*r99fYsNe+c`WbDVo1eC_`MciT3;WLIMxWW=BmCh%{lCNFNN z%~|p5=3e+({N(>V^S=ID7k&Lfc*D@XVkP@s%*?L#jO=%Nr|>oVvL$_I({#!?>AT!3 zd`+*tDt)(SO?UIW>xJ+&z5FN6#2tkHwBz6HRhtKO4}>=iJA8R80t6gcKbrv|Jwc@WxtGv zdf6w=#2tjM#eWFSs3pv->|=zcqjIguDUaYxyI+YKCz0ZqGju-Z0F+A?iPM zhPng7*XmDp{?d~tDedj8xX#>e{@!<&Ua^)oqy_CRR6o)rSPr#&pJ)Aewsh`q^<`u|3P@e(0}E+ z=HKPK&0Bj;^Y8Xv;cN3(&6d8a-KM)_-t|KGnm!wU>A5F#J+S!?!W)MEOHZAn?t$>N z`j@T$vQM8&-wVPUhVxghD$ZTbTKrYBK575at(DD#z6*pm4DD@)Tq2;bU&#F@B* z@U{5Mezt$e>_5#_@$cqr@mI}I{JYvw_*(vF`>(8C@uN;qH$eDW{TL$uS2F(D{8g;9 z{$0#$-IeoN|1S3nUt53Kr%q9~K=@ky(zCMPY0R$HO!m9AD}2rVon`()>ISHvTgJov zKg9V@ouF=j@P?s%#g95k-2~xl^)s9Q+4Fy8&)@O*A2%z19KZF)X7S&(jT4gQFG;TgpcnpuDf~O@i!M;55mXw z!*!qE@A!p7t_R`c^UrnH?r{9vZr6kGas77Pl~azN-Ryc0KCWM`yJX(+Hx^wF!pHra z>-2Aa%D>fzTo1y>@4v?5zh3nG7b^e%W~xW!zmLcH|HI9$7fS!59X(3#ss4#Ri@pnlzbCxE z__<4;Mc)O&e{FwU{}ex-LkGgw^x6F<`}BF6cYFT;!hdB)Jpb(e&DziAe|G_ayF3Abjio#B=CC_?kZ3|780w;A`c=s@_IKHGn4{@L@Fdn)%< z5WaPP<(%c*1>sxgFLtmC!nf>m&T{U8@U`<-@#CE2+yvok=cn|X6Pz0$eCzz+p1*p6 z`@if{XQ{g&e69XUpS4e&qwaz5wfZOf)CuYa2w$ro(zDOlcOZOi|4C1tk#`_`EB`X_ z`?p2wLGAP3!tWo^`_mrbYoGr<{O5XSsy?=ShWvPs@c&-v|D=;m;V(CtMcj{IB!j$X(akJ|| zczY*P)t{Vq{ogOT9)!1dGFAPL_q+b@4!ItLw|6pC{f~CI{%?1?9)!1ddR6`3Ou7Dt zn_UmW+dIXo{^-2x|9a8&AiTYk5B179<$0HTmjB9G?E@ivE&u=OkUuAsPBua5eLS|W zx$3!Y&Zd{o(s#ZWzGgqWe-&%l?_zFtwPv#4tzF@3_O;g1cWZ9CAMba)5Wc3@Uej~k zo-@7ntn7Dtx9~N+a#i{+XHBP^m%hvW!q@cLE7Es+#&p_q(hK2hdhK;R*X?=Jsb)yu z)sDi~^xEsvcYEG+su|LEwWIJg{Yu-t8m1v->A|eynu;@bl5nN!7hidVXg2e|G<6^FNz^+4axHKdaBq zKO4X7`epMco4?uqLG`!mbq%}U0Y2U%eC__0tshzY+4`BaFFp5Eokf$}U$c7dx!ij} z_}2Y5YoB{^*TY->fbbXk{h2rsHxRxRKknJx9m4zv;am4_>|hs!Z`tqeT9$|19mwp1 z@E7|1ojf6LK=@Yv(C5U>-`VUp#$Mt`tGi3>(6^5 z5We;Pi09CO@GU)gPTqs?t^DUXbRc|7Po9(aAbczTc@7;2-_rlc?(8}Tx_2P9{vdqo z{TI)n1L0eG?n&I6K=}Cnq~8_O`v*sT|HoIl_YdXYBnltDf6(texLzpz*Y@|QpIgR* z_isz%-E))Z?>yx8h0@HjrxqTtLVQ4?A*Joa2r~B-S z+5g54w=aaR+5hIZ)c@IM@C>`}VEJ~B@Nxg=cCn-QPhwx6*_QoZZnn?-0~`}!=0?1S*}`Qti$=2vmlzoknL!q@7LbauXUdVLl{ zdJsN7e_W@}-0SD)-{PeQ;p6k)b>#UZ`7gV6K6Uo>SrFL=;p6kmb>umD55m{-U-t16 zzd`tx|KvG&55m{-U-s>M?EKefN#s8WZ&=-b>N3lzj`rxAre_Chj17EB@HQE(l+bLI^c^64t^dg0 zKh(D?PLuZUS$%f?T0i1M+(7tR{G_MPqVEFXYyDSt{j>R>oxk+-dGviCe69b>){i0T zC-Y?9Abf59@}GMW_a+d&c7MvAU)lYWoxk*%{x`dSv->AIf9dIy>6=0LTK}BgzuEnh zoxk+->GbU&e64?<;$u|FHk;4(kXnJn#PcYpcJ+j@i|t F{|)YVQosNJ literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 2a9cfc32e..a7bfbe11c 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -1,10 +1,48 @@ from opamp import opamp from gdsfactory.read.import_gds import import_gds +from PDK.util.custom_comp_utils import prec_array, add_ports_perimeter, movey, print_ports, align_comp_to_port +from gdsfactory.component import Component +from gdsfactory.cell import cell +from PDK.mappedpdk import MappedPDK +from opamp import opamp +from L_route import L_route +from via_gen import via_array + -def opamp_add_pads(): +@cell +def sky130_opamp_add_pads(sky130pdk: MappedPDK, opamp_in: Component) -> Component: """adds the MPW-5 pads to opamp. Also adds text labels and pin layers so that extraction is nice """ - pad = import_gds("mpw5_pad.gds") - + # error checking and setup + if sky130pdk.name != "sky130": + raise ValueError("This function is only for sky130 pdk") + opamp_wpads = opamp_in.copy() + opamp_wpads = movey(opamp_wpads, destination=0) + # create pad array and add to opamp + pad = import_gds("sky130_mpw5_pad.gds") + pad.name = "mpw5pad" + pad = add_ports_perimeter(pad, pdk.get_glayer("met4"),prefix="pad_") + pad_array = prec_array(pad, rows=2, columns=4, spacing=(40,120)) + pad_array_ref = pad_array.ref_center() + opamp_wpads.add(pad_array_ref) + # add via_array to vdd pin + vddarray = via_array(pdk, "met4","met5",size=(opamp_wpads.ports["vdd_pin_N"].width,opamp_wpads.ports["vdd_pin_E"].width)) + via_array_ref = opamp_wpads << vddarray + align_comp_to_port(via_array_ref,opamp_wpads.ports["vdd_pin_N"],alignment=('c','b')) + # route to the pads + opamp_wpads << L_route(pdk, opamp_wpads.ports["minus_pin_W"],pad_array_ref.ports["row1_col0_pad_S"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["plus_pin_W"],pad_array_ref.ports["row0_col0_pad_N"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias2_pin_E"],pad_array_ref.ports["row0_col1_pad_N"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias1_pin_E"],pad_array_ref.ports["row0_col2_pad_N"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["gnd_pin_top_met_E"],pad_array_ref.ports["row1_col3_pad_S"],hwidth=3,vglayer="met5") + opamp_wpads << L_route(pdk, opamp_wpads.ports["vdd_pin_N"],pad_array_ref.ports["row1_col1_pad_E"],vwidth=4,vglayer="met5") + opamp_wpads << L_route(pdk, opamp_wpads.ports["output_pin_E"],pad_array_ref.ports["row0_col3_pad_N"],hwidth=3,vglayer="met5") + return opamp_wpads +if __name__ == "__main__": + from PDK.util.standard_main import pdk + + opamp_in = opamp(pdk) + opamp_out = sky130_opamp_add_pads(pdk, opamp_in) + opamp_out.show() From 73961114ed049c3088c4cb7e9b933712bfce0377 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 18 Jul 2023 01:31:53 -0400 Subject: [PATCH 22/64] add reqs --- .../gdsfactory-gen/PDK/gf180_mapped/__init__.py | 5 ----- .../PDK/sky130_mapped/__init__.py | 5 ----- .../gdsfactory-gen/{ => pygen}/L_route.py | 6 +++--- .../gdsfactory-gen/{PDK => pygen}/__init__.py | 0 .../gdsfactory-gen/{ => pygen}/c_route.py | 6 +++--- .../{ => pygen}/common_source_amp.py | 0 .../{ => pygen}/current_mirror.py | 4 ++-- .../gdsfactory-gen/{ => pygen}/diff_pair.py | 8 ++++---- .../gdsfactory-gen/{ => pygen}/fet.py | 8 ++++---- .../gdsfactory-gen/{ => pygen}/guardring.py | 10 +++++----- .../gdsfactory-gen/{ => pygen}/mimcap.py | 8 ++++---- .../gdsfactory-gen/{ => pygen}/opamp.py | 8 ++++---- .../{PDK/util => pygen/pdk}/__init__.py | 0 .../pygen/pdk/gf180_mapped/__init__.py | 5 +++++ .../pdk}/gf180_mapped/gf180_mapped.py | 4 ++-- .../pdk}/gf180_mapped/gf180mcu.drc | 2 +- .../pdk}/gf180_mapped/gf180mcu_drc.lydrc | 4 ++-- .../{PDK => pygen/pdk}/gf180_mapped/grules.py | 2 +- .../{PDK => pygen/pdk}/mappedpdk.py | 8 ++++---- .../pygen/pdk/sky130_mapped/__init__.py | 5 +++++ .../{PDK => pygen/pdk}/sky130_mapped/grules.py | 2 +- .../pdk}/sky130_mapped/sky130.lydrc | 0 .../pdk}/sky130_mapped/sky130_add_npc.py | 0 .../pdk}/sky130_mapped/sky130_mapped.py | 6 +++--- .../gdsfactory-gen/pygen/pdk/util/__init__.py | 0 .../pdk}/util/custom_comp_utils.py | 0 .../{PDK => pygen/pdk}/util/print_rules.py | 2 +- .../{PDK => pygen/pdk}/util/snap_to_grid.py | 0 .../{PDK => pygen/pdk}/util/standard_main.py | 8 ++++---- .../gdsfactory-gen/pygen/requirements.txt | 4 ++++ .../{ => pygen}/straight_route.py | 6 +++--- .../gdsfactory-gen/{ => pygen}/via_gen.py | 10 +++++----- .../gdsfactory-gen/sky130_nist_tapeout.py | 17 ++++++++++------- 33 files changed, 80 insertions(+), 73 deletions(-) delete mode 100644 openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/__init__.py delete mode 100644 openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/__init__.py rename openfasoc/generators/gdsfactory-gen/{ => pygen}/L_route.py (97%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen}/__init__.py (100%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/c_route.py (98%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/common_source_amp.py (100%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/current_mirror.py (99%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/diff_pair.py (98%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/fet.py (99%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/guardring.py (95%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/mimcap.py (95%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/opamp.py (99%) rename openfasoc/generators/gdsfactory-gen/{PDK/util => pygen/pdk}/__init__.py (100%) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/gf180_mapped/gf180_mapped.py (93%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/gf180_mapped/gf180mcu.drc (99%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/gf180_mapped/gf180mcu_drc.lydrc (90%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/gf180_mapped/grules.py (99%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/mappedpdk.py (97%) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/sky130_mapped/grules.py (99%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/sky130_mapped/sky130.lydrc (100%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/sky130_mapped/sky130_add_npc.py (100%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/sky130_mapped/sky130_mapped.py (89%) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/pdk/util/__init__.py rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/util/custom_comp_utils.py (100%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/util/print_rules.py (98%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/util/snap_to_grid.py (100%) rename openfasoc/generators/gdsfactory-gen/{PDK => pygen/pdk}/util/standard_main.py (75%) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/requirements.txt rename openfasoc/generators/gdsfactory-gen/{ => pygen}/straight_route.py (95%) rename openfasoc/generators/gdsfactory-gen/{ => pygen}/via_gen.py (98%) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/__init__.py deleted file mode 100644 index fc6ab5b7a..000000000 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Usage at the package level: from PDK.gf180_mapped import gf180_mapped_pdk -""" - -from PDK.gf180_mapped.gf180_mapped import gf180_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/__init__.py deleted file mode 100644 index 7c4f63767..000000000 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Usage at the package level: from PDK.sky130_mapped import sky130_mapped_pdk -""" - -from PDK.sky130_mapped.sky130_mapped import sky130_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/L_route.py b/openfasoc/generators/gdsfactory-gen/pygen/L_route.py similarity index 97% rename from openfasoc/generators/gdsfactory-gen/L_route.py rename to openfasoc/generators/gdsfactory-gen/pygen/L_route.py index 74a527401..cb51303de 100644 --- a/openfasoc/generators/gdsfactory-gen/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/L_route.py @@ -1,11 +1,11 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from typing import Optional, Union from via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular, to_decimal, to_float, prec_ref_center +from pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular, to_decimal, to_float, prec_ref_center from decimal import Decimal @@ -106,7 +106,7 @@ def L_route( if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met1"),size=(1,1)).ref() routebetweentop.movey(-4).movex(7) diff --git a/openfasoc/generators/gdsfactory-gen/PDK/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/__init__.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/PDK/__init__.py rename to openfasoc/generators/gdsfactory-gen/pygen/__init__.py diff --git a/openfasoc/generators/gdsfactory-gen/c_route.py b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py similarity index 98% rename from openfasoc/generators/gdsfactory-gen/c_route.py rename to openfasoc/generators/gdsfactory-gen/pygen/c_route.py index 6f76dee7d..a42dcf29f 100644 --- a/openfasoc/generators/gdsfactory-gen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py @@ -1,13 +1,13 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from typing import Optional, Union from math import isclose from via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from PDK.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_orientation, get_orientation +from pdk.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_orientation, get_orientation from pydantic import validate_arguments @@ -194,7 +194,7 @@ def c_route( return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk routebetweentop = copy(rectangle(layer=pdk.get_glayer("met1"))).ref() routebetweentop.movey(10) diff --git a/openfasoc/generators/gdsfactory-gen/common_source_amp.py b/openfasoc/generators/gdsfactory-gen/pygen/common_source_amp.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/common_source_amp.py rename to openfasoc/generators/gdsfactory-gen/pygen/common_source_amp.py diff --git a/openfasoc/generators/gdsfactory-gen/current_mirror.py b/openfasoc/generators/gdsfactory-gen/pygen/current_mirror.py similarity index 99% rename from openfasoc/generators/gdsfactory-gen/current_mirror.py rename to openfasoc/generators/gdsfactory-gen/pygen/current_mirror.py index 58fd5ac42..5dc8a01f0 100644 --- a/openfasoc/generators/gdsfactory-gen/current_mirror.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/current_mirror.py @@ -6,8 +6,8 @@ import sky130 gf.config.rich_output() -PDK = get_generic_pdk() -PDK.activate() +pdk = get_generic_pdk() +pdk.activate() pwell_drawing = (64, 13) dnwell_drawing = (64, 18) diff --git a/openfasoc/generators/gdsfactory-gen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py similarity index 98% rename from openfasoc/generators/gdsfactory-gen/diff_pair.py rename to openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index a9ce9cdd4..afc4e4dcb 100644 --- a/openfasoc/generators/gdsfactory-gen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -6,14 +6,14 @@ from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle from fet import nmos, pmos -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from typing import Optional from gdsfactory.routing.route_quad import route_quad from gdsfactory.routing.route_sharp import route_sharp from c_route import c_route -from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, movex, movey, get_orientation, set_orientation, evaluate_bbox, align_comp_to_port +from pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, movex, movey, get_orientation, set_orientation, evaluate_bbox, align_comp_to_port from via_gen import via_stack -from PDK.util.snap_to_grid import component_snap_to_grid +from pdk.util.snap_to_grid import component_snap_to_grid #diffpair << route_sharp(b_topr.ports["multiplier_0_source_E"],viam2m3_ref_tr.ports["bottom_met_W"], width=connect_width, layer=pdk.get_glayer("met2"), path_type="manhattan") @@ -148,7 +148,7 @@ def diff_pair( if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk mycomp = diff_pair(pdk,length=1,width=6,fingers=4) mycomp.show() print_ports(mycomp) diff --git a/openfasoc/generators/gdsfactory-gen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py similarity index 99% rename from openfasoc/generators/gdsfactory-gen/fet.py rename to openfasoc/generators/gdsfactory-gen/pygen/fet.py index 73226bbc3..e923cb239 100644 --- a/openfasoc/generators/gdsfactory-gen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -2,14 +2,14 @@ from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from typing import Optional, Union from via_gen import via_array, via_stack from guardring import tapring from pydantic import validate_arguments -from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center +from pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center from c_route import c_route -from PDK.util.snap_to_grid import component_snap_to_grid +from pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal @@ -424,7 +424,7 @@ def pmos( if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk showmult = True if showmult: diff --git a/openfasoc/generators/gdsfactory-gen/guardring.py b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py similarity index 95% rename from openfasoc/generators/gdsfactory-gen/guardring.py rename to openfasoc/generators/gdsfactory-gen/pygen/guardring.py index ebbb0ad72..c8b9d8f7f 100644 --- a/openfasoc/generators/gdsfactory-gen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py @@ -1,14 +1,14 @@ -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from gdsfactory.components.rectangular_ring import rectangular_ring from via_gen import via_array, via_stack from typing import Optional -from PDK.util.custom_comp_utils import print_ports, to_decimal, to_float, evaluate_bbox -from PDK.util.snap_to_grid import component_snap_to_grid +from pdk.util.custom_comp_utils import print_ports, to_decimal, to_float, evaluate_bbox +from pdk.util.snap_to_grid import component_snap_to_grid from L_route import L_route -from PDK.util.snap_to_grid import snap_to_2xgrid +from pdk.util.snap_to_grid import snap_to_2xgrid @cell @@ -112,7 +112,7 @@ def tapring( if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk mycomp = Component("displacment test") tapref = mycomp << tapring(pdk, sdlayer="p+s/d", enclosed_rectangle=(75.9, 31.0)) diff --git a/openfasoc/generators/gdsfactory-gen/mimcap.py b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py similarity index 95% rename from openfasoc/generators/gdsfactory-gen/mimcap.py rename to openfasoc/generators/gdsfactory-gen/pygen/mimcap.py index a5d0bd5c2..71ea20435 100644 --- a/openfasoc/generators/gdsfactory-gen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py @@ -1,14 +1,14 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from typing import Optional from via_gen import via_array -from PDK.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter, prec_array, print_ports, to_decimal, to_float +from pdk.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter, prec_array, print_ports, to_decimal, to_float from pydantic import validate_arguments from straight_route import straight_route from decimal import ROUND_UP, Decimal -from PDK.util.snap_to_grid import snap_to_2xgrid +from pdk.util.snap_to_grid import snap_to_2xgrid @validate_arguments @@ -98,7 +98,7 @@ def mimcap_array(pdk: MappedPDK, rows: int, columns: int, size: tuple[float,floa if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk mycap = mimcap_array(pdk,1,1) mycap.show() diff --git a/openfasoc/generators/gdsfactory-gen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py similarity index 99% rename from openfasoc/generators/gdsfactory-gen/opamp.py rename to openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 1bffdc9b1..b18230aa3 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -1,7 +1,7 @@ from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from typing import Optional from fet import nmos, pmos, multiplier from diff_pair import diff_pair @@ -11,10 +11,10 @@ from c_route import c_route from via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad -from PDK.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, movey, set_orientation, to_decimal, to_float, move, align_comp_to_port +from pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, movey, set_orientation, to_decimal, to_float, move, align_comp_to_port from sys import exit from straight_route import straight_route -from PDK.util.snap_to_grid import component_snap_to_grid +from pdk.util.snap_to_grid import component_snap_to_grid @cell @@ -311,7 +311,7 @@ def opamp( if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk iterate=False # TO TRY: diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/__init__.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/PDK/util/__init__.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/__init__.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py new file mode 100644 index 000000000..4c5516c8a --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py @@ -0,0 +1,5 @@ +""" +Usage at the package level: from pdk.gf180_mapped import gf180_mapped_pdk +""" + +from pdk.gf180_mapped.gf180_mapped import gf180_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py similarity index 93% rename from openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py index 45d0211d8..06730b644 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py @@ -3,8 +3,8 @@ """ from gf180.layers import LAYER # , LAYER_VIEWS -from PDK.gf180_mapped.grules import grulesobj -from PDK.mappedpdk import MappedPDK +from pdk.gf180_mapped.grules import grulesobj +from pdk.mappedpdk import MappedPDK from pathlib import Path LAYER = LAYER.dict() diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu.drc b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu.drc similarity index 99% rename from openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu.drc rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu.drc index 4c86b4027..38542b8ed 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu.drc +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu.drc @@ -1,4 +1,4 @@ -# Copyright 2022 GlobalFoundries PDK Authors +# Copyright 2022 GlobalFoundries pdk Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu_drc.lydrc b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu_drc.lydrc similarity index 90% rename from openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu_drc.lydrc rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu_drc.lydrc index 066552ec3..f530192ec 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/gf180mcu_drc.lydrc +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu_drc.lydrc @@ -11,11 +11,11 @@ true - submenu>end("gf180mcu PDK").end + submenu>end("gf180mcu pdk").end dsl drc-dsl-xml -# Copyright 2022 GlobalFoundries PDK Authors +# Copyright 2022 GlobalFoundries pdk Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py similarity index 99% rename from openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/grules.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py index 689d55ac8..420887797 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/gf180_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py @@ -1,4 +1,4 @@ -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK grulesobj = dict() for glayer in MappedPDK.valid_glayers: diff --git a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py similarity index 97% rename from openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py index 7606e7ee8..78488d8e6 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py @@ -14,7 +14,7 @@ import xml.etree.ElementTree as ET class MappedPDK(Pdk): - """Inherits everything from the PDK class but also requires mapping to glayers + """Inherits everything from the pdk class but also requires mapping to glayers glayers are generic layers which can be returned with get_glayer(name: str) has_required_glayers(list[str]) is used to verify all required generic layers are present""" @@ -76,7 +76,7 @@ def drc( Also saves detailed results to output_dir_or_file location as lyrdb layout can be passed as a file path or gdsfactory component""" if not self.klayout_lydrc_file: - raise NotImplementedError("no drc script for this PDK") + raise NotImplementedError("no drc script for this pdk") # find layout gds file path tempdir = None if isinstance(layout, Component): @@ -166,7 +166,7 @@ def layer_to_glayer(self, layer: tuple[int, int]) -> str: # TODO: implement LayerSpec type def get_glayer(self, layer: str) -> Layer: - """Returns the PDK layer from the generic layer name""" + """Returns the pdk layer from the generic layer name""" return self.get_layer(self.glayers[layer]) def get_grule( @@ -208,7 +208,7 @@ def from_gf_pdk( grid is the grid size in nm""" # input type and value validation if not isinstance(gfpdk, Pdk): - raise TypeError("from_gf_pdk: gfpdk arg only accepts GDSFactory PDK type") + raise TypeError("from_gf_pdk: gfpdk arg only accepts GDSFactory pdk type") # create argument dictionary passargs = dict() # pdk args diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py new file mode 100644 index 000000000..0ceb14115 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py @@ -0,0 +1,5 @@ +""" +Usage at the package level: from pdk.sky130_mapped import sky130_mapped_pdk +""" + +from pdk.sky130_mapped.sky130_mapped import sky130_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py similarity index 99% rename from openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py index 726717a55..4af1ef4d4 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py @@ -1,4 +1,4 @@ -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK grulesobj = dict() for glayer in MappedPDK.valid_glayers: diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130.lydrc b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130.lydrc similarity index 100% rename from openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130.lydrc rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130.lydrc diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_add_npc.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py similarity index 89% rename from openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py index 302ba5677..03a9b8ed4 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py @@ -3,10 +3,10 @@ """ import sky130 -from PDK.mappedpdk import MappedPDK -from PDK.sky130_mapped.grules import grulesobj +from pdk.mappedpdk import MappedPDK +from pdk.sky130_mapped.grules import grulesobj from pathlib import Path -from PDK.sky130_mapped.sky130_add_npc import sky130_add_npc +from pdk.sky130_mapped.sky130_add_npc import sky130_add_npc sky130.PDK.layers["capm3"] = (89, 44) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/PDK/util/custom_comp_utils.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py similarity index 98% rename from openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py index 28ed8b702..2962423e7 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/print_rules.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py @@ -101,7 +101,7 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): output = create_ruledeck_python_dictionary_definition(csvtoread) print(output) if args.code: - append_front = """from PDK.mappedpdk import MappedPDK\n + append_front = """from pdk.mappedpdk import MappedPDK\n grulesobj = dict() for glayer in MappedPDK.valid_glayers: grulesobj[glayer] = dict((x, None) for x in MappedPDK.valid_glayers)\n diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/PDK/util/snap_to_grid.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py diff --git a/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py similarity index 75% rename from openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py rename to openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py index b8cff2a23..86f6488ad 100644 --- a/openfasoc/generators/gdsfactory-gen/PDK/util/standard_main.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py @@ -6,24 +6,24 @@ sky130 generator main function can import this module as follows: -from PDK.util.standard_main import pdk +from pdk.util.standard_main import pdk the pdk is the pdk object which defaults to sky130 if none selected """ from argparse import ArgumentParser -parser = ArgumentParser(prog="PDK agnostic generator") +parser = ArgumentParser(prog="pdk agnostic generator") parser.add_argument("--pdk", "-p", choices=["sky130", "gf180"]) args = parser.parse_known_args() pdk = None if args[0].pdk == "gf180": - from PDK.gf180_mapped import gf180_mapped_pdk + from pdk.gf180_mapped import gf180_mapped_pdk pdk = gf180_mapped_pdk else: #default to sky130 - from PDK.sky130_mapped import sky130_mapped_pdk + from pdk.sky130_mapped import sky130_mapped_pdk pdk = sky130_mapped_pdk pdk.activate() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/requirements.txt b/openfasoc/generators/gdsfactory-gen/pygen/requirements.txt new file mode 100644 index 000000000..8d1e2d891 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/requirements.txt @@ -0,0 +1,4 @@ +gf180 +pydantic==1.10.11 +sky130 +gdsfactory>=6.114.0 diff --git a/openfasoc/generators/gdsfactory-gen/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py similarity index 95% rename from openfasoc/generators/gdsfactory-gen/straight_route.py rename to openfasoc/generators/gdsfactory-gen/pygen/straight_route.py index 9b15b3dbe..2abae9f57 100644 --- a/openfasoc/generators/gdsfactory-gen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py @@ -1,11 +1,11 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from typing import Optional from via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from PDK.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan, set_orientation +from pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan, set_orientation @cell @@ -80,7 +80,7 @@ def straight_route( if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met3"),size=(1,1)).ref() routebetweentop.movex(20).movey(-3) diff --git a/openfasoc/generators/gdsfactory-gen/via_gen.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py similarity index 98% rename from openfasoc/generators/gdsfactory-gen/via_gen.py rename to openfasoc/generators/gdsfactory-gen/pygen/via_gen.py index a2c6f2011..9b0cd48fd 100644 --- a/openfasoc/generators/gdsfactory-gen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py @@ -2,11 +2,11 @@ from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from pydantic import validate_arguments -from PDK.mappedpdk import MappedPDK +from pdk.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from PDK.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move -from PDK.util.snap_to_grid import component_snap_to_grid +from pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move +from pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal from typing import Literal @@ -248,8 +248,8 @@ def via_array( if __name__ == "__main__": - from PDK.util.standard_main import pdk, parser - from PDK.util.custom_comp_utils import print_ports + from pdk.util.standard_main import pdk, parser + from pdk.util.custom_comp_utils import print_ports from pathlib import Path # default behavoir is to run one design and exit diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index a7bfbe11c..fb83b2bb9 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -1,12 +1,15 @@ -from opamp import opamp +import sys +# path to pygen +sys.path.append('./pygen') + from gdsfactory.read.import_gds import import_gds -from PDK.util.custom_comp_utils import prec_array, add_ports_perimeter, movey, print_ports, align_comp_to_port +from pygen.pdk.util.custom_comp_utils import prec_array, add_ports_perimeter, movey, print_ports, align_comp_to_port from gdsfactory.component import Component from gdsfactory.cell import cell -from PDK.mappedpdk import MappedPDK -from opamp import opamp -from L_route import L_route -from via_gen import via_array +from pygen.pdk.mappedpdk import MappedPDK +from pygen.opamp import opamp +from pygen.L_route import L_route +from pygen.via_gen import via_array @cell @@ -41,7 +44,7 @@ def sky130_opamp_add_pads(sky130pdk: MappedPDK, opamp_in: Component) -> Componen return opamp_wpads if __name__ == "__main__": - from PDK.util.standard_main import pdk + from pygen.pdk.util.standard_main import pdk opamp_in = opamp(pdk) opamp_out = sky130_opamp_add_pads(pdk, opamp_in) From 7353e0bdadbece928568cd5fed64de2065f53711 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Thu, 20 Jul 2023 03:47:40 -0400 Subject: [PATCH 23/64] generate training data Co-authored-by: Ryan Wans <37909218+ryanrocket@users.noreply.github.com> --- .../generators/gdsfactory-gen/extract.bash | 45 ++ .../gdsfactory-gen/opamp_perf_eval.sp | 91 ++++ .../gdsfactory-gen/pygen/c_route.py | 1 + .../generators/gdsfactory-gen/pygen/opamp.py | 9 +- .../pygen/pdk/util/snap_to_grid.py | 1 + .../pygen/pdk/util/standard_main.py | 2 + .../gdsfactory-gen/pygen/via_gen.py | 3 +- .../gdsfactory-gen/sky130A/sky130A.magicrc | 86 ++++ .../gdsfactory-gen/sky130A/sky130A_setup.tcl | 419 ++++++++++++++++++ .../gdsfactory-gen/sky130_nist_tapeout.py | 263 ++++++++++- 10 files changed, 901 insertions(+), 19 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/extract.bash create mode 100644 openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp create mode 100644 openfasoc/generators/gdsfactory-gen/sky130A/sky130A.magicrc create mode 100644 openfasoc/generators/gdsfactory-gen/sky130A/sky130A_setup.tcl diff --git a/openfasoc/generators/gdsfactory-gen/extract.bash b/openfasoc/generators/gdsfactory-gen/extract.bash new file mode 100644 index 000000000..8784d4bfd --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/extract.bash @@ -0,0 +1,45 @@ +#!/bin/bash +#export PDK_ROOT=/usr/local/share/pdk/ +export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ + +# generate lvs netlist using magic +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $1 +load $2 +flatten $2_flat +load $2_flat +gds write $2_flat.gds +EOF + +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $2_flat.gds +load $2_flat +flatten $2 +load $2 +gds write $2.gds +EOF + + +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $2.gds +load $2 +extract all +ext2spice lvs +ext2spice merge aggressive +ext2spice cthresh 0 +ext2spice rthresh 0 +ext2spice -o $2_pex.spice +exit +EOF + +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $2.gds +load $2 +extract all +ext2spice merge aggressive +ext2spice -o $2_pex.spice +exit +EOF + +rm -f $2_flat.gds +rm -f $2.ext diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp new file mode 100644 index 000000000..29a7feb28 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp @@ -0,0 +1,91 @@ +* opamp_perf_eval.sp +** OpenFASOC Team 2023 + +** Define global parameters for altering +.param b1 = 0.8 +.param b2 = 0.75 + +** Define netlist +Vsupply VDD GND 1.8 +.save i(vsupply) +V2 vin net1 AC 0.5 +.save i(v2) +V3 vip net1 AC -0.5 +.save i(v3) +Vbias2 bias2 GND {b2} +.save i(vbias2) +Vbias1 bias1 GND {b1} +.save i(vbias1) +Vindc net1 GND 1 +.save i(vindc) + +** Import SKY130 libs (this should be replaced with a path relative to some env variable) +** .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt +** .include /usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + +.lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt +.include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + +** Import opamp subcircuit +.include opamp_pex.spice +XDUT vin vip bias1 bias2 vo VDD GND opamp + +* parameter sweep + +** Run initial analysis +.save all +.options savecurrents +.ac dec 100 1k 10G + +.control +** Set initial values +set filetype = ascii +set appendwrite = 1 + +let maxGain = -1 +let maxBv1 = -1 +let maxBv2 = -1 + +** Tune these +let biasVoltageMin = 0.4 +let biasVoltageMax = 1.6 +let biasVoltageStep = 0.05 + +let biasVoltage1 = biasVoltageMin +let biasVoltage2 = biasVoltageMin + +** Sweep bias voltages +while biasVoltage1 le biasVoltageMax + ** Alter parameters and reset top-level ckt + alterparam b1 = $&biasVoltage1 + reset + while biasVoltage2 le biasVoltageMax + alterparam b2 = $&biasVoltage2 + reset + ** Run analysis + run + ** Find unity-gain bw point + meas ac ugb_f when vdb(vo)=0 + ** Find local maxima + if ( ugb_f ge maxGain ) + let maxGain = ugb_f + let maxBv1 = biasVoltage1 + let maxBv2 = biasVoltage2 + end + let biasVoltage2 = biasVoltage2 + biasVoltageStep + end + ** Reset counter for bv2 loop + let biasVoltage2 = biasVoltageMin + let biasVoltage1 = biasVoltage1 + biasVoltageStep +end + +** Export global maxima +wrdata output.txt maxGain maxBv1 maxBv2 + +run +display +.endc + +.GLOBAL GND +.GLOBAL VDD +.end diff --git a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py index a42dcf29f..54296bc91 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py @@ -184,6 +184,7 @@ def c_route( croute << e2_extension_comp if cwidth: route_ports = [set_port_width(port_,cwidth) for port_ in route_ports] + route_ports[0].width = route_ports[1].width = max(route_ports[0].width, route_ports[1].width) cconnection = croute << route_quad(route_ports[0],route_ports[1],layer=pdk.get_glayer(cglayer)) for i,port_to_add in enumerate(route_ports): orta = get_orientation(port_to_add.orientation) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index b18230aa3..8db7f4f91 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -194,7 +194,7 @@ def opamp( pmos_comps << L_route(pdk,pcomps_route_A_drain.ports["con_S"], Aextra_top_connection.ports["e1"],viaoffset=(False,True)) # connect source of B to drain of 2R pcomps_route_B_source_extension = pmos_comps.xmax-max(LRsourcesPorts[-1].center[0],ptop_AB.ports["R_source_E"].center[0])+_max_metal_seperation_ps - pmos_comps << c_route(pdk, ptop_AB.ports["R_source_E"], LRdrainsPorts[-1],extension=pcomps_route_B_source_extension,viaoffset=(True,False)) + mimcap_connection_ref = pmos_comps << c_route(pdk, ptop_AB.ports["R_source_E"], LRdrainsPorts[-1],extension=pcomps_route_B_source_extension,viaoffset=(True,False)) bottom_pcompB_floating_port = set_orientation(movey(movex(pbottom_AB.ports["L_source_E"].copy(),4*_max_metal_seperation_ps), destination=Aextra_top_connection.ports["e1"].center[1]+Aextra_top_connection.ports["e1"].width+_max_metal_seperation_ps),"S") pmos_bsource_2Rdrain_v = pmos_comps << L_route(pdk,pbottom_AB.ports["L_source_E"],bottom_pcompB_floating_port,vglayer="met3") pmos_comps << c_route(pdk, LRdrainsPorts[-1], set_orientation(bottom_pcompB_floating_port,"E"),extension=pcomps_route_B_source_extension,viaoffset=(True,False)) @@ -236,8 +236,10 @@ def opamp( tapcenter_rect = [(evaluate_bbox(pmos_comps)[0] + 1), (evaluate_bbox(pmos_comps)[1] + 1)] topptap = pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") + pmos_comps.add_ports(mimcap_connection_ref.get_ports_list(),prefix="mimcap_connection_") pmos_comps_ref = opamp_top << pmos_comps pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) + opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") # route halfmultp source, drain, and gate together, place vdd pin in the middle halfmultp_Lsrcport = opamp_top.ports["pcomps_halfp_l_multiplier_0_source_con_N"] @@ -297,10 +299,11 @@ def opamp( mimcaps_ref.movex(opamp_top.xmax + displace_fact + mim_cap_size[0]/2) mimcaps_ref.movey(pmos_comps_ref.ymin + mim_cap_size[1]/2) # connect mimcap to gnd - gnd_pin_mimcap_route = opamp_top << L_route(pdk,mimcaps_ref.ports["row0_col1_top_met_S"],_cref.ports["con_E"],hwidth=3) + opamp_top << c_route(pdk,opamp_top.ports["pcomps_mimcap_connection_con_N"],mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"], extension=_max_metal_seperation_ps, fullbottom=True) opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) # return - opamp_top.add_ports(gnd_pin_mimcap_route.get_ports_list(), prefix="gnd_pin_") + opamp_top.add_ports(_cref.get_ports_list(), prefix="gnd_route_") + opamp_top.add_ports(gndpin.get_ports_list(), prefix="gnd_pin_") opamp_top.add_ports(vddpin.get_ports_list(), prefix="vdd_pin_") opamp_top.add_ports(vbias1.get_ports_list(), prefix="vbias1_pin_") opamp_top.add_ports(vbias2.get_ports_list(), prefix="vbias2_pin_") diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py index 7ad61a2d3..7301448dc 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py @@ -45,6 +45,7 @@ def snap_to_2xgrid(dims: Union[list[Union[float,Decimal]], Union[float,Decimal]] dims = a list OR single number specifying the dimensions to snap to grid return_type = return a decimal, float, or the same type that was passed to the function """ + return [round(dim,2) for dim in dims] dims = dims if isinstance(dims, Iterable) else [dims] dimtype_in = None nm = 2 * 1000 * int(get_grid_size()) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py index 86f6488ad..b441a03a3 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py @@ -19,6 +19,8 @@ pdk = None +# WARNING: DO NOT CHANGE standard behavoir (importing sky130 by default) + if args[0].pdk == "gf180": from pdk.gf180_mapped import gf180_mapped_pdk pdk = gf180_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py index 9b0cd48fd..696738b0d 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py @@ -6,7 +6,7 @@ from math import floor from typing import Optional, Union from pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move -from pdk.util.snap_to_grid import component_snap_to_grid +from pdk.util.snap_to_grid import component_snap_to_grid, snap_to_2xgrid from decimal import Decimal from typing import Literal @@ -176,6 +176,7 @@ def via_array( top_met_...all edges bottom_met_...all edges (only if lay_bottom is specified) """ + size = snap_to_2xgrid(size) tmpsize = list(size) for i in range(2): if isinstance(size[i],Union[float,int]): diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/sky130A.magicrc b/openfasoc/generators/gdsfactory-gen/sky130A/sky130A.magicrc new file mode 100644 index 000000000..9bb1dbd6c --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/sky130A/sky130A.magicrc @@ -0,0 +1,86 @@ +puts stdout "Sourcing design .magicrc for technology sky130A ..." + +# Put grid on 0.005 pitch. This is important, as some commands don't +# rescale the grid automatically (such as lef read?). + +set scalefac [tech lambda] +if {[lindex $scalefac 1] < 2} { + scalegrid 1 2 +} + +# drc off +drc euclidean on +# Change this to a fixed number for repeatable behavior with GDS writes +# e.g., "random seed 12345" +catch {random seed} + +# Turn off the scale option on ext2spice or else it conflicts with the +# scale in the model files. +ext2spice scale off + +# Allow override of PDK path from environment variable PDKPATH +if {[catch {set PDKPATH $env(PDKPATH)}]} { + set PDKPATH $env(PDK_ROOT)/sky130A +} + +# loading technology +tech load $PDKPATH/libs.tech/magic/sky130A.tech + +# load device generator +source $PDKPATH/libs.tech/magic/sky130A.tcl + +# load bind keys (optional) +# source $PDKPATH/libs.tech/magic/sky130A-BindKeys + +# set units to lambda grid +snap lambda + +# set sky130 standard power, ground, and substrate names +set VDD VPWR +set GND VGND +set SUB VSUBS + +# Allow override of type of magic library views used, "mag" or "maglef", +# from environment variable MAGTYPE + +if {[catch {set MAGTYPE $env(MAGTYPE)}]} { + set MAGTYPE mag +} + +# add path to reference cells +if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} { + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc_t18 + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_ml_xx_hd + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_sram_macros +} else { + addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_osu_sc_t18/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_sram_macros/${MAGTYPE} +} + +# add path to GDS cells + +# add path to IP from catalog. This procedure defined in the PDK script. +catch {magic::query_mylib_ip} +# add path to local IP from user design space. Defined in the PDK script. +catch {magic::query_my_projects} diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/sky130A_setup.tcl b/openfasoc/generators/gdsfactory-gen/sky130A/sky130A_setup.tcl new file mode 100644 index 000000000..ede844e37 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/sky130A/sky130A_setup.tcl @@ -0,0 +1,419 @@ +#--------------------------------------------------------------- +# Setup file for netgen LVS +# SkyWater sky130A +#--------------------------------------------------------------- +permute default +property default +property parallel none + +# Allow override of default #columns in the output format. +catch {format $env(NETGEN_COLUMNS)} + +#--------------------------------------------------------------- +# For the following, get the cell lists from +# circuit1 and circuit2. +#--------------------------------------------------------------- + +set cells1 [cells list -all -circuit1] +set cells2 [cells list -all -circuit2] + +# NOTE: In accordance with the LVS manager GUI, the schematic is +# always circuit2, so some items like property "par1" only need to +# be specified for circuit2. + +#------------------------------------------- +# Resistors (except metal) +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__res_iso_pw +lappend devices sky130_fd_pr__res_high_po_0p35 +lappend devices sky130_fd_pr__res_high_po_0p69 +lappend devices sky130_fd_pr__res_high_po_1p41 +lappend devices sky130_fd_pr__res_high_po_2p85 +lappend devices sky130_fd_pr__res_high_po_5p73 +lappend devices sky130_fd_pr__res_high_po +lappend devices sky130_fd_pr__res_xhigh_po_0p35 +lappend devices sky130_fd_pr__res_xhigh_po_0p69 +lappend devices sky130_fd_pr__res_xhigh_po_1p41 +lappend devices sky130_fd_pr__res_xhigh_po_2p85 +lappend devices sky130_fd_pr__res_xhigh_po_5p73 +lappend devices sky130_fd_pr__res_xhigh_po +lappend devices sky130_fd_pr__res_generic_nd +lappend devices sky130_fd_pr__res_generic_pd +lappend devices sky130_fd_pr__res_generic_nd__hv +lappend devices sky130_fd_pr__res_generic_pd__hv +lappend devices mrdn_hv mrdp_hv + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + permute "-circuit1 $dev" 1 2 + property "-circuit1 $dev" series enable + property "-circuit1 $dev" series {w critical} + property "-circuit1 $dev" series {l add} + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {l critical} + property "-circuit1 $dev" parallel {w add} + property "-circuit1 $dev" parallel {value par} + property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit1 $dev" delete mult + } + if {[lsearch $cells2 $dev] >= 0} { + permute "-circuit2 $dev" 1 2 + property "-circuit2 $dev" series enable + property "-circuit2 $dev" series {w critical} + property "-circuit2 $dev" series {l add} + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {l critical} + property "-circuit2 $dev" parallel {w add} + property "-circuit2 $dev" parallel {value par} + property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit2 $dev" delete mult + } +} + +#------------------------------------------- +# MRM (metal) resistors and poly resistor +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__res_generic_po +lappend devices sky130_fd_pr__res_generic_l1 +lappend devices sky130_fd_pr__res_generic_m1 +lappend devices sky130_fd_pr__res_generic_m2 +lappend devices sky130_fd_pr__res_generic_m3 +lappend devices sky130_fd_pr__res_generic_m4 +lappend devices sky130_fd_pr__res_generic_m5 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + permute "-circuit1 $dev" end_a end_b + property "-circuit1 $dev" series enable + property "-circuit1 $dev" series {w critical} + property "-circuit1 $dev" series {l add} + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {l critical} + property "-circuit1 $dev" parallel {w add} + property "-circuit1 $dev" parallel {value par} + property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit1 $dev" delete mult + } + if {[lsearch $cells2 $dev] >= 0} { + permute "-circuit2 $dev" end_a end_b + property "-circuit2 $dev" series enable + property "-circuit2 $dev" series {w critical} + property "-circuit2 $dev" series {l add} + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {l critical} + property "-circuit2 $dev" parallel {w add} + property "-circuit2 $dev" parallel {value par} + property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit2 $dev" delete mult + } +} + +#------------------------------------------- +# (MOS) transistors +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__nfet_01v8 +lappend devices sky130_fd_pr__nfet_01v8_lvt +lappend devices sky130_fd_bs_flash__special_sonosfet_star +lappend devices sky130_fd_pr__nfet_g5v0d10v5 +lappend devices sky130_fd_pr__nfet_05v0_nvt +lappend devices sky130_fd_pr__pfet_01v8 +lappend devices sky130_fd_pr__pfet_01v8_lvt +lappend devices sky130_fd_pr__pfet_01v8_mvt +lappend devices sky130_fd_pr__pfet_01v8_hvt +lappend devices sky130_fd_pr__pfet_g5v0d10v5 +lappend devices sky130_fd_pr__special_pfet_pass +lappend devices sky130_fd_pr__special_nfet_pass +lappend devices sky130_fd_pr__special_nfet_latch +lappend devices sky130_fd_pr__cap_var_lvt +lappend devices sky130_fd_pr__cap_var_hvt +lappend devices sky130_fd_pr__cap_var +lappend devices sky130_fd_pr__nfet_20v0_nvt +lappend devices sky130_fd_pr__nfet_20v0 +lappend devices sky130_fd_pr__pfet_20v0 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + permute "-circuit1 $dev" 1 3 + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {l critical} + property "-circuit1 $dev" parallel {w add} + property "-circuit1 $dev" tolerance {w 0.01} {l 0.01} + # Ignore these properties + property "-circuit1 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs + } + if {[lsearch $cells2 $dev] >= 0} { + permute "-circuit2 $dev" 1 3 + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {l critical} + property "-circuit2 $dev" parallel {w add} + property "-circuit2 $dev" tolerance {w 0.01} {l 0.01} + # Ignore these properties + property "-circuit2 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs + } +} + +#------------------------------------------- +# diodes +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__diode_pw2nd_05v5 +lappend devices sky130_fd_pr__diode_pw2nd_05v5_lvt +lappend devices sky130_fd_pr__diode_pw2nd_05v5_nvt +lappend devices sky130_fd_pr__diode_pd2nw_05v5 +lappend devices sky130_fd_pr__diode_pd2nw_05v5_lvt +lappend devices sky130_fd_pr__diode_pd2nw_05v5_hvt +lappend devices sky130_fd_pr__diode_pw2nd_11v0 +lappend devices sky130_fd_pr__diode_pd2nw_11v0 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {area add} + property "-circuit1 $dev" parallel {value add} + property "-circuit1 $dev" tolerance {area 0.02} + # Ignore these properties + property "-circuit1 $dev" delete mult perim + } + if {[lsearch $cells2 $dev] >= 0} { + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {area add} + property "-circuit2 $dev" parallel {value add} + property "-circuit2 $dev" tolerance {area 0.02} + # Ignore these properties + property "-circuit2 $dev" delete mult perim + } +} + +#------------------------------------------- +# capacitors +# MiM capacitors +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__cap_mim_m3_1 +lappend devices sky130_fd_pr__cap_mim_m3_2 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {area add} + property "-circuit1 $dev" parallel {value add} + property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit1 $dev" delete mult perim mf + } + if {[lsearch $cells2 $dev] >= 0} { + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {area add} + property "-circuit2 $dev" parallel {value add} + property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit2 $dev" delete mult perim mf + } +} + +#------------------------------------------- +# Fixed-layout devices +# bipolar transistors, +# VPP capacitors +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__npn_05v5_W1p00L1p00 +lappend devices sky130_fd_pr__npn_05v5_W1p00L2p00 +lappend devices sky130_fd_pr__pnp_05v5_W0p68L0p68 +lappend devices sky130_fd_pr__pnp_05v5_W3p40L3p40 +lappend devices sky130_fd_pr__npn_05v5 +lappend devices sky130_fd_pr__pnp_05v5 +lappend devices sky130_fd_pr__npn_11v0 + +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield +lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield +lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_polym4_shield +lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield +lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_li_shield +lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield +lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield +lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield +lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield +lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield +lappend devices sky130_fd_pr__ind_04_01 +lappend devices sky130_fd_pr__ind_04_02 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + property "-circuit1 $dev" parallel enable + # Ignore these properties + property "-circuit1 $dev" delete mult + } + if {[lsearch $cells2 $dev] >= 0} { + property "-circuit2 $dev" parallel enable + # Ignore these properties + property "-circuit2 $dev" delete mult + } +} + +#--------------------------------------------------------------- +# Schematic cells which are not extractable +#--------------------------------------------------------------- + +set devices {sky130_fd_io__condiode sky130_fd_io__tap_1} + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + ignore class "-circuit1 $dev" + } + if {[lsearch $cells2 $dev] >= 0} { + ignore class "-circuit2 $dev" + } +} + +#--------------------------------------------------------------- +# Digital cells (ignore decap, fill, and tap cells) +# Make a separate list for each supported library +#--------------------------------------------------------------- +# e.g., ignore class "-circuit2 sky130_fc_sc_hd__decap_3" +#--------------------------------------------------------------- + +if { [info exist ::env(MAGIC_EXT_USE_GDS)] && $::env(MAGIC_EXT_USE_GDS) } { + foreach cell $cells1 { +# if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { +# ignore class "-circuit1 $cell" +# } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + ignore class "-circuit1 $cell" + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + ignore class "-circuit1 $cell" + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + ignore class "-circuit1 $cell" + } + } + foreach cell $cells2 { +# if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { +# ignore class "-circuit2 $cell" +# } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + ignore class "-circuit2 $cell" + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + ignore class "-circuit2 $cell" + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + ignore class "-circuit2 $cell" + } + } +} + +#--------------------------------------------------------------- +# Allow the fill, decap, etc., cells to be parallelized +#--------------------------------------------------------------- + +foreach cell $cells1 { + if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__diode_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_diode_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } +} +foreach cell $cells2 { + if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__diode_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_diode_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } +} + +#--------------------------------------------------------------- +# Handle cells captured from Electric +# +# Find cells of the form "__" in the netlist +# from Electric where the extracted layout netlist has only +# "". Cross-check by ensuring that the full name +# "__" does not exist in both cells, and that +# the truncated name "" does not exist in both cells. +#--------------------------------------------------------------- +# e.g., hydra_spi_controller__hydra_spi_controller +#--------------------------------------------------------------- + +foreach cell $cells1 { + if {[regexp "(.+)__(.+)" $cell match library cellname]} { + if {([lsearch $cells2 $cell] < 0) && \ + ([lsearch $cells2 $cellname] >= 0) && \ + ([lsearch $cells1 $cellname] < 0)} { + equate classes "-circuit1 $cell" "-circuit2 $cellname" + puts stdout "Matching pins of $cell in circuit 1 and $cellname in circuit 2" + equate pins "-circuit1 $cell" "-circuit2 $cellname" + } + } +} + +foreach cell $cells2 { + if {[regexp "(.+)__(.+)" $cell match library cellname]} { + if {([lsearch $cells1 $cell] < 0) && \ + ([lsearch $cells1 $cellname] >= 0) && \ + ([lsearch $cells2 $cellname] < 0)} { + equate classes "-circuit1 $cellname" "-circuit2 $cell" + puts stdout "Matching pins of $cellname in circuit 1 and $cell in circuit 2" + equate pins "-circuit1 $cellname" "-circuit2 $cell" + } + } +} + +# Match pins on black-box cells if LVS is called with "-blackbox" +if {[model blackbox]} { + foreach cell $cells1 { + if {[model "-circuit1 $cell"] == "blackbox"} { + if {[lsearch $cells2 $cell] >= 0} { + puts stdout "Matching pins of $cell in circuits 1 and 2" + equate pins "-circuit1 $cell" "-circuit2 $cell" + } + } + } +} + +#--------------------------------------------------------------- diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index fb83b2bb9..806504327 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -3,23 +3,25 @@ sys.path.append('./pygen') from gdsfactory.read.import_gds import import_gds +from gdsfactory.components import text_freetype, rectangle from pygen.pdk.util.custom_comp_utils import prec_array, add_ports_perimeter, movey, print_ports, align_comp_to_port from gdsfactory.component import Component -from gdsfactory.cell import cell from pygen.pdk.mappedpdk import MappedPDK from pygen.opamp import opamp from pygen.L_route import L_route from pygen.via_gen import via_array +from pygen.pdk.util.standard_main import pdk +from gdsfactory.cell import cell, clear_cache +import numpy as np +from subprocess import Popen +from pathlib import Path +from typing import Union -@cell -def sky130_opamp_add_pads(sky130pdk: MappedPDK, opamp_in: Component) -> Component: +def sky130_opamp_add_pads(opamp_in: Component) -> Component: """adds the MPW-5 pads to opamp. Also adds text labels and pin layers so that extraction is nice """ - # error checking and setup - if sky130pdk.name != "sky130": - raise ValueError("This function is only for sky130 pdk") opamp_wpads = opamp_in.copy() opamp_wpads = movey(opamp_wpads, destination=0) # create pad array and add to opamp @@ -38,14 +40,245 @@ def sky130_opamp_add_pads(sky130pdk: MappedPDK, opamp_in: Component) -> Componen opamp_wpads << L_route(pdk, opamp_wpads.ports["plus_pin_W"],pad_array_ref.ports["row0_col0_pad_N"],hwidth=3) opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias2_pin_E"],pad_array_ref.ports["row0_col1_pad_N"],hwidth=3) opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias1_pin_E"],pad_array_ref.ports["row0_col2_pad_N"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["gnd_pin_top_met_E"],pad_array_ref.ports["row1_col3_pad_S"],hwidth=3,vglayer="met5") + opamp_wpads << L_route(pdk, opamp_wpads.ports["gnd_route_con_E"],pad_array_ref.ports["row1_col3_pad_S"],hwidth=3,vglayer="met5") opamp_wpads << L_route(pdk, opamp_wpads.ports["vdd_pin_N"],pad_array_ref.ports["row1_col1_pad_E"],vwidth=4,vglayer="met5") opamp_wpads << L_route(pdk, opamp_wpads.ports["output_pin_E"],pad_array_ref.ports["row0_col3_pad_N"],hwidth=3,vglayer="met5") - return opamp_wpads - -if __name__ == "__main__": - from pygen.pdk.util.standard_main import pdk - - opamp_in = opamp(pdk) - opamp_out = sky130_opamp_add_pads(pdk, opamp_in) - opamp_out.show() + # add pin layer and text labels for LVS + text_pin_labels = list() + met5pin = rectangle(size=(5,5),layer=(72,16), centered=True) + for name in ["plus","vbias2","vbias1","output","minus","vdd","NC","gnd"]: + pin_w_label = met5pin.copy() + pin_w_label.add_label(text=name,layer=(72,5),magnification=4) + text_pin_labels.append(pin_w_label) + for row in range(2): + for col in range(4): + if row==1 and col==2: + continue + port_name = "row"+str(row)+"_col"+str(col)+"_pad_S" + pad_array_port = pad_array_ref.ports[port_name] + pin_ref = opamp_wpads << text_pin_labels[4*row + col] + align_comp_to_port(pin_ref,pad_array_port,alignment=('c','t')) + return opamp_wpads.flatten() + + +def sky130_add_opamp_labels(opamp_in: Component) -> Component: + opamp_in.unlock() + # define layers + met2_pin = (69,16) + met2_label = (69,5) + met3_pin = (70,16) + met3_label = (70,5) + met4_pin = (71,16) + met4_label = (71,5) + # list that will contain all port/comp info + move_info = list() + # create labels and append to info list + # gnd + gndlabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() + gndlabel.add_label(text="gnd",layer=met3_label) + move_info.append((gndlabel,opamp_in.ports["gnd_pin_N"])) + #vbias1 + vbias1label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() + vbias1label.add_label(text="vbias1",layer=met2_label) + move_info.append((vbias1label,opamp_in.ports["vbias1_pin_N"])) + # vbias2 + vbias2label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() + vbias2label.add_label(text="vbias2",layer=met2_label) + move_info.append((vbias2label,opamp_in.ports["vbias2_pin_N"])) + #minus + minuslabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() + minuslabel.add_label(text="minus",layer=met3_label) + move_info.append((minuslabel,opamp_in.ports["minus_pin_N"])) + #-plus + pluslabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() + pluslabel.add_label(text="plus",layer=met3_label) + move_info.append((pluslabel,opamp_in.ports["plus_pin_N"])) + #vdd + vddlabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() + vddlabel.add_label(text="vdd",layer=met3_label) + move_info.append((vddlabel,opamp_in.ports["vdd_pin_N"])) + # output + outputlabel = rectangle(layer=met4_pin,size=(1,1),centered=True).copy() + outputlabel.add_label(text="output",layer=met4_label) + move_info.append((outputlabel,opamp_in.ports["output_pin_N"])) + # move everything to position + for comp, prt in move_info: + compref = align_comp_to_port(comp, prt, alignment=('c','b')) + opamp_in.add(compref) + return opamp_in.flatten() + + +def opamp_parameters_serializer( + diffpair_params: tuple[float, float, int] = (6, 1, 4), + diffpair_bias: tuple[float, float, int] = (6, 2, 4), + houtput_bias: tuple[float, float, int, int] = (6, 2, 8, 3), + pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), + mim_cap_size=(12, 12), + mim_cap_rows=3 +) -> np.array: + """converts opamp params into the uniform numpy float format""" + return np.array( + [diffpair_params[0],diffpair_params[1],diffpair_params[2], + diffpair_bias[0],diffpair_bias[1],diffpair_bias[2], + houtput_bias[0],houtput_bias[1],houtput_bias[2],houtput_bias[3], + pamp_hparams[0],pamp_hparams[1],pamp_hparams[2],pamp_hparams[3], + mim_cap_size[0],mim_cap_size[1], + mim_cap_rows], + dtype=np.float64 + ) + +def opamp_parameters_de_serializer(serialized_params: np.array) -> dict: + """converts uniform numpy float format to opamp kwargs""" + if not len(serialized_params) == 17: + raise ValueError("serialized_params should be a length 15 array") + params_dict = dict() + params_dict["diffpair_params"] = tuple(serialized_params[0:3]) + params_dict["diffpair_bias"] = tuple(serialized_params[3:6]) + params_dict["houtput_bias"] = tuple(serialized_params[6:10]) + params_dict["pamp_hparams"] = tuple(serialized_params[10:14]) + params_dict["mim_cap_size"] = tuple(serialized_params[14:16]) + params_dict["mim_cap_rows"] = int(serialized_params[16]) + return params_dict + + +def get_small_parameter_list(test_mode = False) -> np.array: + """creates small parameter list intended for brute force""" + # all diffpairs to try + diffpairs = list() + if test_mode: + diffpairs.append((6,1,4)) + else: + for width in [3,6,9]: + for length in [0.3,1, 2]: + for fingers in [2,6]: + diffpairs.append((width,length,fingers)) + # all bias2 (output amp bias) transistors + bias2s = list() + if test_mode: + bias2s.append((6,1,4,3)) + else: + for width in [3,6,9]: + for length in [1]: + for fingers in [2,6]: + bias2s.append((width,length,fingers,3)) + # all output pmos transistors + pamp_hparams = list() + if test_mode: + pamp_hparams.append((7,1,8,3)) + else: + for width in [4,7,10]: + for length in [0.3,1,2]: + for fingers in [6,14]: + pamp_hparams.append((width,length,fingers,3)) + # rows of the cap array to try + cap_arrays = [2,3] + # ****************************************** + # create and return the small parameters list + short_list_len = len(diffpairs) * len(bias2s) * len(pamp_hparams) * len(cap_arrays) + short_list = np.empty(shape=(short_list_len,len(opamp_parameters_serializer())),dtype=np.float64) + index = 0 + for diffpair_v in diffpairs: + for bias2_v in bias2s: + for pamp_o_v in pamp_hparams: + for cap_array_v in cap_arrays: + tup_to_add = opamp_parameters_serializer( + diffpair_params=diffpair_v, + houtput_bias=bias2_v, + mim_cap_rows=cap_array_v, + pamp_hparams=pamp_o_v + ) + short_list[index] = tup_to_add + index = index + 1 + return short_list + + +def get_big_parameter_list() -> np.array: + """creates a large parameters list intended for the neural network""" + raise NotImplementedError("TODO") + return + + +def get_result(filepath: Union[str,Path]): + fileabspath = Path(filepath).resolve() + with open(fileabspath, "r") as ResultReport: + RawResult = ResultReport.readline() + Columns = RawResult.split(" ") + return { + "UGB": Columns[3], + "biasVoltage1": Columns[7], + "biasVoltage2": Columns[11] + } + +def standardize_netlist_subckt_def(netlist: Union[str,Path]): + netlist = Path(netlist).resolve() + if not netlist.is_file(): + raise ValueError("netlist must be file") + hints = [".subckt","output","plus","minus","vbias1","vbias2"] + subckt_lines = list() + with open(netlist, "r") as spice_net: + subckt_lines = spice_net.readlines() + for i,line in enumerate(subckt_lines): + if all([hint in line for hint in hints]): + subckt_lines[i] = ".subckt opamp minus plus vbias1 vbias2 output vdd gnd\n" + if "FLOATING" in line: + subckt_lines[i] = "\n" + with open("opamp_pex.spice", "w") as spice_net: + spice_net.writelines(subckt_lines) + +def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array) -> np.array: + """runs the brute force testing of parameters by + 1-constructing the opamp layout specfied by parameters + 2-extracting the netlist for the opamp + 3-running simulations on the opamp + returns the ugb of the opamps + """ + if sky130pdk.name != "sky130": + raise ValueError("this is for sky130 only") + # disable adding NPC layer + add_npc_decorator = sky130pdk.default_decorator + sky130pdk.default_decorator = None + sky130pdk.activate() + # initialize empty results array + results = np.empty(shape=len(parameter_list),dtype=np.float64) + # loop and run layout, extraction, sim + num_iterations = len(results) + index=0 + while index < num_iterations: + # generate layout + params = opamp_parameters_de_serializer(parameter_list[index]) + opamp_v = sky130_add_opamp_labels(opamp(sky130pdk, **params)) + opamp_v.name = "opamp" + opamp_v.write_gds("opamp.gds") + # extract layout + Popen(["bash","extract.bash", "opamp.gds", opamp_v.name]).wait() + standardize_netlist_subckt_def("opamp_pex.spice") + # run sim and store result + Popen(["ngspice","-b","opamp_perf_eval.sp"]).wait() + results[index] = get_result("output.txt")["UGB"] + # prepare for next iteration + clear_cache() + index = index + 1 + # undo pdk modification + sky130pdk.default_decorator = add_npc_decorator + return results + + +def get_training_data(test_mode=True): + params = get_small_parameter_list(test_mode) + results = brute_force_full_layout_and_PEXsim(pdk, params) + np.save("training_params.npy",params) + np.save("training_results.npy",results) + + +#opamp_out = sky130_opamp_add_pads(opamp_in) +#sky130_add_opamp_labels(opamp_in).show() +#opamp_out.show() + + +#parameters = np.array() +#result = array() +#for i, comp in enumerate(opamps): +# comp.write_gds(str(i)+".gds") + + +# generate opamps From 469a9bc7671faa2ef1a0edb29a3aab9c2f179eb3 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Thu, 20 Jul 2023 13:36:11 -0400 Subject: [PATCH 24/64] multiprocessing --- .../generators/gdsfactory-gen/pygen/opamp.py | 3 +- .../pygen/pdk/sky130_mapped/sky130_mapped.py | 2 +- .../gdsfactory-gen/sky130_nist_tapeout.py | 60 ++++++++++++------- 3 files changed, 40 insertions(+), 25 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 8db7f4f91..e29b14986 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -299,7 +299,8 @@ def opamp( mimcaps_ref.movex(opamp_top.xmax + displace_fact + mim_cap_size[0]/2) mimcaps_ref.movey(pmos_comps_ref.ymin + mim_cap_size[1]/2) # connect mimcap to gnd - opamp_top << c_route(pdk,opamp_top.ports["pcomps_mimcap_connection_con_N"],mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"], extension=_max_metal_seperation_ps, fullbottom=True) + cref2_extension = _max_metal_seperation_ps + opamp_top.ymax - opamp_top.ports["pcomps_mimcap_connection_con_N"].center[1] + opamp_top << c_route(pdk,opamp_top.ports["pcomps_mimcap_connection_con_N"],mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"], extension=cref2_extension, fullbottom=True) opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) # return opamp_top.add_ports(_cref.get_ports_list(), prefix="gnd_route_") diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py index 03a9b8ed4..23d0d13b3 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py @@ -47,5 +47,5 @@ ) # set the grid size sky130_mapped_pdk.gds_write_settings.precision = 5*10**-9 -#sky130_mapped_pdk.cell_decorator_settings.cache=False +sky130_mapped_pdk.cell_decorator_settings.cache=False sky130_mapped_pdk.gds_write_settings.flatten_invalid_refs=False diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 806504327..f8eb055ed 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -10,12 +10,15 @@ from pygen.opamp import opamp from pygen.L_route import L_route from pygen.via_gen import via_array -from pygen.pdk.util.standard_main import pdk +from pygen.pdk.util.standard_main import pdk, parser from gdsfactory.cell import cell, clear_cache import numpy as np from subprocess import Popen from pathlib import Path from typing import Union +from tempfile import TemporaryDirectory +from shutil import copyfile, copytree +from multiprocessing import Pool def sky130_opamp_add_pads(opamp_in: Component) -> Component: @@ -147,6 +150,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: diffpairs = list() if test_mode: diffpairs.append((6,1,4)) + diffpairs.append((5,1,4)) else: for width in [3,6,9]: for length in [0.3,1, 2]: @@ -198,6 +202,8 @@ def get_big_parameter_list() -> np.array: return + + def get_result(filepath: Union[str,Path]): fileabspath = Path(filepath).resolve() with open(fileabspath, "r") as ResultReport: @@ -220,11 +226,31 @@ def standardize_netlist_subckt_def(netlist: Union[str,Path]): for i,line in enumerate(subckt_lines): if all([hint in line for hint in hints]): subckt_lines[i] = ".subckt opamp minus plus vbias1 vbias2 output vdd gnd\n" - if "FLOATING" in line: + if "floating" in line.lower(): subckt_lines[i] = "\n" - with open("opamp_pex.spice", "w") as spice_net: + with open(netlist, "w") as spice_net: spice_net.writelines(subckt_lines) +def __run_single_brtfrc(parameters_ele): + # generate layout + global pdk + sky130pdk = pdk + params = opamp_parameters_de_serializer(parameters_ele) + opamp_v = sky130_add_opamp_labels(opamp(sky130pdk, **params)) + opamp_v.name = "opamp" + # use temp dir + with TemporaryDirectory() as tmpdirname: + tmp_gds_path = Path(opamp_v.write_gds(gdsdir=tmpdirname)).resolve() + copyfile("extract.bash",str(tmpdirname)+"/extract.bash") + copyfile("opamp_perf_eval.sp",str(tmpdirname)+"/opamp_perf_eval.sp") + copytree("sky130A",str(tmpdirname)+"/sky130A") + # extract layout + Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() + standardize_netlist_subckt_def(str(tmpdirname)+"/opamp_pex.spice") + # run sim and store result + Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() + return get_result(str(tmpdirname)+"/output.txt")["UGB"] + def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array) -> np.array: """runs the brute force testing of parameters by 1-constructing the opamp layout specfied by parameters @@ -239,37 +265,25 @@ def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np. sky130pdk.default_decorator = None sky130pdk.activate() # initialize empty results array - results = np.empty(shape=len(parameter_list),dtype=np.float64) - # loop and run layout, extraction, sim - num_iterations = len(results) - index=0 - while index < num_iterations: - # generate layout - params = opamp_parameters_de_serializer(parameter_list[index]) - opamp_v = sky130_add_opamp_labels(opamp(sky130pdk, **params)) - opamp_v.name = "opamp" - opamp_v.write_gds("opamp.gds") - # extract layout - Popen(["bash","extract.bash", "opamp.gds", opamp_v.name]).wait() - standardize_netlist_subckt_def("opamp_pex.spice") - # run sim and store result - Popen(["ngspice","-b","opamp_perf_eval.sp"]).wait() - results[index] = get_result("output.txt")["UGB"] - # prepare for next iteration - clear_cache() - index = index + 1 + results = None + # run layout, extraction, sim + with Pool(120) as cores: + results = np.array(cores.map(__run_single_brtfrc, parameter_list),np.float64) # undo pdk modification sky130pdk.default_decorator = add_npc_decorator return results -def get_training_data(test_mode=True): +def get_training_data(test_mode=True,): params = get_small_parameter_list(test_mode) results = brute_force_full_layout_and_PEXsim(pdk, params) np.save("training_params.npy",params) np.save("training_results.npy",results) +parser.add_argument("--test_mode", "-t", action="store_true", help="runs a short 2 ele test") +args = parser.parse_args() +get_training_data(test_mode=args.test_mode) #opamp_out = sky130_opamp_add_pads(opamp_in) #sky130_add_opamp_labels(opamp_in).show() #opamp_out.show() From 562821149aa8baff21e7b2c592178fea98b8f7fd Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 21 Jul 2023 15:37:40 -0400 Subject: [PATCH 25/64] routing factory --- .../gdsfactory-gen/pygen/diff_pair.py | 64 +++++++++--------- .../generators/gdsfactory-gen/pygen/fet.py | 49 +++++++++----- .../gdsfactory-gen/pygen/guardring.py | 2 +- .../generators/gdsfactory-gen/pygen/opamp.py | 59 ++++++++++------ .../gdsfactory-gen/pygen/pdk/mappedpdk.py | 4 ++ .../pygen/pdk/util/custom_comp_utils.py | 1 + .../pygen/pdk/util/snap_to_grid.py | 18 ++--- .../gdsfactory-gen/sky130_nano_pad.gds | Bin 0 -> 111406 bytes .../gdsfactory-gen/sky130_nist_tapeout.py | 54 ++++++++++----- 9 files changed, 156 insertions(+), 95 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/sky130_nano_pad.gds diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index afc4e4dcb..f41bc9e38 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -24,7 +24,8 @@ def diff_pair( fingers: Optional[int] = 4, length: Optional[float] = None, n_or_p_fet: Optional[bool] = True, - plus_minus_seperation: Optional[float] = 0 + plus_minus_seperation: Optional[float] = 0, + rmult: int = 1 ) -> Component: """create a diffpair with 2 transistors placed in two rows with common centroid place. Sources are shorted width = width of the transistors @@ -39,12 +40,12 @@ def diff_pair( # create transistors well = None if n_or_p_fet: - fet = nmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,with_dnwell=False,with_substrate_tap=False) + fet = nmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,with_dnwell=False,with_substrate_tap=False,rmult=rmult) #print_ports(fet) min_spacing_x = pdk.get_grule("n+s/d")["min_separation"] - 2*(fet.xmax - fet.ports["multiplier_0_plusdoped_E"].center[0]) well = "pwell" else: - fet = pmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,dnwell=False,with_substrate_tap=False) + fet = pmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,dnwell=False,with_substrate_tap=False,rmult=rmult) min_spacing_x = pdk.get_grule("p+s/d")["min_separation"] - 2*(fet.xmax - fet.ports["multiplier_0_plusdoped_E"].center[0]) well = "nwell" # place transistors @@ -54,41 +55,42 @@ def diff_pair( gate_route_os = evaluate_bbox(viam2m3)[0] - fet.ports["multiplier_0_gate_W"].width + metal_space min_spacing_y = metal_space + 2*gate_route_os min_spacing_y = min_spacing_y - 2*abs(fet.ports["well_S"].center[1] - fet.ports["multiplier_0_gate_S"].center[1]) - a_topl = (diffpair << fet).movey(fet.ymax+min_spacing_y/2).movex(0-fet.xmax-min_spacing_x/2) - b_topr = (diffpair << fet).movey(fet.ymax+min_spacing_y/2).movex(fet.xmax+min_spacing_x/2) + # TODO: fix spacing where you see +-0.5 + a_topl = (diffpair << fet).movey(fet.ymax+min_spacing_y/2+0.5).movex(0-fet.xmax-min_spacing_x/2) + b_topr = (diffpair << fet).movey(fet.ymax+min_spacing_y/2+0.5).movex(fet.xmax+min_spacing_x/2) a_botr = (diffpair << fet) - a_botr.mirror_y().movey(0-fet.ymax-min_spacing_y/2).movex(fet.xmax+min_spacing_x/2) + a_botr.mirror_y().movey(0-0.5-fet.ymax-min_spacing_y/2).movex(fet.xmax+min_spacing_x/2) b_botl = (diffpair << fet) - b_botl.mirror_y().movey(0-fet.ymax-min_spacing_y/2).movex(0-fet.xmax-min_spacing_x/2) + b_botl.mirror_y().movey(0-0.5-fet.ymax-min_spacing_y/2).movex(0-fet.xmax-min_spacing_x/2) # create gate route between transistor A mults - avia_gate_tl = align_comp_to_port(viam2m3, a_topl.ports["multiplier_0_gate_E"], ('r','b')) - diffpair.add(avia_gate_tl) - avia_gate_br = align_comp_to_port(viam2m3, a_botr.ports["multiplier_0_gate_W"], ('l','t')) - diffpair.add(avia_gate_br) + #avia_gate_tl = align_comp_to_port(viam2m3, a_topl.ports["multiplier_0_gate_E"], ('r','b')) + #diffpair.add(avia_gate_tl) + #avia_gate_br = align_comp_to_port(viam2m3, a_botr.ports["multiplier_0_gate_W"], ('l','t')) + #diffpair.add(avia_gate_br) # lay metal spacer - min_metal_spacer = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, metal_space), layer=pdk.get_glayer("met3"), centered=True) - metal_space_tl = align_comp_to_port(min_metal_spacer, avia_gate_tl.ports["top_met_S"], ('l','b')) - diffpair.add(metal_space_tl) - metal_space_br = align_comp_to_port(min_metal_spacer, avia_gate_br.ports["top_met_N"], ('r','t')) - diffpair.add(metal_space_br) + #min_metal_spacer = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, metal_space), layer=pdk.get_glayer("met3"), centered=True) + #metal_space_tl = align_comp_to_port(min_metal_spacer, avia_gate_tl.ports["top_met_S"], ('l','b')) + #diffpair.add(metal_space_tl) + #metal_space_br = align_comp_to_port(min_metal_spacer, avia_gate_br.ports["top_met_N"], ('r','t')) + #diffpair.add(metal_space_br) # lay cross metal - amet_cross_width = abs(metal_space_br.ports["e3"].center[0] - metal_space_tl.ports["e1"].center[0]) - amet_cross_hieght = abs(metal_space_tl.ports["e4"].center[1] - metal_space_br.ports["e2"].center[1]) - amet_gate_cross = rectangle(size=(amet_cross_width, amet_cross_hieght), layer=pdk.get_glayer("met3"), centered=True) - cross_metal_gate_a = align_comp_to_port(amet_gate_cross, metal_space_br.ports["e2"], ('l','t')) - diffpair.add(cross_metal_gate_a) + #amet_cross_width = abs(metal_space_br.ports["e3"].center[0] - metal_space_tl.ports["e1"].center[0]) + #amet_cross_hieght = abs(metal_space_tl.ports["e4"].center[1] - metal_space_br.ports["e2"].center[1]) + #amet_gate_cross = rectangle(size=(amet_cross_width, amet_cross_hieght), layer=pdk.get_glayer("met3"), centered=True) + #cross_metal_gate_a = align_comp_to_port(amet_gate_cross, metal_space_br.ports["e2"], ('l','t')) + #diffpair.add(cross_metal_gate_a) # create gate route between transistor B mults - min_metal_spacer_2 = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, gate_route_os), layer=pdk.get_glayer("met2"), centered=True) + #min_metal_spacer_2 = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, gate_route_os), layer=pdk.get_glayer("met2"), centered=True) # lay metal spacers - metal_space_bl = align_comp_to_port(min_metal_spacer_2, b_botl.ports["multiplier_0_gate_S"], ('r','t')) - diffpair.add(metal_space_bl) - metal_space_tr = align_comp_to_port(min_metal_spacer_2, b_topr.ports["multiplier_0_gate_S"], ('l','b')) - diffpair.add(metal_space_tr) + #metal_space_bl = align_comp_to_port(min_metal_spacer_2, b_botl.ports["multiplier_0_gate_S"], ('r','t')) + #diffpair.add(metal_space_bl) + #metal_space_tr = align_comp_to_port(min_metal_spacer_2, b_topr.ports["multiplier_0_gate_S"], ('l','b')) + #diffpair.add(metal_space_tr) # lay cross metal - bmet_cross_width = abs(metal_space_tr.ports["e3"].center[0] - metal_space_bl.ports["e1"].center[0]) - bmet_gate_cross = rectangle(size=(bmet_cross_width, metal_space), layer=pdk.get_glayer("met2"), centered=True) - cross_metal_gate_b = align_comp_to_port(bmet_gate_cross, metal_space_tr.ports["e4"], ('l','b')) - diffpair.add(cross_metal_gate_b) + #bmet_cross_width = abs(metal_space_tr.ports["e3"].center[0] - metal_space_bl.ports["e1"].center[0]) + #bmet_gate_cross = rectangle(size=(bmet_cross_width, metal_space), layer=pdk.get_glayer("met2"), centered=True) + #cross_metal_gate_b = align_comp_to_port(bmet_gate_cross, metal_space_tr.ports["e4"], ('l','b')) + #diffpair.add(cross_metal_gate_b) # route sources (short sources) diffpair << route_quad(a_topl.ports["multiplier_0_source_E"], b_topr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) diffpair << route_quad(b_botl.ports["multiplier_0_source_E"], a_botr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) @@ -149,7 +151,7 @@ def diff_pair( if __name__ == "__main__": from pdk.util.standard_main import pdk - mycomp = diff_pair(pdk,length=1,width=6,fingers=4) + mycomp = diff_pair(pdk,length=1,width=6,fingers=4,rmult=2) mycomp.show() print_ports(mycomp) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py index e923cb239..bda0977c5 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -19,11 +19,12 @@ def multiplier( sdlayer: str, width: Optional[float] = 3, fingers: Optional[int] = 1, - routing: Optional[bool] = True, - dummy: Optional[Union[bool, tuple[bool, bool]]] = True, + routing: bool = True, + dummy: Union[bool, tuple[bool, bool]] = True, length: Optional[float] = None, sd_route_topmet: Optional[str] = "met2", - gate_route_topmet: Optional[str] = "met2" + gate_route_topmet: Optional[str] = "met2", + rmult: int = 1 ) -> Component: """Generic poly/sd vias generator args: @@ -32,18 +33,22 @@ def multiplier( width = expands the transistor in the y direction fingers = introduces additional fingers (sharing s/d) of width=width routing = true or false, specfies if sd should be connected + rmult = multiplies thickness of routes (int only) dummy = true or false add dummy active/plus doped regions length = transitor length (if left None defaults to min length) + ports (one port for each edge): gate_... all edges (top met route of gate connection) source_...all edges (top met route of source connections) drain_...all edges (top met route of drain connections) + plusdoped_...all edges (area of p+s/d or n+s/d layer) """ # error checking if "+s/d" not in sdlayer: raise ValueError("specify + doped region for multiplier") if not "met" in sd_route_topmet or not "met" in gate_route_topmet: raise ValueError("topmet specified must be metal layer") + rmult = 1 if rmult<1 else rmult multiplier = Component() if fingers == 0: return multiplier @@ -105,7 +110,7 @@ def multiplier( sdvia = via_stack(pdk, "met1", sd_route_topmet) # TODO: fix poly overhang / met1 separation extracted_gates = multiplier.extract([pdk.get_glayer("poly")]) - gate_route_width = ( + gate_route_width = rmult * ( Decimal(str(pdk.get_grule("mcon")["width"])) + 2 * Decimal(str(pdk.get_grule("poly", "mcon")["min_enclosure"])) ) @@ -113,9 +118,11 @@ def multiplier( routedims = [gate_route_length, gate_route_width] gate_route = Component("gate route") gate_route << rectangle(size=to_float(routedims), layer=pdk.get_glayer("poly"), centered=True) - routedims[1] = 2 * Decimal(str(via_stack(pdk, "poly", gate_route_topmet).ymax)) - va_ref_ = gate_route << via_array(pdk, "poly", gate_route_topmet, size=to_float(routedims)) - gate_route.add_ports([_p for _p in va_ref_.get_ports_list() if "top_met" in _p.name]) + routedims[1] = evaluate_bbox(via_stack(pdk, "poly", gate_route_topmet),True)[1] + gate_route << via_array(pdk, "poly", gate_route_topmet, size=to_float(routedims)) + routedims[1] = rmult * routedims[1] + gr_ref_ = gate_route << rectangle(layer=pdk.get_glayer(gate_route_topmet),size=to_float(routedims),centered=True) + gate_route.add_ports(gr_ref_.get_ports_list()) gate_route_ref = multiplier << gate_route gate_route_ref.movey(float(0-(poly_height + gate_route_width + routing_pfac)/2)) multiplier.add_ports(gate_route_ref.get_ports_list(), prefix="gate_") @@ -129,7 +136,7 @@ def multiplier( extendm_length = Decimal(str(sdvia.ymax)) + met1_core_size if finger % 2: top_met_seperation = Decimal(str(pdk.get_grule(sd_route_topmet)["min_separation"])) + Decimal(str(0.1)) - extendm_length += 2*Decimal(str(sdvia.ymax)) + top_met_seperation + extendm_length += rmult*evaluate_bbox(sdvia,True)[1] + top_met_seperation extendm = multiplier << rectangle( size=to_float((viasize, extendm_length)), layer=pdk.get_glayer("met1"), @@ -145,7 +152,7 @@ def multiplier( extendm_length += sdtop_coords[1] - met1_core_size sd_offsets += [extendm_length] if len(sd_offsets) < 2 else [] mett_ext = multiplier.extract([pdk.get_glayer(sd_route_topmet)]) - mettroute_dims = (evaluate_bbox(mett_ext,True)[0], 2 * Decimal(str(sdvia.ymax))) + mettroute_dims = (evaluate_bbox(mett_ext,True)[0], rmult * 2 * Decimal(str(sdvia.ymax))) sd_mett_connect = rectangle( layer=pdk.get_glayer(sd_route_topmet), size=to_float(mettroute_dims), centered=True ) @@ -193,6 +200,7 @@ def __mult_array_macro( sd_route_topmet: Optional[str] = "met2", gate_route_topmet: Optional[str] = "met2", sd_route_left: Optional[bool] = True, + rmult: int = 1 ) -> Component: """create a multiplier array with multiplier_0 at the bottom The array is correctly centered""" @@ -209,7 +217,8 @@ def __mult_array_macro( routing=routing, length=length, sd_route_topmet=sd_route_topmet, - gate_route_topmet=gate_route_topmet + gate_route_topmet=gate_route_topmet, + rmult=rmult ) _max_metal_seperation_ps = max([pdk.get_grule("met"+str(i))["min_separation"] for i in range(1,5)]) multiplier_separation = ( @@ -273,7 +282,8 @@ def nmos( length: Optional[float] = None, sd_route_topmet: Optional[str] = "met2", gate_route_topmet: Optional[str] = "met2", - sd_route_left: Optional[bool] = True + sd_route_left: Optional[bool] = True, + rmult: int = 1 ) -> Component: """Generic NMOS generator width = expands the NMOS in the y direction @@ -287,7 +297,7 @@ def nmos( nfet = Component() # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left + pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left, rmult=rmult ) multiplier_arr_ref = multiplier_arr.ref() nfet.add(multiplier_arr_ref) @@ -358,7 +368,8 @@ def pmos( length: Optional[float] = None, sd_route_topmet: Optional[str] = "met2", gate_route_topmet: Optional[str] = "met2", - sd_route_left: Optional[bool] = True + sd_route_left: Optional[bool] = True, + rmult: int = 1 ) -> Component: """Generic PMOS generator width = expands the PMOS in the y direction @@ -372,7 +383,7 @@ def pmos( pfet = Component() # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left + pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left, rmult=rmult ) multiplier_arr_ref = multiplier_arr.ref() pfet.add(multiplier_arr_ref) @@ -426,13 +437,15 @@ def pmos( if __name__ == "__main__": from pdk.util.standard_main import pdk - showmult = True + showmult = False if showmult: - mycomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1) + mycomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1, rmult=1) + bcomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1, rmult=2) + bcomp.show() else: #mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True) - mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True) - print(*mycomp.get_polygons(),sep="\n") + mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True,rmult=2) + #print(*mycomp.get_polygons(),sep="\n") #large = pmos(pdk, fingers=20, length=1, multipliers=5, width=6, with_dummy=True) #large.show() #mycomp = pmos(pdk, fingers=8, multipliers=2, with_dummy=False, gate_route_topmet="met4",sd_route_topmet="met4") diff --git a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py index c8b9d8f7f..0f72a2096 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py @@ -34,7 +34,7 @@ def tapring( Warr_... all ports in left via array bl_corner_...all ports in bottom left L route """ - enclosed_rectangle = snap_to_2xgrid(enclosed_rectangle) + enclosed_rectangle = snap_to_2xgrid(enclosed_rectangle,return_type="float") # check layers, activate pdk, create top cell pdk.has_required_glayers( [sdlayer, "active_tap", "mcon", horizontal_glayer, vertical_glayer] diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index e29b14986..6579814aa 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -15,6 +15,29 @@ from sys import exit from straight_route import straight_route from pdk.util.snap_to_grid import component_snap_to_grid +from pydantic import validate_arguments + + + + + + + +@validate_arguments +def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap_rows, ymin: float, n_to_p_output_route) -> Component: + max_metalsep = pdk.util_max_metal_seperation() + mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) + displace_fact = max(max_metalsep,pdk.get_grule("capmet")["min_separation"]) + mimcaps_ref.movex(opamp_top.xmax + displace_fact + mim_cap_size[0]/2) + mimcaps_ref.movey(ymin + mim_cap_size[1]/2) + # connect mimcap to gnd + port1 = opamp_top.ports["pcomps_mimcap_connection_con_N"] + port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] + cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) + opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) + opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + return opamp_top + @cell @@ -25,7 +48,8 @@ def opamp( houtput_bias: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), pamp_hparams: Optional[tuple[float, float, int, int]] = (7, 1, 10, 3), mim_cap_size=(12, 12), - mim_cap_rows=3 + mim_cap_rows=3, + rmult: int = 2 ) -> Component: """create an opamp, args: pdk=pdk to use @@ -35,7 +59,7 @@ def opamp( pamp_hparams = pmos top component amp (width,length,fingers,mults) mim_cap_size = width,length of individual mim_cap """ - _max_metal_seperation_ps = max([pdk.get_grule("met"+str(i))["min_separation"] for i in range(1,5)]) + _max_metal_seperation_ps = pdk.util_max_metal_seperation() opamp_top = Component() # place nmos components # create and center diffpair @@ -45,6 +69,7 @@ def opamp( width=diffpair_params[0], length=diffpair_params[1], fingers=diffpair_params[2], + rmult=rmult ) diffpair_i_.add(prec_ref_center(center_diffpair_comp)) diffpair_i_.add_ports(center_diffpair_comp.get_ports_list()) @@ -59,7 +84,8 @@ def opamp( with_dnwell=False, with_substrate_tap=False, gate_route_topmet="met3", - sd_route_topmet="met3" + sd_route_topmet="met3", + rmult=rmult ) tailcurrent_ref = diffpair_i_ << tailcurrent_comp tailcurrent_ref.movey( @@ -85,7 +111,8 @@ def opamp( with_dnwell=False, with_substrate_tap=False, with_dummy=dummy, - sd_route_left = bool(i) + sd_route_left = bool(i), + rmult=rmult ) halfMultn_ref = opamp_top << halfMultn direction = (-1) ** i @@ -119,8 +146,8 @@ def opamp( shared_gate_comps = Component("pmos_shared_gates") #TODO: report as bug clear_cache() - pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True)) - pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False)) + pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True),rmult=rmult) + pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False),rmult=rmult) pcomp_AB_spacing = max(2*_max_metal_seperation_ps + 6*pdk.get_grule("met4")["min_width"],pdk.get_grule("p+s/d")["min_separation"]) _prefL = (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax - pcomp_AB_spacing/2) _prefR = (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin + pcomp_AB_spacing/2) @@ -143,13 +170,13 @@ def opamp( if i == -2: dummy = [True, False] pcenterfourunits = multiplier( - pdk, "p+s/d", width=6, length=1, fingers=4, dummy=dummy + pdk, "p+s/d", width=6, length=1, fingers=4, dummy=dummy, rmult=rmult ) extra_t = -1 * single_dim elif i == 2: dummy = [False, True] pcenterfourunits = multiplier( - pdk, "p+s/d", width=6, length=1, fingers=4, dummy=dummy + pdk, "p+s/d", width=6, length=1, fingers=4, dummy=dummy, rmult=rmult ) extra_t = single_dim else: @@ -219,7 +246,8 @@ def opamp( with_tie=True, dnwell=False, with_substrate_tap=False, - sd_route_left=bool(direction-1) + sd_route_left=bool(direction-1), + rmult=rmult ) halfMultp halfMultp_ref = pmos_comps << halfMultp @@ -293,15 +321,8 @@ def opamp( # route minus transistor drain to output outputvia_diff_pcomps = opamp_top << via_stack(pdk,"met5","met4") outputvia_diff_pcomps.movex(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0]).movey(ptop_halfmultp_gate_route.ports["con_E"].center[1]) - # place mimcaps - mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) - displace_fact = max(_max_metal_seperation_ps,pdk.get_grule("capmet")["min_separation"]) - mimcaps_ref.movex(opamp_top.xmax + displace_fact + mim_cap_size[0]/2) - mimcaps_ref.movey(pmos_comps_ref.ymin + mim_cap_size[1]/2) - # connect mimcap to gnd - cref2_extension = _max_metal_seperation_ps + opamp_top.ymax - opamp_top.ports["pcomps_mimcap_connection_con_N"].center[1] - opamp_top << c_route(pdk,opamp_top.ports["pcomps_mimcap_connection_con_N"],mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"], extension=cref2_extension, fullbottom=True) - opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + # place mimcaps and route + opamp_top = __add_mimcap_arr(pdk, opamp_top, mim_cap_size, mim_cap_rows, pmos_comps_ref.ymin, n_to_p_output_route) # return opamp_top.add_ports(_cref.get_ports_list(), prefix="gnd_route_") opamp_top.add_ports(gndpin.get_ports_list(), prefix="gnd_pin_") @@ -348,7 +369,7 @@ def opamp( for i,comp in enumerate(opamps): comp.write_gds(str(i)+".gds") else: - opamp(pdk).show() + opamp(pdk, rmult=2).show() #[0.7,1,0.02] diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py index 78488d8e6..1cd6e7fc5 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py @@ -242,3 +242,7 @@ def from_gf_pdk( mappedpdk = MappedPDK(**passargs) return mappedpdk + # util methods + def util_max_metal_seperation(self) -> float: + return max([self.get_grule("met"+str(i))["min_separation"] for i in range(1,5)]) + diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py index 1937c6c88..2ed86290e 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py @@ -449,3 +449,4 @@ def prec_ref_center(custom_comp: Union[Component,ComponentReference], return_dec compref = custom_comp if isinstance(custom_comp, ComponentReference) else custom_comp.ref() xcor, ycor = prec_center(compref, False) return compref.movex(xcor).movey(ycor) + diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py index 7301448dc..bab470550 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py @@ -5,7 +5,7 @@ from tempfile import TemporaryDirectory from pathlib import Path from gdsfactory.read.import_gds import import_gds -from decimal import Decimal +from decimal import Decimal, ROUND_UP from gdsfactory.snap import snap_to_grid @@ -45,18 +45,18 @@ def snap_to_2xgrid(dims: Union[list[Union[float,Decimal]], Union[float,Decimal]] dims = a list OR single number specifying the dimensions to snap to grid return_type = return a decimal, float, or the same type that was passed to the function """ - return [round(dim,2) for dim in dims] dims = dims if isinstance(dims, Iterable) else [dims] - dimtype_in = None - nm = 2 * 1000 * int(get_grid_size()) + dimtype_in = type(dims[0]) + dims = [Decimal(str(dim)) for dim in dims] # process in decimals + grid = 2 * Decimal(str(get_grid_size())) + grid = grid if grid else Decimal('0.001') # snap dims to grid snapped_dims = list() for dim in dims: - dimtype_in = type(dim) - snapped_dims.append(snap_to_grid(float(dim), nm=nm)) + snapped_dim = grid * (dim / grid).quantize(1, rounding=ROUND_UP) + snapped_dims.append(snapped_dim) # convert to correct type - if return_type=="decimal" or (return_type=="same" and dimtype_in==Decimal): - for i, snapped_dim in enumerate(snapped_dims): - snapped_dims[i] = Decimal(str(snapped_dim)) + if return_type=="float" or (return_type=="same" and dimtype_in==float): + snapped_dims = [float(snapped_dim) for snapped_dim in snapped_dims] # correctly return list or single element return snapped_dims[0] if len(snapped_dims)==1 else snapped_dims diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nano_pad.gds b/openfasoc/generators/gdsfactory-gen/sky130_nano_pad.gds new file mode 100644 index 0000000000000000000000000000000000000000..3a84d9a2374ded7ac5c55befd38d9f307b81e6be GIT binary patch literal 111406 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 H(#ih~o4m Component: - """adds the MPW-5 pads to opamp. + """adds the MPW-5 pads and nano pads to opamp. Also adds text labels and pin layers so that extraction is nice """ opamp_wpads = opamp_in.copy() @@ -31,7 +32,7 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: pad = import_gds("sky130_mpw5_pad.gds") pad.name = "mpw5pad" pad = add_ports_perimeter(pad, pdk.get_glayer("met4"),prefix="pad_") - pad_array = prec_array(pad, rows=2, columns=4, spacing=(40,120)) + pad_array = prec_array(pad, rows=2, columns=(4+1), spacing=(40,120)) pad_array_ref = pad_array.ref_center() opamp_wpads.add(pad_array_ref) # add via_array to vdd pin @@ -39,13 +40,13 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: via_array_ref = opamp_wpads << vddarray align_comp_to_port(via_array_ref,opamp_wpads.ports["vdd_pin_N"],alignment=('c','b')) # route to the pads - opamp_wpads << L_route(pdk, opamp_wpads.ports["minus_pin_W"],pad_array_ref.ports["row1_col0_pad_S"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["plus_pin_W"],pad_array_ref.ports["row0_col0_pad_N"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias2_pin_E"],pad_array_ref.ports["row0_col1_pad_N"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias1_pin_E"],pad_array_ref.ports["row0_col2_pad_N"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["gnd_route_con_E"],pad_array_ref.ports["row1_col3_pad_S"],hwidth=3,vglayer="met5") - opamp_wpads << L_route(pdk, opamp_wpads.ports["vdd_pin_N"],pad_array_ref.ports["row1_col1_pad_E"],vwidth=4,vglayer="met5") - opamp_wpads << L_route(pdk, opamp_wpads.ports["output_pin_E"],pad_array_ref.ports["row0_col3_pad_N"],hwidth=3,vglayer="met5") + opamp_wpads << L_route(pdk, opamp_wpads.ports["minus_pin_W"],pad_array_ref.ports["row1_col1_pad_S"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["plus_pin_W"],pad_array_ref.ports["row0_col1_pad_N"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias2_pin_E"],pad_array_ref.ports["row0_col2_pad_N"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias1_pin_E"],pad_array_ref.ports["row0_col3_pad_N"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["gnd_route_con_E"],pad_array_ref.ports["row1_col4_pad_S"],hwidth=3,vglayer="met5") + opamp_wpads << L_route(pdk, opamp_wpads.ports["vdd_pin_N"],pad_array_ref.ports["row1_col2_pad_E"],vwidth=4,vglayer="met5") + opamp_wpads << L_route(pdk, opamp_wpads.ports["output_pin_E"],pad_array_ref.ports["row0_col4_pad_N"],hwidth=3,vglayer="met5") # add pin layer and text labels for LVS text_pin_labels = list() met5pin = rectangle(size=(5,5),layer=(72,16), centered=True) @@ -54,13 +55,29 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: pin_w_label.add_label(text=name,layer=(72,5),magnification=4) text_pin_labels.append(pin_w_label) for row in range(2): - for col in range(4): - if row==1 and col==2: + for col_u in range(4): + col = col_u + 1# left most are for nano pads + if row==1 and col==2+1: continue port_name = "row"+str(row)+"_col"+str(col)+"_pad_S" pad_array_port = pad_array_ref.ports[port_name] - pin_ref = opamp_wpads << text_pin_labels[4*row + col] + pin_ref = opamp_wpads << text_pin_labels[4*row + col_u] align_comp_to_port(pin_ref,pad_array_port,alignment=('c','t')) + # import nano pad and add to opamp + nanopad = import_gds("sky130_nano_pad.gds") + nanopad.name = "nanopad" + nanopad = add_ports_perimeter(nanopad, pdk.get_glayer("met4"),prefix="nanopad_") + nanopad_array = prec_array(nanopad, rows=2, columns=2, spacing=(10,10)) + nanopad_array_ref = nanopad_array.ref_center() + opamp_wpads.add(nanopad_array_ref) + nanopad_array_ref.movex(opamp_wpads.xmin+nanopad_array.xmax) + # route nano pad connections + opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row1_col0_nanopad_N"],pad_array_ref.ports["row1_col0_pad_S"],width=3) + opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row0_col0_nanopad_S"],pad_array_ref.ports["row0_col0_pad_N"],width=3) + opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row0_col1_nanopad_E"],pad_array_ref.ports["row0_col1_pad_N"],width=3) + opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row1_col1_nanopad_E"],pad_array_ref.ports["row1_col1_pad_S"],width=3) + #vddnanopad = opamp_wpads << nanopad + #opamp_wpads << nanopad return opamp_wpads.flatten() @@ -209,6 +226,8 @@ def get_result(filepath: Union[str,Path]): with open(fileabspath, "r") as ResultReport: RawResult = ResultReport.readline() Columns = RawResult.split(" ") + if len(columns)<11: + return {"UGB":-123.45,"biasVoltage1":-123.45,"biasVoltage2":-123.45} return { "UGB": Columns[3], "biasVoltage1": Columns[7], @@ -281,12 +300,13 @@ def get_training_data(test_mode=True,): np.save("training_results.npy",results) -parser.add_argument("--test_mode", "-t", action="store_true", help="runs a short 2 ele test") -args = parser.parse_args() -get_training_data(test_mode=args.test_mode) -#opamp_out = sky130_opamp_add_pads(opamp_in) +#parser.add_argument("--test_mode", "-t", action="store_true", help="runs a short 2 ele test") +#args = parser.parse_args() +#get_training_data(test_mode=args.test_mode) + +opamp_out = sky130_opamp_add_pads(opamp(pdk)) #sky130_add_opamp_labels(opamp_in).show() -#opamp_out.show() +opamp_out.show() #parameters = np.array() From f8d19c85d32fe715777863f707f38a84b0280368 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 25 Jul 2023 02:16:16 -0400 Subject: [PATCH 26/64] training with larger results space --- .../generators/gdsfactory-gen/extract.bash | 4 + .../gdsfactory-gen/opamp_perf_eval.sp | 27 +- .../gdsfactory-gen/pygen/L_route.py | 8 +- .../gdsfactory-gen/pygen/c_route.py | 8 +- .../gdsfactory-gen/pygen/diff_pair.py | 14 +- .../generators/gdsfactory-gen/pygen/fet.py | 201 ++++++++- .../gdsfactory-gen/pygen/guardring.py | 15 +- .../generators/gdsfactory-gen/pygen/mimcap.py | 13 +- .../generators/gdsfactory-gen/pygen/opamp.py | 39 +- .../pygen/pdk/gf180_mapped/__init__.py | 2 +- .../pygen/pdk/gf180_mapped/gf180_mapped.py | 4 +- .../pygen/pdk/gf180_mapped/grules.py | 2 +- .../gdsfactory-gen/pygen/pdk/mappedpdk.py | 66 ++- .../pygen/pdk/sky130_mapped/__init__.py | 2 +- .../pygen/pdk/sky130_mapped/grules.py | 2 +- .../pygen/pdk/sky130_mapped/sky130_mapped.py | 6 +- .../pygen/pdk/util/snap_to_grid.py | 24 -- .../pygen/pdk/util/standard_main.py | 4 +- .../gdsfactory-gen/pygen/straight_route.py | 8 +- .../gdsfactory-gen/pygen/via_gen.py | 12 +- .../gdsfactory-gen/pygen/via_gen_proto.py | 290 +++++++++++++ .../gdsfactory-gen/sky130_nist_tapeout.py | 380 ++++++++++++++++-- 22 files changed, 968 insertions(+), 163 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py diff --git a/openfasoc/generators/gdsfactory-gen/extract.bash b/openfasoc/generators/gdsfactory-gen/extract.bash index 8784d4bfd..40193ad81 100644 --- a/openfasoc/generators/gdsfactory-gen/extract.bash +++ b/openfasoc/generators/gdsfactory-gen/extract.bash @@ -2,6 +2,10 @@ #export PDK_ROOT=/usr/local/share/pdk/ export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ +# args: +# first arg = gds file to read +# second arg = name of top cell in gds file to read + # generate lvs netlist using magic magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF gds read $1 diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp index 29a7feb28..b0fb7b293 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp @@ -29,31 +29,26 @@ Vindc net1 GND 1 ** Import opamp subcircuit .include opamp_pex.spice XDUT vin vip bias1 bias2 vo VDD GND opamp - * parameter sweep - ** Run initial analysis .save all .options savecurrents .ac dec 100 1k 10G - .control ** Set initial values set filetype = ascii set appendwrite = 1 - -let maxGain = -1 +let maxUGB = -1 let maxBv1 = -1 let maxBv2 = -1 - +let savedPhaseMargin = -1 +let savedDCGain = -1 ** Tune these let biasVoltageMin = 0.4 let biasVoltageMax = 1.6 let biasVoltageStep = 0.05 - let biasVoltage1 = biasVoltageMin let biasVoltage2 = biasVoltageMin - ** Sweep bias voltages while biasVoltage1 le biasVoltageMax ** Alter parameters and reset top-level ckt @@ -66,11 +61,18 @@ while biasVoltage1 le biasVoltageMax run ** Find unity-gain bw point meas ac ugb_f when vdb(vo)=0 + ** Measure phase margin + let phase = (180/PI)*vp(vo) + meas ac pm find phase when vdb(vo)=0 + ** Measure DC(ish) gain + meas ac dcg find vdb(vo) at=1k ** Find local maxima - if ( ugb_f ge maxGain ) - let maxGain = ugb_f + if ( ugb_f ge maxUGB ) + let maxUGB = ugb_f let maxBv1 = biasVoltage1 let maxBv2 = biasVoltage2 + let savedPhaseMargin = pm + let savedDCGain = dcg end let biasVoltage2 = biasVoltage2 + biasVoltageStep end @@ -78,14 +80,11 @@ while biasVoltage1 le biasVoltageMax let biasVoltage2 = biasVoltageMin let biasVoltage1 = biasVoltage1 + biasVoltageStep end - ** Export global maxima -wrdata output.txt maxGain maxBv1 maxBv2 - +wrdata output.txt maxUGB maxBv1 maxBv2 savedPhaseMargin savedDCGain run display .endc - .GLOBAL GND .GLOBAL VDD .end diff --git a/openfasoc/generators/gdsfactory-gen/pygen/L_route.py b/openfasoc/generators/gdsfactory-gen/pygen/L_route.py index cb51303de..04c4062b4 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/L_route.py @@ -1,11 +1,11 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from typing import Optional, Union -from via_gen import via_stack, via_array +from .via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular, to_decimal, to_float, prec_ref_center +from .pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular, to_decimal, to_float, prec_ref_center from decimal import Decimal @@ -106,7 +106,7 @@ def L_route( if __name__ == "__main__": - from pdk.util.standard_main import pdk + from .pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met1"),size=(1,1)).ref() routebetweentop.movey(-4).movex(7) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py index 54296bc91..d2b780f80 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py @@ -1,13 +1,13 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from typing import Optional, Union from math import isclose -from via_gen import via_stack +from .via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from pdk.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_orientation, get_orientation +from .pdk.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_orientation, get_orientation from pydantic import validate_arguments @@ -195,7 +195,7 @@ def c_route( return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) if __name__ == "__main__": - from pdk.util.standard_main import pdk + from .pdk.util.standard_main import pdk routebetweentop = copy(rectangle(layer=pdk.get_glayer("met1"))).ref() routebetweentop.movey(10) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index f41bc9e38..85130c631 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -5,15 +5,15 @@ from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from fet import nmos, pmos -from pdk.mappedpdk import MappedPDK +from .fet import nmos, pmos +from .pdk.mappedpdk import MappedPDK from typing import Optional from gdsfactory.routing.route_quad import route_quad from gdsfactory.routing.route_sharp import route_sharp -from c_route import c_route -from pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, movex, movey, get_orientation, set_orientation, evaluate_bbox, align_comp_to_port -from via_gen import via_stack -from pdk.util.snap_to_grid import component_snap_to_grid +from .c_route import c_route +from .pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, movex, movey, get_orientation, set_orientation, evaluate_bbox, align_comp_to_port +from .via_gen import via_stack +from .pdk.util.snap_to_grid import component_snap_to_grid #diffpair << route_sharp(b_topr.ports["multiplier_0_source_E"],viam2m3_ref_tr.ports["bottom_met_W"], width=connect_width, layer=pdk.get_glayer("met2"), path_type="manhattan") @@ -150,7 +150,7 @@ def diff_pair( if __name__ == "__main__": - from pdk.util.standard_main import pdk + from .pdk.util.standard_main import pdk mycomp = diff_pair(pdk,length=1,width=6,fingers=4,rmult=2) mycomp.show() print_ports(mycomp) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py index bda0977c5..5859b6b1d 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -2,17 +2,196 @@ from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from typing import Optional, Union -from via_gen import via_array, via_stack -from guardring import tapring +from .via_gen import via_array, via_stack +from .guardring import tapring from pydantic import validate_arguments -from pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center -from c_route import c_route -from pdk.util.snap_to_grid import component_snap_to_grid +from .pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center +from .c_route import c_route +from .pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal +@validate_arguments +def __gen_fingers_macro(pdk: MappedPDK, fingers: int, length: float, width: float, poly_height: float) -> Component: + """internal use: returns an array of fingers""" + import pdb; pdb.set_trace() + sizing_ref_viastack = via_stack(pdk, "active_diff", "met1") + # figure out poly (gate) spacing: s/d metal doesnt overlap transistor, s/d min seperation criteria is met + sd_viaxdim = evaluate_bbox(via_stack(pdk, "active_diff", "met1"))[0] + poly_spacing = 2 * pdk.get_grule("poly", "mcon")["min_separation"] + pdk.get_grule("mcon")["width"] + poly_spacing = max(sd_viaxdim, poly_spacing) + met1_minsep = pdk.get_grule("met1")["min_separation"] + poly_spacing += met1_minsep if length < met1_minsep else 0 + # create a single finger + finger = Component("finger") + finger << rectangle(size=(length, poly_height), layer=pdk.get_glayer("poly"), centered=True) + sd_viaarr = via_array(pdk, "active_diff", "met1", size=(sd_viaxdim, width), minus1=True) + sd_viaarr_ref = finger << sd_viaarr + sd_viaarr_ref.movex((poly_spacing+length) / 2) + # create finger array and add to multiplier + fingerarray = prec_array(finger, columns=fingers, rows=1, spacing=(poly_spacing, 1)) + sd_via_ref_left = fingerarray << sd_viaarr + sd_via_ref_left.movex(to_float(0-(poly_spacing+length)/2)) + fingerarray = component_snap_to_grid(fingerarray) + + +@cell +def multiplier_prototype( + pdk: MappedPDK, + sdlayer: str, + width: Optional[float] = 3, + length: Optional[float] = None, + fingers: int = 1, + routing: bool = True, + inter_finger_topmet: str = "met1", + dummy: Union[bool, tuple[bool, bool]] = True, + sd_route_topmet: str = "met2", + gate_route_topmet: str = "met2", + rmult: int = 1, +) -> Component: + """Generic poly/sd vias generator + args: + pdk = pdk to use + sdlayer = either p+s/d for pmos or n+s/d for nmos + width = expands the transistor in the y direction + length = transitor length (if left None defaults to min length) + fingers = introduces additional fingers (sharing s/d) of width=width + routing = true or false, specfies if sd should be connected + inter_finger_topmet = top metal of the via array laid on the source/drain regions + ****NOTE: routing metal is layed over the source drain regions regardless of routing option + dummy = true or false add dummy active/plus doped regions + rmult = multiplies thickness of routes (int only) + + ports (one port for each edge): + gate_... all edges (top met route of gate connection) + source_...all edges (top met route of source connections) + drain_...all edges (top met route of drain connections) + plusdoped_...all edges (area of p+s/d or n+s/d layer) + """ + # error checking + if "+s/d" not in sdlayer: + raise ValueError("specify + doped region for multiplier") + if not "met" in sd_route_topmet or not "met" in gate_route_topmet: + raise ValueError("topmet specified must be metal layer") + if rmult<1: + raise ValueError("routing multiplier must be positive int") + if fingers < 1: + raise ValueError("number of fingers must be positive int") + multiplier = Component() + # argument parsing and rule setup + min_length = pdk.get_grule("poly")["min_width"] + length = min_length if (length or min_length) <= min_length else length + length = pdk.snap_to_2xgrid(length) + min_width = max(min_length, pdk.get_grule("active_diff")["min_width"]) + width = min_width if (width or min_width) <= min_width else width + width = pdk.snap_to_2xgrid(width) + poly_height = width + 2 * pdk.get_grule("poly", "active_diff")["overhang"] + + # call finger array + fingerarray = __gen_fingers_macro(pdk, fingers, length, width, poly_height) + + fingerarray_ref = multiplier << fingerarray + offset = (fingers - 1) * finger_dim / 2 + fingerarray_ref.movex(to_float(-1 * offset)) + # create diffusion and +doped region + diff_dims = ( + evaluate_bbox(multiplier)[0] + + 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"], + width, + ) + multiplier << rectangle(size=to_float(diff_dims), layer=pdk.get_glayer("active_diff"), centered=True) + sd_ovhg = Decimal(str(pdk.get_grule(sdlayer, "active_diff")["min_enclosure"])) + sd_ovhg_dims = [dim + 2*sd_ovhg for dim in diff_dims] + sdlayer_ref = multiplier << rectangle(layer=pdk.get_glayer(sdlayer), size=to_float(sd_ovhg_dims), centered=True) + multiplier.add_ports(sdlayer_ref.get_ports_list(),prefix="plusdoped_") + # route all drains/ gates/ sources + if routing: + if fingers == 1: + raise NotImplementedError("fingers=1 not supported for routing") + # create sdvia (need dims) + sdvia = via_stack(pdk, "met1", sd_route_topmet) + # TODO: fix poly overhang / met1 separation + extracted_gates = multiplier.extract([pdk.get_glayer("poly")]) + gate_route_width = rmult * ( + Decimal(str(pdk.get_grule("mcon")["width"])) + + 2 * Decimal(str(pdk.get_grule("poly", "mcon")["min_enclosure"])) + ) + gate_route_length = evaluate_bbox(extracted_gates,True)[0] + routedims = [gate_route_length, gate_route_width] + gate_route = Component("gate route") + gate_route << rectangle(size=to_float(routedims), layer=pdk.get_glayer("poly"), centered=True) + routedims[1] = evaluate_bbox(via_stack(pdk, "poly", gate_route_topmet),True)[1] + gate_route << via_array(pdk, "poly", gate_route_topmet, size=to_float(routedims)) + routedims[1] = rmult * routedims[1] + gr_ref_ = gate_route << rectangle(layer=pdk.get_glayer(gate_route_topmet),size=to_float(routedims),centered=True) + gate_route.add_ports(gr_ref_.get_ports_list()) + gate_route_ref = multiplier << gate_route + gate_route_ref.movey(float(0-(poly_height + gate_route_width + routing_pfac)/2)) + multiplier.add_ports(gate_route_ref.get_ports_list(), prefix="gate_") + # source and drain routing + sdtop_coords = [ Decimal(str(fingerarray_ref.xmin)) + sd_viaxdim / 2, + Decimal(str(fingerarray_ref.parent.extract([pdk.get_glayer("met1")]).ymax))] + sd_offsets = list() + for finger in range(fingers + 1): + # extend the source drain connection to acamodate via + met1_core_size = Decimal(str(sdvia.extract([pdk.get_glayer("met1")]).ymax)) + extendm_length = Decimal(str(sdvia.ymax)) + met1_core_size + if finger % 2: + top_met_seperation = Decimal(str(pdk.get_grule(sd_route_topmet)["min_separation"])) + Decimal(str(0.1)) + extendm_length += rmult*evaluate_bbox(sdvia,True)[1] + top_met_seperation + extendm = multiplier << rectangle( + size=to_float((sd_viaxdim, extendm_length)), + layer=pdk.get_glayer("met1"), + ) + else: + extendm = multiplier << rectangle(size=to_float((sd_viaxdim, extendm_length)), layer=pdk.get_glayer("met1")) + extendm.move(destination=to_float(sdtop_coords)).movex(to_float(0-sd_viaxdim/2)) + # create the via between s/d connection and s/d route + sdvia_ref = multiplier << sdvia + sdvia_ref.move(destination=to_float(sdtop_coords)) + sdvia_ref.movey(to_float(extendm_length - met1_core_size)) + sdtop_coords[0] += finger_dim + extendm_length += sdtop_coords[1] - met1_core_size + sd_offsets += [extendm_length] if len(sd_offsets) < 2 else [] + mett_ext = multiplier.extract([pdk.get_glayer(sd_route_topmet)]) + mettroute_dims = (evaluate_bbox(mett_ext,True)[0], rmult * 2 * Decimal(str(sdvia.ymax))) + sd_mett_connect = rectangle( + layer=pdk.get_glayer(sd_route_topmet), size=to_float(mettroute_dims), centered=True + ) + prefix = ["source_", "drain_"] + for i, mof in enumerate(sd_offsets): + m2ref = (multiplier << sd_mett_connect).movey(to_float(mof)) + multiplier.add_ports(m2ref.get_ports_list(), prefix=prefix[i]) + # create dummy regions + if isinstance(dummy, bool): + dummyl = dummyr = dummy + else: + dummyl, dummyr = dummy + if dummyl or dummyr: + dummy = Component("temp dummy region") + size = (length, width) + dummy << rectangle( + layer=pdk.get_glayer("active_diff"), size=to_float(size), centered=True + ) + dummy_space = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] + dummy.add_padding(layers=(pdk.get_glayer(sdlayer),), default=dummy_space) + dummy_space = dummy_space + pdk.get_grule(sdlayer)["min_separation"] + float(size[0] / 2) + sides = list() + if dummyl: + sides.append(-1) + if dummyr: + sides.append(1) + for side in sides: + dummy_ref = multiplier << dummy + dummy_ref.movex(side * (dummy_space + multiplier.xmax)) + # ensure correct port names and return + multiplier = rename_ports_by_list(multiplier, [("source","source_"),("drain","drain_"),("gate","gate_"),("plusdoped","plusdoped_")]) + return component_snap_to_grid(rename_ports_by_orientation(multiplier)) + + + @cell def multiplier( pdk: MappedPDK, @@ -187,6 +366,8 @@ def multiplier( return component_snap_to_grid(rename_ports_by_orientation(multiplier)) + + @validate_arguments def __mult_array_macro( pdk: MappedPDK, @@ -290,8 +471,6 @@ def nmos( fingers = introduces additional fingers (sharing source/drain) of width=width with_tie = true or false, specfies if a bulk tie is required """ - if width < pdk.get_grule("active_diff")["min_width"]: - raise ValueError("transistor min width violated") # TODO: glayer checks pdk.activate() nfet = Component() @@ -376,8 +555,6 @@ def pmos( fingers = introduces additional fingers (sharing source/drain) of width=width with_tie = true or false, specfies if a bulk tie is required """ - if width < pdk.get_grule("active_diff")["min_width"]: - raise ValueError("transistor min width violated") # TODO: glayer checks pdk.activate() pfet = Component() @@ -435,7 +612,7 @@ def pmos( if __name__ == "__main__": - from pdk.util.standard_main import pdk + from .pdk.util.standard_main import pdk showmult = False if showmult: @@ -444,7 +621,7 @@ def pmos( bcomp.show() else: #mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True) - mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True,rmult=2) + mycomp = pmos(pdk, fingers=8, length=0, multipliers=3, width=6, with_dummy=True,rmult=2) #print(*mycomp.get_polygons(),sep="\n") #large = pmos(pdk, fingers=20, length=1, multipliers=5, width=6, with_dummy=True) #large.show() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py index 0f72a2096..3fca1cb2b 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py @@ -1,14 +1,13 @@ -from pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from gdsfactory.components.rectangular_ring import rectangular_ring -from via_gen import via_array, via_stack +from .via_gen import via_array, via_stack from typing import Optional -from pdk.util.custom_comp_utils import print_ports, to_decimal, to_float, evaluate_bbox -from pdk.util.snap_to_grid import component_snap_to_grid -from L_route import L_route -from pdk.util.snap_to_grid import snap_to_2xgrid +from .pdk.util.custom_comp_utils import print_ports, to_decimal, to_float, evaluate_bbox +from .pdk.util.snap_to_grid import component_snap_to_grid +from .L_route import L_route @cell @@ -34,7 +33,7 @@ def tapring( Warr_... all ports in left via array bl_corner_...all ports in bottom left L route """ - enclosed_rectangle = snap_to_2xgrid(enclosed_rectangle,return_type="float") + enclosed_rectangle = pdk.snap_to_2xgrid(enclosed_rectangle,return_type="float") # check layers, activate pdk, create top cell pdk.has_required_glayers( [sdlayer, "active_tap", "mcon", horizontal_glayer, vertical_glayer] @@ -112,7 +111,7 @@ def tapring( if __name__ == "__main__": - from pdk.util.standard_main import pdk + from .pdk.util.standard_main import pdk mycomp = Component("displacment test") tapref = mycomp << tapring(pdk, sdlayer="p+s/d", enclosed_rectangle=(75.9, 31.0)) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py index 71ea20435..3e52dff87 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py @@ -1,14 +1,13 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle -from pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from typing import Optional -from via_gen import via_array -from pdk.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter, prec_array, print_ports, to_decimal, to_float +from .via_gen import via_array +from .pdk.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter, prec_array, print_ports, to_decimal, to_float from pydantic import validate_arguments -from straight_route import straight_route +from .straight_route import straight_route from decimal import ROUND_UP, Decimal -from pdk.util.snap_to_grid import snap_to_2xgrid @validate_arguments @@ -36,7 +35,7 @@ def mimcap( top_met_...all edges, this is the metal over the capmet bottom_met_...all edges, this is the metal below capmet """ - size = snap_to_2xgrid(size) + size = pdk.snap_to_2xgrid(size) # error checking and capmettop, capmetbottom = __get_mimcap_layerconstruction_info(pdk) # create top component @@ -98,7 +97,7 @@ def mimcap_array(pdk: MappedPDK, rows: int, columns: int, size: tuple[float,floa if __name__ == "__main__": - from pdk.util.standard_main import pdk + from .pdk.util.standard_main import pdk mycap = mimcap_array(pdk,1,1) mycap.show() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 6579814aa..cfcef5b92 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -1,20 +1,20 @@ from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from pdk.mappedpdk import MappedPDK +from . pdk.mappedpdk import MappedPDK from typing import Optional -from fet import nmos, pmos, multiplier -from diff_pair import diff_pair -from guardring import tapring -from mimcap import mimcap_array, mimcap -from L_route import L_route -from c_route import c_route -from via_gen import via_stack, via_array +from . fet import nmos, pmos, multiplier +from . diff_pair import diff_pair +from . guardring import tapring +from . mimcap import mimcap_array, mimcap +from . L_route import L_route +from . c_route import c_route +from . via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad -from pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, movey, set_orientation, to_decimal, to_float, move, align_comp_to_port +from . pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, movey, set_orientation, to_decimal, to_float, move, align_comp_to_port from sys import exit -from straight_route import straight_route -from pdk.util.snap_to_grid import component_snap_to_grid +from . straight_route import straight_route +from . pdk.util.snap_to_grid import component_snap_to_grid from pydantic import validate_arguments @@ -25,6 +25,7 @@ @validate_arguments def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap_rows, ymin: float, n_to_p_output_route) -> Component: + mim_cap_size = pdk.snap_to_2xgrid(mim_cap_size, return_type="float") max_metalsep = pdk.util_max_metal_seperation() mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) displace_fact = max(max_metalsep,pdk.get_grule("capmet")["min_separation"]) @@ -35,7 +36,7 @@ def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) - opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_bottom_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) return opamp_top @@ -267,7 +268,6 @@ def opamp( pmos_comps.add_ports(mimcap_connection_ref.get_ports_list(),prefix="mimcap_connection_") pmos_comps_ref = opamp_top << pmos_comps pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) - opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") # route halfmultp source, drain, and gate together, place vdd pin in the middle halfmultp_Lsrcport = opamp_top.ports["pcomps_halfp_l_multiplier_0_source_con_N"] @@ -336,7 +336,7 @@ def opamp( if __name__ == "__main__": - from pdk.util.standard_main import pdk + from . pdk.util.standard_main import pdk iterate=False # TO TRY: @@ -369,7 +369,16 @@ def opamp( for i,comp in enumerate(opamps): comp.write_gds(str(i)+".gds") else: - opamp(pdk, rmult=2).show() + opamp( + pdk, + diffpair_params = (6, 1, 4), + diffpair_bias = (6, 2, 4), + houtput_bias = (6, 2, 8, 3), + pamp_hparams = (7, 1, 10, 3), + mim_cap_size = (12, 12), + mim_cap_rows = 3, + rmult = 2 + ).show() #[0.7,1,0.02] diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py index 4c5516c8a..14bcbfe69 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py @@ -2,4 +2,4 @@ Usage at the package level: from pdk.gf180_mapped import gf180_mapped_pdk """ -from pdk.gf180_mapped.gf180_mapped import gf180_mapped_pdk +from pygen.pdk.gf180_mapped.gf180_mapped import gf180_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py index 06730b644..b619485a0 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py @@ -3,8 +3,8 @@ """ from gf180.layers import LAYER # , LAYER_VIEWS -from pdk.gf180_mapped.grules import grulesobj -from pdk.mappedpdk import MappedPDK +from .gf180_mapped.grules import grulesobj +from .mappedpdk import MappedPDK from pathlib import Path LAYER = LAYER.dict() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py index 420887797..bf211155d 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py @@ -1,4 +1,4 @@ -from pdk.mappedpdk import MappedPDK +from ..mappedpdk import MappedPDK grulesobj = dict() for glayer in MappedPDK.valid_glayers: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py index 1cd6e7fc5..32d3762ad 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py @@ -5,12 +5,13 @@ from gdsfactory.pdk import Pdk from gdsfactory.typings import Component, PathType, Layer from pydantic import validator, StrictStr, ValidationError -from typing import ClassVar, Optional, Any +from typing import ClassVar, Optional, Any, Union, Literal, Iterable from pathlib import Path -from decimal import Decimal, DefaultContext, setcontext, FloatOperation +from decimal import Decimal, ROUND_UP import tempfile import subprocess from decimal import Decimal +from pydantic import validate_arguments import xml.etree.ElementTree as ET class MappedPDK(Pdk): @@ -67,6 +68,7 @@ def lydrc_file_exists(cls, lydrc_file_path): raise ValueError(".lydrc script: the path given is not a file") return lydrc_file_path + @validate_arguments def drc( self, layout: Component | PathType, @@ -135,6 +137,7 @@ def drc( drc_error_count = len(drc_root[7]) return (drc_error_count == 0) + @validate_arguments def has_required_glayers(self, layers_required: list[str]): """Raises ValueError if any of the generic layers in layers_required: list[str] are not mapped to anything in the pdk.glayers dictionary @@ -146,6 +149,7 @@ def has_required_glayers(self, layers_required: list[str]): ) self.validate_layers([self.glayers[layer]]) + @validate_arguments def layer_to_glayer(self, layer: tuple[int, int]) -> str: """if layer provided corresponds to a glayer, will return a glayer else will raise an exception @@ -165,13 +169,15 @@ def layer_to_glayer(self, layer: tuple[int, int]) -> str: return glayer_name # TODO: implement LayerSpec type + @validate_arguments def get_glayer(self, layer: str) -> Layer: """Returns the pdk layer from the generic layer name""" return self.get_layer(self.glayers[layer]) + @validate_arguments def get_grule( - self, glayer1: str, glayer2: Optional[str] = None - ) -> dict[StrictStr, float]: + self, glayer1: str, glayer2: Optional[str] = None, return_decimal = False + ) -> dict[StrictStr, Union[float,Decimal]]: """Returns a dictionary describing the relationship between two layers If one layer is specified, returns a dictionary with all intra layer rules""" if glayer1 not in MappedPDK.valid_glayers: @@ -187,11 +193,14 @@ def get_grule( else: glayer2 = glayer1 rules_dict = self.grules.get(glayer1, dict()).get(glayer1) - # return and error check + # error check, convert type, and return if rules_dict is None or rules_dict == {}: raise NotImplementedError( "no rules found between " + str(glayer1) + " and " + str(glayer2) ) + for rule in rules_dict: + if type(rule) == float and return_decimal: + rules_dict[rule] = Decimal(str(rule)) return rules_dict @classmethod @@ -243,6 +252,49 @@ def from_gf_pdk( return mappedpdk # util methods - def util_max_metal_seperation(self) -> float: - return max([self.get_grule("met"+str(i))["min_separation"] for i in range(1,5)]) + @validate_arguments + def util_max_metal_seperation(self, metal_levels: Union[list[int],list[str], str, int] = range(1,6)) -> float: + """returns the maximum of the min_seperation rule for all layers specfied + although the name of this function is util_max_metal_seperation, layers do not have to be metals + you can specify non metals by using metal_levels=list of glayers + if metal_levels is list of int, integers are converted to metal levels + if a single int is provided, all metals below and including that int level are considerd + by default this function returns the maximum metal seperation of metals1-5 + """ + if type(metal_levels)==int: + metal_levels = range(1,metal_levels+1) + metal_levels = metal_levels if isinstance(metal_levels,Iterable) else [metal_levels] + if len(metal_levels)<1: + raise ValueError("metal levels cannot be empty list") + if type(metal_levels[0])==int: + metal_levels = [f"met{i}" for i in metal_levels] + sep_rules = list() + for met in metal_levels: + sep_rules.append(self.get_grule(met)["min_separation"]) + return max(sep_rules) + + @validate_arguments + def snap_to_2xgrid(self, dims: Union[list[Union[float,Decimal]], Union[float,Decimal]], return_type: Literal["decimal","float","same"]="same") -> Union[list[Union[float,Decimal]], Union[float,Decimal]]: + """snap all numbers in dims to double the grid size. + This is useful when a generator accepts a size or dimension argument + because there is a chance the cell may be centered (resulting in off grid components) + args: + dims = a list OR single number specifying the dimensions to snap to grid + return_type = return a decimal, float, or the same type that was passed to the function + """ + dims = dims if isinstance(dims, Iterable) else [dims] + dimtype_in = type(dims[0]) + dims = [Decimal(str(dim)) for dim in dims] # process in decimals + grid = 2 * Decimal(str(self.grid_size)) + grid = grid if grid else Decimal('0.001') + # snap dims to grid + snapped_dims = list() + for dim in dims: + snapped_dim = grid * (dim / grid).quantize(1, rounding=ROUND_UP) + snapped_dims.append(snapped_dim) + # convert to correct type + if return_type=="float" or (return_type=="same" and dimtype_in==float): + snapped_dims = [float(snapped_dim) for snapped_dim in snapped_dims] + # correctly return list or single element + return snapped_dims[0] if len(snapped_dims)==1 else snapped_dims diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py index 0ceb14115..0f72494e1 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py @@ -2,4 +2,4 @@ Usage at the package level: from pdk.sky130_mapped import sky130_mapped_pdk """ -from pdk.sky130_mapped.sky130_mapped import sky130_mapped_pdk +from pygen.pdk.sky130_mapped.sky130_mapped import sky130_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py index 4af1ef4d4..452fffc69 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py @@ -1,4 +1,4 @@ -from pdk.mappedpdk import MappedPDK +from ..mappedpdk import MappedPDK grulesobj = dict() for glayer in MappedPDK.valid_glayers: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py index 23d0d13b3..b708cc88b 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py @@ -3,10 +3,10 @@ """ import sky130 -from pdk.mappedpdk import MappedPDK -from pdk.sky130_mapped.grules import grulesobj +from ..mappedpdk import MappedPDK +from ..sky130_mapped.grules import grulesobj from pathlib import Path -from pdk.sky130_mapped.sky130_add_npc import sky130_add_npc +from ..sky130_mapped.sky130_add_npc import sky130_add_npc sky130.PDK.layers["capm3"] = (89, 44) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py index bab470550..571903dea 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py @@ -36,27 +36,3 @@ def component_snap_to_grid(comp: Component, nm: Optional[int]=None) -> Component return comp -@validate_arguments -def snap_to_2xgrid(dims: Union[list[Union[float,Decimal]], Union[float,Decimal]], return_type: Literal["decimal","float","same"]="same") -> Union[list[Union[float,Decimal]], Union[float,Decimal]]: - """snap all numbers in dims to double the grid size. - This is useful when a generator accepts a size or dimension argument - because there is a chance the cell may be centered (resulting in off grid components) - args: - dims = a list OR single number specifying the dimensions to snap to grid - return_type = return a decimal, float, or the same type that was passed to the function - """ - dims = dims if isinstance(dims, Iterable) else [dims] - dimtype_in = type(dims[0]) - dims = [Decimal(str(dim)) for dim in dims] # process in decimals - grid = 2 * Decimal(str(get_grid_size())) - grid = grid if grid else Decimal('0.001') - # snap dims to grid - snapped_dims = list() - for dim in dims: - snapped_dim = grid * (dim / grid).quantize(1, rounding=ROUND_UP) - snapped_dims.append(snapped_dim) - # convert to correct type - if return_type=="float" or (return_type=="same" and dimtype_in==float): - snapped_dims = [float(snapped_dim) for snapped_dim in snapped_dims] - # correctly return list or single element - return snapped_dims[0] if len(snapped_dims)==1 else snapped_dims diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py index b441a03a3..4dde5d124 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py @@ -22,10 +22,10 @@ # WARNING: DO NOT CHANGE standard behavoir (importing sky130 by default) if args[0].pdk == "gf180": - from pdk.gf180_mapped import gf180_mapped_pdk + from pygen.pdk.gf180_mapped import gf180_mapped_pdk pdk = gf180_mapped_pdk else: #default to sky130 - from pdk.sky130_mapped import sky130_mapped_pdk + from pygen.pdk.sky130_mapped import sky130_mapped_pdk pdk = sky130_mapped_pdk pdk.activate() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py index 2abae9f57..9942ac912 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py @@ -1,11 +1,11 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from typing import Optional -from via_gen import via_stack, via_array +from .via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan, set_orientation +from .pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan, set_orientation @cell @@ -80,7 +80,7 @@ def straight_route( if __name__ == "__main__": - from pdk.util.standard_main import pdk + from .pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met3"),size=(1,1)).ref() routebetweentop.movex(20).movey(-3) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py index 696738b0d..a36c210cb 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py @@ -2,11 +2,11 @@ from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from pydantic import validate_arguments -from pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move -from pdk.util.snap_to_grid import component_snap_to_grid, snap_to_2xgrid +from .pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move +from .pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal from typing import Literal @@ -176,7 +176,7 @@ def via_array( top_met_...all edges bottom_met_...all edges (only if lay_bottom is specified) """ - size = snap_to_2xgrid(size) + size = pdk.snap_to_2xgrid(size) tmpsize = list(size) for i in range(2): if isinstance(size[i],Union[float,int]): @@ -249,8 +249,8 @@ def via_array( if __name__ == "__main__": - from pdk.util.standard_main import pdk, parser - from pdk.util.custom_comp_utils import print_ports + from .pdk.util.standard_main import pdk, parser + from .pdk.util.custom_comp_utils import print_ports from pathlib import Path # default behavoir is to run one design and exit diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py new file mode 100644 index 000000000..143b16da7 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py @@ -0,0 +1,290 @@ +from gdsfactory.cell import cell +from gdsfactory.component import Component +from gdsfactory.components.rectangle import rectangle +from pydantic import validate_arguments +from .pdk.mappedpdk import MappedPDK +from math import floor +from typing import Optional, Union +from .pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move +from .pdk.util.snap_to_grid import component_snap_to_grid +from decimal import Decimal +from typing import Literal + + +@validate_arguments +def __error_check_order_layers( + pdk: MappedPDK, glayer1: str, glayer2: str +) -> tuple[tuple[int, int], tuple[str, str]]: + """correctly order layers (level1 should be lower than level2)""" + pdk.activate() + # check that the generic layers specfied can be routed between + if not all([pdk.is_routable_glayer(met) for met in [glayer1, glayer2]]): + raise ValueError("via_stack: specify between two routable layers") + level1 = int(glayer1[-1]) if "met" in glayer1 else 0 + level2 = int(glayer2[-1]) if "met" in glayer2 else 0 + if level1 > level2: + level1, level2 = level2, level1 + glayer1, glayer2 = glayer2, glayer1 + # check that all layers needed between glayer1-glayer2 are present + required_glayers = [glayer2] + for level in range(level1,level2): + via_name = "mcon" if level==0 else "via"+str(level) + layer_name = glayer1 if level==0 else "met"+str(level) + required_glayers += [via_name,layer_name] + pdk.has_required_glayers(required_glayers) + return ((level1,level2),(glayer1,glayer2)) + + +@validate_arguments +def __get_layer_dim(pdk: MappedPDK, glayer: str, mode: Literal["both","above","below"]="both") -> float: + """Returns the required dimension of a routable layer in a via stack + glayer is the routable glayer + mode is one of [both,below,above] + This specfies the vias to consider. (layer dims may be made smaller if its possible to ignore top/bottom vias) + ****enclosure rules of the via above and below are considered by default, via1<->met2<->via2 + ****using below specfier only considers the enclosure rules for the via below, via1<->met2 + ****using above specfier only considers the enclosure rules for the via above, met2<->via2 + ****specfying both or below for active/poly layer is valid, function knows to ignore below + """ + # error checking + if not pdk.is_routable_glayer(glayer): + raise ValueError("__get_layer_dim: glayer must be a routable layer") + # split into above rules and below rules + consider_above = (mode=="both" or mode=="above") + consider_below = (mode=="both" or mode=="below") + is_lvl0 = any([hint in glayer for hint in ["poly","active"]]) + layer_dim=0 + if consider_below and not is_lvl0: + via_below = "mcon" if glayer=="met1" else "via"+str(int(glayer[-1])-1) + layer_dim = pdk.get_grule(via_below)["width"] + 2*pdk.get_grule(via_below,glayer)["min_enclosure"] + if consider_above: + via_above = "mcon" if is_lvl0 else "via"+str(glayer[-1]) + layer_dim = max(layer_dim, pdk.get_grule(via_above)["width"] + 2*pdk.get_grule(via_above,glayer)["min_enclosure"]) + layer_dim = max(layer_dim, pdk.get_grule(glayer)["min_width"]) + return layer_dim + + +@cell +def via_stack( + pdk: MappedPDK, + glayer1: str, + glayer2: str, + centered: bool = True, + fullbottom: bool = False, + fulltop: bool = False, + assume_bottom_via: bool = False, + same_layer_behavior: Literal["lay_nothing","min_square"] = "lay_nothing" +) -> Component: + """produces a single via stack between two layers that are routable (metal, poly, or active) + The via_stack produced is always a square (hieght=width) + + args: + pdk: MappedPDK is the pdk to use + glayer1: str is the glayer to start on + glayer2: str is the glayer to end on + ****NOTE it does not matter what order you pass layers + fullbottom: if True will lay the bottom layer all over the area of the viastack else makes minimum legal size (ignores min area) + assume_bottom_via: legalize viastack assuming the via underneath bottom met is present, e.g. if bottom met is met3, assume via2 is present + fulltop: if True will lay the top layer all over the area of the viastack else makes minimum legal size (ignores min area) + ****NOTE: generator can figure out which layer is top and which is bottom (i.e. met5 is higher than met1) + same_layer_behavior: sometimes (especially when used in other generators) it is unknown what two layers are specfied + this option provides the generator with guidance on how to handle a case where same layer is given + by default, (lay_nothing option) nothing is laid and an empty component is returned + if min_square is specfied, a square of min_width * min_width is laid + + ports, some ports are not layed when it does not make sense (e.g. empty component): + top_met_...all edges + bottom_via_...all edges + bottom_met_...all edges + bottom_layer_...all edges (may be different than bottom met if on diff/poly) + """ + ordered_layer_info = __error_check_order_layers(pdk, glayer1, glayer2) + level1, level2 = ordered_layer_info[0] + glayer1, glayer2 = ordered_layer_info[1] + viastack = Component() + # if same level return component with min_width rectangle on that layer + if level1 == level2: + if same_layer_behavior=="lay_nothing": + return viastack + min_square = viastack << rectangle(size=2*[pdk.get_grule(glayer1)["min_width"]],layer=pdk.get_glayer(glayer1), centered=centered) + # update ports + if level1==0:# both poly or active + viastack.add_ports(min_square.get_ports_list(),prefix="bottom_layer_") + else:# both mets + viastack.add_ports(min_square.get_ports_list(),prefix="top_met_") + viastack.add_ports(min_square.get_ports_list(),prefix="bottom_met_") + else: + ports_to_add = dict() + for level in range(level1,level2+1): + via_name = "mcon" if level==0 else "via"+str(level) + layer_name = glayer1 if level==0 else "met"+str(level) + # get layer sizing + mode = "below" if level==level2 else ("above" if level==level1 else "both") + mode = "both" if assume_bottom_via and level==level1 else mode + layer_dim = __get_layer_dim(pdk, layer_name, mode=mode) + # place met/via, do not place via if on top layer + if level != level2: + via_dim = pdk.get_grule(via_name)["width"] + via_ref = viastack << rectangle(size=[via_dim,via_dim],layer=pdk.get_glayer(via_name), centered=True) + lay_ref = viastack << rectangle(size=[layer_dim,layer_dim],layer=pdk.get_glayer(layer_name), centered=True) + # update ports + if layer_name == glayer1: + ports_to_add["bottom_layer_"] = lay_ref.get_ports_list() + ports_to_add["bottom_via_"] = via_ref.get_ports_list() + if (level1==0 and level==1) or (level1>0 and layer_name==glayer1): + ports_to_add["bottom_met_"] = lay_ref.get_ports_list() + if layer_name == glayer2: + ports_to_add["top_met_"] = lay_ref.get_ports_list() + # implement fulltop and fullbottom options. update ports_to_add accordingly + if fullbottom: + bot_ref = viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer(glayer1), centered=True) + if level1!=0: + ports_to_add["bottom_met_"] = bot_ref.get_ports_list() + ports_to_add["bottom_layer_"] = bot_ref.get_ports_list() + if fulltop: + ports_to_add["top_met_"] = (viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer(glayer2), centered=True)).get_ports_list() + # add all ports in ports_to_add + for prefix, ports_list in ports_to_add.items(): + viastack.add_ports(ports_list,prefix=prefix) + # move SW corner to 0,0 if centered=False + if not centered: + viastack = move(viastack,(viastack.xmax,viastack.ymax)) + return rename_ports_by_orientation(viastack.flatten()) + + +@cell +def via_array( + pdk: MappedPDK, + glayer1: str, + glayer2: str, + size: Optional[tuple[float,float]] = None, + minus1: bool = False, + num_vias: Optional[tuple[int,int]] = (1,1), + lay_bottom: bool = False +) -> Component: + """Fill a region with vias. Will automatically decide num rows and columns + args: + pdk: MappedPDK is the pdk to use + glayer1: str is the glayer to start on + glayer2: str is the glayer to end on + lay_bottom: bool if true will lay bottom met all over size (by default only lays top met all over size) + ****NOTE it does not matter what order you pass layers + ****NOTE will not lay poly or active but will lay metals + size: tuple is the (width, hieght) of the area to enclose + ****NOTE: the size will be the dimensions of the top metal + minus1: if true removes 1 via from rows/cols num vias + ****use if you want extra space at the edges of the array + num_vias: number of rows/cols in the via array. Overrides size option + + ports, some ports are not layed when it does not make sense (e.g. empty component): + top_met_...all edges + bottom_met_...all edges (only if lay_bottom is specified) + """ + size = pdk.snap_to_2xgrid(size) + tmpsize = list(size) + for i in range(2): + if isinstance(size[i], Union[float,int]): + tmpsize[i] = Decimal(str(size[i])) + size = tmpsize + # setup + ordered_layer_info = __error_check_order_layers(pdk, glayer1, glayer2) + level1, level2 = ordered_layer_info[0] + glayer1, glayer2 = ordered_layer_info[1] + viaarray = Component() + # if same level return empty component + if level1 == level2: + return viaarray + # figure out min space between via stacks + viastack = via_stack(pdk, glayer1, glayer2).remove_layers(layers=[pdk.get_glayer(glayer2)]) + via_spacing = [] if level1 else [Decimal(str(pdk.get_grule("mcon")["min_separation"]))] + level1_met = level1 if level1 else level1 + 1 + get_sep = lambda _pdk, rule, _lay_, comp : 2*(rule/2+Decimal(str(comp.extract(layers=[_pdk.get_glayer(_lay_)]).xmax))-Decimal(str(comp.xmax))) + outer_enclosure = 0 + for level in range(level1_met, level2): + met_glayer = "met" + str(level) + via_glayer = "via" + str(level) + mrule = Decimal(str(pdk.get_grule(met_glayer)["min_separation"])) + vrule = Decimal(str(pdk.get_grule(via_glayer)["min_separation"])) + via_spacing.append(get_sep(pdk, mrule,met_glayer,viastack)) + via_spacing.append(get_sep(pdk, vrule,via_glayer,viastack)) + if level == (level2-1): + outer_enclosure = Decimal(str(pdk.get_grule(glayer2,via_glayer)["min_enclosure"])) + via_spacing = max(via_spacing) + # error check size + viadim = 2*Decimal(str(viastack.xmax)) + for i, dim in enumerate(size): + if Decimal(str(to_float(viadim))) > Decimal(str(to_float(dim))): + raise ValueError(f"via_array,size:dim {i}={dim} less than {viadim}") + viaspacing_full = via_spacing + viadim + # num_vias[0]=x, num_vias[1]=y + encsize = [dim - outer_enclosure for dim in size] + num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in encsize] + if minus1: + num_vias = [(dim - 1 if dim > 1 else dim) for dim in num_vias] + # create array + viaarray = prec_array( + viastack, + columns=num_vias[0], + rows=num_vias[1], + spacing=[viaspacing_full, viaspacing_full], + absolute_spacing=True + ) + # place bottom metal, top metal, add ports, and return + if lay_bottom: + if level1: + keymetdims = viaarray.extract(layers=[pdk.get_glayer("met"+str(level1_met))]).bbox + bheight = 2*keymetdims[1][1] + bwidth = 2*keymetdims[1][0] + else: + bviadims = viaarray.extract(layers=[pdk.get_glayer("mcon")]).bbox + added_enclosure = 2*pdk.get_grule(glayer1,"mcon")["min_enclosure"] + bheight = 2*bviadims[1][1] + added_enclosure + bwidth = 2*bviadims[1][0] + added_enclosure + b_met_dims = [bwidth, bheight] + bref = viaarray << rectangle(size=b_met_dims, layer=pdk.get_glayer(glayer1), centered=True) + viaarray.add_ports(bref.get_ports_list(), prefix="bottom_met_") + top_met_layer = pdk.get_glayer("met" + str(level2)) + tref = viaarray << rectangle(size=(float(size[0]),float(size[1])), layer=top_met_layer, centered=True) + viaarray.add_ports(tref.get_ports_list(), prefix="top_met_") + return component_snap_to_grid(rename_ports_by_orientation(viaarray)) + + +if __name__ == "__main__": + from .pdk.util.standard_main import pdk, parser + from .pdk.util.custom_comp_utils import print_ports + from pathlib import Path + + # default behavoir is to run one design and exit + parser.add_argument("--all", "-a", action="store_true", help="runs all tests") + parser.add_argument("--viastack", "-s", action="store_true", help="runs all via_stack tests") + parser.add_argument("--viaarray", "-v", action="store_true", help="runs all via_array tests") + parser.add_argument("--write", "-w", help="writes all gds files to directory specfied") + parser.add_argument("--ports", action="store_true", help="print ports") + args = parser.parse_args() + # run comps + comps = list() + if args.viaarray or args.all: + layers = ["poly", "met1", "met2", "met3"] + for lay1 in layers: + for lay2 in layers: + comps.append(via_array(pdk, lay1, lay2, lay_bottom=True)) + elif args.viastack or args.all: + layers = ["poly", "met1", "met2", "met3"] + for lay1 in layers: + for lay2 in layers: + comps.append(via_stack(pdk, lay1, lay2,fullbottom=True,fulltop=True)) + else: + myarray = via_array(pdk, "poly", "met2",size=(5,4)) + # show and write (if write is specfied) + if args.write: + gds_write_path = Path(args.write) + if not gds_write_path.is_dir(): + raise ValueError("gds write must be a dir path") + for comp in comps: + comp.write_gds(comp.name+".gds") + for comp in comps: + comp.show() + # print_ports + if args.ports: + for comp in comps: + print_ports(myarray) diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index e5f343aee..796eaffb6 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -16,10 +16,19 @@ import numpy as np from subprocess import Popen from pathlib import Path -from typing import Union +from typing import Union, Optional from tempfile import TemporaryDirectory from shutil import copyfile, copytree from multiprocessing import Pool +import matplotlib.pyplot as plt +from scipy.stats import norm +from scipy.optimize import curve_fit +from scipy.spatial.distance import pdist, squareform +import pandas as pd +import seaborn as sns +from sklearn.decomposition import PCA +from sklearn.cluster import KMeans, AgglomerativeClustering +from sklearn.metrics import silhouette_score def sky130_opamp_add_pads(opamp_in: Component) -> Component: @@ -133,8 +142,9 @@ def opamp_parameters_serializer( diffpair_bias: tuple[float, float, int] = (6, 2, 4), houtput_bias: tuple[float, float, int, int] = (6, 2, 8, 3), pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), - mim_cap_size=(12, 12), - mim_cap_rows=3 + mim_cap_size: tuple[int,int]=(12, 12), + mim_cap_rows: int=3, + rmult: int=2 ) -> np.array: """converts opamp params into the uniform numpy float format""" return np.array( @@ -143,14 +153,19 @@ def opamp_parameters_serializer( houtput_bias[0],houtput_bias[1],houtput_bias[2],houtput_bias[3], pamp_hparams[0],pamp_hparams[1],pamp_hparams[2],pamp_hparams[3], mim_cap_size[0],mim_cap_size[1], - mim_cap_rows], + mim_cap_rows, + rmult], dtype=np.float64 ) -def opamp_parameters_de_serializer(serialized_params: np.array) -> dict: +def opamp_parameters_de_serializer(serialized_params: Optional[np.array]=None) -> dict: """converts uniform numpy float format to opamp kwargs""" - if not len(serialized_params) == 17: - raise ValueError("serialized_params should be a length 15 array") + if serialized_params is None: + serialized_params = 18*[-987.654321] + serialized_params[16] = int(-987.654321) + serialized_params[17] = int(-987.654321) + if not len(serialized_params) == 18: + raise ValueError("serialized_params should be a length 18 array") params_dict = dict() params_dict["diffpair_params"] = tuple(serialized_params[0:3]) params_dict["diffpair_bias"] = tuple(serialized_params[3:6]) @@ -158,8 +173,33 @@ def opamp_parameters_de_serializer(serialized_params: np.array) -> dict: params_dict["pamp_hparams"] = tuple(serialized_params[10:14]) params_dict["mim_cap_size"] = tuple(serialized_params[14:16]) params_dict["mim_cap_rows"] = int(serialized_params[16]) + params_dict["rmult"] = int(serialized_params[17]) return params_dict +def opamp_results_serializer( + ugb: float = -987.654321, + dcGain: float = -987.654321, + phaseMargin: float = -987.654321, + biasVoltage1: float = -987.654321, + biasVoltage2: float = -987.654321, + area: float = -987.654321 +) -> np.array: + return np.array([ugb, dcGain, phaseMargin, biasVoltage1, biasVoltage2, area], dtype=np.float64) + +def opamp_results_de_serializer( + results: np.array +) -> dict: + if not len(serialized_params) == 6: + raise ValueError("results should be a length 5 array") + results_dict = dict() + results_dict["ugb"] = float(serialized_params[0]) + results_dict["dcGain"] = float(serialized_params[1]) + results_dict["phaseMargin"] = float(serialized_params[2]) + results_dict["biasVoltage1"] = float(serialized_params[3]) + results_dict["biasVoltage2"] = float(serialized_params[4]) + results_dict["area"] = float(serialized_params[5]) + return results_dict + def get_small_parameter_list(test_mode = False) -> np.array: """creates small parameter list intended for brute force""" @@ -193,46 +233,54 @@ def get_small_parameter_list(test_mode = False) -> np.array: pamp_hparams.append((width,length,fingers,3)) # rows of the cap array to try cap_arrays = [2,3] + # routing mults to try + rmults = [1,2] # ****************************************** # create and return the small parameters list - short_list_len = len(diffpairs) * len(bias2s) * len(pamp_hparams) * len(cap_arrays) + short_list_len = len(diffpairs) * len(bias2s) * len(pamp_hparams) * len(cap_arrays) * len(rmults) short_list = np.empty(shape=(short_list_len,len(opamp_parameters_serializer())),dtype=np.float64) index = 0 for diffpair_v in diffpairs: for bias2_v in bias2s: for pamp_o_v in pamp_hparams: for cap_array_v in cap_arrays: - tup_to_add = opamp_parameters_serializer( - diffpair_params=diffpair_v, - houtput_bias=bias2_v, - mim_cap_rows=cap_array_v, - pamp_hparams=pamp_o_v - ) - short_list[index] = tup_to_add - index = index + 1 + for rmult in rmults: + tup_to_add = opamp_parameters_serializer( + diffpair_params=diffpair_v, + houtput_bias=bias2_v, + mim_cap_rows=cap_array_v, + pamp_hparams=pamp_o_v, + rmult=rmult, + ) + short_list[index] = tup_to_add + index = index + 1 return short_list -def get_big_parameter_list() -> np.array: - """creates a large parameters list intended for the neural network""" - raise NotImplementedError("TODO") - return - - - -def get_result(filepath: Union[str,Path]): +def get_sim_results(filepath: Union[str,Path]): fileabspath = Path(filepath).resolve() with open(fileabspath, "r") as ResultReport: - RawResult = ResultReport.readline() - Columns = RawResult.split(" ") - if len(columns)<11: - return {"UGB":-123.45,"biasVoltage1":-123.45,"biasVoltage2":-123.45} - return { - "UGB": Columns[3], - "biasVoltage1": Columns[7], - "biasVoltage2": Columns[11] + RawResult = ResultReport.readlines()[0] + Columns = [item for item in RawResult.split() if item] + na = -987.654321 + if len(Columns)<9 or Columns is None: + return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na} + return_dict = { + "ugb": Columns[1], + "biasVoltage1": Columns[3], + "biasVoltage2": Columns[5], + "phaseMargin": Columns[7], + "dcGain": Columns[9] } + for key, val in return_dict.items(): + val_flt = na + try: + val_flt = float(val) + except ValueError: + val_flt = na + return_dict[key] = val_flt + return return_dict def standardize_netlist_subckt_def(netlist: Union[str,Path]): netlist = Path(netlist).resolve() @@ -250,16 +298,21 @@ def standardize_netlist_subckt_def(netlist: Union[str,Path]): with open(netlist, "w") as spice_net: spice_net.writelines(subckt_lines) -def __run_single_brtfrc(parameters_ele): +def __run_single_brtfrc(index, parameters_ele): # generate layout global pdk + global save_gds_dir + destination_gds_copy = save_gds_dir / (str(index)+".gds") sky130pdk = pdk params = opamp_parameters_de_serializer(parameters_ele) opamp_v = sky130_add_opamp_labels(opamp(sky130pdk, **params)) opamp_v.name = "opamp" + area = float(opamp_v.area()) # use temp dir with TemporaryDirectory() as tmpdirname: tmp_gds_path = Path(opamp_v.write_gds(gdsdir=tmpdirname)).resolve() + if tmp_gds_path.is_file(): + destination_gds_copy.write_bytes(tmp_gds_path.read_bytes()) copyfile("extract.bash",str(tmpdirname)+"/extract.bash") copyfile("opamp_perf_eval.sp",str(tmpdirname)+"/opamp_perf_eval.sp") copytree("sky130A",str(tmpdirname)+"/sky130A") @@ -268,7 +321,10 @@ def __run_single_brtfrc(parameters_ele): standardize_netlist_subckt_def(str(tmpdirname)+"/opamp_pex.spice") # run sim and store result Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() - return get_result(str(tmpdirname)+"/output.txt")["UGB"] + result_dict = get_sim_results(str(tmpdirname)+"/output.txt") + result_dict["area"] = area + results = opamp_results_serializer(**result_dict) + return results def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array) -> np.array: """runs the brute force testing of parameters by @@ -286,8 +342,11 @@ def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np. # initialize empty results array results = None # run layout, extraction, sim + global save_gds_dir + save_gds_dir = Path('./save_gds_by_index').resolve() + save_gds_dir.mkdir(parents=True) with Pool(120) as cores: - results = np.array(cores.map(__run_single_brtfrc, parameter_list),np.float64) + results = np.array(cores.starmap(__run_single_brtfrc, enumerate(parameter_list)),np.float64) # undo pdk modification sky130pdk.default_decorator = add_npc_decorator return results @@ -300,13 +359,13 @@ def get_training_data(test_mode=True,): np.save("training_results.npy",results) -#parser.add_argument("--test_mode", "-t", action="store_true", help="runs a short 2 ele test") -#args = parser.parse_args() -#get_training_data(test_mode=args.test_mode) +parser.add_argument("--test_mode", "-t", action="store_true", help="runs a short 2 ele test") +args = parser.parse_args() +get_training_data(test_mode=args.test_mode) -opamp_out = sky130_opamp_add_pads(opamp(pdk)) +#opamp_out = sky130_opamp_add_pads(opamp(pdk)) #sky130_add_opamp_labels(opamp_in).show() -opamp_out.show() +#opamp_out.show() #parameters = np.array() @@ -316,3 +375,244 @@ def get_training_data(test_mode=True,): # generate opamps + + +def save_distwith_best_fit(data, output_file, title="Distribution With Trend", xlabel="Data", ylabel="Distribution"): + """Create a histogram with a line of best fit for the input data and save it as a PNG file. + args: + data (numpy.array): 1D array containing the simulation metrics. + output_file (str): File path to save the generated PNG. + bins (int or str): Number of bins for the histogram or 'auto' for automatic binning (default is 'auto'). + fit_distribution (str): Distribution to fit to the data. Supported options: 'norm' (normal distribution) or 'exponential'. + """ + # Create the histogram + plt.figure() + n, bins, patches = plt.hist(data, bins="auto", density=True, alpha=0.7) + # Fit a normal distribution to the data + mu, sigma = norm.fit(data) + best_fit_line = norm.pdf(bins, mu, sigma) + distribution_label = 'Normal Distribution' + # Add the line of best fit to the plot + plt.plot(bins, best_fit_line, 'r-', label=distribution_label) + # Add labels and legend + plt.xlabel(xlabel) + plt.ylabel(ylabel) + plt.title(title) + plt.legend() + # Save the plot as a PNG file + plt.savefig(output_file) + plt.clf() + +def save_pairwise_scatter_plot(data, output_file): + """Create a Pairwise Scatter Plot for the input data and save it as a PNG file. + args: + data (numpy.array or pandas.DataFrame): + output_file (str/path): File path to save the generated PNG. + """ + # If the data is a NumPy array, convert it to a pandas DataFrame + if isinstance(data, np.ndarray): + data = pd.DataFrame(data) + # Create the Pairwise Scatter Plot + sns.pairplot(data) + # Save the plot as a PNG file + plt.savefig(output_file) + plt.close() + plt.clf() + +def run_pca_and_save_plot(data, output_file): + """Run PCA on the input data and save the PCA plot as a PNG file. + args: + data (numpy.array or pandas.DataFrame): The 17-dimensional input data for PCA. + output_file (str): File path to save the generated PNG. + """ + # If the data is a pandas DataFrame, convert it to a NumPy array + if isinstance(data, pd.DataFrame): + data = data.to_numpy() + # Perform PCA + pca = PCA(n_components=2) # Reduce to 2 dimensions for visualization + pca_result = pca.fit_transform(data) + # Create the biplot + plt.figure(figsize=(10, 8)) + plt.scatter(pca_result[:, 0], pca_result[:, 1], alpha=0.7) + # Plot feature loadings as arrows + feature_vectors = pca.components_.T + for i, (x, y) in enumerate(feature_vectors): + plt.arrow(0, 0, x, y, color='r', alpha=0.5) + plt.text(x, y, f'Feature {i+1}', color='g', ha='center', va='center') + # Add labels and title + plt.xlabel('Principal Component 1') + plt.ylabel('Principal Component 2') + plt.title('PCA Biplot') + # Save the plot as a PNG file + plt.savefig(output_file) + plt.close() + plt.clf() + +def find_optimal_clusters(data, max_clusters=10): + if isinstance(data, pd.DataFrame): + data = data.to_numpy() + + results = [] + for num_clusters in range(1, max_clusters + 1): + kmeans = KMeans(n_clusters=num_clusters) + kmeans.fit(data) + inertia = kmeans.inertia_ + results.append((num_clusters, inertia)) + + return results + +def elbow_point(x, y): + deltas = np.diff(y) + elbow_index = np.argmax(deltas < np.mean(deltas)) + return x[elbow_index] + +def create_pca_biplot_with_clusters(data, results, output_file, max_clusters=10): + if isinstance(data, pd.DataFrame): + data = data.to_numpy() + if isinstance(results, pd.Series): + results = results.to_numpy() + pca = PCA(n_components=2) + pca_result = pca.fit_transform(data) + cluster_results = find_optimal_clusters(data, max_clusters) + num_clusters_values, inertias = zip(*cluster_results) + optimal_num_clusters = elbow_point(num_clusters_values, inertias) + kmeans = KMeans(n_clusters=int(optimal_num_clusters)) + cluster_assignments = kmeans.fit_predict(data) + plt.figure(figsize=(10, 8)) + for i in range(int(optimal_num_clusters)): + cluster_indices = np.where(cluster_assignments == i)[0] + plt.scatter(pca_result[cluster_indices, 0], pca_result[cluster_indices, 1], alpha=0.7, label=f'Cluster {i+1}') + # Color the data points based on their result values + plt.scatter(pca_result[:, 0], pca_result[:, 1], c=results, cmap='viridis', edgecolor='k', s=80) + feature_vectors = pca.components_.T + for i, (x, y) in enumerate(feature_vectors): + plt.arrow(0, 0, x, y, color='r', alpha=0.5) + plt.text(x, y, f'Feature {i+1}', color='g', ha='center', va='center') + plt.xlabel('Principal Component 1') + plt.ylabel('Principal Component 2') + plt.title('PCA Biplot with Clusters') + plt.legend() + plt.colorbar(label='Results') + plt.savefig(output_file) + plt.close() + plt.clf() + +def create_heatmap_with_clusters(parameters, results, output_file, max_clusters=10): + if isinstance(parameters, pd.DataFrame): + parameters = parameters.to_numpy() + if isinstance(results, pd.Series): + results = results.to_numpy() + # Perform PCA + pca = PCA(n_components=2) + pca_result = pca.fit_transform(parameters) + # Cluster the parameters based on the results using hierarchical clustering + results_dist = pdist(results.reshape(-1, 1)) # Pairwise distance between result values + results_linkage = squareform(results_dist) # Convert to a condensed distance matrix + clustering = AgglomerativeClustering(n_clusters=max_clusters, affinity='precomputed', linkage='complete') + cluster_assignments = clustering.fit_predict(results_linkage) + # Create a dictionary to map clusters to their corresponding parameters + cluster_param_dict = {} + for cluster_id, param_values in zip(cluster_assignments, parameters): + if cluster_id not in cluster_param_dict: + cluster_param_dict[cluster_id] = [] + cluster_param_dict[cluster_id].append(param_values) + # Calculate the mean parameter values for each cluster + cluster_means = [np.mean(cluster_param_dict[cluster_id], axis=0) for cluster_id in range(max_clusters)] + # Create the heatmap + plt.figure(figsize=(10, 8)) + sns.heatmap(cluster_means, cmap='YlGnBu', annot=True, fmt='.2f', xticklabels=False, + yticklabels=False, cbar_kws={'label': 'Mean Parameter Value'}) + plt.xlabel('17-Dimensional Parameters') + plt.ylabel('Clusters') + plt.title('Heatmap with Clusters') + plt.savefig(output_file) + plt.close() + plt.clf() + +def find_indices_with_same_other_params(data, parameter_index, other_params_values): + mask = np.ones(len(data), dtype=bool) + num_params = data.shape[1] + for param_idx in range(num_params): + if param_idx == parameter_index: + continue + mask = mask & (data[:, param_idx] == other_params_values[param_idx]) + return np.where(mask)[0] + +def isolate_single_param_scatter(data: np.array, results: np.array, col_to_isolate: int, output_file: str): + example_others = data[0, :] + indices = find_indices_with_same_other_params(data, col_to_isolate, example_others) + x = data[indices, col_to_isolate] + y = results[indices] + plt.scatter(x, y, marker='o', s=50, label="Data Points") + # Fit a quadratic regression model to the data + coeffs = np.polyfit(x, y, deg=2) + # Generate points for the quadratic trend line + quadratic_function = lambda x, a, b, c: a * x**2 + b * x + c + trend_line_x = np.linspace(min(x), max(x), 1000) + trend_line_y = quadratic_function(trend_line_x, *coeffs) + # Plot the quadratic trend line + plt.plot(trend_line_x, trend_line_y, color='red', label="Quadratic Trend Line") + # label and return + plt.xlabel("param vals") + plt.ylabel("isolated changes") + plt.title("Scatter Plot of 2D Array") + plt.legend() + plt.grid(True) + plt.savefig(output_file) + plt.clf() + +def extract_stats( + params: Union[np.array,str,Path], + results: Union[np.array,str,Path], +) -> None: + # reading files, error checks + strtopath = lambda strin : Path(strin).resolve() if isinstance(strin,str) else strin + pathtoarr = lambda datain : np.load(datain.resolve()) if isinstance(datain,Path) else datain + params_dirty = pathtoarr(strtopath(params)) + results_dirty = pathtoarr(strtopath(results)) + clean_condition = results_dirty > 0 + params = params_dirty[clean_condition] + results = results_dirty[clean_condition] + if len(params)!=len(results): + raise ValueError("expect both results and params to be same length") + # construct dictionary key=colnames: vals=1D np arrays + col_struct = opamp_parameters_de_serializer() + colnames_vals = dict() + for key, val in col_struct.items(): + if type(val)==tuple: + if len(val)==3: + colnames = ["width","length","fingers"] + elif len(val)==4: + colnames = ["width","length","fingers","multipliers"] + elif len(val)==2: + colnames = ["width","length"] + for colname in colnames: + colnames_vals[key+"_"+colname] = "place_holder" + elif type(val)==int: + colnames_vals[key] = "place_holder" + for i, colname in enumerate(colnames_vals): + colnames_vals[colname] = params[:, i] + # run statistics on distribution of training parameters individually + params_stats_hists = Path("./stats/param_stats/hists1D") + params_stats_hists.mkdir(parents=True) + for colname, val in colnames_vals.items(): + save_distwith_best_fit(val,str(params_stats_hists)+"/"+colname+".png",'Parameter Distribution',colname,'Normalized trials') + param_stats_isolate = Path("./stats/param_stats/isolate") + param_stats_isolate.mkdir(parents=True) + for i, colname in enumerate(colnames_vals): + isolate_single_param_scatter(params,results,i,str(param_stats_isolate)+"/"+colname+".png") + # run stats on distribution of training parameters using pair scatter plots + params_stats_scatter = Path("./stats/param_stats/scatter") + params_stats_scatter.mkdir(parents=True) + save_pairwise_scatter_plot(params,str(params_stats_scatter)+"/pairscatter_params.png") + # run PCA on training parameters + run_pca_and_save_plot(params,str(params_stats_scatter)+"/PCA_params.png") + # run statistics on results + result_stats_dir = Path("./stats/result_stats") + result_stats_dir.mkdir(parents=True) + save_distwith_best_fit(results,str(result_stats_dir)+"/result_UGB_dist.png","UGB Distribution","UGB") + # run stats on results and data combined + comb_stats_dir = Path("./stats/combined") + comb_stats_dir.mkdir(parents=True) + create_pca_biplot_with_clusters(params,results,str(comb_stats_dir)+"/heatmapresults_params.png") + create_heatmap_with_clusters(params,results,str(comb_stats_dir)+"/heatmap_results_clustered.png") From cb1d1828df3078edd32a247c4bb5f5ea7740e577 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Thu, 27 Jul 2023 02:42:01 -0400 Subject: [PATCH 27/64] pygen refactor/bug fixes + RL code enhancments --- .../gdsfactory-gen/pygen/diff_pair.py | 30 -- .../generators/gdsfactory-gen/pygen/fet.py | 493 +++++++----------- .../generators/gdsfactory-gen/pygen/opamp.py | 6 +- .../pygen/pdk/util/custom_comp_utils.py | 99 ++-- .../pygen/pdk/util/opamp_array_create.py | 52 ++ .../gdsfactory-gen/pygen/straight_route.py | 1 + .../gdsfactory-gen/pygen/via_gen.py | 159 +++--- .../gdsfactory-gen/pygen/via_gen_proto.py | 290 ----------- .../{pygen => }/requirements.txt | 5 +- .../gdsfactory-gen/sky130_nist_tapeout.py | 275 ++++++++-- 10 files changed, 625 insertions(+), 785 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py delete mode 100644 openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py rename openfasoc/generators/gdsfactory-gen/{pygen => }/requirements.txt (50%) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index 85130c631..260a295a9 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -15,7 +15,6 @@ from .via_gen import via_stack from .pdk.util.snap_to_grid import component_snap_to_grid -#diffpair << route_sharp(b_topr.ports["multiplier_0_source_E"],viam2m3_ref_tr.ports["bottom_met_W"], width=connect_width, layer=pdk.get_glayer("met2"), path_type="manhattan") @cell def diff_pair( @@ -62,35 +61,6 @@ def diff_pair( a_botr.mirror_y().movey(0-0.5-fet.ymax-min_spacing_y/2).movex(fet.xmax+min_spacing_x/2) b_botl = (diffpair << fet) b_botl.mirror_y().movey(0-0.5-fet.ymax-min_spacing_y/2).movex(0-fet.xmax-min_spacing_x/2) - # create gate route between transistor A mults - #avia_gate_tl = align_comp_to_port(viam2m3, a_topl.ports["multiplier_0_gate_E"], ('r','b')) - #diffpair.add(avia_gate_tl) - #avia_gate_br = align_comp_to_port(viam2m3, a_botr.ports["multiplier_0_gate_W"], ('l','t')) - #diffpair.add(avia_gate_br) - # lay metal spacer - #min_metal_spacer = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, metal_space), layer=pdk.get_glayer("met3"), centered=True) - #metal_space_tl = align_comp_to_port(min_metal_spacer, avia_gate_tl.ports["top_met_S"], ('l','b')) - #diffpair.add(metal_space_tl) - #metal_space_br = align_comp_to_port(min_metal_spacer, avia_gate_br.ports["top_met_N"], ('r','t')) - #diffpair.add(metal_space_br) - # lay cross metal - #amet_cross_width = abs(metal_space_br.ports["e3"].center[0] - metal_space_tl.ports["e1"].center[0]) - #amet_cross_hieght = abs(metal_space_tl.ports["e4"].center[1] - metal_space_br.ports["e2"].center[1]) - #amet_gate_cross = rectangle(size=(amet_cross_width, amet_cross_hieght), layer=pdk.get_glayer("met3"), centered=True) - #cross_metal_gate_a = align_comp_to_port(amet_gate_cross, metal_space_br.ports["e2"], ('l','t')) - #diffpair.add(cross_metal_gate_a) - # create gate route between transistor B mults - #min_metal_spacer_2 = rectangle(size=(avia_gate_tl.ports["top_met_S"].width, gate_route_os), layer=pdk.get_glayer("met2"), centered=True) - # lay metal spacers - #metal_space_bl = align_comp_to_port(min_metal_spacer_2, b_botl.ports["multiplier_0_gate_S"], ('r','t')) - #diffpair.add(metal_space_bl) - #metal_space_tr = align_comp_to_port(min_metal_spacer_2, b_topr.ports["multiplier_0_gate_S"], ('l','b')) - #diffpair.add(metal_space_tr) - # lay cross metal - #bmet_cross_width = abs(metal_space_tr.ports["e3"].center[0] - metal_space_bl.ports["e1"].center[0]) - #bmet_gate_cross = rectangle(size=(bmet_cross_width, metal_space), layer=pdk.get_glayer("met2"), centered=True) - #cross_metal_gate_b = align_comp_to_port(bmet_gate_cross, metal_space_tr.ports["e4"], ('l','b')) - #diffpair.add(cross_metal_gate_b) # route sources (short sources) diffpair << route_quad(a_topl.ports["multiplier_0_source_E"], b_topr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) diffpair << route_quad(b_botl.ports["multiplier_0_source_E"], a_botr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py index 5859b6b1d..d85bda56a 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -7,38 +7,58 @@ from .via_gen import via_array, via_stack from .guardring import tapring from pydantic import validate_arguments -from .pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center +from .pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center, prec_ref_center, movey, align_comp_to_port from .c_route import c_route from .pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal +from .straight_route import straight_route @validate_arguments -def __gen_fingers_macro(pdk: MappedPDK, fingers: int, length: float, width: float, poly_height: float) -> Component: - """internal use: returns an array of fingers""" - import pdb; pdb.set_trace() - sizing_ref_viastack = via_stack(pdk, "active_diff", "met1") - # figure out poly (gate) spacing: s/d metal doesnt overlap transistor, s/d min seperation criteria is met - sd_viaxdim = evaluate_bbox(via_stack(pdk, "active_diff", "met1"))[0] - poly_spacing = 2 * pdk.get_grule("poly", "mcon")["min_separation"] + pdk.get_grule("mcon")["width"] - poly_spacing = max(sd_viaxdim, poly_spacing) - met1_minsep = pdk.get_grule("met1")["min_separation"] - poly_spacing += met1_minsep if length < met1_minsep else 0 - # create a single finger - finger = Component("finger") - finger << rectangle(size=(length, poly_height), layer=pdk.get_glayer("poly"), centered=True) - sd_viaarr = via_array(pdk, "active_diff", "met1", size=(sd_viaxdim, width), minus1=True) - sd_viaarr_ref = finger << sd_viaarr - sd_viaarr_ref.movex((poly_spacing+length) / 2) - # create finger array and add to multiplier - fingerarray = prec_array(finger, columns=fingers, rows=1, spacing=(poly_spacing, 1)) - sd_via_ref_left = fingerarray << sd_viaarr - sd_via_ref_left.movex(to_float(0-(poly_spacing+length)/2)) - fingerarray = component_snap_to_grid(fingerarray) +def __gen_fingers_macro(pdk: MappedPDK, rmult: int, fingers: int, length: float, width: float, poly_height: float, sdlayer: str) -> Component: + """internal use: returns an array of fingers""" + length = pdk.snap_to_2xgrid(length) + width = pdk.snap_to_2xgrid(width) + poly_height = pdk.snap_to_2xgrid(poly_height) + sizing_ref_viastack = via_stack(pdk, "active_diff", "met1") + # figure out poly (gate) spacing: s/d metal doesnt overlap transistor, s/d min seperation criteria is met + sd_viaxdim = rmult*evaluate_bbox(via_stack(pdk, "active_diff", "met1"))[0] + poly_spacing = 2 * pdk.get_grule("poly", "mcon")["min_separation"] + pdk.get_grule("mcon")["width"] + poly_spacing = max(sd_viaxdim, poly_spacing) + met1_minsep = pdk.get_grule("met1")["min_separation"] + poly_spacing += met1_minsep if length < met1_minsep else 0 + # create a single finger + finger = Component("finger") + gate = finger << rectangle(size=(length, poly_height), layer=pdk.get_glayer("poly"), centered=True) + sd_viaarr = via_array(pdk, "active_diff", "met1", size=(sd_viaxdim, width), minus1=True, lay_bottom=False) + sd_viaarr_ref = finger << sd_viaarr + sd_viaarr_ref.movex((poly_spacing+length) / 2) + finger.add_ports(gate.get_ports_list(),prefix="gate_") + finger.add_ports(sd_viaarr_ref.get_ports_list(),prefix="rightsd_") + # create finger array + fingerarray = prec_array(finger, columns=fingers, rows=1, spacing=(poly_spacing+length, 1),absolute_spacing=True) + sd_via_ref_left = fingerarray << sd_viaarr + sd_via_ref_left.movex(0-(poly_spacing+length)/2) + fingerarray.add_ports(sd_via_ref_left.get_ports_list(),prefix="leftsd_") + # center finger array and add ports + centered_farray = Component() + fingerarray_ref_center = prec_ref_center(fingerarray) + centered_farray.add(fingerarray_ref_center) + centered_farray.add_ports(fingerarray_ref_center.get_ports_list()) + # create diffusion and +doped region + multiplier = rename_ports_by_orientation(centered_farray) + diff_extra_enc = 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"] + diff_dims =(diff_extra_enc + evaluate_bbox(multiplier)[0], width) + multiplier << rectangle(size=diff_dims,layer=pdk.get_glayer("active_diff"),centered=True) + sd_diff_ovhg = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] + sdlayer_dims = [dim + sd_diff_ovhg for dim in diff_dims] + sdlayer_ref = multiplier << rectangle(size=sdlayer_dims, layer=pdk.get_glayer(sdlayer),centered=True) + multiplier.add_ports(sdlayer_ref.get_ports_list(),prefix="plusdoped_") + return component_snap_to_grid(rename_ports_by_orientation(multiplier)) @cell -def multiplier_prototype( +def multiplier( pdk: MappedPDK, sdlayer: str, width: Optional[float] = 3, @@ -49,7 +69,10 @@ def multiplier_prototype( dummy: Union[bool, tuple[bool, bool]] = True, sd_route_topmet: str = "met2", gate_route_topmet: str = "met2", - rmult: int = 1, + rmult: Optional[int]=None, + sd_rmult: int = 1, + gate_rmult: int=1, + interfinger_rmult: int=1 ) -> Component: """Generic poly/sd vias generator args: @@ -62,24 +85,33 @@ def multiplier_prototype( inter_finger_topmet = top metal of the via array laid on the source/drain regions ****NOTE: routing metal is layed over the source drain regions regardless of routing option dummy = true or false add dummy active/plus doped regions - rmult = multiplies thickness of routes (int only) + sd_rmult = multiplies thickness of sd metal (int only) + gate_rmult = multiplies gate by adding rows to the gate via array (int only) + interfinger_rmult = multiplies thickness of source/drain routes between the gates (int only) - ports (one port for each edge): + ports (one port for each edge), source is below drain: gate_... all edges (top met route of gate connection) source_...all edges (top met route of source connections) drain_...all edges (top met route of drain connections) plusdoped_...all edges (area of p+s/d or n+s/d layer) + rowx_coly_...all ports associated with finger array include gate_... and array_ (array includes all ports of the viastacks in the array) + leftsd_...all ports associated with the left most via array """ # error checking if "+s/d" not in sdlayer: raise ValueError("specify + doped region for multiplier") if not "met" in sd_route_topmet or not "met" in gate_route_topmet: raise ValueError("topmet specified must be metal layer") - if rmult<1: - raise ValueError("routing multiplier must be positive int") + if rmult: + if rmult<1: + raise ValueError("rmult must be positive int") + sd_rmult = rmult + gate_rmult = 1 + interfinger_rmult = ((rmult-1) or 1) + if sd_rmult<1 or interfinger_rmult<1 or gate_rmult<1: + raise ValueError("routing multipliers must be positive int") if fingers < 1: raise ValueError("number of fingers must be positive int") - multiplier = Component() # argument parsing and rule setup min_length = pdk.get_grule("poly")["min_width"] length = min_length if (length or min_length) <= min_length else length @@ -88,82 +120,50 @@ def multiplier_prototype( width = min_width if (width or min_width) <= min_width else width width = pdk.snap_to_2xgrid(width) poly_height = width + 2 * pdk.get_grule("poly", "active_diff")["overhang"] - - # call finger array - fingerarray = __gen_fingers_macro(pdk, fingers, length, width, poly_height) - - fingerarray_ref = multiplier << fingerarray - offset = (fingers - 1) * finger_dim / 2 - fingerarray_ref.movex(to_float(-1 * offset)) - # create diffusion and +doped region - diff_dims = ( - evaluate_bbox(multiplier)[0] - + 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"], - width, - ) - multiplier << rectangle(size=to_float(diff_dims), layer=pdk.get_glayer("active_diff"), centered=True) - sd_ovhg = Decimal(str(pdk.get_grule(sdlayer, "active_diff")["min_enclosure"])) - sd_ovhg_dims = [dim + 2*sd_ovhg for dim in diff_dims] - sdlayer_ref = multiplier << rectangle(layer=pdk.get_glayer(sdlayer), size=to_float(sd_ovhg_dims), centered=True) - multiplier.add_ports(sdlayer_ref.get_ports_list(),prefix="plusdoped_") + # call finger array + multiplier = __gen_fingers_macro(pdk, interfinger_rmult, fingers, length, width, poly_height, sdlayer) # route all drains/ gates/ sources if routing: - if fingers == 1: - raise NotImplementedError("fingers=1 not supported for routing") - # create sdvia (need dims) + # place vias, then straight route from top port to via-botmet_N + sd_N_port = multiplier.ports["leftsd_top_met_N"] sdvia = via_stack(pdk, "met1", sd_route_topmet) - # TODO: fix poly overhang / met1 separation - extracted_gates = multiplier.extract([pdk.get_glayer("poly")]) - gate_route_width = rmult * ( - Decimal(str(pdk.get_grule("mcon")["width"])) - + 2 * Decimal(str(pdk.get_grule("poly", "mcon")["min_enclosure"])) - ) - gate_route_length = evaluate_bbox(extracted_gates,True)[0] - routedims = [gate_route_length, gate_route_width] - gate_route = Component("gate route") - gate_route << rectangle(size=to_float(routedims), layer=pdk.get_glayer("poly"), centered=True) - routedims[1] = evaluate_bbox(via_stack(pdk, "poly", gate_route_topmet),True)[1] - gate_route << via_array(pdk, "poly", gate_route_topmet, size=to_float(routedims)) - routedims[1] = rmult * routedims[1] - gr_ref_ = gate_route << rectangle(layer=pdk.get_glayer(gate_route_topmet),size=to_float(routedims),centered=True) - gate_route.add_ports(gr_ref_.get_ports_list()) - gate_route_ref = multiplier << gate_route - gate_route_ref.movey(float(0-(poly_height + gate_route_width + routing_pfac)/2)) - multiplier.add_ports(gate_route_ref.get_ports_list(), prefix="gate_") - # source and drain routing - sdtop_coords = [ Decimal(str(fingerarray_ref.xmin)) + sd_viaxdim / 2, - Decimal(str(fingerarray_ref.parent.extract([pdk.get_glayer("met1")]).ymax))] - sd_offsets = list() - for finger in range(fingers + 1): - # extend the source drain connection to acamodate via - met1_core_size = Decimal(str(sdvia.extract([pdk.get_glayer("met1")]).ymax)) - extendm_length = Decimal(str(sdvia.ymax)) + met1_core_size - if finger % 2: - top_met_seperation = Decimal(str(pdk.get_grule(sd_route_topmet)["min_separation"])) + Decimal(str(0.1)) - extendm_length += rmult*evaluate_bbox(sdvia,True)[1] + top_met_seperation - extendm = multiplier << rectangle( - size=to_float((sd_viaxdim, extendm_length)), - layer=pdk.get_glayer("met1"), - ) - else: - extendm = multiplier << rectangle(size=to_float((sd_viaxdim, extendm_length)), layer=pdk.get_glayer("met1")) - extendm.move(destination=to_float(sdtop_coords)).movex(to_float(0-sd_viaxdim/2)) - # create the via between s/d connection and s/d route - sdvia_ref = multiplier << sdvia - sdvia_ref.move(destination=to_float(sdtop_coords)) - sdvia_ref.movey(to_float(extendm_length - met1_core_size)) - sdtop_coords[0] += finger_dim - extendm_length += sdtop_coords[1] - met1_core_size - sd_offsets += [extendm_length] if len(sd_offsets) < 2 else [] - mett_ext = multiplier.extract([pdk.get_glayer(sd_route_topmet)]) - mettroute_dims = (evaluate_bbox(mett_ext,True)[0], rmult * 2 * Decimal(str(sdvia.ymax))) - sd_mett_connect = rectangle( - layer=pdk.get_glayer(sd_route_topmet), size=to_float(mettroute_dims), centered=True - ) - prefix = ["source_", "drain_"] - for i, mof in enumerate(sd_offsets): - m2ref = (multiplier << sd_mett_connect).movey(to_float(mof)) - multiplier.add_ports(m2ref.get_ports_list(), prefix=prefix[i]) + sdmet_hieght = sd_rmult*evaluate_bbox(sdvia)[1] + sdroute_minsep = pdk.get_grule(sd_route_topmet)["min_separation"] + sdvia_ports = list() + for finger in range(fingers+1): + diff_top_port = movey(sd_N_port,destination=width/2) + # place sdvia such that metal does not overlap diffusion + big_extension = sdroute_minsep + sdmet_hieght/2 + sdmet_hieght + sdvia_extension = big_extension if finger % 2 else sdmet_hieght/2 + sdvia_ref = align_comp_to_port(sdvia,diff_top_port,alignment=('c','t')) + multiplier.add(sdvia_ref.movey(sdvia_extension)) + multiplier << straight_route(pdk, diff_top_port, sdvia_ref.ports["bottom_met_N"]) + sdvia_ports += [sdvia_ref.ports["top_met_W"], sdvia_ref.ports["top_met_E"]] + # get the next port (break before this if last iteration because port D.N.E. and num gates=fingers) + if finger==fingers: + break + sd_N_port = multiplier.ports[f"row0_col{finger}_rightsd_top_met_N"] + # route gates + gate_S_port = multiplier.ports[f"row0_col{finger}_gate_S"] + metal_seperation = pdk.util_max_metal_seperation() + psuedo_Ngateroute = movey(gate_S_port.copy(),0-metal_seperation) + multiplier << straight_route(pdk,gate_S_port,psuedo_Ngateroute) + # place route met: gate + gate_width = gate_S_port.center[0] - multiplier.ports["row0_col0_gate_S"].center[0] + gate_S_port.width + gate = rename_ports_by_list(via_array(pdk,"poly",gate_route_topmet, size=(gate_width,None),num_vias=(None,gate_rmult), no_exception=True, fullbottom=True),[("top_met_","gate_")]) + gate_ref = align_comp_to_port(gate.copy(), psuedo_Ngateroute, alignment=(None,'b'),layer=pdk.get_glayer("poly")) + multiplier.add(gate_ref) + # place route met: source, drain + sd_width = sdvia_ports[-1].center[0] - sdvia_ports[0].center[0] + sd_route = rectangle(size=(sd_width,sdmet_hieght),layer=pdk.get_glayer(sd_route_topmet),centered=True) + source = align_comp_to_port(sd_route.copy(), sdvia_ports[0], alignment=(None,'c')) + drain = align_comp_to_port(sd_route.copy(), sdvia_ports[2], alignment=(None,'c')) + multiplier.add(source) + multiplier.add(drain) + # add ports + multiplier.add_ports(drain.get_ports_list(), prefix="drain_") + multiplier.add_ports(source.get_ports_list(), prefix="source_") + multiplier.add_ports(gate_ref.get_ports_list(prefix="gate_")) # create dummy regions if isinstance(dummy, bool): dummyl = dummyr = dummy @@ -187,187 +187,9 @@ def multiplier_prototype( dummy_ref = multiplier << dummy dummy_ref.movex(side * (dummy_space + multiplier.xmax)) # ensure correct port names and return - multiplier = rename_ports_by_list(multiplier, [("source","source_"),("drain","drain_"),("gate","gate_"),("plusdoped","plusdoped_")]) return component_snap_to_grid(rename_ports_by_orientation(multiplier)) - -@cell -def multiplier( - pdk: MappedPDK, - sdlayer: str, - width: Optional[float] = 3, - fingers: Optional[int] = 1, - routing: bool = True, - dummy: Union[bool, tuple[bool, bool]] = True, - length: Optional[float] = None, - sd_route_topmet: Optional[str] = "met2", - gate_route_topmet: Optional[str] = "met2", - rmult: int = 1 -) -> Component: - """Generic poly/sd vias generator - args: - pdk = pdk to use - sdlayer = either p+s/d for pmos or n+s/d for nmos - width = expands the transistor in the y direction - fingers = introduces additional fingers (sharing s/d) of width=width - routing = true or false, specfies if sd should be connected - rmult = multiplies thickness of routes (int only) - dummy = true or false add dummy active/plus doped regions - length = transitor length (if left None defaults to min length) - - ports (one port for each edge): - gate_... all edges (top met route of gate connection) - source_...all edges (top met route of source connections) - drain_...all edges (top met route of drain connections) - plusdoped_...all edges (area of p+s/d or n+s/d layer) - """ - # error checking - if "+s/d" not in sdlayer: - raise ValueError("specify + doped region for multiplier") - if not "met" in sd_route_topmet or not "met" in gate_route_topmet: - raise ValueError("topmet specified must be metal layer") - rmult = 1 if rmult<1 else rmult - multiplier = Component() - if fingers == 0: - return multiplier - # create the poly gate - length = length or pdk.get_grule("poly")["min_width"] - length = Decimal(str(length)) - poly_overhang = Decimal(str(pdk.get_grule("poly", "active_diff")["overhang"])) - width = Decimal(str(width)) - poly_height = width + 2 * poly_overhang - routing_pfac = Decimal(str(max(pdk.get_grule("met1")["min_separation"],pdk.get_grule("met2")["min_separation"]) if routing else 0)) - poly_height += routing_pfac - poly_gate_comp = Component("temp poly gate") - tempref = poly_gate_comp << rectangle( - size=to_float((length, poly_height)), layer=pdk.get_glayer("poly"), centered=True - ) - tempref.movey(float(0-routing_pfac/2)) - # figure out poly spacing s.t. metal/via does not overlap transistor - tempviastack = via_stack(pdk, "active_diff", "met1") - viasize = evaluate_bbox(tempviastack,True)[0] - mcon_poly_space = ( - 2 * Decimal(str(pdk.get_grule("poly", "mcon")["min_separation"])) - + Decimal(str(pdk.get_grule("mcon")["width"])) - ) - poly_spacing = max(viasize, mcon_poly_space) - # create a single finger - finger = Component("temp finger comp") - finger << poly_gate_comp - routing_mfac = Decimal(str(pdk.get_grule("met1")["min_separation"] if routing else 0)) - vwidth = width + routing_mfac - sd_via_comp = via_array(pdk, "active_diff", "met1", size=to_float((viasize, vwidth)), minus1=True) - sd_via_ref_arr = finger << sd_via_comp - finger_dim = poly_spacing + max(length, Decimal(str(pdk.get_grule("met1")["min_separation"]))) - sd_via_ref_arr.movex(to_float(finger_dim / 2)).movey(to_float(routing_mfac / 2)) - # create finger array and add to multiplier - fingerarray = Component("temp finger array") - fingerarray = prec_array(finger, columns=fingers, rows=1, spacing=(finger_dim, 1), absolute_spacing=True) - sd_via_ref_left = fingerarray << sd_via_comp - sd_via_ref_left.movex(to_float(0-finger_dim/2)).movey(to_float(routing_mfac / 2)) - fingerarray = component_snap_to_grid(fingerarray) - fingerarray_ref = multiplier << fingerarray - offset = (fingers - 1) * finger_dim / 2 - fingerarray_ref.movex(to_float(-1 * offset)) - # create diffusion and +doped region - diff_dims = ( - evaluate_bbox(multiplier,True)[0] - + 2 * Decimal(str(pdk.get_grule("mcon", "active_diff")["min_enclosure"])), - width, - ) - multiplier << rectangle(size=to_float(diff_dims), layer=pdk.get_glayer("active_diff"), centered=True) - sd_ovhg = Decimal(str(pdk.get_grule(sdlayer, "active_diff")["min_enclosure"])) - sd_ovhg_dims = [dim + 2*sd_ovhg for dim in diff_dims] - sdlayer_ref = multiplier << rectangle(layer=pdk.get_glayer(sdlayer), size=to_float(sd_ovhg_dims), centered=True) - multiplier.add_ports(sdlayer_ref.get_ports_list(),prefix="plusdoped_") - # route all drains/ gates/ sources - if routing: - if fingers == 1: - raise NotImplementedError("fingers=1 not supported for routing") - # create sdvia (need dims) - sdvia = via_stack(pdk, "met1", sd_route_topmet) - # TODO: fix poly overhang / met1 separation - extracted_gates = multiplier.extract([pdk.get_glayer("poly")]) - gate_route_width = rmult * ( - Decimal(str(pdk.get_grule("mcon")["width"])) - + 2 * Decimal(str(pdk.get_grule("poly", "mcon")["min_enclosure"])) - ) - gate_route_length = evaluate_bbox(extracted_gates,True)[0] - routedims = [gate_route_length, gate_route_width] - gate_route = Component("gate route") - gate_route << rectangle(size=to_float(routedims), layer=pdk.get_glayer("poly"), centered=True) - routedims[1] = evaluate_bbox(via_stack(pdk, "poly", gate_route_topmet),True)[1] - gate_route << via_array(pdk, "poly", gate_route_topmet, size=to_float(routedims)) - routedims[1] = rmult * routedims[1] - gr_ref_ = gate_route << rectangle(layer=pdk.get_glayer(gate_route_topmet),size=to_float(routedims),centered=True) - gate_route.add_ports(gr_ref_.get_ports_list()) - gate_route_ref = multiplier << gate_route - gate_route_ref.movey(float(0-(poly_height + gate_route_width + routing_pfac)/2)) - multiplier.add_ports(gate_route_ref.get_ports_list(), prefix="gate_") - # source and drain routing - sdtop_coords = [ Decimal(str(fingerarray_ref.xmin)) + viasize / 2, - Decimal(str(fingerarray_ref.parent.extract([pdk.get_glayer("met1")]).ymax))] - sd_offsets = list() - for finger in range(fingers + 1): - # extend the source drain connection to acamodate via - met1_core_size = Decimal(str(sdvia.extract([pdk.get_glayer("met1")]).ymax)) - extendm_length = Decimal(str(sdvia.ymax)) + met1_core_size - if finger % 2: - top_met_seperation = Decimal(str(pdk.get_grule(sd_route_topmet)["min_separation"])) + Decimal(str(0.1)) - extendm_length += rmult*evaluate_bbox(sdvia,True)[1] + top_met_seperation - extendm = multiplier << rectangle( - size=to_float((viasize, extendm_length)), - layer=pdk.get_glayer("met1"), - ) - else: - extendm = multiplier << rectangle(size=to_float((viasize, extendm_length)), layer=pdk.get_glayer("met1")) - extendm.move(destination=to_float(sdtop_coords)).movex(to_float(0-viasize/2)) - # create the via between s/d connection and s/d route - sdvia_ref = multiplier << sdvia - sdvia_ref.move(destination=to_float(sdtop_coords)) - sdvia_ref.movey(to_float(extendm_length - met1_core_size)) - sdtop_coords[0] += finger_dim - extendm_length += sdtop_coords[1] - met1_core_size - sd_offsets += [extendm_length] if len(sd_offsets) < 2 else [] - mett_ext = multiplier.extract([pdk.get_glayer(sd_route_topmet)]) - mettroute_dims = (evaluate_bbox(mett_ext,True)[0], rmult * 2 * Decimal(str(sdvia.ymax))) - sd_mett_connect = rectangle( - layer=pdk.get_glayer(sd_route_topmet), size=to_float(mettroute_dims), centered=True - ) - prefix = ["source_", "drain_"] - for i, mof in enumerate(sd_offsets): - m2ref = (multiplier << sd_mett_connect).movey(to_float(mof)) - multiplier.add_ports(m2ref.get_ports_list(), prefix=prefix[i]) - # create dummy regions - if isinstance(dummy, bool): - dummyl = dummyr = dummy - else: - dummyl, dummyr = dummy - if dummyl or dummyr: - dummy = Component("temp dummy region") - size = (length, width) - dummy << rectangle( - layer=pdk.get_glayer("active_diff"), size=to_float(size), centered=True - ) - dummy_space = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] - dummy.add_padding(layers=(pdk.get_glayer(sdlayer),), default=dummy_space) - dummy_space = dummy_space + pdk.get_grule(sdlayer)["min_separation"] + float(size[0] / 2) - sides = list() - if dummyl: - sides.append(-1) - if dummyr: - sides.append(1) - for side in sides: - dummy_ref = multiplier << dummy - dummy_ref.movex(side * (dummy_space + multiplier.xmax)) - # ensure correct port names and return - multiplier = rename_ports_by_list(multiplier, [("source","source_"),("drain","drain_"),("gate","gate_"),("plusdoped","plusdoped_")]) - return component_snap_to_grid(rename_ports_by_orientation(multiplier)) - - - - @validate_arguments def __mult_array_macro( pdk: MappedPDK, @@ -381,10 +203,13 @@ def __mult_array_macro( sd_route_topmet: Optional[str] = "met2", gate_route_topmet: Optional[str] = "met2", sd_route_left: Optional[bool] = True, - rmult: int = 1 + sd_rmult: int = 1, + gate_rmult: int=1, + interfinger_rmult: int=1 ) -> Component: """create a multiplier array with multiplier_0 at the bottom - The array is correctly centered""" + The array is correctly centered + """ # create multiplier array pdk.activate() # TODO: error checking @@ -399,7 +224,9 @@ def __mult_array_macro( length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, - rmult=rmult + sd_rmult=sd_rmult, + gate_rmult=gate_rmult, + interfinger_rmult=interfinger_rmult ) _max_metal_seperation_ps = max([pdk.get_grule("met"+str(i))["min_separation"] for i in range(1,5)]) multiplier_separation = ( @@ -456,27 +283,62 @@ def nmos( width: float = 3, fingers: Optional[int] = 1, multipliers: Optional[int] = 1, - with_tie: Optional[bool] = True, - with_dummy: Optional[Union[bool, tuple[bool, bool]]] = True, - with_dnwell: Optional[bool] = True, - with_substrate_tap: Optional[bool] = True, + with_tie: bool = True, + with_dummy: Union[bool, tuple[bool, bool]] = True, + with_dnwell: bool = True, + with_substrate_tap: bool = True, length: Optional[float] = None, - sd_route_topmet: Optional[str] = "met2", - gate_route_topmet: Optional[str] = "met2", - sd_route_left: Optional[bool] = True, - rmult: int = 1 + sd_route_topmet: str = "met2", + gate_route_topmet: str = "met2", + sd_route_left: bool = True, + rmult: Optional[int] = None, + sd_rmult: int=1, + gate_rmult: int=1, + interfinger_rmult: int=1 ) -> Component: """Generic NMOS generator + pdk = mapped pdk to use width = expands the NMOS in the y direction fingers = introduces additional fingers (sharing source/drain) of width=width + multipliers = number of multipliers (a multiplier is a row of fingers) with_tie = true or false, specfies if a bulk tie is required + with_dummy = tuple(bool,bool) or bool specifying both sides dummy or neither side dummy + ****using the tuple option, you can specify a single side dummy such as true,false + with_dnwell = bool use dnwell (multi well) + with_substrate_tap = add substrate tap on the very outside perimeter of nmos + length = if None or below min_length will default to min_length + sd_route_topmet = specify top metal glayer for the source/drain route + gate_route_topmet = specify top metal glayer for the gate route + sd_route_left = specify if the source/drain inter-multiplier routes should be on the left side or right side (if false) + rmult = if not None overrides all other multiplier options to provide a simple routing multiplier (int only) + sd_rmult = mulitplies the thickness of the source drain route (int only) + gate_rmult = add additional via rows to the gate route via array (int only) + interfinger_rmult = multiplies the thickness of the metal routes between the fingers (int only) """ # TODO: glayer checks pdk.activate() nfet = Component() + if rmult: + if rmult<1: + raise ValueError("rmult must be positive int") + sd_rmult = rmult + gate_rmult = 1 + interfinger_rmult = ((rmult-1) or 1) # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "n+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left, rmult=rmult + pdk, + "n+s/d", + width, + fingers, + multipliers, + dummy=with_dummy, + length=length, + sd_route_topmet=sd_route_topmet, + gate_route_topmet=gate_route_topmet, + sd_route_left=sd_route_left, + sd_rmult=sd_rmult, + gate_rmult=gate_rmult, + interfinger_rmult=interfinger_rmult ) multiplier_arr_ref = multiplier_arr.ref() nfet.add(multiplier_arr_ref) @@ -548,19 +410,54 @@ def pmos( sd_route_topmet: Optional[str] = "met2", gate_route_topmet: Optional[str] = "met2", sd_route_left: Optional[bool] = True, - rmult: int = 1 + rmult: Optional[int] = None, + sd_rmult: int=1, + gate_rmult: int=1, + interfinger_rmult: int=1 ) -> Component: """Generic PMOS generator + pdk = mapped pdk to use width = expands the PMOS in the y direction fingers = introduces additional fingers (sharing source/drain) of width=width + multipliers = number of multipliers (a multiplier is a row of fingers) with_tie = true or false, specfies if a bulk tie is required + dnwell = bool use dnwell if True, or use nwell if False + with_dummy = tuple(bool,bool) or bool specifying both sides dummy or neither side dummy + ****using the tuple option, you can specify a single side dummy such as true,false + with_substrate_tap = add substrate tap on the very outside perimeter of pmos + length = if None or below min_length will default to min_length + sd_route_topmet = specify top metal glayer for the source/drain route + gate_route_topmet = specify top metal glayer for the gate route + sd_route_left = specify if the source/drain inter-multiplier routes should be on the left side or right side (if false) + rmult = if not None overrides all other multiplier options to provide a simple routing multiplier (int only) + sd_rmult = mulitplies the thickness of the source drain route (int only) + gate_rmult = add additional via rows to the gate route via array (int only) + interfinger_rmult = multiplies the thickness of the metal routes between the fingers (int only) """ # TODO: glayer checks pdk.activate() pfet = Component() + if rmult: + if rmult<1: + raise ValueError("rmult must be positive int") + sd_rmult = rmult + gate_rmult = 1 + interfinger_rmult = ((rmult-1) or 1) # create and add multipliers to nfet multiplier_arr = __mult_array_macro( - pdk, "p+s/d", width, fingers, multipliers, dummy=with_dummy, length=length, sd_route_topmet=sd_route_topmet, gate_route_topmet=gate_route_topmet, sd_route_left=sd_route_left, rmult=rmult + pdk, + "p+s/d", + width, + fingers, + multipliers, + dummy=with_dummy, + length=length, + sd_route_topmet=sd_route_topmet, + gate_route_topmet=gate_route_topmet, + sd_route_left=sd_route_left, + gate_rmult=gate_rmult, + interfinger_rmult=interfinger_rmult, + sd_rmult=sd_rmult ) multiplier_arr_ref = multiplier_arr.ref() pfet.add(multiplier_arr_ref) @@ -614,11 +511,11 @@ def pmos( if __name__ == "__main__": from .pdk.util.standard_main import pdk - showmult = False + showmult = True if showmult: - mycomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1, rmult=1) - bcomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1, rmult=2) - bcomp.show() + mycomp = multiplier(pdk, "p+s/d", fingers=1, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1, width=6) + #bcomp = multiplier(pdk, "p+s/d", fingers=8, dummy=True, gate_route_topmet="met4",sd_route_topmet="met3", length=1, rmult=2) + #bcomp.show() else: #mycomp = pmos(pdk, fingers=8, length=1, multipliers=3, width=6, with_dummy=True) mycomp = pmos(pdk, fingers=8, length=0, multipliers=3, width=6, with_dummy=True,rmult=2) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index cfcef5b92..8ed6120ad 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -20,9 +20,6 @@ - - - @validate_arguments def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap_rows, ymin: float, n_to_p_output_route) -> Component: mim_cap_size = pdk.snap_to_2xgrid(mim_cap_size, return_type="float") @@ -40,7 +37,6 @@ def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap return opamp_top - @cell def opamp( pdk: MappedPDK, @@ -157,7 +153,7 @@ def opamp( shared_gate_comps << route_quad(_prefL.ports["gate_W"], _prefR.ports["gate_E"], layer=pdk.get_glayer("met2")) # center relative_dim_comp = multiplier( - pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False + pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False, rmult=rmult ) # TODO: figure out single dim spacing rule then delete both test delete and this single_dim = to_decimal(relative_dim_comp.xmax) + to_decimal(0.1) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py index 2ed86290e..1094fb587 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py @@ -143,21 +143,29 @@ def evaluate_bbox(custom_comp: Union[Component, ComponentReference], return_deci @validate_arguments -def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: Optional[tuple[float,float]] = 0, destination: Optional[tuple[Optional[float],Optional[float]]]=None) -> Union[Port, ComponentReference, Component]: - """moves custom_comp by offset[0]=x offset, offset[1]=y offset +def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: tuple[float,float] = (0,0), destination: Optional[tuple[Optional[float],Optional[float]]]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: + """moves custom_comp + moves by offset[0]=x offset, offset[1]=y offset destination (x,y) if not none overrides offset option + layer if specfied will move based on a layer (only relevant for destination option) returns the modified custom_comp """ - #xcenter = custom_comp.xmin + evaluate_bbox(custom_comp)[0]/2 if isinstance(custom_comp, Component) else custom_comp.center[0] - #ycenter = custom_comp.ymin + evaluate_bbox(custom_comp)[1]/2 if isinstance(custom_comp, Component) else custom_comp.center[1] + if layer and isinstance(custom_comp, Component): + custom_comp_ext = custom_comp.extract(layers=[layer,]) + elif layer and isinstance(custom_comp, ComponentReference): + raise NotImplementedError("layer not implemented for comp ref") + elif layer and isinstance(custom_comp,Port): + raise TypeError("move:layer option for Port does not exist") + else: + custom_comp_ext = custom_comp if destination is not None: - xoffset = destination[0] - custom_comp.center[0] if destination[0] is not None else 0 - yoffset = destination[1] - custom_comp.center[1] if destination[1] is not None else 0 + xoffset = destination[0] - custom_comp_ext.center[0] if destination[0] is not None else 0 + yoffset = destination[1] - custom_comp_ext.center[1] if destination[1] is not None else 0 if isinstance(custom_comp, Port): if destination is None: - custom_comp.move(offsetxy) + custom_comp = custom_comp.move_copy(offsetxy) else: - custom_comp.move((xoffset,yoffset)) + custom_comp = custom_comp.move_copy((xoffset,yoffset)) elif isinstance(custom_comp, ComponentReference): if destination is None: custom_comp.movex(offsetxy[0]).movey(offsetxy[1]) @@ -165,30 +173,32 @@ def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: Opti custom_comp.movex(xoffset).movey(yoffset) elif isinstance(custom_comp, Component): ref = custom_comp.copy().ref() - # this is a recursive call but with type=component reference - ref = move(ref, offsetxy, destination) + if destination is None: + ref.movex(offsetxy[0]).movey(offsetxy[1]) + else: + ref.movex(xoffset).movey(yoffset) custom_comp = transformed(ref).copy() return custom_comp @validate_arguments -def movex(custom_comp: Union[Port, ComponentReference, Component], offsetx: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference, Component]: +def movex(custom_comp: Union[Port, ComponentReference, Component], offsetx: Optional[float] = 0, destination: Optional[float]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: """moves custom_comp by offsetx in the x direction returns the modified custom_comp """ if destination is not None: destination = (destination, None) - return move(custom_comp, (offsetx,0),destination) + return move(custom_comp, (offsetx,0),destination,layer) @validate_arguments -def movey(custom_comp: Union[Port, ComponentReference, Component], offsety: Optional[float] = 0, destination: Optional[float]=None) -> Union[Port, ComponentReference, Component]: +def movey(custom_comp: Union[Port, ComponentReference, Component], offsety: Optional[float] = 0, destination: Optional[float]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: """moves custom_comp by offsety in the y direction returns the modified custom_comp """ if destination is not None: destination = (None, destination) - return move(custom_comp, (0,offsety),destination) + return move(custom_comp, (0,offsety),destination,layer) @validate_arguments @@ -287,20 +297,30 @@ def set_port_width(custom_comp: Port, width: float) -> Port: @validate_arguments -def align_comp_to_port(custom_comp: Union[Component,ComponentReference], align_to: Port, alignment: Optional[tuple[str,str]] = None) -> ComponentReference: +def align_comp_to_port( + custom_comp: Union[Component,ComponentReference], + align_to: Port, + alignment: Optional[tuple[Optional[str],Optional[str]]] = None, + layer: Optional[tuple[int,int]] = None, + rtr_comp_ref = True +) -> Union[Component,ComponentReference]: """Returns component reference of component aligned to port as specifed custom_comp = component to align properly align_to = Port to align to - ***NOTE, if left None, function will align component to outside and center of port (based on port orientation) - alignment = tuple(str,str) = (xalign,yalign) - ****xalign = either l/left or r/right or c/center. component will be flush to right or left side of port or centered - ****yalgin = either t/top or b/bottom or c/center. top or bottom edge or center of component will align with port top/bottom/center + alignment = tuple(str,str) = (xalign,yalign). You can individually specify x/y algin=None and that means do nothing for that dim + ***NOTE, if left None, function will align component to outside and center of port (based on port orientation), specify (None,None) for real no align + ****xalign = either l/left or r/right or c/center or None. component will be flush to right or left side of port or centered + ****yalgin = either t/top or b/bottom or c/center or None. top or bottom edge or center of component will align with port top/bottom/center + layer = extract this layer from the component and aligns to this layer. ONLY AVIALABLE FOR Component type + rtr_comp_ref = will return a component reference if set true """ if isinstance(custom_comp, Component): try: custom_comp.is_unlocked() - except ValueError: + except Exception: custom_comp = custom_comp.copy() + elif layer: + raise NotImplementedError("layer option only avialable for Component type") # error checks and decide orientation if None if alignment is None: if round(align_to.orientation) == 0:# facing east @@ -318,21 +338,26 @@ def align_comp_to_port(custom_comp: Union[Component,ComponentReference], align_t else: raise ValueError("port must be vertical or horizontal") else: - xalign = alignment[0] - yalign = alignment[1] + xalign = alignment[0] or "none" + yalign = alignment[1] or "none" # setup is_EW = bool(round(align_to.orientation + 90) % 180) xalign = xalign.lower() yalign = yalign.lower() if isinstance(custom_comp, Component): - comp_ref = custom_comp.ref_center() - comp_ref.move(align_to.center) + if layer: + custom_comp_ext = custom_comp.extract(layers=[layer,]) + else: + custom_comp_ext=custom_comp else: - comp_ref = custom_comp - move(comp_ref, destination=tuple(align_to.center)) + custom_comp_ext = custom_comp + if xalign!="none": + custom_comp = movex(custom_comp, destination=tuple(align_to.center)[0], layer=layer) + if yalign!="none": + custom_comp = movey(custom_comp, destination=tuple(align_to.center)[1], layer=layer) width = align_to.width - xdim = evaluate_bbox(custom_comp)[0] - ydim = evaluate_bbox(custom_comp)[1] + xdim = evaluate_bbox(custom_comp_ext)[0] + ydim = evaluate_bbox(custom_comp_ext)[1] #xalign xmov = 0 if "l" in xalign: @@ -345,10 +370,10 @@ def align_comp_to_port(custom_comp: Union[Component,ComponentReference], align_t xmov = abs((width - xdim)/2) else: xmov = abs(xdim/2) - elif "c" in xalign: + elif "c" in xalign or "none" in xalign: pass else: - raise ValueError("please specify valid x alignment of l/r/c") + raise ValueError("please specify valid x alignment of l/r/c/None") # yalign ymov = 0 if "t" in yalign: @@ -361,12 +386,16 @@ def align_comp_to_port(custom_comp: Union[Component,ComponentReference], align_t ymov = -1 * abs(ydim/2) else: ymov = -1 * abs((width - ydim)/2) - elif "c" in yalign: + elif "c" in yalign or "none" in yalign: pass else: - raise ValueError("please specify valid x alignment of l/r/c") - # move and return - return comp_ref.movex(xmov).movey(ymov) + raise ValueError("please specify valid y alignment of t/b/c/None") + # move, make correct type, and return + custom_comp = move(custom_comp,(xmov,ymov)) + ref = None + if isinstance(custom_comp,Component): + ref = custom_comp.ref() + return ref or custom_comp @validate_arguments @@ -440,7 +469,7 @@ def prec_center(custom_comp: Union[Component,ComponentReference], return_decimal return to_float(correctionxy) @validate_arguments -def prec_ref_center(custom_comp: Union[Component,ComponentReference], return_decimal: bool=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: +def prec_ref_center(custom_comp: Union[Component,ComponentReference]) -> ComponentReference: """instead of using component.ref_center() to get a ref to center at origin, use this function which will return a centered ref you can then run component.add(prec_ref_center(custom_comp)) to add the reference to your component diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py new file mode 100644 index 000000000..199a0979d --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py @@ -0,0 +1,52 @@ +from gdsfactory.read.import_gds import import_gds +from gdsfactory.component import Component +from pathlib import Path +import os +import math +from gdsfactory.pdk import Pdk +from pathlib import Path + + +def get_files_with_extension(directory, extension): + file_list = [] + for filename in os.listdir(directory): + if filename.endswith(extension): + file_list.append(filename) + return file_list + + +def write_opamp_matrix(opamps_dir: Union[str,Path]="./"): + """Use the write_opamp_matrix function to create a matrix of many different opamps + reads the different opamps from all gds files in opamps_dir + """ + pdk_nochache = Pdk(name="nocache") + pdk_nochache.cell_decorator_settings.cache=False + pdk_nochache.activate() + + search_dir = Path(opamps_dir).resolve() + opamp_files_list = get_files_with_extension(str(search_dir),".gds") + opamp_comp_list = list() + + for i,filev in enumerate(opamp_files_list): + tempcomp = import_gds(filev) + tempcomp.name = "opamp"+str(i) + opamp_comp_list.append() + + col_len = round(math.sqrt(len(opamp_comp_list))) + col_index = 0 + row_index = 0 + big_comp = Component("big comp") + for opamp_v in opamp_comp_list: + if opamp_v is None: + continue + opref = big_comp << opamp_v + opref.movex(col_index * 200).movey(row_index*200) + col_index += 1 + if not col_index % col_len: + col_index=0 + row_index += 1 + + big_comp.write_gds("big_gds_here.gds") + +if __name__=="__main__": + write_opamp_matrix() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py index 9942ac912..900261dc1 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py @@ -72,6 +72,7 @@ def straight_route( # place route and via straightroute = Component() route_ref = align_comp_to_port(route,edge1,alignment=alignment) + straightroute.add_ports(route_ref.get_ports_list(),prefix="route_") straightroute.add(route_ref) straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],alignment=("c","c"))) if front_via is not None: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py index a36c210cb..be94455a7 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py @@ -5,7 +5,7 @@ from .pdk.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from .pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move +from .pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move, prec_ref_center, to_decimal from .pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal from typing import Literal @@ -40,7 +40,7 @@ def __get_layer_dim(pdk: MappedPDK, glayer: str, mode: Literal["both","above","b """Returns the required dimension of a routable layer in a via stack glayer is the routable glayer mode is one of [both,below,above] - This specfies the vias to consider. + This specfies the vias to consider. (layer dims may be made smaller if its possible to ignore top/bottom vias) ****enclosure rules of the via above and below are considered by default, via1<->met2<->via2 ****using below specfier only considers the enclosure rules for the via below, via1<->met2 ****using above specfier only considers the enclosure rules for the via above, met2<->via2 @@ -64,6 +64,30 @@ def __get_layer_dim(pdk: MappedPDK, glayer: str, mode: Literal["both","above","b return layer_dim +@validate_arguments +def __get_viastack_minseperation(pdk: MappedPDK, viastack: Component, ordered_layer_info) -> tuple[float,float]: + """internal use: return abosolute via seperation and top_enclosure (top via to top met enclosure)""" + get_sep = lambda _pdk, rule, _lay_, comp : (rule+2*comp.extract(layers=[_pdk.get_glayer(_lay_)]).xmax) + level1, level2 = ordered_layer_info[0] + glayer1, glayer2 = ordered_layer_info[1] + mcon_rule = pdk.get_grule("mcon")["min_separation"] + via_spacing = [] if level1 else [get_sep(pdk,mcon_rule,"mcon",viastack)] + level1_met = level1 if level1 else level1 + 1 + top_enclosure = 0 + for level in range(level1_met, level2): + met_glayer = "met" + str(level) + via_glayer = "via" + str(level) + mrule = pdk.get_grule(met_glayer)["min_separation"] + vrule = pdk.get_grule(via_glayer)["min_separation"] + via_spacing.append(get_sep(pdk, mrule,met_glayer,viastack)) + via_spacing.append(get_sep(pdk, vrule,via_glayer,viastack)) + if level == (level2-1): + top_enclosure = pdk.get_grule(glayer2,via_glayer)["min_enclosure"] + via_spacing = pdk.snap_to_2xgrid(max(via_spacing),return_type="float") + top_enclosure = pdk.snap_to_2xgrid(top_enclosure,return_type="float") + return via_spacing, 2*top_enclosure + + @cell def via_stack( pdk: MappedPDK, @@ -76,22 +100,23 @@ def via_stack( same_layer_behavior: Literal["lay_nothing","min_square"] = "lay_nothing" ) -> Component: """produces a single via stack between two layers that are routable (metal, poly, or active) + The via_stack produced is always a square (hieght=width) args: pdk: MappedPDK is the pdk to use glayer1: str is the glayer to start on glayer2: str is the glayer to end on ****NOTE it does not matter what order you pass layers - fullbottom: if True will lay the bottom layer all over the area of the viastack else makes minimum legal size + fullbottom: if True will lay the bottom layer all over the area of the viastack else makes minimum legal size (ignores min area) assume_bottom_via: legalize viastack assuming the via underneath bottom met is present, e.g. if bottom met is met3, assume via2 is present - fulltop: if True will lay the top layer all over the area of the viastack else makes minimum legal size + fulltop: if True will lay the top layer all over the area of the viastack else makes minimum legal size (ignores min area) ****NOTE: generator can figure out which layer is top and which is bottom (i.e. met5 is higher than met1) same_layer_behavior: sometimes (especially when used in other generators) it is unknown what two layers are specfied this option provides the generator with guidance on how to handle a case where same layer is given by default, (lay_nothing option) nothing is laid and an empty component is returned if min_square is specfied, a square of min_width * min_width is laid - PORTS, some ports are not layed when it does not make sense (e.g. empty component): + ports, some ports are not layed when it does not make sense (e.g. empty component): top_met_...all edges bottom_via_...all edges bottom_met_...all edges @@ -156,94 +181,82 @@ def via_array( pdk: MappedPDK, glayer1: str, glayer2: str, - size: tuple[float,float] = (4.0, 1.0), + size: Optional[tuple[Optional[float],Optional[float]]] = None, minus1: bool = False, - lay_bottom: bool = False + num_vias: Optional[tuple[Optional[int],Optional[int]]] = None, + lay_bottom: bool = True, + fullbottom: bool = False, + no_exception: bool = False, ) -> Component: """Fill a region with vias. Will automatically decide num rows and columns args: pdk: MappedPDK is the pdk to use glayer1: str is the glayer to start on glayer2: str is the glayer to end on - lay_bottom: bool if true will lay bottom met all over size (by default only lays top met all over size) + lay_bottom: bool if true will lay bottom layer (by default only lays top layer) ****NOTE it does not matter what order you pass layers - ****NOTE will not lay poly or active but will lay metals + ****NOTE will lay bottom only over the minimum area required to make legal size: tuple is the (width, hieght) of the area to enclose ****NOTE: the size will be the dimensions of the top metal minus1: if true removes 1 via from rows/cols num vias - ****use if you want extra space at the edges of the array - ports (one port for each edge): + ****use if you want extra space at the edges of the array, does not apply to num_vias + num_vias: number of rows/cols in the via array. Overrides size option + ****NOTE: you can specify size for one dim and num_vias for another by setting one element to None + ****NOTE: num_vias overides size option + fullbottom: True specifies that the bottom layer should extend over the entire via_array region + ****NOTE: fullbottom=True implies lay_bottom and overrides if False + no_exception: True specfies that the function should change size such that min size is met + + ports, some ports are not layed when it does not make sense (e.g. empty component): top_met_...all edges - bottom_met_...all edges (only if lay_bottom is specified) + bottom_lay_...all edges (only if lay_bottom is specified) + array_...all ports associated with via array """ - size = pdk.snap_to_2xgrid(size) - tmpsize = list(size) - for i in range(2): - if isinstance(size[i],Union[float,int]): - tmpsize[i] = Decimal(str(size[i])) - size = tmpsize # setup - layer_ordering = __error_check_order_layers(pdk, glayer1, glayer2) - level1, level2 = layer_ordering[0] - glayer1, glayer2 = layer_ordering[1] + ordered_layer_info = __error_check_order_layers(pdk, glayer1, glayer2) + level1, level2 = ordered_layer_info[0] + glayer1, glayer2 = ordered_layer_info[1] viaarray = Component() # if same level return empty component if level1 == level2: return viaarray # figure out min space between via stacks - viastack = via_stack(pdk, glayer1, glayer2).remove_layers(layers=[pdk.get_glayer(glayer2)]) - via_spacing = [] if level1 else [Decimal(str(pdk.get_grule("mcon")["min_separation"]))] - level1_met = level1 if level1 else level1 + 1 - get_sep = lambda _pdk, rule, _lay_, comp : 2*(rule/2+Decimal(str(comp.extract(layers=[_pdk.get_glayer(_lay_)]).xmax))-Decimal(str(comp.xmax))) - outer_enclosure = 0 - for level in range(level1_met, level2): - met_glayer = "met" + str(level) - via_glayer = "via" + str(level) - mrule = Decimal(str(pdk.get_grule(met_glayer)["min_separation"])) - vrule = Decimal(str(pdk.get_grule(via_glayer)["min_separation"])) - via_spacing.append(get_sep(pdk, mrule,met_glayer,viastack)) - via_spacing.append(get_sep(pdk, vrule,via_glayer,viastack)) - if level == (level2-1): - outer_enclosure = Decimal(str(pdk.get_grule(glayer2,via_glayer)["min_enclosure"])) - via_spacing = max(via_spacing) - # error check size - viadim = 2*Decimal(str(viastack.xmax)) - for i, dim in enumerate(size): - if Decimal(str(to_float(viadim))) > Decimal(str(to_float(dim))): - raise ValueError(f"via_array,size:dim {i}={dim} less than {viadim}") - viaspacing_full = via_spacing + viadim - # num_vias[0]=x, num_vias[1]=y - encsize = [dim - outer_enclosure for dim in size] - num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in encsize] - if minus1: - num_vias = [(dim - 1 if dim > 1 else dim) for dim in num_vias] - # create array and add to component - temparray = Component("via array") - temparray << prec_array( - viastack, - columns=num_vias[0], - rows=num_vias[1], - spacing=[viaspacing_full, viaspacing_full], - absolute_spacing=True - ) - # center the array - array_ref = viaarray.add(temparray.ref_center()) - # place bottom metal, top metal, add ports, and return - if lay_bottom: - if level1: - keymetdims = viaarray.extract(layers=[pdk.get_glayer("met"+str(level1_met))]).bbox - bheight = 2*keymetdims[1][1] - bwidth = 2*keymetdims[1][0] + viastack = via_stack(pdk, glayer1, glayer2) + viadim = evaluate_bbox(viastack)[0] + via_abs_spacing, top_enclosure = __get_viastack_minseperation(pdk, viastack, ordered_layer_info) + # error check size and determine num_vias, cnum_vias[0]=x, cnum_vias[1]=y + cnum_vias = 2*[None] + for i in range(2): + if (num_vias[i] if num_vias else False): + cnum_vias[i] = num_vias[i] + elif (size[i] if size else False): + dim = pdk.snap_to_2xgrid(size[i],return_type="float") + fltnum = floor((dim - top_enclosure) / (via_abs_spacing)) or 1 + fltnum = 1 if fltnum < 1 else fltnum + cnum_vias[i] = ((fltnum - 1) or 1) if minus1 else fltnum + if to_decimal(viadim) > to_decimal(dim) and not no_exception: + raise ValueError(f"via_array,size:dim#{i}={dim} < {viadim}") else: - bviadims = viaarray.extract(layers=[pdk.get_glayer("mcon")]).bbox - added_enclosure = 2*pdk.get_grule(glayer1,"mcon")["min_enclosure"] - bheight = 2*bviadims[1][1] + added_enclosure - bwidth = 2*bviadims[1][0] + added_enclosure - b_met_dims = [bwidth, bheight] - bref = viaarray << rectangle(size=b_met_dims, layer=pdk.get_glayer(glayer1), centered=True) - viaarray.add_ports(bref.get_ports_list(), prefix="bottom_met_") - top_met_layer = pdk.get_glayer("met" + str(level2)) - tref = viaarray << rectangle(size=(float(size[0]),float(size[1])), layer=top_met_layer, centered=True) + raise ValueError("give at least 1: num_vias or size for each dim") + # create array + viaarray_ref = prec_ref_center(prec_array(viastack, columns=cnum_vias[0], rows=cnum_vias[1], spacing=2*[via_abs_spacing],absolute_spacing=True)) + viaarray.add(viaarray_ref) + viaarray.add_ports(viaarray_ref.get_ports_list(),prefix="array_") + # find the what should be used as full dims + viadims = evaluate_bbox(viaarray) + if not size: + size = 2*[None] + size = [size[i] if size[i] else viadims[i] for i in range(2)] + size = [viadims[i] if viadims[i]>size[i] else size[i] for i in range(2)] + # place bottom layer and add bot_lay_ ports + if lay_bottom or fullbottom: + bdims = evaluate_bbox(viaarray.extract(layers=[pdk.get_glayer(glayer1)])) + bref = viaarray << rectangle(size=(size if fullbottom else bdims), layer=pdk.get_glayer(glayer1), centered=True) + viaarray.add_ports(bref.get_ports_list(), prefix="bottom_lay_") + else: + viaarray = viaarray.remove_layers(layers=[pdk.get_glayer(glayer1)]) + # place top met + tref = viaarray << rectangle(size=size, layer=pdk.get_glayer(glayer2), centered=True) viaarray.add_ports(tref.get_ports_list(), prefix="top_met_") return component_snap_to_grid(rename_ports_by_orientation(viaarray)) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py deleted file mode 100644 index 143b16da7..000000000 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen_proto.py +++ /dev/null @@ -1,290 +0,0 @@ -from gdsfactory.cell import cell -from gdsfactory.component import Component -from gdsfactory.components.rectangle import rectangle -from pydantic import validate_arguments -from .pdk.mappedpdk import MappedPDK -from math import floor -from typing import Optional, Union -from .pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move -from .pdk.util.snap_to_grid import component_snap_to_grid -from decimal import Decimal -from typing import Literal - - -@validate_arguments -def __error_check_order_layers( - pdk: MappedPDK, glayer1: str, glayer2: str -) -> tuple[tuple[int, int], tuple[str, str]]: - """correctly order layers (level1 should be lower than level2)""" - pdk.activate() - # check that the generic layers specfied can be routed between - if not all([pdk.is_routable_glayer(met) for met in [glayer1, glayer2]]): - raise ValueError("via_stack: specify between two routable layers") - level1 = int(glayer1[-1]) if "met" in glayer1 else 0 - level2 = int(glayer2[-1]) if "met" in glayer2 else 0 - if level1 > level2: - level1, level2 = level2, level1 - glayer1, glayer2 = glayer2, glayer1 - # check that all layers needed between glayer1-glayer2 are present - required_glayers = [glayer2] - for level in range(level1,level2): - via_name = "mcon" if level==0 else "via"+str(level) - layer_name = glayer1 if level==0 else "met"+str(level) - required_glayers += [via_name,layer_name] - pdk.has_required_glayers(required_glayers) - return ((level1,level2),(glayer1,glayer2)) - - -@validate_arguments -def __get_layer_dim(pdk: MappedPDK, glayer: str, mode: Literal["both","above","below"]="both") -> float: - """Returns the required dimension of a routable layer in a via stack - glayer is the routable glayer - mode is one of [both,below,above] - This specfies the vias to consider. (layer dims may be made smaller if its possible to ignore top/bottom vias) - ****enclosure rules of the via above and below are considered by default, via1<->met2<->via2 - ****using below specfier only considers the enclosure rules for the via below, via1<->met2 - ****using above specfier only considers the enclosure rules for the via above, met2<->via2 - ****specfying both or below for active/poly layer is valid, function knows to ignore below - """ - # error checking - if not pdk.is_routable_glayer(glayer): - raise ValueError("__get_layer_dim: glayer must be a routable layer") - # split into above rules and below rules - consider_above = (mode=="both" or mode=="above") - consider_below = (mode=="both" or mode=="below") - is_lvl0 = any([hint in glayer for hint in ["poly","active"]]) - layer_dim=0 - if consider_below and not is_lvl0: - via_below = "mcon" if glayer=="met1" else "via"+str(int(glayer[-1])-1) - layer_dim = pdk.get_grule(via_below)["width"] + 2*pdk.get_grule(via_below,glayer)["min_enclosure"] - if consider_above: - via_above = "mcon" if is_lvl0 else "via"+str(glayer[-1]) - layer_dim = max(layer_dim, pdk.get_grule(via_above)["width"] + 2*pdk.get_grule(via_above,glayer)["min_enclosure"]) - layer_dim = max(layer_dim, pdk.get_grule(glayer)["min_width"]) - return layer_dim - - -@cell -def via_stack( - pdk: MappedPDK, - glayer1: str, - glayer2: str, - centered: bool = True, - fullbottom: bool = False, - fulltop: bool = False, - assume_bottom_via: bool = False, - same_layer_behavior: Literal["lay_nothing","min_square"] = "lay_nothing" -) -> Component: - """produces a single via stack between two layers that are routable (metal, poly, or active) - The via_stack produced is always a square (hieght=width) - - args: - pdk: MappedPDK is the pdk to use - glayer1: str is the glayer to start on - glayer2: str is the glayer to end on - ****NOTE it does not matter what order you pass layers - fullbottom: if True will lay the bottom layer all over the area of the viastack else makes minimum legal size (ignores min area) - assume_bottom_via: legalize viastack assuming the via underneath bottom met is present, e.g. if bottom met is met3, assume via2 is present - fulltop: if True will lay the top layer all over the area of the viastack else makes minimum legal size (ignores min area) - ****NOTE: generator can figure out which layer is top and which is bottom (i.e. met5 is higher than met1) - same_layer_behavior: sometimes (especially when used in other generators) it is unknown what two layers are specfied - this option provides the generator with guidance on how to handle a case where same layer is given - by default, (lay_nothing option) nothing is laid and an empty component is returned - if min_square is specfied, a square of min_width * min_width is laid - - ports, some ports are not layed when it does not make sense (e.g. empty component): - top_met_...all edges - bottom_via_...all edges - bottom_met_...all edges - bottom_layer_...all edges (may be different than bottom met if on diff/poly) - """ - ordered_layer_info = __error_check_order_layers(pdk, glayer1, glayer2) - level1, level2 = ordered_layer_info[0] - glayer1, glayer2 = ordered_layer_info[1] - viastack = Component() - # if same level return component with min_width rectangle on that layer - if level1 == level2: - if same_layer_behavior=="lay_nothing": - return viastack - min_square = viastack << rectangle(size=2*[pdk.get_grule(glayer1)["min_width"]],layer=pdk.get_glayer(glayer1), centered=centered) - # update ports - if level1==0:# both poly or active - viastack.add_ports(min_square.get_ports_list(),prefix="bottom_layer_") - else:# both mets - viastack.add_ports(min_square.get_ports_list(),prefix="top_met_") - viastack.add_ports(min_square.get_ports_list(),prefix="bottom_met_") - else: - ports_to_add = dict() - for level in range(level1,level2+1): - via_name = "mcon" if level==0 else "via"+str(level) - layer_name = glayer1 if level==0 else "met"+str(level) - # get layer sizing - mode = "below" if level==level2 else ("above" if level==level1 else "both") - mode = "both" if assume_bottom_via and level==level1 else mode - layer_dim = __get_layer_dim(pdk, layer_name, mode=mode) - # place met/via, do not place via if on top layer - if level != level2: - via_dim = pdk.get_grule(via_name)["width"] - via_ref = viastack << rectangle(size=[via_dim,via_dim],layer=pdk.get_glayer(via_name), centered=True) - lay_ref = viastack << rectangle(size=[layer_dim,layer_dim],layer=pdk.get_glayer(layer_name), centered=True) - # update ports - if layer_name == glayer1: - ports_to_add["bottom_layer_"] = lay_ref.get_ports_list() - ports_to_add["bottom_via_"] = via_ref.get_ports_list() - if (level1==0 and level==1) or (level1>0 and layer_name==glayer1): - ports_to_add["bottom_met_"] = lay_ref.get_ports_list() - if layer_name == glayer2: - ports_to_add["top_met_"] = lay_ref.get_ports_list() - # implement fulltop and fullbottom options. update ports_to_add accordingly - if fullbottom: - bot_ref = viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer(glayer1), centered=True) - if level1!=0: - ports_to_add["bottom_met_"] = bot_ref.get_ports_list() - ports_to_add["bottom_layer_"] = bot_ref.get_ports_list() - if fulltop: - ports_to_add["top_met_"] = (viastack << rectangle(size=evaluate_bbox(viastack),layer=pdk.get_glayer(glayer2), centered=True)).get_ports_list() - # add all ports in ports_to_add - for prefix, ports_list in ports_to_add.items(): - viastack.add_ports(ports_list,prefix=prefix) - # move SW corner to 0,0 if centered=False - if not centered: - viastack = move(viastack,(viastack.xmax,viastack.ymax)) - return rename_ports_by_orientation(viastack.flatten()) - - -@cell -def via_array( - pdk: MappedPDK, - glayer1: str, - glayer2: str, - size: Optional[tuple[float,float]] = None, - minus1: bool = False, - num_vias: Optional[tuple[int,int]] = (1,1), - lay_bottom: bool = False -) -> Component: - """Fill a region with vias. Will automatically decide num rows and columns - args: - pdk: MappedPDK is the pdk to use - glayer1: str is the glayer to start on - glayer2: str is the glayer to end on - lay_bottom: bool if true will lay bottom met all over size (by default only lays top met all over size) - ****NOTE it does not matter what order you pass layers - ****NOTE will not lay poly or active but will lay metals - size: tuple is the (width, hieght) of the area to enclose - ****NOTE: the size will be the dimensions of the top metal - minus1: if true removes 1 via from rows/cols num vias - ****use if you want extra space at the edges of the array - num_vias: number of rows/cols in the via array. Overrides size option - - ports, some ports are not layed when it does not make sense (e.g. empty component): - top_met_...all edges - bottom_met_...all edges (only if lay_bottom is specified) - """ - size = pdk.snap_to_2xgrid(size) - tmpsize = list(size) - for i in range(2): - if isinstance(size[i], Union[float,int]): - tmpsize[i] = Decimal(str(size[i])) - size = tmpsize - # setup - ordered_layer_info = __error_check_order_layers(pdk, glayer1, glayer2) - level1, level2 = ordered_layer_info[0] - glayer1, glayer2 = ordered_layer_info[1] - viaarray = Component() - # if same level return empty component - if level1 == level2: - return viaarray - # figure out min space between via stacks - viastack = via_stack(pdk, glayer1, glayer2).remove_layers(layers=[pdk.get_glayer(glayer2)]) - via_spacing = [] if level1 else [Decimal(str(pdk.get_grule("mcon")["min_separation"]))] - level1_met = level1 if level1 else level1 + 1 - get_sep = lambda _pdk, rule, _lay_, comp : 2*(rule/2+Decimal(str(comp.extract(layers=[_pdk.get_glayer(_lay_)]).xmax))-Decimal(str(comp.xmax))) - outer_enclosure = 0 - for level in range(level1_met, level2): - met_glayer = "met" + str(level) - via_glayer = "via" + str(level) - mrule = Decimal(str(pdk.get_grule(met_glayer)["min_separation"])) - vrule = Decimal(str(pdk.get_grule(via_glayer)["min_separation"])) - via_spacing.append(get_sep(pdk, mrule,met_glayer,viastack)) - via_spacing.append(get_sep(pdk, vrule,via_glayer,viastack)) - if level == (level2-1): - outer_enclosure = Decimal(str(pdk.get_grule(glayer2,via_glayer)["min_enclosure"])) - via_spacing = max(via_spacing) - # error check size - viadim = 2*Decimal(str(viastack.xmax)) - for i, dim in enumerate(size): - if Decimal(str(to_float(viadim))) > Decimal(str(to_float(dim))): - raise ValueError(f"via_array,size:dim {i}={dim} less than {viadim}") - viaspacing_full = via_spacing + viadim - # num_vias[0]=x, num_vias[1]=y - encsize = [dim - outer_enclosure for dim in size] - num_vias = [(floor(dim / (viadim + via_spacing)) or 1) for dim in encsize] - if minus1: - num_vias = [(dim - 1 if dim > 1 else dim) for dim in num_vias] - # create array - viaarray = prec_array( - viastack, - columns=num_vias[0], - rows=num_vias[1], - spacing=[viaspacing_full, viaspacing_full], - absolute_spacing=True - ) - # place bottom metal, top metal, add ports, and return - if lay_bottom: - if level1: - keymetdims = viaarray.extract(layers=[pdk.get_glayer("met"+str(level1_met))]).bbox - bheight = 2*keymetdims[1][1] - bwidth = 2*keymetdims[1][0] - else: - bviadims = viaarray.extract(layers=[pdk.get_glayer("mcon")]).bbox - added_enclosure = 2*pdk.get_grule(glayer1,"mcon")["min_enclosure"] - bheight = 2*bviadims[1][1] + added_enclosure - bwidth = 2*bviadims[1][0] + added_enclosure - b_met_dims = [bwidth, bheight] - bref = viaarray << rectangle(size=b_met_dims, layer=pdk.get_glayer(glayer1), centered=True) - viaarray.add_ports(bref.get_ports_list(), prefix="bottom_met_") - top_met_layer = pdk.get_glayer("met" + str(level2)) - tref = viaarray << rectangle(size=(float(size[0]),float(size[1])), layer=top_met_layer, centered=True) - viaarray.add_ports(tref.get_ports_list(), prefix="top_met_") - return component_snap_to_grid(rename_ports_by_orientation(viaarray)) - - -if __name__ == "__main__": - from .pdk.util.standard_main import pdk, parser - from .pdk.util.custom_comp_utils import print_ports - from pathlib import Path - - # default behavoir is to run one design and exit - parser.add_argument("--all", "-a", action="store_true", help="runs all tests") - parser.add_argument("--viastack", "-s", action="store_true", help="runs all via_stack tests") - parser.add_argument("--viaarray", "-v", action="store_true", help="runs all via_array tests") - parser.add_argument("--write", "-w", help="writes all gds files to directory specfied") - parser.add_argument("--ports", action="store_true", help="print ports") - args = parser.parse_args() - # run comps - comps = list() - if args.viaarray or args.all: - layers = ["poly", "met1", "met2", "met3"] - for lay1 in layers: - for lay2 in layers: - comps.append(via_array(pdk, lay1, lay2, lay_bottom=True)) - elif args.viastack or args.all: - layers = ["poly", "met1", "met2", "met3"] - for lay1 in layers: - for lay2 in layers: - comps.append(via_stack(pdk, lay1, lay2,fullbottom=True,fulltop=True)) - else: - myarray = via_array(pdk, "poly", "met2",size=(5,4)) - # show and write (if write is specfied) - if args.write: - gds_write_path = Path(args.write) - if not gds_write_path.is_dir(): - raise ValueError("gds write must be a dir path") - for comp in comps: - comp.write_gds(comp.name+".gds") - for comp in comps: - comp.show() - # print_ports - if args.ports: - for comp in comps: - print_ports(myarray) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/requirements.txt b/openfasoc/generators/gdsfactory-gen/requirements.txt similarity index 50% rename from openfasoc/generators/gdsfactory-gen/pygen/requirements.txt rename to openfasoc/generators/gdsfactory-gen/requirements.txt index 8d1e2d891..220ae8a89 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/requirements.txt +++ b/openfasoc/generators/gdsfactory-gen/requirements.txt @@ -1,4 +1,7 @@ gf180 -pydantic==1.10.11 sky130 gdsfactory>=6.114.0 +sklearn +matplotlib +scipy +seaborn diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 796eaffb6..0eece8e99 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -11,7 +11,6 @@ from pygen.L_route import L_route from pygen.straight_route import straight_route from pygen.via_gen import via_array -from pygen.pdk.util.standard_main import pdk, parser from gdsfactory.cell import cell, clear_cache import numpy as np from subprocess import Popen @@ -29,6 +28,7 @@ from sklearn.decomposition import PCA from sklearn.cluster import KMeans, AgglomerativeClustering from sklearn.metrics import silhouette_score +import argparse def sky130_opamp_add_pads(opamp_in: Component) -> Component: @@ -187,20 +187,21 @@ def opamp_results_serializer( return np.array([ugb, dcGain, phaseMargin, biasVoltage1, biasVoltage2, area], dtype=np.float64) def opamp_results_de_serializer( - results: np.array + results: Optional[np.array]=None ) -> dict: - if not len(serialized_params) == 6: + if results is None: + results = 6*[-987.654321] + if not len(results) == 6: raise ValueError("results should be a length 5 array") results_dict = dict() - results_dict["ugb"] = float(serialized_params[0]) - results_dict["dcGain"] = float(serialized_params[1]) - results_dict["phaseMargin"] = float(serialized_params[2]) - results_dict["biasVoltage1"] = float(serialized_params[3]) - results_dict["biasVoltage2"] = float(serialized_params[4]) - results_dict["area"] = float(serialized_params[5]) + results_dict["ugb"] = float(results[0]) + results_dict["dcGain"] = float(results[1]) + results_dict["phaseMargin"] = float(results[2]) + results_dict["biasVoltage1"] = float(results[3]) + results_dict["biasVoltage2"] = float(results[4]) + results_dict["area"] = float(results[5]) return results_dict - def get_small_parameter_list(test_mode = False) -> np.array: """creates small parameter list intended for brute force""" # all diffpairs to try @@ -359,23 +360,9 @@ def get_training_data(test_mode=True,): np.save("training_results.npy",results) -parser.add_argument("--test_mode", "-t", action="store_true", help="runs a short 2 ele test") -args = parser.parse_args() -get_training_data(test_mode=args.test_mode) - -#opamp_out = sky130_opamp_add_pads(opamp(pdk)) -#sky130_add_opamp_labels(opamp_in).show() -#opamp_out.show() - - -#parameters = np.array() -#result = array() -#for i, comp in enumerate(opamps): -# comp.write_gds(str(i)+".gds") +#======stats======= -# generate opamps - def save_distwith_best_fit(data, output_file, title="Distribution With Trend", xlabel="Data", ylabel="Distribution"): """Create a histogram with a line of best fit for the input data and save it as a PNG file. @@ -451,14 +438,12 @@ def run_pca_and_save_plot(data, output_file): def find_optimal_clusters(data, max_clusters=10): if isinstance(data, pd.DataFrame): data = data.to_numpy() - results = [] for num_clusters in range(1, max_clusters + 1): kmeans = KMeans(n_clusters=num_clusters) kmeans.fit(data) inertia = kmeans.inertia_ results.append((num_clusters, inertia)) - return results def elbow_point(x, y): @@ -466,7 +451,7 @@ def elbow_point(x, y): elbow_index = np.argmax(deltas < np.mean(deltas)) return x[elbow_index] -def create_pca_biplot_with_clusters(data, results, output_file, max_clusters=10): +def create_pca_biplot_with_clusters(data, results, output_file, max_clusters=10, results_index: int=0): if isinstance(data, pd.DataFrame): data = data.to_numpy() if isinstance(results, pd.Series): @@ -483,7 +468,7 @@ def create_pca_biplot_with_clusters(data, results, output_file, max_clusters=10) cluster_indices = np.where(cluster_assignments == i)[0] plt.scatter(pca_result[cluster_indices, 0], pca_result[cluster_indices, 1], alpha=0.7, label=f'Cluster {i+1}') # Color the data points based on their result values - plt.scatter(pca_result[:, 0], pca_result[:, 1], c=results, cmap='viridis', edgecolor='k', s=80) + plt.scatter(pca_result[:, 0], pca_result[:, 1], c=results[:,results_index], cmap='viridis', edgecolor='k', s=80) feature_vectors = pca.components_.T for i, (x, y) in enumerate(feature_vectors): plt.arrow(0, 0, x, y, color='r', alpha=0.5) @@ -497,7 +482,7 @@ def create_pca_biplot_with_clusters(data, results, output_file, max_clusters=10) plt.close() plt.clf() -def create_heatmap_with_clusters(parameters, results, output_file, max_clusters=10): +def create_heatmap_with_clusters(parameters, results, output_file, max_clusters=10,results_index: int=0): if isinstance(parameters, pd.DataFrame): parameters = parameters.to_numpy() if isinstance(results, pd.Series): @@ -506,7 +491,7 @@ def create_heatmap_with_clusters(parameters, results, output_file, max_clusters= pca = PCA(n_components=2) pca_result = pca.fit_transform(parameters) # Cluster the parameters based on the results using hierarchical clustering - results_dist = pdist(results.reshape(-1, 1)) # Pairwise distance between result values + results_dist = pdist(results[:,results_index].reshape(-1, 1)) # Pairwise distance between result values results_linkage = squareform(results_dist) # Convert to a condensed distance matrix clustering = AgglomerativeClustering(n_clusters=max_clusters, affinity='precomputed', linkage='complete') cluster_assignments = clustering.fit_predict(results_linkage) @@ -522,9 +507,9 @@ def create_heatmap_with_clusters(parameters, results, output_file, max_clusters= plt.figure(figsize=(10, 8)) sns.heatmap(cluster_means, cmap='YlGnBu', annot=True, fmt='.2f', xticklabels=False, yticklabels=False, cbar_kws={'label': 'Mean Parameter Value'}) - plt.xlabel('17-Dimensional Parameters') - plt.ylabel('Clusters') - plt.title('Heatmap with Clusters') + plt.xlabel('Parameter Clusters') + plt.ylabel('Parameter Clusters') + plt.title('Heatmap Clusters') plt.savefig(output_file) plt.close() plt.clf() @@ -538,29 +523,128 @@ def find_indices_with_same_other_params(data, parameter_index, other_params_valu mask = mask & (data[:, param_idx] == other_params_values[param_idx]) return np.where(mask)[0] -def isolate_single_param_scatter(data: np.array, results: np.array, col_to_isolate: int, output_file: str): +def single_param_scatter(data: np.array, results: np.array, col_to_isolate: int, output_file: str, isolate: bool=True,results_index: int=0, trend:bool=True): + output_file = Path(output_file).resolve() example_others = data[0, :] - indices = find_indices_with_same_other_params(data, col_to_isolate, example_others) - x = data[indices, col_to_isolate] - y = results[indices] + if isolate: + indices = find_indices_with_same_other_params(data, col_to_isolate, example_others) + x = data[indices, col_to_isolate] + y = results[:,results_index][indices] + else: + x = data[:, col_to_isolate] + y = results[:,results_index] + plt.scatter(x, y, marker='o', s=50, label="Data Points") + # Fit a quadratic regression model to the data + coeffs = np.polyfit(x, y, deg=2) + # Generate points for the quadratic trend line + if trend: + quadratic_function = lambda x, a, b, c: a * x**2 + b * x + c + trend_line_x = np.linspace(min(x), max(x), 1000) + trend_line_y = quadratic_function(trend_line_x, *coeffs) + # Plot the quadratic trend line + plt.plot(trend_line_x, trend_line_y, color='red')#, label="Quadratic Trend Line") + # label and return + plt.xlabel(output_file.stem) + plt.ylabel("Normalized Performance Score") + plt.title("Performance vs Parameter="+output_file.stem) + plt.legend() + plt.grid(True) + plt.savefig(output_file) + plt.clf() + +def simple2pt_param_scatter(x: np.array, y: np.array, output_file: str, x_label: str,y_label:str, trend:bool=True): + output_file = Path(output_file).resolve() plt.scatter(x, y, marker='o', s=50, label="Data Points") # Fit a quadratic regression model to the data coeffs = np.polyfit(x, y, deg=2) # Generate points for the quadratic trend line - quadratic_function = lambda x, a, b, c: a * x**2 + b * x + c - trend_line_x = np.linspace(min(x), max(x), 1000) - trend_line_y = quadratic_function(trend_line_x, *coeffs) - # Plot the quadratic trend line - plt.plot(trend_line_x, trend_line_y, color='red', label="Quadratic Trend Line") + if trend: + quadratic_function = lambda x, a, b, c: a * x**2 + b * x + c + trend_line_x = np.linspace(min(x), max(x), 1000) + trend_line_y = quadratic_function(trend_line_x, *coeffs) + # Plot the quadratic trend line + plt.plot(trend_line_x, trend_line_y, color='red')#, label="Quadratic Trend Line") # label and return - plt.xlabel("param vals") - plt.ylabel("isolated changes") - plt.title("Scatter Plot of 2D Array") + plt.xlabel(x_label) + plt.ylabel(y_label) + plt.title(output_file.stem) plt.legend() plt.grid(True) plt.savefig(output_file) plt.clf() +def find_optimal_num_clusters(data, max_clusters=10): + wcss = [] + for num_clusters in range(1, max_clusters+1): + kmeans = KMeans(n_clusters=num_clusters) + kmeans.fit(data) + wcss.append(kmeans.inertia_) # Inertia is the WCSS value + + # Find the optimal number of clusters using the elbow method + optimal_num_clusters = np.argmin(np.diff(wcss)) + 1 + + return optimal_num_clusters + +def simple2pt_param_scatter_wautocluster(x, y, output_file, x_label='X Axis', y_label='Y Axis', max_clusters=10): + output_file = Path(output_file).resolve() + # Create a scatter plot + plt.figure(figsize=(8, 6)) + plt.scatter(x, y, c='blue', label='Data Points', edgecolors='black') + # Combine data into a 2D array for clustering + data = np.column_stack((x, y)) + # Find the optimal number of clusters using the elbow method + optimal_num_clusters = find_optimal_num_clusters(data, max_clusters) + # Perform K-means clustering with the determined number of clusters + kmeans = KMeans(n_clusters=optimal_num_clusters) + kmeans.fit(data) + cluster_centers = kmeans.cluster_centers_ + cluster_labels = kmeans.labels_ + # Color code the clusters + unique_labels = np.unique(cluster_labels) + colors = plt.cm.tab10.colors + for i, label in enumerate(unique_labels): + cluster_data = data[cluster_labels == label] + cluster_center = cluster_centers[label] + plt.scatter(cluster_data[:, 0], cluster_data[:, 1], c=colors[i], label=f'Cluster {label}', edgecolors='black') + plt.scatter(cluster_center[0], cluster_center[1], marker='x', s=100, c=colors[i], edgecolors='black') + plt.xlabel(x_label) + plt.ylabel(y_label) + plt.title(output_file.stem) + plt.legend() + plt.grid(True) + # Save the plot as PNG if output_file is provided + plt.savefig(output_file, dpi=300, bbox_inches='tight') + plt.clf() + + +def simple2pt_param_scatter_wcluster(x, y, output_file, x_label='X Axis', y_label='Y Axis', num_clusters=3): + output_file = Path(output_file).resolve() + # Create a scatter plot + plt.figure(figsize=(8, 6)) + plt.scatter(x, y, c='blue', label='Data Points', edgecolors='black') + # Combine data into a 2D array for clustering + data = np.column_stack((x, y)) + # Perform K-means clustering with the specified number of clusters + kmeans = KMeans(n_clusters=num_clusters) + cluster_labels = kmeans.fit_predict(data) + # Color code the clusters and label each point + unique_labels = np.unique(cluster_labels) + colors = plt.cm.tab10.colors + for i, label in enumerate(unique_labels): + cluster_data = data[cluster_labels == label] + plt.scatter(cluster_data[:, 0], cluster_data[:, 1], c=colors[i], label=f'Cluster {label}', edgecolors='black') + for point in cluster_data: + plt.text(point[0], point[1], f'{label}', fontsize=10, ha='center', va='center', color='black') + plt.xlabel(x_label) + plt.ylabel(y_label) + plt.title(output_file.stem) + #plt.legend() + plt.grid(True) + # Save the plot as PNG if output_file is provided + plt.savefig(output_file, dpi=300, bbox_inches='tight') + plt.clf() + + def extract_stats( params: Union[np.array,str,Path], results: Union[np.array,str,Path], @@ -570,7 +654,8 @@ def extract_stats( pathtoarr = lambda datain : np.load(datain.resolve()) if isinstance(datain,Path) else datain params_dirty = pathtoarr(strtopath(params)) results_dirty = pathtoarr(strtopath(results)) - clean_condition = results_dirty > 0 + # clean condition eliminates all failed runs AND negative phase margins + clean_condition = np.where(np.all(results_dirty > 0,axis=1)==True) params = params_dirty[clean_condition] results = results_dirty[clean_condition] if len(params)!=len(results): @@ -592,27 +677,111 @@ def extract_stats( colnames_vals[key] = "place_holder" for i, colname in enumerate(colnames_vals): colnames_vals[colname] = params[:, i] + # run statistics on distribution of training parameters individually params_stats_hists = Path("./stats/param_stats/hists1D") params_stats_hists.mkdir(parents=True) for colname, val in colnames_vals.items(): save_distwith_best_fit(val,str(params_stats_hists)+"/"+colname+".png",'Parameter Distribution',colname,'Normalized trials') - param_stats_isolate = Path("./stats/param_stats/isolate") - param_stats_isolate.mkdir(parents=True) - for i, colname in enumerate(colnames_vals): - isolate_single_param_scatter(params,results,i,str(param_stats_isolate)+"/"+colname+".png") # run stats on distribution of training parameters using pair scatter plots params_stats_scatter = Path("./stats/param_stats/scatter") params_stats_scatter.mkdir(parents=True) save_pairwise_scatter_plot(params,str(params_stats_scatter)+"/pairscatter_params.png") # run PCA on training parameters run_pca_and_save_plot(params,str(params_stats_scatter)+"/PCA_params.png") + # run statistics on results - result_stats_dir = Path("./stats/result_stats") + result_stats_dir = Path("./stats/result_stats/hist1d") result_stats_dir.mkdir(parents=True) - save_distwith_best_fit(results,str(result_stats_dir)+"/result_UGB_dist.png","UGB Distribution","UGB") + for i,name in enumerate(opamp_results_de_serializer()): + save_distwith_best_fit(results[:,i],str(result_stats_dir)+"/result_"+name+"_dist.png",name+" Distribution",name) + # plot results against each other + result_stats_verses = Path("./stats/result_stats/compare") + result_stats_verses.mkdir(parents=True) + result_combs=list(opamp_results_de_serializer().keys()) + result_unqiue_combs=np.array(np.meshgrid(result_combs, result_combs)).T.reshape(-1, 2) + for name1, name2 in result_unqiue_combs: + if name1==name2: + continue + index1 = result_combs.index(name1) + index2 = result_combs.index(name2) + output_name = str(result_stats_verses)+"/"+name1+"_vs_"+name2+".png" + simple2pt_param_scatter_wcluster(results[:,index1],results[:,index2],output_name,name1,name2) + # run stats on results and data combined comb_stats_dir = Path("./stats/combined") comb_stats_dir.mkdir(parents=True) create_pca_biplot_with_clusters(params,results,str(comb_stats_dir)+"/heatmapresults_params.png") create_heatmap_with_clusters(params,results,str(comb_stats_dir)+"/heatmap_results_clustered.png") + for i, name in enumerate(opamp_results_de_serializer()): + param_stats_isolate = Path("./stats/combined/isolate_params") / name + param_stats_isolate.mkdir(parents=True) + param_stats_NOisolate = Path("./stats/combined/NONisolated_params") / name + param_stats_NOisolate.mkdir(parents=True) + for j, colname in enumerate(colnames_vals): + single_param_scatter(params,results,j,str(param_stats_isolate)+"/"+colname+".png",results_index=i) + single_param_scatter(params,results,j,str(param_stats_NOisolate)+"/"+colname+".png",isolate=False,results_index=i) + + + + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="sky130 nist tapeout sample, RL generation, and statistics utility.") + subparsers = parser.add_subparsers(title="mode", required=True, dest="mode") + + # Subparser for extract_stats mode + extract_stats_parser = subparsers.add_parser("extract_stats", help="Run the extract_stats function.") + extract_stats_parser.add_argument("-p", "--params", default="training_params.npy", help="File path for params (default: training_params.npy)") + extract_stats_parser.add_argument("-r", "--results", default="training_results.npy", help="File path for results (default: training_results.npy)") + + # Subparser for get_training_data mode + get_training_data_parser = subparsers.add_parser("get_training_data", help="Run the get_training_data function.") + get_training_data_parser.add_argument("-t", "--test-mode", action="store_true", help="Set test_mode to True (default: False)") + + # Subparser for gen_opamp mode + gen_opamp_parser = subparsers.add_parser("gen_opamp", help="Run the gen_opamp function.") + gen_opamp_parser.add_argument("--diffpair_params", nargs=3, type=float, default=[6, 1, 4], help="diffpair_params (default: 6 1 4)") + gen_opamp_parser.add_argument("--diffpair_bias", nargs=3, type=float, default=[6, 2, 4], help="diffpair_bias (default: 6 2 4)") + gen_opamp_parser.add_argument("--houtput_bias", nargs=4, type=float, default=[6, 2, 8, 3], help="houtput_bias (default: 6 2 8 3)") + gen_opamp_parser.add_argument("--pamp_hparams", nargs=4, type=float, default=[7, 1, 10, 3], help="pamp_hparams (default: 7 1 10 3)") + gen_opamp_parser.add_argument("--mim_cap_size", nargs=2, type=int, default=[12, 12], help="mim_cap_size (default: 12 12)") + gen_opamp_parser.add_argument("--mim_cap_rows", type=int, default=3, help="mim_cap_rows (default: 3)") + gen_opamp_parser.add_argument("--rmult", type=int, default=2, help="rmult (default: 2)") + gen_opamp_parser.add_argument("--output_gds", help="Filename for outputing opamp (gen_opamp mode only)") + + args = parser.parse_args() + + if args.mode=="extract_stats": + # Call the extract_stats function with the specified file paths or defaults + extract_stats(params=args.params, results=args.results) + + elif args.mode=="get_training_data": + # Call the get_training_data function with test_mode flag + get_training_data(test_mode=args.test_mode) + + elif args.mode=="gen_opamp": + from pygen.pdk.sky130_mapped.sky130_mapped import sky130_mapped_pdk as pdk + # Call the opamp function with the parsed arguments + diffpair_params = tuple(args.diffpair_params) + diffpair_bias = tuple(args.diffpair_bias) + houtput_bias = tuple(args.houtput_bias) + pamp_hparams = tuple(args.pamp_hparams) + mim_cap_size = tuple(args.mim_cap_size) + mim_cap_rows = args.mim_cap_rows + rmult = args.rmult + opamp_comp = opamp(pdk=pdk, + diffpair_params=diffpair_params, + diffpair_bias=diffpair_bias, + houtput_bias=houtput_bias, + pamp_hparams=pamp_hparams, + mim_cap_size=mim_cap_size, + mim_cap_rows=mim_cap_rows, + rmult=rmult, + ) + opamp_comp_labels = sky130_add_opamp_labels(opamp_comp) + opamp_comp_final = sky130_opamp_add_pads(opamp_comp_labels) + opamp_comp_final.show() + if args.output_gds: + opamp_comp_final.write_gds(args.output_gds) + From 5e18f7a6a13d44bf26d151a74952f1fe6fb59317 Mon Sep 17 00:00:00 2001 From: alibillalhammoud <70279295+alibillalhammoud@users.noreply.github.com> Date: Thu, 27 Jul 2023 14:36:41 -0400 Subject: [PATCH 28/64] pure build and simulation function --- .../gdsfactory-gen/sky130_nist_tapeout.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 0eece8e99..6f2105ff4 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -31,6 +31,9 @@ import argparse +# ====Build Opamp==== + + def sky130_opamp_add_pads(opamp_in: Component) -> Component: """adds the MPW-5 pads and nano pads to opamp. Also adds text labels and pin layers so that extraction is nice @@ -137,6 +140,11 @@ def sky130_add_opamp_labels(opamp_in: Component) -> Component: return opamp_in.flatten() + +# ====Run Training==== + + + def opamp_parameters_serializer( diffpair_params: tuple[float, float, int] = (6, 1, 4), diffpair_bias: tuple[float, float, int] = (6, 2, 4), @@ -360,6 +368,19 @@ def get_training_data(test_mode=True,): np.save("training_results.npy",results) +#util function for pure simulation +def single_build_and_simulation(parameters: np.array) -> np.array: + """Builds, extract, and simulates a single opamp + saves opamp gds in current directory with name 12345678987654321.gds + """ + global pdk + global save_gds_dir + pdk = pdk + save_gds_dir = Path('./').resolve() + index = 12345678987654321 + return __run_single_brtfrc(index, parameters) + + #======stats======= From 64593ea2209f916636dcaef4259964426a74c8e6 Mon Sep 17 00:00:00 2001 From: Ryan Wans <37909218+ryanrocket@users.noreply.github.com> Date: Thu, 27 Jul 2023 21:07:37 -0400 Subject: [PATCH 29/64] Update opamp_perf_eval.sp --- .../gdsfactory-gen/opamp_perf_eval.sp | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp index b0fb7b293..bc4b6ec9c 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp @@ -1,5 +1,5 @@ * opamp_perf_eval.sp -** OpenFASOC Team 2023 +** OpenFASOC Team, Ryan Wans 2023 ** Define global parameters for altering .param b1 = 0.8 @@ -71,7 +71,7 @@ while biasVoltage1 le biasVoltageMax let maxUGB = ugb_f let maxBv1 = biasVoltage1 let maxBv2 = biasVoltage2 - let savedPhaseMargin = pm + let savedPhaseMargin = pm % 360 let savedDCGain = dcg end let biasVoltage2 = biasVoltage2 + biasVoltageStep @@ -81,9 +81,25 @@ while biasVoltage1 le biasVoltageMax let biasVoltage1 = biasVoltage1 + biasVoltageStep end ** Export global maxima -wrdata output.txt maxUGB maxBv1 maxBv2 savedPhaseMargin savedDCGain +wrdata result_ac.txt maxUGB maxBv1 maxBv2 savedPhaseMargin savedDCGain + +** Export power usage of opamp w/ best gain +alterparam b1 = $&maxBv1 +alterparam b2 = $&maxBv2 +reset run -display +meas ac maxDraw max i(vsupply) +let maxPower = maxDraw * 1.8 +wrdata result_power.txt maxPower + +** Run noise analysis on opamp w/ best gain +reset +noise V(vo) v2 dec 100 1k 10G +setplot previous +let integ = integ(onoise_spectrum) +let totalNoise = sqrt(integ[length(integ)-1]) +wrdata result_noise.txt totalNoise + .endc .GLOBAL GND .GLOBAL VDD From 63a1fc3d0dbc9eba77bad2a62e8f30758db2547e Mon Sep 17 00:00:00 2001 From: Ryan Wans <37909218+ryanrocket@users.noreply.github.com> Date: Thu, 27 Jul 2023 21:12:02 -0400 Subject: [PATCH 30/64] Update sky130_nist_tapeout.py --- .../gdsfactory-gen/sky130_nist_tapeout.py | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 6f2105ff4..4ca220f56 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -267,20 +267,30 @@ def get_small_parameter_list(test_mode = False) -> np.array: -def get_sim_results(filepath: Union[str,Path]): - fileabspath = Path(filepath).resolve() - with open(fileabspath, "r") as ResultReport: - RawResult = ResultReport.readlines()[0] - Columns = [item for item in RawResult.split() if item] +def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: Union[str,Path]): + acabspath = Path(acpath).resolve() + dcabspath = Path(dcpath).resolve() + noiseabspath = Path(noisepath).resolve() + with open(acabspath, "r") as ACReport: + RawAC = ACReport.readlines()[0] + ACColumns = [item for item in RawAC.split() if item] + with open(dcabspath, "r") as DCReport: + RawDC = DCReport.readlines()[0] + DCColumns = [item for item in RawDC.split() if item] + with open(noiseabspath, "r") as NoiseReport: + RawNoise = NoiseReport.readlines()[0] + NoiseColumns = [item for item in RawNoise.split() if item] na = -987.654321 - if len(Columns)<9 or Columns is None: - return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na} + if len(ACColumns)<9 or ACColumns is None: + return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na,"power":na,"noise":na} return_dict = { - "ugb": Columns[1], - "biasVoltage1": Columns[3], - "biasVoltage2": Columns[5], - "phaseMargin": Columns[7], - "dcGain": Columns[9] + "ugb": ACColumns[1], + "biasVoltage1": ACColumns[3], + "biasVoltage2": ACColumns[5], + "phaseMargin": ACColumns[7], + "dcGain": ACColumns[9], + "power": DCColumns[3], + "noise": NoiseColumns[3] } for key, val in return_dict.items(): val_flt = na From ae45608cf28d38a907be2f154ff67d0cf4cb603f Mon Sep 17 00:00:00 2001 From: Ryan Wans <37909218+ryanrocket@users.noreply.github.com> Date: Thu, 27 Jul 2023 22:09:15 -0400 Subject: [PATCH 31/64] add in correct file references --- openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 4ca220f56..868a46a2d 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -340,7 +340,7 @@ def __run_single_brtfrc(index, parameters_ele): standardize_netlist_subckt_def(str(tmpdirname)+"/opamp_pex.spice") # run sim and store result Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() - result_dict = get_sim_results(str(tmpdirname)+"/output.txt") + result_dict = get_sim_results(str(tmpdirname)+"/result_ac.txt", str(tmpdirname)+"/result_power.txt", str(tmpdirname)+"/result_noise.txt") result_dict["area"] = area results = opamp_results_serializer(**result_dict) return results From 790b7fe0992c7151d1879057f6e0f91edf4c809c Mon Sep 17 00:00:00 2001 From: Ryan Wans <37909218+ryanrocket@users.noreply.github.com> Date: Thu, 27 Jul 2023 22:16:20 -0400 Subject: [PATCH 32/64] serializer changes --- .../generators/gdsfactory-gen/sky130_nist_tapeout.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 868a46a2d..b60a3e87f 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -190,16 +190,18 @@ def opamp_results_serializer( phaseMargin: float = -987.654321, biasVoltage1: float = -987.654321, biasVoltage2: float = -987.654321, - area: float = -987.654321 + area: float = -987.654321, + power: float = -987.654321, + noise: float = -987.654321 ) -> np.array: - return np.array([ugb, dcGain, phaseMargin, biasVoltage1, biasVoltage2, area], dtype=np.float64) + return np.array([ugb, dcGain, phaseMargin, biasVoltage1, biasVoltage2, area, power, noise], dtype=np.float64) def opamp_results_de_serializer( results: Optional[np.array]=None ) -> dict: if results is None: - results = 6*[-987.654321] - if not len(results) == 6: + results = 8*[-987.654321] + if not len(results) == 8: raise ValueError("results should be a length 5 array") results_dict = dict() results_dict["ugb"] = float(results[0]) @@ -208,6 +210,8 @@ def opamp_results_de_serializer( results_dict["biasVoltage1"] = float(results[3]) results_dict["biasVoltage2"] = float(results[4]) results_dict["area"] = float(results[5]) + results_dict["power"] = float(results[6]) + results_dict["noise"] = float(results[7]) return results_dict def get_small_parameter_list(test_mode = False) -> np.array: From d63fae9b9763580d7f43769ec79aa7c5b98adde6 Mon Sep 17 00:00:00 2001 From: Ryan Wans Date: Thu, 27 Jul 2023 22:42:23 -0400 Subject: [PATCH 33/64] lot of changes... --- openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py | 2 +- openfasoc/generators/gdsfactory-gen/requirements.txt | 3 +-- openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py index 32d3762ad..816a11ee8 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py @@ -274,7 +274,7 @@ def util_max_metal_seperation(self, metal_levels: Union[list[int],list[str], str return max(sep_rules) @validate_arguments - def snap_to_2xgrid(self, dims: Union[list[Union[float,Decimal]], Union[float,Decimal]], return_type: Literal["decimal","float","same"]="same") -> Union[list[Union[float,Decimal]], Union[float,Decimal]]: + def snap_to_2xgrid(self, dims: Union[list[Union[float,Decimal]], Union[float,Decimal]], return_type: Literal["decimal","float","same"]="float") -> Union[list[Union[float,Decimal]], Union[float,Decimal]]: """snap all numbers in dims to double the grid size. This is useful when a generator accepts a size or dimension argument because there is a chance the cell may be centered (resulting in off grid components) diff --git a/openfasoc/generators/gdsfactory-gen/requirements.txt b/openfasoc/generators/gdsfactory-gen/requirements.txt index 220ae8a89..626ebfb21 100644 --- a/openfasoc/generators/gdsfactory-gen/requirements.txt +++ b/openfasoc/generators/gdsfactory-gen/requirements.txt @@ -1,7 +1,6 @@ gf180 sky130 -gdsfactory>=6.114.0 -sklearn +scikit-learn matplotlib scipy seaborn diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index b60a3e87f..3b7cc93d1 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -29,6 +29,7 @@ from sklearn.cluster import KMeans, AgglomerativeClustering from sklearn.metrics import silhouette_score import argparse +from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk # ====Build Opamp==== From 942484e07cebecbba3d8081ba9e57697f4cb520d Mon Sep 17 00:00:00 2001 From: Ryan Wans Date: Thu, 27 Jul 2023 23:45:43 -0400 Subject: [PATCH 34/64] Add test mode, test mode output directory for local testing --- .../gdsfactory-gen/12345678987654321.gds | Bin 0 -> 1348842 bytes .../generators/gdsfactory-gen/extract.bash | 3 +- .../gdsfactory-gen/opamp_perf_eval.sp | 7 +- .../gdsfactory-gen/save_gds_by_index/0.gds | Bin 0 -> 987434 bytes .../gdsfactory-gen/save_gds_by_index/1.gds | Bin 0 -> 997418 bytes .../gdsfactory-gen/save_gds_by_index/2.gds | Bin 0 -> 1038378 bytes .../gdsfactory-gen/save_gds_by_index/3.gds | Bin 0 -> 1048362 bytes .../gdsfactory-gen/save_gds_by_index/4.gds | Bin 0 -> 979754 bytes .../gdsfactory-gen/save_gds_by_index/5.gds | Bin 0 -> 989738 bytes .../gdsfactory-gen/save_gds_by_index/6.gds | Bin 0 -> 1030698 bytes .../gdsfactory-gen/save_gds_by_index/7.gds | Bin 0 -> 1040682 bytes .../gdsfactory-gen/sky130_nist_tapeout.py | 36 +- .../gdsfactory-gen/test_output/extract.bash | 50 ++ .../gdsfactory-gen/test_output/opamp.gds | Bin 0 -> 856758 bytes .../test_output/opamp_perf_eval.sp | 109 +++ .../test_output/opamp_pex.spice | 46 ++ .../gdsfactory-gen/test_output/result_ac.txt | 1 + .../test_output/result_noise.txt | 701 ++++++++++++++++++ .../test_output/result_power.txt | 701 ++++++++++++++++++ .../test_output/sky130A/sky130A.magicrc | 86 +++ .../test_output/sky130A/sky130A_setup.tcl | 419 +++++++++++ .../gdsfactory-gen/training_params.npy | Bin 0 -> 1280 bytes .../gdsfactory-gen/training_results.npy | Bin 0 -> 640 bytes 23 files changed, 2150 insertions(+), 9 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/12345678987654321.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/0.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/1.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/2.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/3.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/4.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/5.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/6.gds create mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/7.gds create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/extract.bash create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/opamp.gds create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/result_power.txt create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc create mode 100644 openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl create mode 100644 openfasoc/generators/gdsfactory-gen/training_params.npy create mode 100644 openfasoc/generators/gdsfactory-gen/training_results.npy diff --git a/openfasoc/generators/gdsfactory-gen/12345678987654321.gds b/openfasoc/generators/gdsfactory-gen/12345678987654321.gds new file mode 100644 index 0000000000000000000000000000000000000000..b870ae4cb4911b8785f4e2449483d478d2bf5455 GIT binary patch literal 1348842 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℘1pZ+8Ko7R)pFXpBH2y*VS{!Q!c>wkCu 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 I-L>z30l*CfDgXcg literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/extract.bash b/openfasoc/generators/gdsfactory-gen/extract.bash index 40193ad81..ff277d5b4 100644 --- a/openfasoc/generators/gdsfactory-gen/extract.bash +++ b/openfasoc/generators/gdsfactory-gen/extract.bash @@ -1,6 +1,7 @@ #!/bin/bash #export PDK_ROOT=/usr/local/share/pdk/ -export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ +# export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ +export PDK_ROOT = /home/rw/work/open_pdks/sky130 # args: # first arg = gds file to read diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp index bc4b6ec9c..89eb1bd2b 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp @@ -23,8 +23,11 @@ Vindc net1 GND 1 ** .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt ** .include /usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice -.lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt -.include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +.lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt +.include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + +** .lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt +** .include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice ** Import opamp subcircuit .include opamp_pex.spice diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/0.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/0.gds new file mode 100644 index 0000000000000000000000000000000000000000..31b5b95e6ada2566a14d4bd0c383707caaa47893 GIT binary patch literal 987434 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�O8@M;^dClFF@MPq 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 WrG0*vOn0qu{#o7mlNx8`#Qz7iBlKVZ literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/1.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/1.gds new file mode 100644 index 0000000000000000000000000000000000000000..d01306a2f193ff081c4a7a199194182e8a7d6a1d GIT binary patch literal 997418 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 literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/2.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/2.gds new file mode 100644 index 0000000000000000000000000000000000000000..226b989e83bedaaf1cfbce22a8e4a620c0eed4f4 GIT binary patch literal 1038378 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

D)R8|-&3pSFMlbS*eSf^_@L&6; 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%0D{-hbD3yZv_`+3jyy-}T*8KiYrcb>038Z}0Y> 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 literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/4.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/4.gds new file mode 100644 index 0000000000000000000000000000000000000000..ae663f3ab68d521510512eeb686347ad7ef2e1f4 GIT binary patch literal 979754 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
g&ovv2TkTF>iuG(P=DjL*Jd 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≪E?TY9~6 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
#CFgIo6N-548Szn!oygMRoE& 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�r%&pQ+@SM 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¬>`mfq5s{e$}^Zp(6 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%0Dh&w-j0rw)OS==6#EqKY~YzH|t~5 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 U^M_=HYmM_y9?oCXI0r8LKR*xp>;M1& literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/5.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/5.gds new file mode 100644 index 0000000000000000000000000000000000000000..42c379e3a367e3b67554f88d1e13719b7a8eeb26 GIT binary patch literal 989738 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 u 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

hBf9RJhYvsS9~SV; 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 Sneny8_>JSwKdE^RoB01*2e*j; literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/6.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/6.gds new file mode 100644 index 0000000000000000000000000000000000000000..bf9d80cf1050c5a6d0889dba736bec3a78e6e836 GIT binary patch literal 1030698 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%0DH?8OM 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

w@7Y`2*eL52Maa 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

^e1=Ff5GsR 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

^;6RLt^Ze4{~xLTP3x~n^{s#PY4|^( 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

_5Uk^9KK>_1wSJ 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 z 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

HZ1r8*_|*%r(CH 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∓Y+JtF>1>$!hN|2L>k{`azf`SEu^XKYfb- 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

U|fr9Tqo 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 Pa}E9T)$tEwo`dcW&V*ay literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 3b7cc93d1..02ea5b5ec 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -286,7 +286,11 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: RawNoise = NoiseReport.readlines()[0] NoiseColumns = [item for item in RawNoise.split() if item] na = -987.654321 - if len(ACColumns)<9 or ACColumns is None: + if ACColumns is None or len(ACColumns)<9: + return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na,"power":na,"noise":na} + if DCColumns is None or len(DCColumns)<2: + return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na,"power":na,"noise":na} + if NoiseColumns is None or len(NoiseColumns)<2: return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na,"power":na,"noise":na} return_dict = { "ugb": ACColumns[1], @@ -294,8 +298,8 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: "biasVoltage2": ACColumns[5], "phaseMargin": ACColumns[7], "dcGain": ACColumns[9], - "power": DCColumns[3], - "noise": NoiseColumns[3] + "power": DCColumns[1], + "noise": NoiseColumns[1] } for key, val in return_dict.items(): val_flt = na @@ -322,7 +326,7 @@ def standardize_netlist_subckt_def(netlist: Union[str,Path]): with open(netlist, "w") as spice_net: spice_net.writelines(subckt_lines) -def __run_single_brtfrc(index, parameters_ele): +def __run_single_brtfrc(index, parameters_ele, output_dir: Optional[Union[str,Path]] = None): # generate layout global pdk global save_gds_dir @@ -348,6 +352,11 @@ def __run_single_brtfrc(index, parameters_ele): result_dict = get_sim_results(str(tmpdirname)+"/result_ac.txt", str(tmpdirname)+"/result_power.txt", str(tmpdirname)+"/result_noise.txt") result_dict["area"] = area results = opamp_results_serializer(**result_dict) + if output_dir: + output_dir = Path(output_dir).resolve() + if not output_dir.is_dir(): + raise ValueError("Output directory must be a directory") + copytree(str(tmpdirname), str(output_dir)+"/test_output", dirs_exist_ok=True) return results def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array) -> np.array: @@ -384,7 +393,7 @@ def get_training_data(test_mode=True,): #util function for pure simulation -def single_build_and_simulation(parameters: np.array) -> np.array: +def single_build_and_simulation(parameters: np.array, output_dir: Optional[Union[str,Path]] = None) -> np.array: """Builds, extract, and simulates a single opamp saves opamp gds in current directory with name 12345678987654321.gds """ @@ -393,7 +402,7 @@ def single_build_and_simulation(parameters: np.array) -> np.array: pdk = pdk save_gds_dir = Path('./').resolve() index = 12345678987654321 - return __run_single_brtfrc(index, parameters) + return __run_single_brtfrc(index, parameters, output_dir) #======stats======= @@ -785,6 +794,10 @@ def extract_stats( gen_opamp_parser.add_argument("--mim_cap_rows", type=int, default=3, help="mim_cap_rows (default: 3)") gen_opamp_parser.add_argument("--rmult", type=int, default=2, help="rmult (default: 2)") gen_opamp_parser.add_argument("--output_gds", help="Filename for outputing opamp (gen_opamp mode only)") + + # Testing + test = subparsers.add_parser("test", help="Test mode") + test.add_argument("--output_dir", type=Path, default="./", help="Directory for output GDS file") args = parser.parse_args() @@ -821,3 +834,14 @@ def extract_stats( if args.output_gds: opamp_comp_final.write_gds(args.output_gds) + elif args.mode == "test": + params = { + "diffpair_params": (6, 1, 4), + "diffpair_bias": (6, 2, 4), + "houtput_bias": (6, 2, 8, 3), + "pamp_hparams": (7, 1, 10, 3), + "mim_cap_size": (12, 12), + "mim_cap_rows": 3, + "rmult": 2 + } + single_build_and_simulation(opamp_parameters_serializer(**params), args.output_dir) diff --git a/openfasoc/generators/gdsfactory-gen/test_output/extract.bash b/openfasoc/generators/gdsfactory-gen/test_output/extract.bash new file mode 100644 index 000000000..ff277d5b4 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/extract.bash @@ -0,0 +1,50 @@ +#!/bin/bash +#export PDK_ROOT=/usr/local/share/pdk/ +# export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ +export PDK_ROOT = /home/rw/work/open_pdks/sky130 + +# args: +# first arg = gds file to read +# second arg = name of top cell in gds file to read + +# generate lvs netlist using magic +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $1 +load $2 +flatten $2_flat +load $2_flat +gds write $2_flat.gds +EOF + +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $2_flat.gds +load $2_flat +flatten $2 +load $2 +gds write $2.gds +EOF + + +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $2.gds +load $2 +extract all +ext2spice lvs +ext2spice merge aggressive +ext2spice cthresh 0 +ext2spice rthresh 0 +ext2spice -o $2_pex.spice +exit +EOF + +magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF +gds read $2.gds +load $2 +extract all +ext2spice merge aggressive +ext2spice -o $2_pex.spice +exit +EOF + +rm -f $2_flat.gds +rm -f $2.ext diff --git a/openfasoc/generators/gdsfactory-gen/test_output/opamp.gds b/openfasoc/generators/gdsfactory-gen/test_output/opamp.gds new file mode 100644 index 0000000000000000000000000000000000000000..4f7af73223751b2bbe7626a85a7075850954d5fa GIT binary patch literal 856758 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


y2|NpX^>+{d`_4WMVWoG2b8!UhS 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 literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp new file mode 100644 index 000000000..89eb1bd2b --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp @@ -0,0 +1,109 @@ +* opamp_perf_eval.sp +** OpenFASOC Team, Ryan Wans 2023 + +** Define global parameters for altering +.param b1 = 0.8 +.param b2 = 0.75 + +** Define netlist +Vsupply VDD GND 1.8 +.save i(vsupply) +V2 vin net1 AC 0.5 +.save i(v2) +V3 vip net1 AC -0.5 +.save i(v3) +Vbias2 bias2 GND {b2} +.save i(vbias2) +Vbias1 bias1 GND {b1} +.save i(vbias1) +Vindc net1 GND 1 +.save i(vindc) + +** Import SKY130 libs (this should be replaced with a path relative to some env variable) +** .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt +** .include /usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + +.lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt +.include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + +** .lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt +** .include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + +** Import opamp subcircuit +.include opamp_pex.spice +XDUT vin vip bias1 bias2 vo VDD GND opamp +* parameter sweep +** Run initial analysis +.save all +.options savecurrents +.ac dec 100 1k 10G +.control +** Set initial values +set filetype = ascii +set appendwrite = 1 +let maxUGB = -1 +let maxBv1 = -1 +let maxBv2 = -1 +let savedPhaseMargin = -1 +let savedDCGain = -1 +** Tune these +let biasVoltageMin = 0.4 +let biasVoltageMax = 1.6 +let biasVoltageStep = 0.05 +let biasVoltage1 = biasVoltageMin +let biasVoltage2 = biasVoltageMin +** Sweep bias voltages +while biasVoltage1 le biasVoltageMax + ** Alter parameters and reset top-level ckt + alterparam b1 = $&biasVoltage1 + reset + while biasVoltage2 le biasVoltageMax + alterparam b2 = $&biasVoltage2 + reset + ** Run analysis + run + ** Find unity-gain bw point + meas ac ugb_f when vdb(vo)=0 + ** Measure phase margin + let phase = (180/PI)*vp(vo) + meas ac pm find phase when vdb(vo)=0 + ** Measure DC(ish) gain + meas ac dcg find vdb(vo) at=1k + ** Find local maxima + if ( ugb_f ge maxUGB ) + let maxUGB = ugb_f + let maxBv1 = biasVoltage1 + let maxBv2 = biasVoltage2 + let savedPhaseMargin = pm % 360 + let savedDCGain = dcg + end + let biasVoltage2 = biasVoltage2 + biasVoltageStep + end + ** Reset counter for bv2 loop + let biasVoltage2 = biasVoltageMin + let biasVoltage1 = biasVoltage1 + biasVoltageStep +end +** Export global maxima +wrdata result_ac.txt maxUGB maxBv1 maxBv2 savedPhaseMargin savedDCGain + +** Export power usage of opamp w/ best gain +alterparam b1 = $&maxBv1 +alterparam b2 = $&maxBv2 +reset +run +meas ac maxDraw max i(vsupply) +let maxPower = maxDraw * 1.8 +wrdata result_power.txt maxPower + +** Run noise analysis on opamp w/ best gain +reset +noise V(vo) v2 dec 100 1k 10G +setplot previous +let integ = integ(onoise_spectrum) +let totalNoise = sqrt(integ[length(integ)-1]) +wrdata result_noise.txt totalNoise + +.endc +.GLOBAL GND +.GLOBAL VDD +.end diff --git a/openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice b/openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice new file mode 100644 index 000000000..81f9ee753 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice @@ -0,0 +1,46 @@ +* SPICE3 file created from opamp.ext - technology: sky130A + +.subckt opamp minus plus vbias1 vbias2 output vdd gnd +X0 output vbias2 gnd gnd sky130_fd_pr__nfet_01v8 ad=4.752e+13p pd=3.0384e+08u as=7.038e+13p ps=4.1946e+08u w=6e+06u l=2e+06u M=48 +X1 a_n1959_6502# a_n2329_8404# a_n6654_6298# vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=12 +X2 output a_n6654_6298# vdd vdd sky130_fd_pr__pfet_01v8 ad=6.93e+13p pd=4.398e+08u as=1.0404e+14p ps=6.3048e+08u w=7e+06u l=1e+06u M=60 +X3 a_n1205_n495# a_n899_n3133# gnd gnd sky130_fd_pr__nfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=2e+06u M=4 +X4 a_n1205_n495# plus a_n2329_8404# gnd sky130_fd_pr__nfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 +X5 a_n1959_6502# a_n2329_8404# vdd vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 +X6 a_n2329_8404# a_n2329_8404# a_n2407_8600# vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=12 +X7 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u +X8 a_n2407_8600# a_n2329_8404# vdd vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 +X9 a_n1205_n495# minus a_n6654_6298# gnd sky130_fd_pr__nfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 +X10 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u +X11 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u +X12 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u +X13 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u +X14 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u +C0 output vdd 38.75fF +C1 output vbias2 17.81fF +C2 a_n1205_n495# a_n6654_6298# 5.60fF +C3 output plus 4.17fF +C4 minus plus 7.66fF +C5 a_n1205_n495# a_n2329_8404# 4.87fF +C6 a_n1959_6502# a_n6654_6298# 5.50fF +C7 a_n2407_8600# vdd 6.86fF +C8 a_n1959_6502# vdd 7.49fF +C9 vdd a_n6654_6298# 32.61fF +C10 a_n2407_8600# a_n2329_8404# 9.34fF +C11 a_n1959_6502# a_n2329_8404# 6.18fF +C12 a_n2329_8404# a_n6654_6298# 5.79fF +C13 output a_n1959_6502# 82.18fF +C14 output a_n6654_6298# 9.49fF +C15 minus a_n6654_6298# 3.95fF +C16 vdd a_n2329_8404# 18.76fF +C17 vbias2 gnd 64.53fF +C18 plus gnd 7.74fF +C19 minus gnd 8.61fF +C20 output gnd 63.97fF +C21 vdd gnd 303.27fF + + + + + +.ends diff --git a/openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt b/openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt new file mode 100644 index 000000000..ecacbec06 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt @@ -0,0 +1 @@ + 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt b/openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt new file mode 100644 index 000000000..f85483187 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt @@ -0,0 +1,701 @@ + 1.00000000e+03 8.22716007e-01 + 1.02329299e+03 8.22716007e-01 + 1.04712855e+03 8.22716007e-01 + 1.07151931e+03 8.22716007e-01 + 1.09647820e+03 8.22716007e-01 + 1.12201845e+03 8.22716007e-01 + 1.14815362e+03 8.22716007e-01 + 1.17489755e+03 8.22716007e-01 + 1.20226443e+03 8.22716007e-01 + 1.23026877e+03 8.22716007e-01 + 1.25892541e+03 8.22716007e-01 + 1.28824955e+03 8.22716007e-01 + 1.31825674e+03 8.22716007e-01 + 1.34896288e+03 8.22716007e-01 + 1.38038426e+03 8.22716007e-01 + 1.41253754e+03 8.22716007e-01 + 1.44543977e+03 8.22716007e-01 + 1.47910839e+03 8.22716007e-01 + 1.51356125e+03 8.22716007e-01 + 1.54881662e+03 8.22716007e-01 + 1.58489319e+03 8.22716007e-01 + 1.62181010e+03 8.22716007e-01 + 1.65958691e+03 8.22716007e-01 + 1.69824365e+03 8.22716007e-01 + 1.73780083e+03 8.22716007e-01 + 1.77827941e+03 8.22716007e-01 + 1.81970086e+03 8.22716007e-01 + 1.86208714e+03 8.22716007e-01 + 1.90546072e+03 8.22716007e-01 + 1.94984460e+03 8.22716007e-01 + 1.99526231e+03 8.22716007e-01 + 2.04173794e+03 8.22716007e-01 + 2.08929613e+03 8.22716007e-01 + 2.13796209e+03 8.22716007e-01 + 2.18776162e+03 8.22716007e-01 + 2.23872114e+03 8.22716007e-01 + 2.29086765e+03 8.22716007e-01 + 2.34422882e+03 8.22716007e-01 + 2.39883292e+03 8.22716007e-01 + 2.45470892e+03 8.22716007e-01 + 2.51188643e+03 8.22716007e-01 + 2.57039578e+03 8.22716007e-01 + 2.63026799e+03 8.22716007e-01 + 2.69153480e+03 8.22716007e-01 + 2.75422870e+03 8.22716007e-01 + 2.81838293e+03 8.22716007e-01 + 2.88403150e+03 8.22716007e-01 + 2.95120923e+03 8.22716007e-01 + 3.01995172e+03 8.22716007e-01 + 3.09029543e+03 8.22716007e-01 + 3.16227766e+03 8.22716007e-01 + 3.23593657e+03 8.22716007e-01 + 3.31131121e+03 8.22716007e-01 + 3.38844156e+03 8.22716007e-01 + 3.46736850e+03 8.22716007e-01 + 3.54813389e+03 8.22716007e-01 + 3.63078055e+03 8.22716007e-01 + 3.71535229e+03 8.22716007e-01 + 3.80189396e+03 8.22716007e-01 + 3.89045145e+03 8.22716007e-01 + 3.98107171e+03 8.22716007e-01 + 4.07380278e+03 8.22716007e-01 + 4.16869383e+03 8.22716007e-01 + 4.26579519e+03 8.22716007e-01 + 4.36515832e+03 8.22716007e-01 + 4.46683592e+03 8.22716007e-01 + 4.57088190e+03 8.22716007e-01 + 4.67735141e+03 8.22716007e-01 + 4.78630092e+03 8.22716007e-01 + 4.89778819e+03 8.22716007e-01 + 5.01187234e+03 8.22716007e-01 + 5.12861384e+03 8.22716007e-01 + 5.24807460e+03 8.22716007e-01 + 5.37031796e+03 8.22716007e-01 + 5.49540874e+03 8.22716007e-01 + 5.62341325e+03 8.22716007e-01 + 5.75439937e+03 8.22716007e-01 + 5.88843655e+03 8.22716007e-01 + 6.02559586e+03 8.22716007e-01 + 6.16595002e+03 8.22716007e-01 + 6.30957344e+03 8.22716007e-01 + 6.45654229e+03 8.22716007e-01 + 6.60693448e+03 8.22716007e-01 + 6.76082975e+03 8.22716007e-01 + 6.91830971e+03 8.22716007e-01 + 7.07945784e+03 8.22716007e-01 + 7.24435960e+03 8.22716007e-01 + 7.41310241e+03 8.22716007e-01 + 7.58577575e+03 8.22716007e-01 + 7.76247117e+03 8.22716007e-01 + 7.94328235e+03 8.22716007e-01 + 8.12830516e+03 8.22716007e-01 + 8.31763771e+03 8.22716007e-01 + 8.51138038e+03 8.22716007e-01 + 8.70963590e+03 8.22716007e-01 + 8.91250938e+03 8.22716007e-01 + 9.12010839e+03 8.22716007e-01 + 9.33254301e+03 8.22716007e-01 + 9.54992586e+03 8.22716007e-01 + 9.77237221e+03 8.22716007e-01 + 1.00000000e+04 8.22716007e-01 + 1.02329299e+04 8.22716007e-01 + 1.04712855e+04 8.22716007e-01 + 1.07151931e+04 8.22716007e-01 + 1.09647820e+04 8.22716007e-01 + 1.12201845e+04 8.22716007e-01 + 1.14815362e+04 8.22716007e-01 + 1.17489755e+04 8.22716007e-01 + 1.20226443e+04 8.22716007e-01 + 1.23026877e+04 8.22716007e-01 + 1.25892541e+04 8.22716007e-01 + 1.28824955e+04 8.22716007e-01 + 1.31825674e+04 8.22716007e-01 + 1.34896288e+04 8.22716007e-01 + 1.38038426e+04 8.22716007e-01 + 1.41253754e+04 8.22716007e-01 + 1.44543977e+04 8.22716007e-01 + 1.47910839e+04 8.22716007e-01 + 1.51356125e+04 8.22716007e-01 + 1.54881662e+04 8.22716007e-01 + 1.58489319e+04 8.22716007e-01 + 1.62181010e+04 8.22716007e-01 + 1.65958691e+04 8.22716007e-01 + 1.69824365e+04 8.22716007e-01 + 1.73780083e+04 8.22716007e-01 + 1.77827941e+04 8.22716007e-01 + 1.81970086e+04 8.22716007e-01 + 1.86208714e+04 8.22716007e-01 + 1.90546072e+04 8.22716007e-01 + 1.94984460e+04 8.22716007e-01 + 1.99526231e+04 8.22716007e-01 + 2.04173794e+04 8.22716007e-01 + 2.08929613e+04 8.22716007e-01 + 2.13796209e+04 8.22716007e-01 + 2.18776162e+04 8.22716007e-01 + 2.23872114e+04 8.22716007e-01 + 2.29086765e+04 8.22716007e-01 + 2.34422882e+04 8.22716007e-01 + 2.39883292e+04 8.22716007e-01 + 2.45470892e+04 8.22716007e-01 + 2.51188643e+04 8.22716007e-01 + 2.57039578e+04 8.22716007e-01 + 2.63026799e+04 8.22716007e-01 + 2.69153480e+04 8.22716007e-01 + 2.75422870e+04 8.22716007e-01 + 2.81838293e+04 8.22716007e-01 + 2.88403150e+04 8.22716007e-01 + 2.95120923e+04 8.22716007e-01 + 3.01995172e+04 8.22716007e-01 + 3.09029543e+04 8.22716007e-01 + 3.16227766e+04 8.22716007e-01 + 3.23593657e+04 8.22716007e-01 + 3.31131121e+04 8.22716007e-01 + 3.38844156e+04 8.22716007e-01 + 3.46736850e+04 8.22716007e-01 + 3.54813389e+04 8.22716007e-01 + 3.63078055e+04 8.22716007e-01 + 3.71535229e+04 8.22716007e-01 + 3.80189396e+04 8.22716007e-01 + 3.89045145e+04 8.22716007e-01 + 3.98107171e+04 8.22716007e-01 + 4.07380278e+04 8.22716007e-01 + 4.16869383e+04 8.22716007e-01 + 4.26579519e+04 8.22716007e-01 + 4.36515832e+04 8.22716007e-01 + 4.46683592e+04 8.22716007e-01 + 4.57088190e+04 8.22716007e-01 + 4.67735141e+04 8.22716007e-01 + 4.78630092e+04 8.22716007e-01 + 4.89778819e+04 8.22716007e-01 + 5.01187234e+04 8.22716007e-01 + 5.12861384e+04 8.22716007e-01 + 5.24807460e+04 8.22716007e-01 + 5.37031796e+04 8.22716007e-01 + 5.49540874e+04 8.22716007e-01 + 5.62341325e+04 8.22716007e-01 + 5.75439937e+04 8.22716007e-01 + 5.88843655e+04 8.22716007e-01 + 6.02559586e+04 8.22716007e-01 + 6.16595002e+04 8.22716007e-01 + 6.30957344e+04 8.22716007e-01 + 6.45654229e+04 8.22716007e-01 + 6.60693448e+04 8.22716007e-01 + 6.76082975e+04 8.22716007e-01 + 6.91830971e+04 8.22716007e-01 + 7.07945784e+04 8.22716007e-01 + 7.24435960e+04 8.22716007e-01 + 7.41310241e+04 8.22716007e-01 + 7.58577575e+04 8.22716007e-01 + 7.76247117e+04 8.22716007e-01 + 7.94328235e+04 8.22716007e-01 + 8.12830516e+04 8.22716007e-01 + 8.31763771e+04 8.22716007e-01 + 8.51138038e+04 8.22716007e-01 + 8.70963590e+04 8.22716007e-01 + 8.91250938e+04 8.22716007e-01 + 9.12010839e+04 8.22716007e-01 + 9.33254301e+04 8.22716007e-01 + 9.54992586e+04 8.22716007e-01 + 9.77237221e+04 8.22716007e-01 + 1.00000000e+05 8.22716007e-01 + 1.02329299e+05 8.22716007e-01 + 1.04712855e+05 8.22716007e-01 + 1.07151931e+05 8.22716007e-01 + 1.09647820e+05 8.22716007e-01 + 1.12201845e+05 8.22716007e-01 + 1.14815362e+05 8.22716007e-01 + 1.17489755e+05 8.22716007e-01 + 1.20226443e+05 8.22716007e-01 + 1.23026877e+05 8.22716007e-01 + 1.25892541e+05 8.22716007e-01 + 1.28824955e+05 8.22716007e-01 + 1.31825674e+05 8.22716007e-01 + 1.34896288e+05 8.22716007e-01 + 1.38038426e+05 8.22716007e-01 + 1.41253754e+05 8.22716007e-01 + 1.44543977e+05 8.22716007e-01 + 1.47910839e+05 8.22716007e-01 + 1.51356125e+05 8.22716007e-01 + 1.54881662e+05 8.22716007e-01 + 1.58489319e+05 8.22716007e-01 + 1.62181010e+05 8.22716007e-01 + 1.65958691e+05 8.22716007e-01 + 1.69824365e+05 8.22716007e-01 + 1.73780083e+05 8.22716007e-01 + 1.77827941e+05 8.22716007e-01 + 1.81970086e+05 8.22716007e-01 + 1.86208714e+05 8.22716007e-01 + 1.90546072e+05 8.22716007e-01 + 1.94984460e+05 8.22716007e-01 + 1.99526231e+05 8.22716007e-01 + 2.04173794e+05 8.22716007e-01 + 2.08929613e+05 8.22716007e-01 + 2.13796209e+05 8.22716007e-01 + 2.18776162e+05 8.22716007e-01 + 2.23872114e+05 8.22716007e-01 + 2.29086765e+05 8.22716007e-01 + 2.34422882e+05 8.22716007e-01 + 2.39883292e+05 8.22716007e-01 + 2.45470892e+05 8.22716007e-01 + 2.51188643e+05 8.22716007e-01 + 2.57039578e+05 8.22716007e-01 + 2.63026799e+05 8.22716007e-01 + 2.69153480e+05 8.22716007e-01 + 2.75422870e+05 8.22716007e-01 + 2.81838293e+05 8.22716007e-01 + 2.88403150e+05 8.22716007e-01 + 2.95120923e+05 8.22716007e-01 + 3.01995172e+05 8.22716007e-01 + 3.09029543e+05 8.22716007e-01 + 3.16227766e+05 8.22716007e-01 + 3.23593657e+05 8.22716007e-01 + 3.31131121e+05 8.22716007e-01 + 3.38844156e+05 8.22716007e-01 + 3.46736850e+05 8.22716007e-01 + 3.54813389e+05 8.22716007e-01 + 3.63078055e+05 8.22716007e-01 + 3.71535229e+05 8.22716007e-01 + 3.80189396e+05 8.22716007e-01 + 3.89045145e+05 8.22716007e-01 + 3.98107171e+05 8.22716007e-01 + 4.07380278e+05 8.22716007e-01 + 4.16869383e+05 8.22716007e-01 + 4.26579519e+05 8.22716007e-01 + 4.36515832e+05 8.22716007e-01 + 4.46683592e+05 8.22716007e-01 + 4.57088190e+05 8.22716007e-01 + 4.67735141e+05 8.22716007e-01 + 4.78630092e+05 8.22716007e-01 + 4.89778819e+05 8.22716007e-01 + 5.01187234e+05 8.22716007e-01 + 5.12861384e+05 8.22716007e-01 + 5.24807460e+05 8.22716007e-01 + 5.37031796e+05 8.22716007e-01 + 5.49540874e+05 8.22716007e-01 + 5.62341325e+05 8.22716007e-01 + 5.75439937e+05 8.22716007e-01 + 5.88843655e+05 8.22716007e-01 + 6.02559586e+05 8.22716007e-01 + 6.16595002e+05 8.22716007e-01 + 6.30957344e+05 8.22716007e-01 + 6.45654229e+05 8.22716007e-01 + 6.60693448e+05 8.22716007e-01 + 6.76082975e+05 8.22716007e-01 + 6.91830971e+05 8.22716007e-01 + 7.07945784e+05 8.22716007e-01 + 7.24435960e+05 8.22716007e-01 + 7.41310241e+05 8.22716007e-01 + 7.58577575e+05 8.22716007e-01 + 7.76247117e+05 8.22716007e-01 + 7.94328235e+05 8.22716007e-01 + 8.12830516e+05 8.22716007e-01 + 8.31763771e+05 8.22716007e-01 + 8.51138038e+05 8.22716007e-01 + 8.70963590e+05 8.22716007e-01 + 8.91250938e+05 8.22716007e-01 + 9.12010839e+05 8.22716007e-01 + 9.33254301e+05 8.22716007e-01 + 9.54992586e+05 8.22716007e-01 + 9.77237221e+05 8.22716007e-01 + 1.00000000e+06 8.22716007e-01 + 1.02329299e+06 8.22716007e-01 + 1.04712855e+06 8.22716007e-01 + 1.07151931e+06 8.22716007e-01 + 1.09647820e+06 8.22716007e-01 + 1.12201845e+06 8.22716007e-01 + 1.14815362e+06 8.22716007e-01 + 1.17489755e+06 8.22716007e-01 + 1.20226443e+06 8.22716007e-01 + 1.23026877e+06 8.22716007e-01 + 1.25892541e+06 8.22716007e-01 + 1.28824955e+06 8.22716007e-01 + 1.31825674e+06 8.22716007e-01 + 1.34896288e+06 8.22716007e-01 + 1.38038426e+06 8.22716007e-01 + 1.41253754e+06 8.22716007e-01 + 1.44543977e+06 8.22716007e-01 + 1.47910839e+06 8.22716007e-01 + 1.51356125e+06 8.22716007e-01 + 1.54881662e+06 8.22716007e-01 + 1.58489319e+06 8.22716007e-01 + 1.62181010e+06 8.22716007e-01 + 1.65958691e+06 8.22716007e-01 + 1.69824365e+06 8.22716007e-01 + 1.73780083e+06 8.22716007e-01 + 1.77827941e+06 8.22716007e-01 + 1.81970086e+06 8.22716007e-01 + 1.86208714e+06 8.22716007e-01 + 1.90546072e+06 8.22716007e-01 + 1.94984460e+06 8.22716007e-01 + 1.99526231e+06 8.22716007e-01 + 2.04173794e+06 8.22716007e-01 + 2.08929613e+06 8.22716007e-01 + 2.13796209e+06 8.22716007e-01 + 2.18776162e+06 8.22716007e-01 + 2.23872114e+06 8.22716007e-01 + 2.29086765e+06 8.22716007e-01 + 2.34422882e+06 8.22716007e-01 + 2.39883292e+06 8.22716007e-01 + 2.45470892e+06 8.22716007e-01 + 2.51188643e+06 8.22716007e-01 + 2.57039578e+06 8.22716007e-01 + 2.63026799e+06 8.22716007e-01 + 2.69153480e+06 8.22716007e-01 + 2.75422870e+06 8.22716007e-01 + 2.81838293e+06 8.22716007e-01 + 2.88403150e+06 8.22716007e-01 + 2.95120923e+06 8.22716007e-01 + 3.01995172e+06 8.22716007e-01 + 3.09029543e+06 8.22716007e-01 + 3.16227766e+06 8.22716007e-01 + 3.23593657e+06 8.22716007e-01 + 3.31131121e+06 8.22716007e-01 + 3.38844156e+06 8.22716007e-01 + 3.46736850e+06 8.22716007e-01 + 3.54813389e+06 8.22716007e-01 + 3.63078055e+06 8.22716007e-01 + 3.71535229e+06 8.22716007e-01 + 3.80189396e+06 8.22716007e-01 + 3.89045145e+06 8.22716007e-01 + 3.98107171e+06 8.22716007e-01 + 4.07380278e+06 8.22716007e-01 + 4.16869383e+06 8.22716007e-01 + 4.26579519e+06 8.22716007e-01 + 4.36515832e+06 8.22716007e-01 + 4.46683592e+06 8.22716007e-01 + 4.57088190e+06 8.22716007e-01 + 4.67735141e+06 8.22716007e-01 + 4.78630092e+06 8.22716007e-01 + 4.89778819e+06 8.22716007e-01 + 5.01187234e+06 8.22716007e-01 + 5.12861384e+06 8.22716007e-01 + 5.24807460e+06 8.22716007e-01 + 5.37031796e+06 8.22716007e-01 + 5.49540874e+06 8.22716007e-01 + 5.62341325e+06 8.22716007e-01 + 5.75439937e+06 8.22716007e-01 + 5.88843655e+06 8.22716007e-01 + 6.02559586e+06 8.22716007e-01 + 6.16595002e+06 8.22716007e-01 + 6.30957344e+06 8.22716007e-01 + 6.45654229e+06 8.22716007e-01 + 6.60693448e+06 8.22716007e-01 + 6.76082975e+06 8.22716007e-01 + 6.91830971e+06 8.22716007e-01 + 7.07945784e+06 8.22716007e-01 + 7.24435960e+06 8.22716007e-01 + 7.41310241e+06 8.22716007e-01 + 7.58577575e+06 8.22716007e-01 + 7.76247117e+06 8.22716007e-01 + 7.94328235e+06 8.22716007e-01 + 8.12830516e+06 8.22716007e-01 + 8.31763771e+06 8.22716007e-01 + 8.51138038e+06 8.22716007e-01 + 8.70963590e+06 8.22716007e-01 + 8.91250938e+06 8.22716007e-01 + 9.12010839e+06 8.22716007e-01 + 9.33254301e+06 8.22716007e-01 + 9.54992586e+06 8.22716007e-01 + 9.77237221e+06 8.22716007e-01 + 1.00000000e+07 8.22716007e-01 + 1.02329299e+07 8.22716007e-01 + 1.04712855e+07 8.22716007e-01 + 1.07151931e+07 8.22716007e-01 + 1.09647820e+07 8.22716007e-01 + 1.12201845e+07 8.22716007e-01 + 1.14815362e+07 8.22716007e-01 + 1.17489755e+07 8.22716007e-01 + 1.20226443e+07 8.22716007e-01 + 1.23026877e+07 8.22716007e-01 + 1.25892541e+07 8.22716007e-01 + 1.28824955e+07 8.22716007e-01 + 1.31825674e+07 8.22716007e-01 + 1.34896288e+07 8.22716007e-01 + 1.38038426e+07 8.22716007e-01 + 1.41253754e+07 8.22716007e-01 + 1.44543977e+07 8.22716007e-01 + 1.47910839e+07 8.22716007e-01 + 1.51356125e+07 8.22716007e-01 + 1.54881662e+07 8.22716007e-01 + 1.58489319e+07 8.22716007e-01 + 1.62181010e+07 8.22716007e-01 + 1.65958691e+07 8.22716007e-01 + 1.69824365e+07 8.22716007e-01 + 1.73780083e+07 8.22716007e-01 + 1.77827941e+07 8.22716007e-01 + 1.81970086e+07 8.22716007e-01 + 1.86208714e+07 8.22716007e-01 + 1.90546072e+07 8.22716007e-01 + 1.94984460e+07 8.22716007e-01 + 1.99526231e+07 8.22716007e-01 + 2.04173794e+07 8.22716007e-01 + 2.08929613e+07 8.22716007e-01 + 2.13796209e+07 8.22716007e-01 + 2.18776162e+07 8.22716007e-01 + 2.23872114e+07 8.22716007e-01 + 2.29086765e+07 8.22716007e-01 + 2.34422882e+07 8.22716007e-01 + 2.39883292e+07 8.22716007e-01 + 2.45470892e+07 8.22716007e-01 + 2.51188643e+07 8.22716007e-01 + 2.57039578e+07 8.22716007e-01 + 2.63026799e+07 8.22716007e-01 + 2.69153480e+07 8.22716007e-01 + 2.75422870e+07 8.22716007e-01 + 2.81838293e+07 8.22716007e-01 + 2.88403150e+07 8.22716007e-01 + 2.95120923e+07 8.22716007e-01 + 3.01995172e+07 8.22716007e-01 + 3.09029543e+07 8.22716007e-01 + 3.16227766e+07 8.22716007e-01 + 3.23593657e+07 8.22716007e-01 + 3.31131121e+07 8.22716007e-01 + 3.38844156e+07 8.22716007e-01 + 3.46736850e+07 8.22716007e-01 + 3.54813389e+07 8.22716007e-01 + 3.63078055e+07 8.22716007e-01 + 3.71535229e+07 8.22716007e-01 + 3.80189396e+07 8.22716007e-01 + 3.89045145e+07 8.22716007e-01 + 3.98107171e+07 8.22716007e-01 + 4.07380278e+07 8.22716007e-01 + 4.16869383e+07 8.22716007e-01 + 4.26579519e+07 8.22716007e-01 + 4.36515832e+07 8.22716007e-01 + 4.46683592e+07 8.22716007e-01 + 4.57088190e+07 8.22716007e-01 + 4.67735141e+07 8.22716007e-01 + 4.78630092e+07 8.22716007e-01 + 4.89778819e+07 8.22716007e-01 + 5.01187234e+07 8.22716007e-01 + 5.12861384e+07 8.22716007e-01 + 5.24807460e+07 8.22716007e-01 + 5.37031796e+07 8.22716007e-01 + 5.49540874e+07 8.22716007e-01 + 5.62341325e+07 8.22716007e-01 + 5.75439937e+07 8.22716007e-01 + 5.88843655e+07 8.22716007e-01 + 6.02559586e+07 8.22716007e-01 + 6.16595002e+07 8.22716007e-01 + 6.30957344e+07 8.22716007e-01 + 6.45654229e+07 8.22716007e-01 + 6.60693448e+07 8.22716007e-01 + 6.76082975e+07 8.22716007e-01 + 6.91830971e+07 8.22716007e-01 + 7.07945784e+07 8.22716007e-01 + 7.24435960e+07 8.22716007e-01 + 7.41310241e+07 8.22716007e-01 + 7.58577575e+07 8.22716007e-01 + 7.76247117e+07 8.22716007e-01 + 7.94328235e+07 8.22716007e-01 + 8.12830516e+07 8.22716007e-01 + 8.31763771e+07 8.22716007e-01 + 8.51138038e+07 8.22716007e-01 + 8.70963590e+07 8.22716007e-01 + 8.91250938e+07 8.22716007e-01 + 9.12010839e+07 8.22716007e-01 + 9.33254301e+07 8.22716007e-01 + 9.54992586e+07 8.22716007e-01 + 9.77237221e+07 8.22716007e-01 + 1.00000000e+08 8.22716007e-01 + 1.02329299e+08 8.22716007e-01 + 1.04712855e+08 8.22716007e-01 + 1.07151931e+08 8.22716007e-01 + 1.09647820e+08 8.22716007e-01 + 1.12201845e+08 8.22716007e-01 + 1.14815362e+08 8.22716007e-01 + 1.17489755e+08 8.22716007e-01 + 1.20226443e+08 8.22716007e-01 + 1.23026877e+08 8.22716007e-01 + 1.25892541e+08 8.22716007e-01 + 1.28824955e+08 8.22716007e-01 + 1.31825674e+08 8.22716007e-01 + 1.34896288e+08 8.22716007e-01 + 1.38038426e+08 8.22716007e-01 + 1.41253754e+08 8.22716007e-01 + 1.44543977e+08 8.22716007e-01 + 1.47910839e+08 8.22716007e-01 + 1.51356125e+08 8.22716007e-01 + 1.54881662e+08 8.22716007e-01 + 1.58489319e+08 8.22716007e-01 + 1.62181010e+08 8.22716007e-01 + 1.65958691e+08 8.22716007e-01 + 1.69824365e+08 8.22716007e-01 + 1.73780083e+08 8.22716007e-01 + 1.77827941e+08 8.22716007e-01 + 1.81970086e+08 8.22716007e-01 + 1.86208714e+08 8.22716007e-01 + 1.90546072e+08 8.22716007e-01 + 1.94984460e+08 8.22716007e-01 + 1.99526231e+08 8.22716007e-01 + 2.04173794e+08 8.22716007e-01 + 2.08929613e+08 8.22716007e-01 + 2.13796209e+08 8.22716007e-01 + 2.18776162e+08 8.22716007e-01 + 2.23872114e+08 8.22716007e-01 + 2.29086765e+08 8.22716007e-01 + 2.34422882e+08 8.22716007e-01 + 2.39883292e+08 8.22716007e-01 + 2.45470892e+08 8.22716007e-01 + 2.51188643e+08 8.22716007e-01 + 2.57039578e+08 8.22716007e-01 + 2.63026799e+08 8.22716007e-01 + 2.69153480e+08 8.22716007e-01 + 2.75422870e+08 8.22716007e-01 + 2.81838293e+08 8.22716007e-01 + 2.88403150e+08 8.22716007e-01 + 2.95120923e+08 8.22716007e-01 + 3.01995172e+08 8.22716007e-01 + 3.09029543e+08 8.22716007e-01 + 3.16227766e+08 8.22716007e-01 + 3.23593657e+08 8.22716007e-01 + 3.31131121e+08 8.22716007e-01 + 3.38844156e+08 8.22716007e-01 + 3.46736850e+08 8.22716007e-01 + 3.54813389e+08 8.22716007e-01 + 3.63078055e+08 8.22716007e-01 + 3.71535229e+08 8.22716007e-01 + 3.80189396e+08 8.22716007e-01 + 3.89045145e+08 8.22716007e-01 + 3.98107171e+08 8.22716007e-01 + 4.07380278e+08 8.22716007e-01 + 4.16869383e+08 8.22716007e-01 + 4.26579519e+08 8.22716007e-01 + 4.36515832e+08 8.22716007e-01 + 4.46683592e+08 8.22716007e-01 + 4.57088190e+08 8.22716007e-01 + 4.67735141e+08 8.22716007e-01 + 4.78630092e+08 8.22716007e-01 + 4.89778819e+08 8.22716007e-01 + 5.01187234e+08 8.22716007e-01 + 5.12861384e+08 8.22716007e-01 + 5.24807460e+08 8.22716007e-01 + 5.37031796e+08 8.22716007e-01 + 5.49540874e+08 8.22716007e-01 + 5.62341325e+08 8.22716007e-01 + 5.75439937e+08 8.22716007e-01 + 5.88843655e+08 8.22716007e-01 + 6.02559586e+08 8.22716007e-01 + 6.16595002e+08 8.22716007e-01 + 6.30957344e+08 8.22716007e-01 + 6.45654229e+08 8.22716007e-01 + 6.60693448e+08 8.22716007e-01 + 6.76082975e+08 8.22716007e-01 + 6.91830971e+08 8.22716007e-01 + 7.07945784e+08 8.22716007e-01 + 7.24435960e+08 8.22716007e-01 + 7.41310241e+08 8.22716007e-01 + 7.58577575e+08 8.22716007e-01 + 7.76247117e+08 8.22716007e-01 + 7.94328235e+08 8.22716007e-01 + 8.12830516e+08 8.22716007e-01 + 8.31763771e+08 8.22716007e-01 + 8.51138038e+08 8.22716007e-01 + 8.70963590e+08 8.22716007e-01 + 8.91250938e+08 8.22716007e-01 + 9.12010839e+08 8.22716007e-01 + 9.33254301e+08 8.22716007e-01 + 9.54992586e+08 8.22716007e-01 + 9.77237221e+08 8.22716007e-01 + 1.00000000e+09 8.22716007e-01 + 1.02329299e+09 8.22716007e-01 + 1.04712855e+09 8.22716007e-01 + 1.07151931e+09 8.22716007e-01 + 1.09647820e+09 8.22716007e-01 + 1.12201845e+09 8.22716007e-01 + 1.14815362e+09 8.22716007e-01 + 1.17489755e+09 8.22716007e-01 + 1.20226443e+09 8.22716007e-01 + 1.23026877e+09 8.22716007e-01 + 1.25892541e+09 8.22716007e-01 + 1.28824955e+09 8.22716007e-01 + 1.31825674e+09 8.22716007e-01 + 1.34896288e+09 8.22716007e-01 + 1.38038426e+09 8.22716007e-01 + 1.41253754e+09 8.22716007e-01 + 1.44543977e+09 8.22716007e-01 + 1.47910839e+09 8.22716007e-01 + 1.51356125e+09 8.22716007e-01 + 1.54881662e+09 8.22716007e-01 + 1.58489319e+09 8.22716007e-01 + 1.62181010e+09 8.22716007e-01 + 1.65958691e+09 8.22716007e-01 + 1.69824365e+09 8.22716007e-01 + 1.73780083e+09 8.22716007e-01 + 1.77827941e+09 8.22716007e-01 + 1.81970086e+09 8.22716007e-01 + 1.86208714e+09 8.22716007e-01 + 1.90546072e+09 8.22716007e-01 + 1.94984460e+09 8.22716007e-01 + 1.99526231e+09 8.22716007e-01 + 2.04173794e+09 8.22716007e-01 + 2.08929613e+09 8.22716007e-01 + 2.13796209e+09 8.22716007e-01 + 2.18776162e+09 8.22716007e-01 + 2.23872114e+09 8.22716007e-01 + 2.29086765e+09 8.22716007e-01 + 2.34422882e+09 8.22716007e-01 + 2.39883292e+09 8.22716007e-01 + 2.45470892e+09 8.22716007e-01 + 2.51188643e+09 8.22716007e-01 + 2.57039578e+09 8.22716007e-01 + 2.63026799e+09 8.22716007e-01 + 2.69153480e+09 8.22716007e-01 + 2.75422870e+09 8.22716007e-01 + 2.81838293e+09 8.22716007e-01 + 2.88403150e+09 8.22716007e-01 + 2.95120923e+09 8.22716007e-01 + 3.01995172e+09 8.22716007e-01 + 3.09029543e+09 8.22716007e-01 + 3.16227766e+09 8.22716007e-01 + 3.23593657e+09 8.22716007e-01 + 3.31131121e+09 8.22716007e-01 + 3.38844156e+09 8.22716007e-01 + 3.46736850e+09 8.22716007e-01 + 3.54813389e+09 8.22716007e-01 + 3.63078055e+09 8.22716007e-01 + 3.71535229e+09 8.22716007e-01 + 3.80189396e+09 8.22716007e-01 + 3.89045145e+09 8.22716007e-01 + 3.98107171e+09 8.22716007e-01 + 4.07380278e+09 8.22716007e-01 + 4.16869383e+09 8.22716007e-01 + 4.26579519e+09 8.22716007e-01 + 4.36515832e+09 8.22716007e-01 + 4.46683592e+09 8.22716007e-01 + 4.57088190e+09 8.22716007e-01 + 4.67735141e+09 8.22716007e-01 + 4.78630092e+09 8.22716007e-01 + 4.89778819e+09 8.22716007e-01 + 5.01187234e+09 8.22716007e-01 + 5.12861384e+09 8.22716007e-01 + 5.24807460e+09 8.22716007e-01 + 5.37031796e+09 8.22716007e-01 + 5.49540874e+09 8.22716007e-01 + 5.62341325e+09 8.22716007e-01 + 5.75439937e+09 8.22716007e-01 + 5.88843655e+09 8.22716007e-01 + 6.02559586e+09 8.22716007e-01 + 6.16595002e+09 8.22716007e-01 + 6.30957344e+09 8.22716007e-01 + 6.45654229e+09 8.22716007e-01 + 6.60693448e+09 8.22716007e-01 + 6.76082975e+09 8.22716007e-01 + 6.91830971e+09 8.22716007e-01 + 7.07945784e+09 8.22716007e-01 + 7.24435960e+09 8.22716007e-01 + 7.41310241e+09 8.22716007e-01 + 7.58577575e+09 8.22716007e-01 + 7.76247117e+09 8.22716007e-01 + 7.94328235e+09 8.22716007e-01 + 8.12830516e+09 8.22716007e-01 + 8.31763771e+09 8.22716007e-01 + 8.51138038e+09 8.22716007e-01 + 8.70963590e+09 8.22716007e-01 + 8.91250938e+09 8.22716007e-01 + 9.12010839e+09 8.22716007e-01 + 9.33254301e+09 8.22716007e-01 + 9.54992586e+09 8.22716007e-01 + 9.77237221e+09 8.22716007e-01 + 1.00000000e+10 8.22716007e-01 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/result_power.txt b/openfasoc/generators/gdsfactory-gen/test_output/result_power.txt new file mode 100644 index 000000000..1bd86600d --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/result_power.txt @@ -0,0 +1,701 @@ + 1.00000000e+03 1.93384800e-05 + 1.02329299e+03 1.93384800e-05 + 1.04712855e+03 1.93384800e-05 + 1.07151931e+03 1.93384800e-05 + 1.09647820e+03 1.93384800e-05 + 1.12201845e+03 1.93384800e-05 + 1.14815362e+03 1.93384800e-05 + 1.17489755e+03 1.93384800e-05 + 1.20226443e+03 1.93384800e-05 + 1.23026877e+03 1.93384800e-05 + 1.25892541e+03 1.93384800e-05 + 1.28824955e+03 1.93384800e-05 + 1.31825674e+03 1.93384800e-05 + 1.34896288e+03 1.93384800e-05 + 1.38038426e+03 1.93384800e-05 + 1.41253754e+03 1.93384800e-05 + 1.44543977e+03 1.93384800e-05 + 1.47910839e+03 1.93384800e-05 + 1.51356125e+03 1.93384800e-05 + 1.54881662e+03 1.93384800e-05 + 1.58489319e+03 1.93384800e-05 + 1.62181010e+03 1.93384800e-05 + 1.65958691e+03 1.93384800e-05 + 1.69824365e+03 1.93384800e-05 + 1.73780083e+03 1.93384800e-05 + 1.77827941e+03 1.93384800e-05 + 1.81970086e+03 1.93384800e-05 + 1.86208714e+03 1.93384800e-05 + 1.90546072e+03 1.93384800e-05 + 1.94984460e+03 1.93384800e-05 + 1.99526231e+03 1.93384800e-05 + 2.04173794e+03 1.93384800e-05 + 2.08929613e+03 1.93384800e-05 + 2.13796209e+03 1.93384800e-05 + 2.18776162e+03 1.93384800e-05 + 2.23872114e+03 1.93384800e-05 + 2.29086765e+03 1.93384800e-05 + 2.34422882e+03 1.93384800e-05 + 2.39883292e+03 1.93384800e-05 + 2.45470892e+03 1.93384800e-05 + 2.51188643e+03 1.93384800e-05 + 2.57039578e+03 1.93384800e-05 + 2.63026799e+03 1.93384800e-05 + 2.69153480e+03 1.93384800e-05 + 2.75422870e+03 1.93384800e-05 + 2.81838293e+03 1.93384800e-05 + 2.88403150e+03 1.93384800e-05 + 2.95120923e+03 1.93384800e-05 + 3.01995172e+03 1.93384800e-05 + 3.09029543e+03 1.93384800e-05 + 3.16227766e+03 1.93384800e-05 + 3.23593657e+03 1.93384800e-05 + 3.31131121e+03 1.93384800e-05 + 3.38844156e+03 1.93384800e-05 + 3.46736850e+03 1.93384800e-05 + 3.54813389e+03 1.93384800e-05 + 3.63078055e+03 1.93384800e-05 + 3.71535229e+03 1.93384800e-05 + 3.80189396e+03 1.93384800e-05 + 3.89045145e+03 1.93384800e-05 + 3.98107171e+03 1.93384800e-05 + 4.07380278e+03 1.93384800e-05 + 4.16869383e+03 1.93384800e-05 + 4.26579519e+03 1.93384800e-05 + 4.36515832e+03 1.93384800e-05 + 4.46683592e+03 1.93384800e-05 + 4.57088190e+03 1.93384800e-05 + 4.67735141e+03 1.93384800e-05 + 4.78630092e+03 1.93384800e-05 + 4.89778819e+03 1.93384800e-05 + 5.01187234e+03 1.93384800e-05 + 5.12861384e+03 1.93384800e-05 + 5.24807460e+03 1.93384800e-05 + 5.37031796e+03 1.93384800e-05 + 5.49540874e+03 1.93384800e-05 + 5.62341325e+03 1.93384800e-05 + 5.75439937e+03 1.93384800e-05 + 5.88843655e+03 1.93384800e-05 + 6.02559586e+03 1.93384800e-05 + 6.16595002e+03 1.93384800e-05 + 6.30957344e+03 1.93384800e-05 + 6.45654229e+03 1.93384800e-05 + 6.60693448e+03 1.93384800e-05 + 6.76082975e+03 1.93384800e-05 + 6.91830971e+03 1.93384800e-05 + 7.07945784e+03 1.93384800e-05 + 7.24435960e+03 1.93384800e-05 + 7.41310241e+03 1.93384800e-05 + 7.58577575e+03 1.93384800e-05 + 7.76247117e+03 1.93384800e-05 + 7.94328235e+03 1.93384800e-05 + 8.12830516e+03 1.93384800e-05 + 8.31763771e+03 1.93384800e-05 + 8.51138038e+03 1.93384800e-05 + 8.70963590e+03 1.93384800e-05 + 8.91250938e+03 1.93384800e-05 + 9.12010839e+03 1.93384800e-05 + 9.33254301e+03 1.93384800e-05 + 9.54992586e+03 1.93384800e-05 + 9.77237221e+03 1.93384800e-05 + 1.00000000e+04 1.93384800e-05 + 1.02329299e+04 1.93384800e-05 + 1.04712855e+04 1.93384800e-05 + 1.07151931e+04 1.93384800e-05 + 1.09647820e+04 1.93384800e-05 + 1.12201845e+04 1.93384800e-05 + 1.14815362e+04 1.93384800e-05 + 1.17489755e+04 1.93384800e-05 + 1.20226443e+04 1.93384800e-05 + 1.23026877e+04 1.93384800e-05 + 1.25892541e+04 1.93384800e-05 + 1.28824955e+04 1.93384800e-05 + 1.31825674e+04 1.93384800e-05 + 1.34896288e+04 1.93384800e-05 + 1.38038426e+04 1.93384800e-05 + 1.41253754e+04 1.93384800e-05 + 1.44543977e+04 1.93384800e-05 + 1.47910839e+04 1.93384800e-05 + 1.51356125e+04 1.93384800e-05 + 1.54881662e+04 1.93384800e-05 + 1.58489319e+04 1.93384800e-05 + 1.62181010e+04 1.93384800e-05 + 1.65958691e+04 1.93384800e-05 + 1.69824365e+04 1.93384800e-05 + 1.73780083e+04 1.93384800e-05 + 1.77827941e+04 1.93384800e-05 + 1.81970086e+04 1.93384800e-05 + 1.86208714e+04 1.93384800e-05 + 1.90546072e+04 1.93384800e-05 + 1.94984460e+04 1.93384800e-05 + 1.99526231e+04 1.93384800e-05 + 2.04173794e+04 1.93384800e-05 + 2.08929613e+04 1.93384800e-05 + 2.13796209e+04 1.93384800e-05 + 2.18776162e+04 1.93384800e-05 + 2.23872114e+04 1.93384800e-05 + 2.29086765e+04 1.93384800e-05 + 2.34422882e+04 1.93384800e-05 + 2.39883292e+04 1.93384800e-05 + 2.45470892e+04 1.93384800e-05 + 2.51188643e+04 1.93384800e-05 + 2.57039578e+04 1.93384800e-05 + 2.63026799e+04 1.93384800e-05 + 2.69153480e+04 1.93384800e-05 + 2.75422870e+04 1.93384800e-05 + 2.81838293e+04 1.93384800e-05 + 2.88403150e+04 1.93384800e-05 + 2.95120923e+04 1.93384800e-05 + 3.01995172e+04 1.93384800e-05 + 3.09029543e+04 1.93384800e-05 + 3.16227766e+04 1.93384800e-05 + 3.23593657e+04 1.93384800e-05 + 3.31131121e+04 1.93384800e-05 + 3.38844156e+04 1.93384800e-05 + 3.46736850e+04 1.93384800e-05 + 3.54813389e+04 1.93384800e-05 + 3.63078055e+04 1.93384800e-05 + 3.71535229e+04 1.93384800e-05 + 3.80189396e+04 1.93384800e-05 + 3.89045145e+04 1.93384800e-05 + 3.98107171e+04 1.93384800e-05 + 4.07380278e+04 1.93384800e-05 + 4.16869383e+04 1.93384800e-05 + 4.26579519e+04 1.93384800e-05 + 4.36515832e+04 1.93384800e-05 + 4.46683592e+04 1.93384800e-05 + 4.57088190e+04 1.93384800e-05 + 4.67735141e+04 1.93384800e-05 + 4.78630092e+04 1.93384800e-05 + 4.89778819e+04 1.93384800e-05 + 5.01187234e+04 1.93384800e-05 + 5.12861384e+04 1.93384800e-05 + 5.24807460e+04 1.93384800e-05 + 5.37031796e+04 1.93384800e-05 + 5.49540874e+04 1.93384800e-05 + 5.62341325e+04 1.93384800e-05 + 5.75439937e+04 1.93384800e-05 + 5.88843655e+04 1.93384800e-05 + 6.02559586e+04 1.93384800e-05 + 6.16595002e+04 1.93384800e-05 + 6.30957344e+04 1.93384800e-05 + 6.45654229e+04 1.93384800e-05 + 6.60693448e+04 1.93384800e-05 + 6.76082975e+04 1.93384800e-05 + 6.91830971e+04 1.93384800e-05 + 7.07945784e+04 1.93384800e-05 + 7.24435960e+04 1.93384800e-05 + 7.41310241e+04 1.93384800e-05 + 7.58577575e+04 1.93384800e-05 + 7.76247117e+04 1.93384800e-05 + 7.94328235e+04 1.93384800e-05 + 8.12830516e+04 1.93384800e-05 + 8.31763771e+04 1.93384800e-05 + 8.51138038e+04 1.93384800e-05 + 8.70963590e+04 1.93384800e-05 + 8.91250938e+04 1.93384800e-05 + 9.12010839e+04 1.93384800e-05 + 9.33254301e+04 1.93384800e-05 + 9.54992586e+04 1.93384800e-05 + 9.77237221e+04 1.93384800e-05 + 1.00000000e+05 1.93384800e-05 + 1.02329299e+05 1.93384800e-05 + 1.04712855e+05 1.93384800e-05 + 1.07151931e+05 1.93384800e-05 + 1.09647820e+05 1.93384800e-05 + 1.12201845e+05 1.93384800e-05 + 1.14815362e+05 1.93384800e-05 + 1.17489755e+05 1.93384800e-05 + 1.20226443e+05 1.93384800e-05 + 1.23026877e+05 1.93384800e-05 + 1.25892541e+05 1.93384800e-05 + 1.28824955e+05 1.93384800e-05 + 1.31825674e+05 1.93384800e-05 + 1.34896288e+05 1.93384800e-05 + 1.38038426e+05 1.93384800e-05 + 1.41253754e+05 1.93384800e-05 + 1.44543977e+05 1.93384800e-05 + 1.47910839e+05 1.93384800e-05 + 1.51356125e+05 1.93384800e-05 + 1.54881662e+05 1.93384800e-05 + 1.58489319e+05 1.93384800e-05 + 1.62181010e+05 1.93384800e-05 + 1.65958691e+05 1.93384800e-05 + 1.69824365e+05 1.93384800e-05 + 1.73780083e+05 1.93384800e-05 + 1.77827941e+05 1.93384800e-05 + 1.81970086e+05 1.93384800e-05 + 1.86208714e+05 1.93384800e-05 + 1.90546072e+05 1.93384800e-05 + 1.94984460e+05 1.93384800e-05 + 1.99526231e+05 1.93384800e-05 + 2.04173794e+05 1.93384800e-05 + 2.08929613e+05 1.93384800e-05 + 2.13796209e+05 1.93384800e-05 + 2.18776162e+05 1.93384800e-05 + 2.23872114e+05 1.93384800e-05 + 2.29086765e+05 1.93384800e-05 + 2.34422882e+05 1.93384800e-05 + 2.39883292e+05 1.93384800e-05 + 2.45470892e+05 1.93384800e-05 + 2.51188643e+05 1.93384800e-05 + 2.57039578e+05 1.93384800e-05 + 2.63026799e+05 1.93384800e-05 + 2.69153480e+05 1.93384800e-05 + 2.75422870e+05 1.93384800e-05 + 2.81838293e+05 1.93384800e-05 + 2.88403150e+05 1.93384800e-05 + 2.95120923e+05 1.93384800e-05 + 3.01995172e+05 1.93384800e-05 + 3.09029543e+05 1.93384800e-05 + 3.16227766e+05 1.93384800e-05 + 3.23593657e+05 1.93384800e-05 + 3.31131121e+05 1.93384800e-05 + 3.38844156e+05 1.93384800e-05 + 3.46736850e+05 1.93384800e-05 + 3.54813389e+05 1.93384800e-05 + 3.63078055e+05 1.93384800e-05 + 3.71535229e+05 1.93384800e-05 + 3.80189396e+05 1.93384800e-05 + 3.89045145e+05 1.93384800e-05 + 3.98107171e+05 1.93384800e-05 + 4.07380278e+05 1.93384800e-05 + 4.16869383e+05 1.93384800e-05 + 4.26579519e+05 1.93384800e-05 + 4.36515832e+05 1.93384800e-05 + 4.46683592e+05 1.93384800e-05 + 4.57088190e+05 1.93384800e-05 + 4.67735141e+05 1.93384800e-05 + 4.78630092e+05 1.93384800e-05 + 4.89778819e+05 1.93384800e-05 + 5.01187234e+05 1.93384800e-05 + 5.12861384e+05 1.93384800e-05 + 5.24807460e+05 1.93384800e-05 + 5.37031796e+05 1.93384800e-05 + 5.49540874e+05 1.93384800e-05 + 5.62341325e+05 1.93384800e-05 + 5.75439937e+05 1.93384800e-05 + 5.88843655e+05 1.93384800e-05 + 6.02559586e+05 1.93384800e-05 + 6.16595002e+05 1.93384800e-05 + 6.30957344e+05 1.93384800e-05 + 6.45654229e+05 1.93384800e-05 + 6.60693448e+05 1.93384800e-05 + 6.76082975e+05 1.93384800e-05 + 6.91830971e+05 1.93384800e-05 + 7.07945784e+05 1.93384800e-05 + 7.24435960e+05 1.93384800e-05 + 7.41310241e+05 1.93384800e-05 + 7.58577575e+05 1.93384800e-05 + 7.76247117e+05 1.93384800e-05 + 7.94328235e+05 1.93384800e-05 + 8.12830516e+05 1.93384800e-05 + 8.31763771e+05 1.93384800e-05 + 8.51138038e+05 1.93384800e-05 + 8.70963590e+05 1.93384800e-05 + 8.91250938e+05 1.93384800e-05 + 9.12010839e+05 1.93384800e-05 + 9.33254301e+05 1.93384800e-05 + 9.54992586e+05 1.93384800e-05 + 9.77237221e+05 1.93384800e-05 + 1.00000000e+06 1.93384800e-05 + 1.02329299e+06 1.93384800e-05 + 1.04712855e+06 1.93384800e-05 + 1.07151931e+06 1.93384800e-05 + 1.09647820e+06 1.93384800e-05 + 1.12201845e+06 1.93384800e-05 + 1.14815362e+06 1.93384800e-05 + 1.17489755e+06 1.93384800e-05 + 1.20226443e+06 1.93384800e-05 + 1.23026877e+06 1.93384800e-05 + 1.25892541e+06 1.93384800e-05 + 1.28824955e+06 1.93384800e-05 + 1.31825674e+06 1.93384800e-05 + 1.34896288e+06 1.93384800e-05 + 1.38038426e+06 1.93384800e-05 + 1.41253754e+06 1.93384800e-05 + 1.44543977e+06 1.93384800e-05 + 1.47910839e+06 1.93384800e-05 + 1.51356125e+06 1.93384800e-05 + 1.54881662e+06 1.93384800e-05 + 1.58489319e+06 1.93384800e-05 + 1.62181010e+06 1.93384800e-05 + 1.65958691e+06 1.93384800e-05 + 1.69824365e+06 1.93384800e-05 + 1.73780083e+06 1.93384800e-05 + 1.77827941e+06 1.93384800e-05 + 1.81970086e+06 1.93384800e-05 + 1.86208714e+06 1.93384800e-05 + 1.90546072e+06 1.93384800e-05 + 1.94984460e+06 1.93384800e-05 + 1.99526231e+06 1.93384800e-05 + 2.04173794e+06 1.93384800e-05 + 2.08929613e+06 1.93384800e-05 + 2.13796209e+06 1.93384800e-05 + 2.18776162e+06 1.93384800e-05 + 2.23872114e+06 1.93384800e-05 + 2.29086765e+06 1.93384800e-05 + 2.34422882e+06 1.93384800e-05 + 2.39883292e+06 1.93384800e-05 + 2.45470892e+06 1.93384800e-05 + 2.51188643e+06 1.93384800e-05 + 2.57039578e+06 1.93384800e-05 + 2.63026799e+06 1.93384800e-05 + 2.69153480e+06 1.93384800e-05 + 2.75422870e+06 1.93384800e-05 + 2.81838293e+06 1.93384800e-05 + 2.88403150e+06 1.93384800e-05 + 2.95120923e+06 1.93384800e-05 + 3.01995172e+06 1.93384800e-05 + 3.09029543e+06 1.93384800e-05 + 3.16227766e+06 1.93384800e-05 + 3.23593657e+06 1.93384800e-05 + 3.31131121e+06 1.93384800e-05 + 3.38844156e+06 1.93384800e-05 + 3.46736850e+06 1.93384800e-05 + 3.54813389e+06 1.93384800e-05 + 3.63078055e+06 1.93384800e-05 + 3.71535229e+06 1.93384800e-05 + 3.80189396e+06 1.93384800e-05 + 3.89045145e+06 1.93384800e-05 + 3.98107171e+06 1.93384800e-05 + 4.07380278e+06 1.93384800e-05 + 4.16869383e+06 1.93384800e-05 + 4.26579519e+06 1.93384800e-05 + 4.36515832e+06 1.93384800e-05 + 4.46683592e+06 1.93384800e-05 + 4.57088190e+06 1.93384800e-05 + 4.67735141e+06 1.93384800e-05 + 4.78630092e+06 1.93384800e-05 + 4.89778819e+06 1.93384800e-05 + 5.01187234e+06 1.93384800e-05 + 5.12861384e+06 1.93384800e-05 + 5.24807460e+06 1.93384800e-05 + 5.37031796e+06 1.93384800e-05 + 5.49540874e+06 1.93384800e-05 + 5.62341325e+06 1.93384800e-05 + 5.75439937e+06 1.93384800e-05 + 5.88843655e+06 1.93384800e-05 + 6.02559586e+06 1.93384800e-05 + 6.16595002e+06 1.93384800e-05 + 6.30957344e+06 1.93384800e-05 + 6.45654229e+06 1.93384800e-05 + 6.60693448e+06 1.93384800e-05 + 6.76082975e+06 1.93384800e-05 + 6.91830971e+06 1.93384800e-05 + 7.07945784e+06 1.93384800e-05 + 7.24435960e+06 1.93384800e-05 + 7.41310241e+06 1.93384800e-05 + 7.58577575e+06 1.93384800e-05 + 7.76247117e+06 1.93384800e-05 + 7.94328235e+06 1.93384800e-05 + 8.12830516e+06 1.93384800e-05 + 8.31763771e+06 1.93384800e-05 + 8.51138038e+06 1.93384800e-05 + 8.70963590e+06 1.93384800e-05 + 8.91250938e+06 1.93384800e-05 + 9.12010839e+06 1.93384800e-05 + 9.33254301e+06 1.93384800e-05 + 9.54992586e+06 1.93384800e-05 + 9.77237221e+06 1.93384800e-05 + 1.00000000e+07 1.93384800e-05 + 1.02329299e+07 1.93384800e-05 + 1.04712855e+07 1.93384800e-05 + 1.07151931e+07 1.93384800e-05 + 1.09647820e+07 1.93384800e-05 + 1.12201845e+07 1.93384800e-05 + 1.14815362e+07 1.93384800e-05 + 1.17489755e+07 1.93384800e-05 + 1.20226443e+07 1.93384800e-05 + 1.23026877e+07 1.93384800e-05 + 1.25892541e+07 1.93384800e-05 + 1.28824955e+07 1.93384800e-05 + 1.31825674e+07 1.93384800e-05 + 1.34896288e+07 1.93384800e-05 + 1.38038426e+07 1.93384800e-05 + 1.41253754e+07 1.93384800e-05 + 1.44543977e+07 1.93384800e-05 + 1.47910839e+07 1.93384800e-05 + 1.51356125e+07 1.93384800e-05 + 1.54881662e+07 1.93384800e-05 + 1.58489319e+07 1.93384800e-05 + 1.62181010e+07 1.93384800e-05 + 1.65958691e+07 1.93384800e-05 + 1.69824365e+07 1.93384800e-05 + 1.73780083e+07 1.93384800e-05 + 1.77827941e+07 1.93384800e-05 + 1.81970086e+07 1.93384800e-05 + 1.86208714e+07 1.93384800e-05 + 1.90546072e+07 1.93384800e-05 + 1.94984460e+07 1.93384800e-05 + 1.99526231e+07 1.93384800e-05 + 2.04173794e+07 1.93384800e-05 + 2.08929613e+07 1.93384800e-05 + 2.13796209e+07 1.93384800e-05 + 2.18776162e+07 1.93384800e-05 + 2.23872114e+07 1.93384800e-05 + 2.29086765e+07 1.93384800e-05 + 2.34422882e+07 1.93384800e-05 + 2.39883292e+07 1.93384800e-05 + 2.45470892e+07 1.93384800e-05 + 2.51188643e+07 1.93384800e-05 + 2.57039578e+07 1.93384800e-05 + 2.63026799e+07 1.93384800e-05 + 2.69153480e+07 1.93384800e-05 + 2.75422870e+07 1.93384800e-05 + 2.81838293e+07 1.93384800e-05 + 2.88403150e+07 1.93384800e-05 + 2.95120923e+07 1.93384800e-05 + 3.01995172e+07 1.93384800e-05 + 3.09029543e+07 1.93384800e-05 + 3.16227766e+07 1.93384800e-05 + 3.23593657e+07 1.93384800e-05 + 3.31131121e+07 1.93384800e-05 + 3.38844156e+07 1.93384800e-05 + 3.46736850e+07 1.93384800e-05 + 3.54813389e+07 1.93384800e-05 + 3.63078055e+07 1.93384800e-05 + 3.71535229e+07 1.93384800e-05 + 3.80189396e+07 1.93384800e-05 + 3.89045145e+07 1.93384800e-05 + 3.98107171e+07 1.93384800e-05 + 4.07380278e+07 1.93384800e-05 + 4.16869383e+07 1.93384800e-05 + 4.26579519e+07 1.93384800e-05 + 4.36515832e+07 1.93384800e-05 + 4.46683592e+07 1.93384800e-05 + 4.57088190e+07 1.93384800e-05 + 4.67735141e+07 1.93384800e-05 + 4.78630092e+07 1.93384800e-05 + 4.89778819e+07 1.93384800e-05 + 5.01187234e+07 1.93384800e-05 + 5.12861384e+07 1.93384800e-05 + 5.24807460e+07 1.93384800e-05 + 5.37031796e+07 1.93384800e-05 + 5.49540874e+07 1.93384800e-05 + 5.62341325e+07 1.93384800e-05 + 5.75439937e+07 1.93384800e-05 + 5.88843655e+07 1.93384800e-05 + 6.02559586e+07 1.93384800e-05 + 6.16595002e+07 1.93384800e-05 + 6.30957344e+07 1.93384800e-05 + 6.45654229e+07 1.93384800e-05 + 6.60693448e+07 1.93384800e-05 + 6.76082975e+07 1.93384800e-05 + 6.91830971e+07 1.93384800e-05 + 7.07945784e+07 1.93384800e-05 + 7.24435960e+07 1.93384800e-05 + 7.41310241e+07 1.93384800e-05 + 7.58577575e+07 1.93384800e-05 + 7.76247117e+07 1.93384800e-05 + 7.94328235e+07 1.93384800e-05 + 8.12830516e+07 1.93384800e-05 + 8.31763771e+07 1.93384800e-05 + 8.51138038e+07 1.93384800e-05 + 8.70963590e+07 1.93384800e-05 + 8.91250938e+07 1.93384800e-05 + 9.12010839e+07 1.93384800e-05 + 9.33254301e+07 1.93384800e-05 + 9.54992586e+07 1.93384800e-05 + 9.77237221e+07 1.93384800e-05 + 1.00000000e+08 1.93384800e-05 + 1.02329299e+08 1.93384800e-05 + 1.04712855e+08 1.93384800e-05 + 1.07151931e+08 1.93384800e-05 + 1.09647820e+08 1.93384800e-05 + 1.12201845e+08 1.93384800e-05 + 1.14815362e+08 1.93384800e-05 + 1.17489755e+08 1.93384800e-05 + 1.20226443e+08 1.93384800e-05 + 1.23026877e+08 1.93384800e-05 + 1.25892541e+08 1.93384800e-05 + 1.28824955e+08 1.93384800e-05 + 1.31825674e+08 1.93384800e-05 + 1.34896288e+08 1.93384800e-05 + 1.38038426e+08 1.93384800e-05 + 1.41253754e+08 1.93384800e-05 + 1.44543977e+08 1.93384800e-05 + 1.47910839e+08 1.93384800e-05 + 1.51356125e+08 1.93384800e-05 + 1.54881662e+08 1.93384800e-05 + 1.58489319e+08 1.93384800e-05 + 1.62181010e+08 1.93384800e-05 + 1.65958691e+08 1.93384800e-05 + 1.69824365e+08 1.93384800e-05 + 1.73780083e+08 1.93384800e-05 + 1.77827941e+08 1.93384800e-05 + 1.81970086e+08 1.93384800e-05 + 1.86208714e+08 1.93384800e-05 + 1.90546072e+08 1.93384800e-05 + 1.94984460e+08 1.93384800e-05 + 1.99526231e+08 1.93384800e-05 + 2.04173794e+08 1.93384800e-05 + 2.08929613e+08 1.93384800e-05 + 2.13796209e+08 1.93384800e-05 + 2.18776162e+08 1.93384800e-05 + 2.23872114e+08 1.93384800e-05 + 2.29086765e+08 1.93384800e-05 + 2.34422882e+08 1.93384800e-05 + 2.39883292e+08 1.93384800e-05 + 2.45470892e+08 1.93384800e-05 + 2.51188643e+08 1.93384800e-05 + 2.57039578e+08 1.93384800e-05 + 2.63026799e+08 1.93384800e-05 + 2.69153480e+08 1.93384800e-05 + 2.75422870e+08 1.93384800e-05 + 2.81838293e+08 1.93384800e-05 + 2.88403150e+08 1.93384800e-05 + 2.95120923e+08 1.93384800e-05 + 3.01995172e+08 1.93384800e-05 + 3.09029543e+08 1.93384800e-05 + 3.16227766e+08 1.93384800e-05 + 3.23593657e+08 1.93384800e-05 + 3.31131121e+08 1.93384800e-05 + 3.38844156e+08 1.93384800e-05 + 3.46736850e+08 1.93384800e-05 + 3.54813389e+08 1.93384800e-05 + 3.63078055e+08 1.93384800e-05 + 3.71535229e+08 1.93384800e-05 + 3.80189396e+08 1.93384800e-05 + 3.89045145e+08 1.93384800e-05 + 3.98107171e+08 1.93384800e-05 + 4.07380278e+08 1.93384800e-05 + 4.16869383e+08 1.93384800e-05 + 4.26579519e+08 1.93384800e-05 + 4.36515832e+08 1.93384800e-05 + 4.46683592e+08 1.93384800e-05 + 4.57088190e+08 1.93384800e-05 + 4.67735141e+08 1.93384800e-05 + 4.78630092e+08 1.93384800e-05 + 4.89778819e+08 1.93384800e-05 + 5.01187234e+08 1.93384800e-05 + 5.12861384e+08 1.93384800e-05 + 5.24807460e+08 1.93384800e-05 + 5.37031796e+08 1.93384800e-05 + 5.49540874e+08 1.93384800e-05 + 5.62341325e+08 1.93384800e-05 + 5.75439937e+08 1.93384800e-05 + 5.88843655e+08 1.93384800e-05 + 6.02559586e+08 1.93384800e-05 + 6.16595002e+08 1.93384800e-05 + 6.30957344e+08 1.93384800e-05 + 6.45654229e+08 1.93384800e-05 + 6.60693448e+08 1.93384800e-05 + 6.76082975e+08 1.93384800e-05 + 6.91830971e+08 1.93384800e-05 + 7.07945784e+08 1.93384800e-05 + 7.24435960e+08 1.93384800e-05 + 7.41310241e+08 1.93384800e-05 + 7.58577575e+08 1.93384800e-05 + 7.76247117e+08 1.93384800e-05 + 7.94328235e+08 1.93384800e-05 + 8.12830516e+08 1.93384800e-05 + 8.31763771e+08 1.93384800e-05 + 8.51138038e+08 1.93384800e-05 + 8.70963590e+08 1.93384800e-05 + 8.91250938e+08 1.93384800e-05 + 9.12010839e+08 1.93384800e-05 + 9.33254301e+08 1.93384800e-05 + 9.54992586e+08 1.93384800e-05 + 9.77237221e+08 1.93384800e-05 + 1.00000000e+09 1.93384800e-05 + 1.02329299e+09 1.93384800e-05 + 1.04712855e+09 1.93384800e-05 + 1.07151931e+09 1.93384800e-05 + 1.09647820e+09 1.93384800e-05 + 1.12201845e+09 1.93384800e-05 + 1.14815362e+09 1.93384800e-05 + 1.17489755e+09 1.93384800e-05 + 1.20226443e+09 1.93384800e-05 + 1.23026877e+09 1.93384800e-05 + 1.25892541e+09 1.93384800e-05 + 1.28824955e+09 1.93384800e-05 + 1.31825674e+09 1.93384800e-05 + 1.34896288e+09 1.93384800e-05 + 1.38038426e+09 1.93384800e-05 + 1.41253754e+09 1.93384800e-05 + 1.44543977e+09 1.93384800e-05 + 1.47910839e+09 1.93384800e-05 + 1.51356125e+09 1.93384800e-05 + 1.54881662e+09 1.93384800e-05 + 1.58489319e+09 1.93384800e-05 + 1.62181010e+09 1.93384800e-05 + 1.65958691e+09 1.93384800e-05 + 1.69824365e+09 1.93384800e-05 + 1.73780083e+09 1.93384800e-05 + 1.77827941e+09 1.93384800e-05 + 1.81970086e+09 1.93384800e-05 + 1.86208714e+09 1.93384800e-05 + 1.90546072e+09 1.93384800e-05 + 1.94984460e+09 1.93384800e-05 + 1.99526231e+09 1.93384800e-05 + 2.04173794e+09 1.93384800e-05 + 2.08929613e+09 1.93384800e-05 + 2.13796209e+09 1.93384800e-05 + 2.18776162e+09 1.93384800e-05 + 2.23872114e+09 1.93384800e-05 + 2.29086765e+09 1.93384800e-05 + 2.34422882e+09 1.93384800e-05 + 2.39883292e+09 1.93384800e-05 + 2.45470892e+09 1.93384800e-05 + 2.51188643e+09 1.93384800e-05 + 2.57039578e+09 1.93384800e-05 + 2.63026799e+09 1.93384800e-05 + 2.69153480e+09 1.93384800e-05 + 2.75422870e+09 1.93384800e-05 + 2.81838293e+09 1.93384800e-05 + 2.88403150e+09 1.93384800e-05 + 2.95120923e+09 1.93384800e-05 + 3.01995172e+09 1.93384800e-05 + 3.09029543e+09 1.93384800e-05 + 3.16227766e+09 1.93384800e-05 + 3.23593657e+09 1.93384800e-05 + 3.31131121e+09 1.93384800e-05 + 3.38844156e+09 1.93384800e-05 + 3.46736850e+09 1.93384800e-05 + 3.54813389e+09 1.93384800e-05 + 3.63078055e+09 1.93384800e-05 + 3.71535229e+09 1.93384800e-05 + 3.80189396e+09 1.93384800e-05 + 3.89045145e+09 1.93384800e-05 + 3.98107171e+09 1.93384800e-05 + 4.07380278e+09 1.93384800e-05 + 4.16869383e+09 1.93384800e-05 + 4.26579519e+09 1.93384800e-05 + 4.36515832e+09 1.93384800e-05 + 4.46683592e+09 1.93384800e-05 + 4.57088190e+09 1.93384800e-05 + 4.67735141e+09 1.93384800e-05 + 4.78630092e+09 1.93384800e-05 + 4.89778819e+09 1.93384800e-05 + 5.01187234e+09 1.93384800e-05 + 5.12861384e+09 1.93384800e-05 + 5.24807460e+09 1.93384800e-05 + 5.37031796e+09 1.93384800e-05 + 5.49540874e+09 1.93384800e-05 + 5.62341325e+09 1.93384800e-05 + 5.75439937e+09 1.93384800e-05 + 5.88843655e+09 1.93384800e-05 + 6.02559586e+09 1.93384800e-05 + 6.16595002e+09 1.93384800e-05 + 6.30957344e+09 1.93384800e-05 + 6.45654229e+09 1.93384800e-05 + 6.60693448e+09 1.93384800e-05 + 6.76082975e+09 1.93384800e-05 + 6.91830971e+09 1.93384800e-05 + 7.07945784e+09 1.93384800e-05 + 7.24435960e+09 1.93384800e-05 + 7.41310241e+09 1.93384800e-05 + 7.58577575e+09 1.93384800e-05 + 7.76247117e+09 1.93384800e-05 + 7.94328235e+09 1.93384800e-05 + 8.12830516e+09 1.93384800e-05 + 8.31763771e+09 1.93384800e-05 + 8.51138038e+09 1.93384800e-05 + 8.70963590e+09 1.93384800e-05 + 8.91250938e+09 1.93384800e-05 + 9.12010839e+09 1.93384800e-05 + 9.33254301e+09 1.93384800e-05 + 9.54992586e+09 1.93384800e-05 + 9.77237221e+09 1.93384800e-05 + 1.00000000e+10 1.93384800e-05 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc b/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc new file mode 100644 index 000000000..9bb1dbd6c --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc @@ -0,0 +1,86 @@ +puts stdout "Sourcing design .magicrc for technology sky130A ..." + +# Put grid on 0.005 pitch. This is important, as some commands don't +# rescale the grid automatically (such as lef read?). + +set scalefac [tech lambda] +if {[lindex $scalefac 1] < 2} { + scalegrid 1 2 +} + +# drc off +drc euclidean on +# Change this to a fixed number for repeatable behavior with GDS writes +# e.g., "random seed 12345" +catch {random seed} + +# Turn off the scale option on ext2spice or else it conflicts with the +# scale in the model files. +ext2spice scale off + +# Allow override of PDK path from environment variable PDKPATH +if {[catch {set PDKPATH $env(PDKPATH)}]} { + set PDKPATH $env(PDK_ROOT)/sky130A +} + +# loading technology +tech load $PDKPATH/libs.tech/magic/sky130A.tech + +# load device generator +source $PDKPATH/libs.tech/magic/sky130A.tcl + +# load bind keys (optional) +# source $PDKPATH/libs.tech/magic/sky130A-BindKeys + +# set units to lambda grid +snap lambda + +# set sky130 standard power, ground, and substrate names +set VDD VPWR +set GND VGND +set SUB VSUBS + +# Allow override of type of magic library views used, "mag" or "maglef", +# from environment variable MAGTYPE + +if {[catch {set MAGTYPE $env(MAGTYPE)}]} { + set MAGTYPE mag +} + +# add path to reference cells +if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} { + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc_t18 + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_ml_xx_hd + addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_sram_macros +} else { + addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_osu_sc_t18/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/${MAGTYPE} + addpath ${PDKPATH}/libs.ref/sky130_sram_macros/${MAGTYPE} +} + +# add path to GDS cells + +# add path to IP from catalog. This procedure defined in the PDK script. +catch {magic::query_mylib_ip} +# add path to local IP from user design space. Defined in the PDK script. +catch {magic::query_my_projects} diff --git a/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl b/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl new file mode 100644 index 000000000..ede844e37 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl @@ -0,0 +1,419 @@ +#--------------------------------------------------------------- +# Setup file for netgen LVS +# SkyWater sky130A +#--------------------------------------------------------------- +permute default +property default +property parallel none + +# Allow override of default #columns in the output format. +catch {format $env(NETGEN_COLUMNS)} + +#--------------------------------------------------------------- +# For the following, get the cell lists from +# circuit1 and circuit2. +#--------------------------------------------------------------- + +set cells1 [cells list -all -circuit1] +set cells2 [cells list -all -circuit2] + +# NOTE: In accordance with the LVS manager GUI, the schematic is +# always circuit2, so some items like property "par1" only need to +# be specified for circuit2. + +#------------------------------------------- +# Resistors (except metal) +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__res_iso_pw +lappend devices sky130_fd_pr__res_high_po_0p35 +lappend devices sky130_fd_pr__res_high_po_0p69 +lappend devices sky130_fd_pr__res_high_po_1p41 +lappend devices sky130_fd_pr__res_high_po_2p85 +lappend devices sky130_fd_pr__res_high_po_5p73 +lappend devices sky130_fd_pr__res_high_po +lappend devices sky130_fd_pr__res_xhigh_po_0p35 +lappend devices sky130_fd_pr__res_xhigh_po_0p69 +lappend devices sky130_fd_pr__res_xhigh_po_1p41 +lappend devices sky130_fd_pr__res_xhigh_po_2p85 +lappend devices sky130_fd_pr__res_xhigh_po_5p73 +lappend devices sky130_fd_pr__res_xhigh_po +lappend devices sky130_fd_pr__res_generic_nd +lappend devices sky130_fd_pr__res_generic_pd +lappend devices sky130_fd_pr__res_generic_nd__hv +lappend devices sky130_fd_pr__res_generic_pd__hv +lappend devices mrdn_hv mrdp_hv + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + permute "-circuit1 $dev" 1 2 + property "-circuit1 $dev" series enable + property "-circuit1 $dev" series {w critical} + property "-circuit1 $dev" series {l add} + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {l critical} + property "-circuit1 $dev" parallel {w add} + property "-circuit1 $dev" parallel {value par} + property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit1 $dev" delete mult + } + if {[lsearch $cells2 $dev] >= 0} { + permute "-circuit2 $dev" 1 2 + property "-circuit2 $dev" series enable + property "-circuit2 $dev" series {w critical} + property "-circuit2 $dev" series {l add} + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {l critical} + property "-circuit2 $dev" parallel {w add} + property "-circuit2 $dev" parallel {value par} + property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit2 $dev" delete mult + } +} + +#------------------------------------------- +# MRM (metal) resistors and poly resistor +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__res_generic_po +lappend devices sky130_fd_pr__res_generic_l1 +lappend devices sky130_fd_pr__res_generic_m1 +lappend devices sky130_fd_pr__res_generic_m2 +lappend devices sky130_fd_pr__res_generic_m3 +lappend devices sky130_fd_pr__res_generic_m4 +lappend devices sky130_fd_pr__res_generic_m5 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + permute "-circuit1 $dev" end_a end_b + property "-circuit1 $dev" series enable + property "-circuit1 $dev" series {w critical} + property "-circuit1 $dev" series {l add} + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {l critical} + property "-circuit1 $dev" parallel {w add} + property "-circuit1 $dev" parallel {value par} + property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit1 $dev" delete mult + } + if {[lsearch $cells2 $dev] >= 0} { + permute "-circuit2 $dev" end_a end_b + property "-circuit2 $dev" series enable + property "-circuit2 $dev" series {w critical} + property "-circuit2 $dev" series {l add} + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {l critical} + property "-circuit2 $dev" parallel {w add} + property "-circuit2 $dev" parallel {value par} + property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit2 $dev" delete mult + } +} + +#------------------------------------------- +# (MOS) transistors +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__nfet_01v8 +lappend devices sky130_fd_pr__nfet_01v8_lvt +lappend devices sky130_fd_bs_flash__special_sonosfet_star +lappend devices sky130_fd_pr__nfet_g5v0d10v5 +lappend devices sky130_fd_pr__nfet_05v0_nvt +lappend devices sky130_fd_pr__pfet_01v8 +lappend devices sky130_fd_pr__pfet_01v8_lvt +lappend devices sky130_fd_pr__pfet_01v8_mvt +lappend devices sky130_fd_pr__pfet_01v8_hvt +lappend devices sky130_fd_pr__pfet_g5v0d10v5 +lappend devices sky130_fd_pr__special_pfet_pass +lappend devices sky130_fd_pr__special_nfet_pass +lappend devices sky130_fd_pr__special_nfet_latch +lappend devices sky130_fd_pr__cap_var_lvt +lappend devices sky130_fd_pr__cap_var_hvt +lappend devices sky130_fd_pr__cap_var +lappend devices sky130_fd_pr__nfet_20v0_nvt +lappend devices sky130_fd_pr__nfet_20v0 +lappend devices sky130_fd_pr__pfet_20v0 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + permute "-circuit1 $dev" 1 3 + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {l critical} + property "-circuit1 $dev" parallel {w add} + property "-circuit1 $dev" tolerance {w 0.01} {l 0.01} + # Ignore these properties + property "-circuit1 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs + } + if {[lsearch $cells2 $dev] >= 0} { + permute "-circuit2 $dev" 1 3 + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {l critical} + property "-circuit2 $dev" parallel {w add} + property "-circuit2 $dev" tolerance {w 0.01} {l 0.01} + # Ignore these properties + property "-circuit2 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs + } +} + +#------------------------------------------- +# diodes +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__diode_pw2nd_05v5 +lappend devices sky130_fd_pr__diode_pw2nd_05v5_lvt +lappend devices sky130_fd_pr__diode_pw2nd_05v5_nvt +lappend devices sky130_fd_pr__diode_pd2nw_05v5 +lappend devices sky130_fd_pr__diode_pd2nw_05v5_lvt +lappend devices sky130_fd_pr__diode_pd2nw_05v5_hvt +lappend devices sky130_fd_pr__diode_pw2nd_11v0 +lappend devices sky130_fd_pr__diode_pd2nw_11v0 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {area add} + property "-circuit1 $dev" parallel {value add} + property "-circuit1 $dev" tolerance {area 0.02} + # Ignore these properties + property "-circuit1 $dev" delete mult perim + } + if {[lsearch $cells2 $dev] >= 0} { + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {area add} + property "-circuit2 $dev" parallel {value add} + property "-circuit2 $dev" tolerance {area 0.02} + # Ignore these properties + property "-circuit2 $dev" delete mult perim + } +} + +#------------------------------------------- +# capacitors +# MiM capacitors +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__cap_mim_m3_1 +lappend devices sky130_fd_pr__cap_mim_m3_2 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + property "-circuit1 $dev" parallel enable + property "-circuit1 $dev" parallel {area add} + property "-circuit1 $dev" parallel {value add} + property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit1 $dev" delete mult perim mf + } + if {[lsearch $cells2 $dev] >= 0} { + property "-circuit2 $dev" parallel enable + property "-circuit2 $dev" parallel {area add} + property "-circuit2 $dev" parallel {value add} + property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} + # Ignore these properties + property "-circuit2 $dev" delete mult perim mf + } +} + +#------------------------------------------- +# Fixed-layout devices +# bipolar transistors, +# VPP capacitors +#------------------------------------------- + +set devices {} +lappend devices sky130_fd_pr__npn_05v5_W1p00L1p00 +lappend devices sky130_fd_pr__npn_05v5_W1p00L2p00 +lappend devices sky130_fd_pr__pnp_05v5_W0p68L0p68 +lappend devices sky130_fd_pr__pnp_05v5_W3p40L3p40 +lappend devices sky130_fd_pr__npn_05v5 +lappend devices sky130_fd_pr__pnp_05v5 +lappend devices sky130_fd_pr__npn_11v0 + +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield +lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield +lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_polym4_shield +lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield +lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield +lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_li_shield +lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield +lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield +lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield +lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield +lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield +lappend devices sky130_fd_pr__ind_04_01 +lappend devices sky130_fd_pr__ind_04_02 + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + property "-circuit1 $dev" parallel enable + # Ignore these properties + property "-circuit1 $dev" delete mult + } + if {[lsearch $cells2 $dev] >= 0} { + property "-circuit2 $dev" parallel enable + # Ignore these properties + property "-circuit2 $dev" delete mult + } +} + +#--------------------------------------------------------------- +# Schematic cells which are not extractable +#--------------------------------------------------------------- + +set devices {sky130_fd_io__condiode sky130_fd_io__tap_1} + +foreach dev $devices { + if {[lsearch $cells1 $dev] >= 0} { + ignore class "-circuit1 $dev" + } + if {[lsearch $cells2 $dev] >= 0} { + ignore class "-circuit2 $dev" + } +} + +#--------------------------------------------------------------- +# Digital cells (ignore decap, fill, and tap cells) +# Make a separate list for each supported library +#--------------------------------------------------------------- +# e.g., ignore class "-circuit2 sky130_fc_sc_hd__decap_3" +#--------------------------------------------------------------- + +if { [info exist ::env(MAGIC_EXT_USE_GDS)] && $::env(MAGIC_EXT_USE_GDS) } { + foreach cell $cells1 { +# if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { +# ignore class "-circuit1 $cell" +# } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + ignore class "-circuit1 $cell" + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + ignore class "-circuit1 $cell" + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + ignore class "-circuit1 $cell" + } + } + foreach cell $cells2 { +# if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { +# ignore class "-circuit2 $cell" +# } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + ignore class "-circuit2 $cell" + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + ignore class "-circuit2 $cell" + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + ignore class "-circuit2 $cell" + } + } +} + +#--------------------------------------------------------------- +# Allow the fill, decap, etc., cells to be parallelized +#--------------------------------------------------------------- + +foreach cell $cells1 { + if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__diode_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_diode_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + property "-circuit1 $cell" parallel enable + } +} +foreach cell $cells2 { + if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__diode_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_fd_sc_[^_]+__fill_diode_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } + if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { + property "-circuit2 $cell" parallel enable + } +} + +#--------------------------------------------------------------- +# Handle cells captured from Electric +# +# Find cells of the form "__" in the netlist +# from Electric where the extracted layout netlist has only +# "". Cross-check by ensuring that the full name +# "__" does not exist in both cells, and that +# the truncated name "" does not exist in both cells. +#--------------------------------------------------------------- +# e.g., hydra_spi_controller__hydra_spi_controller +#--------------------------------------------------------------- + +foreach cell $cells1 { + if {[regexp "(.+)__(.+)" $cell match library cellname]} { + if {([lsearch $cells2 $cell] < 0) && \ + ([lsearch $cells2 $cellname] >= 0) && \ + ([lsearch $cells1 $cellname] < 0)} { + equate classes "-circuit1 $cell" "-circuit2 $cellname" + puts stdout "Matching pins of $cell in circuit 1 and $cellname in circuit 2" + equate pins "-circuit1 $cell" "-circuit2 $cellname" + } + } +} + +foreach cell $cells2 { + if {[regexp "(.+)__(.+)" $cell match library cellname]} { + if {([lsearch $cells1 $cell] < 0) && \ + ([lsearch $cells1 $cellname] >= 0) && \ + ([lsearch $cells2 $cellname] < 0)} { + equate classes "-circuit1 $cellname" "-circuit2 $cell" + puts stdout "Matching pins of $cellname in circuit 1 and $cell in circuit 2" + equate pins "-circuit1 $cellname" "-circuit2 $cell" + } + } +} + +# Match pins on black-box cells if LVS is called with "-blackbox" +if {[model blackbox]} { + foreach cell $cells1 { + if {[model "-circuit1 $cell"] == "blackbox"} { + if {[lsearch $cells2 $cell] >= 0} { + puts stdout "Matching pins of $cell in circuits 1 and 2" + equate pins "-circuit1 $cell" "-circuit2 $cell" + } + } + } +} + +#--------------------------------------------------------------- diff --git a/openfasoc/generators/gdsfactory-gen/training_params.npy b/openfasoc/generators/gdsfactory-gen/training_params.npy new file mode 100644 index 0000000000000000000000000000000000000000..0df9b86b9b6daf1d02b77107f2bf7c31efc1a177 GIT binary patch literal 1280 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItqpsnmP)#3giMV1~8CtfY2Z8A+!LL4-;pA^3lc7)pJ1A$v|nCyaJRD zlh=UqVKmHqn0lDKFh07yF!ku-=;~qik?S6qJp=6?m_K0t8!YaDg^vhYe51z;OdYy7 h%s()3m_NylFPM3Q#XT^8543w=;W}8t2j(6I2LODa5WQ$^FWVlk^A5fy4`!@1oNUJ&HYqi%@{K(q zeK7gjX~v6k{4Y50ZMveSn0m)9w(c8$;@Y=F>)+;)Byeuh1&41sPrvQ^@NTcwqeUO$ zLx{JZL&=b1ip@obh?CsU7o^{@lP_cc#kq!f` Date: Thu, 27 Jul 2023 23:46:00 -0400 Subject: [PATCH 35/64] Add test mode, test mode output directory for local testing --- .../gdsfactory-gen/test_output/extract.bash | 50 -- .../gdsfactory-gen/test_output/opamp.gds | Bin 856758 -> 0 bytes .../test_output/opamp_perf_eval.sp | 109 --- .../test_output/opamp_pex.spice | 46 -- .../gdsfactory-gen/test_output/result_ac.txt | 1 - .../test_output/result_noise.txt | 701 ------------------ .../test_output/result_power.txt | 701 ------------------ .../test_output/sky130A/sky130A.magicrc | 86 --- .../test_output/sky130A/sky130A_setup.tcl | 419 ----------- 9 files changed, 2113 deletions(-) delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/extract.bash delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/opamp.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/result_power.txt delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc delete mode 100644 openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl diff --git a/openfasoc/generators/gdsfactory-gen/test_output/extract.bash b/openfasoc/generators/gdsfactory-gen/test_output/extract.bash deleted file mode 100644 index ff277d5b4..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/extract.bash +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -#export PDK_ROOT=/usr/local/share/pdk/ -# export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ -export PDK_ROOT = /home/rw/work/open_pdks/sky130 - -# args: -# first arg = gds file to read -# second arg = name of top cell in gds file to read - -# generate lvs netlist using magic -magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF -gds read $1 -load $2 -flatten $2_flat -load $2_flat -gds write $2_flat.gds -EOF - -magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF -gds read $2_flat.gds -load $2_flat -flatten $2 -load $2 -gds write $2.gds -EOF - - -magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF -gds read $2.gds -load $2 -extract all -ext2spice lvs -ext2spice merge aggressive -ext2spice cthresh 0 -ext2spice rthresh 0 -ext2spice -o $2_pex.spice -exit -EOF - -magic -rcfile ./sky130A/sky130A.magicrc -noconsole -dnull << EOF -gds read $2.gds -load $2 -extract all -ext2spice merge aggressive -ext2spice -o $2_pex.spice -exit -EOF - -rm -f $2_flat.gds -rm -f $2.ext diff --git a/openfasoc/generators/gdsfactory-gen/test_output/opamp.gds b/openfasoc/generators/gdsfactory-gen/test_output/opamp.gds deleted file mode 100644 index 4f7af73223751b2bbe7626a85a7075850954d5fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856758 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
y2|NpX^>+{d`_4WMVWoG2b8!UhS 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 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp deleted file mode 100644 index 89eb1bd2b..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/opamp_perf_eval.sp +++ /dev/null @@ -1,109 +0,0 @@ -* opamp_perf_eval.sp -** OpenFASOC Team, Ryan Wans 2023 - -** Define global parameters for altering -.param b1 = 0.8 -.param b2 = 0.75 - -** Define netlist -Vsupply VDD GND 1.8 -.save i(vsupply) -V2 vin net1 AC 0.5 -.save i(v2) -V3 vip net1 AC -0.5 -.save i(v3) -Vbias2 bias2 GND {b2} -.save i(vbias2) -Vbias1 bias1 GND {b1} -.save i(vbias1) -Vindc net1 GND 1 -.save i(vindc) - -** Import SKY130 libs (this should be replaced with a path relative to some env variable) -** .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt -** .include /usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice - -.lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt -.include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice - -** .lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt -** .include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice - -** Import opamp subcircuit -.include opamp_pex.spice -XDUT vin vip bias1 bias2 vo VDD GND opamp -* parameter sweep -** Run initial analysis -.save all -.options savecurrents -.ac dec 100 1k 10G -.control -** Set initial values -set filetype = ascii -set appendwrite = 1 -let maxUGB = -1 -let maxBv1 = -1 -let maxBv2 = -1 -let savedPhaseMargin = -1 -let savedDCGain = -1 -** Tune these -let biasVoltageMin = 0.4 -let biasVoltageMax = 1.6 -let biasVoltageStep = 0.05 -let biasVoltage1 = biasVoltageMin -let biasVoltage2 = biasVoltageMin -** Sweep bias voltages -while biasVoltage1 le biasVoltageMax - ** Alter parameters and reset top-level ckt - alterparam b1 = $&biasVoltage1 - reset - while biasVoltage2 le biasVoltageMax - alterparam b2 = $&biasVoltage2 - reset - ** Run analysis - run - ** Find unity-gain bw point - meas ac ugb_f when vdb(vo)=0 - ** Measure phase margin - let phase = (180/PI)*vp(vo) - meas ac pm find phase when vdb(vo)=0 - ** Measure DC(ish) gain - meas ac dcg find vdb(vo) at=1k - ** Find local maxima - if ( ugb_f ge maxUGB ) - let maxUGB = ugb_f - let maxBv1 = biasVoltage1 - let maxBv2 = biasVoltage2 - let savedPhaseMargin = pm % 360 - let savedDCGain = dcg - end - let biasVoltage2 = biasVoltage2 + biasVoltageStep - end - ** Reset counter for bv2 loop - let biasVoltage2 = biasVoltageMin - let biasVoltage1 = biasVoltage1 + biasVoltageStep -end -** Export global maxima -wrdata result_ac.txt maxUGB maxBv1 maxBv2 savedPhaseMargin savedDCGain - -** Export power usage of opamp w/ best gain -alterparam b1 = $&maxBv1 -alterparam b2 = $&maxBv2 -reset -run -meas ac maxDraw max i(vsupply) -let maxPower = maxDraw * 1.8 -wrdata result_power.txt maxPower - -** Run noise analysis on opamp w/ best gain -reset -noise V(vo) v2 dec 100 1k 10G -setplot previous -let integ = integ(onoise_spectrum) -let totalNoise = sqrt(integ[length(integ)-1]) -wrdata result_noise.txt totalNoise - -.endc -.GLOBAL GND -.GLOBAL VDD -.end diff --git a/openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice b/openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice deleted file mode 100644 index 81f9ee753..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/opamp_pex.spice +++ /dev/null @@ -1,46 +0,0 @@ -* SPICE3 file created from opamp.ext - technology: sky130A - -.subckt opamp minus plus vbias1 vbias2 output vdd gnd -X0 output vbias2 gnd gnd sky130_fd_pr__nfet_01v8 ad=4.752e+13p pd=3.0384e+08u as=7.038e+13p ps=4.1946e+08u w=6e+06u l=2e+06u M=48 -X1 a_n1959_6502# a_n2329_8404# a_n6654_6298# vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=12 -X2 output a_n6654_6298# vdd vdd sky130_fd_pr__pfet_01v8 ad=6.93e+13p pd=4.398e+08u as=1.0404e+14p ps=6.3048e+08u w=7e+06u l=1e+06u M=60 -X3 a_n1205_n495# a_n899_n3133# gnd gnd sky130_fd_pr__nfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=2e+06u M=4 -X4 a_n1205_n495# plus a_n2329_8404# gnd sky130_fd_pr__nfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 -X5 a_n1959_6502# a_n2329_8404# vdd vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 -X6 a_n2329_8404# a_n2329_8404# a_n2407_8600# vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=12 -X7 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u -X8 a_n2407_8600# a_n2329_8404# vdd vdd sky130_fd_pr__pfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 -X9 a_n1205_n495# minus a_n6654_6298# gnd sky130_fd_pr__nfet_01v8 ad=0p pd=0u as=0p ps=0u w=6e+06u l=1e+06u M=8 -X10 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u -X11 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u -X12 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u -X13 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u -X14 output a_n1959_6502# sky130_fd_pr__cap_mim_m3_1 l=1.2e+07u w=1.2e+07u -C0 output vdd 38.75fF -C1 output vbias2 17.81fF -C2 a_n1205_n495# a_n6654_6298# 5.60fF -C3 output plus 4.17fF -C4 minus plus 7.66fF -C5 a_n1205_n495# a_n2329_8404# 4.87fF -C6 a_n1959_6502# a_n6654_6298# 5.50fF -C7 a_n2407_8600# vdd 6.86fF -C8 a_n1959_6502# vdd 7.49fF -C9 vdd a_n6654_6298# 32.61fF -C10 a_n2407_8600# a_n2329_8404# 9.34fF -C11 a_n1959_6502# a_n2329_8404# 6.18fF -C12 a_n2329_8404# a_n6654_6298# 5.79fF -C13 output a_n1959_6502# 82.18fF -C14 output a_n6654_6298# 9.49fF -C15 minus a_n6654_6298# 3.95fF -C16 vdd a_n2329_8404# 18.76fF -C17 vbias2 gnd 64.53fF -C18 plus gnd 7.74fF -C19 minus gnd 8.61fF -C20 output gnd 63.97fF -C21 vdd gnd 303.27fF - - - - - -.ends diff --git a/openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt b/openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt deleted file mode 100644 index ecacbec06..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/result_ac.txt +++ /dev/null @@ -1 +0,0 @@ - 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 1.00000000e+00 -1.00000000e+00 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt b/openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt deleted file mode 100644 index f85483187..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/result_noise.txt +++ /dev/null @@ -1,701 +0,0 @@ - 1.00000000e+03 8.22716007e-01 - 1.02329299e+03 8.22716007e-01 - 1.04712855e+03 8.22716007e-01 - 1.07151931e+03 8.22716007e-01 - 1.09647820e+03 8.22716007e-01 - 1.12201845e+03 8.22716007e-01 - 1.14815362e+03 8.22716007e-01 - 1.17489755e+03 8.22716007e-01 - 1.20226443e+03 8.22716007e-01 - 1.23026877e+03 8.22716007e-01 - 1.25892541e+03 8.22716007e-01 - 1.28824955e+03 8.22716007e-01 - 1.31825674e+03 8.22716007e-01 - 1.34896288e+03 8.22716007e-01 - 1.38038426e+03 8.22716007e-01 - 1.41253754e+03 8.22716007e-01 - 1.44543977e+03 8.22716007e-01 - 1.47910839e+03 8.22716007e-01 - 1.51356125e+03 8.22716007e-01 - 1.54881662e+03 8.22716007e-01 - 1.58489319e+03 8.22716007e-01 - 1.62181010e+03 8.22716007e-01 - 1.65958691e+03 8.22716007e-01 - 1.69824365e+03 8.22716007e-01 - 1.73780083e+03 8.22716007e-01 - 1.77827941e+03 8.22716007e-01 - 1.81970086e+03 8.22716007e-01 - 1.86208714e+03 8.22716007e-01 - 1.90546072e+03 8.22716007e-01 - 1.94984460e+03 8.22716007e-01 - 1.99526231e+03 8.22716007e-01 - 2.04173794e+03 8.22716007e-01 - 2.08929613e+03 8.22716007e-01 - 2.13796209e+03 8.22716007e-01 - 2.18776162e+03 8.22716007e-01 - 2.23872114e+03 8.22716007e-01 - 2.29086765e+03 8.22716007e-01 - 2.34422882e+03 8.22716007e-01 - 2.39883292e+03 8.22716007e-01 - 2.45470892e+03 8.22716007e-01 - 2.51188643e+03 8.22716007e-01 - 2.57039578e+03 8.22716007e-01 - 2.63026799e+03 8.22716007e-01 - 2.69153480e+03 8.22716007e-01 - 2.75422870e+03 8.22716007e-01 - 2.81838293e+03 8.22716007e-01 - 2.88403150e+03 8.22716007e-01 - 2.95120923e+03 8.22716007e-01 - 3.01995172e+03 8.22716007e-01 - 3.09029543e+03 8.22716007e-01 - 3.16227766e+03 8.22716007e-01 - 3.23593657e+03 8.22716007e-01 - 3.31131121e+03 8.22716007e-01 - 3.38844156e+03 8.22716007e-01 - 3.46736850e+03 8.22716007e-01 - 3.54813389e+03 8.22716007e-01 - 3.63078055e+03 8.22716007e-01 - 3.71535229e+03 8.22716007e-01 - 3.80189396e+03 8.22716007e-01 - 3.89045145e+03 8.22716007e-01 - 3.98107171e+03 8.22716007e-01 - 4.07380278e+03 8.22716007e-01 - 4.16869383e+03 8.22716007e-01 - 4.26579519e+03 8.22716007e-01 - 4.36515832e+03 8.22716007e-01 - 4.46683592e+03 8.22716007e-01 - 4.57088190e+03 8.22716007e-01 - 4.67735141e+03 8.22716007e-01 - 4.78630092e+03 8.22716007e-01 - 4.89778819e+03 8.22716007e-01 - 5.01187234e+03 8.22716007e-01 - 5.12861384e+03 8.22716007e-01 - 5.24807460e+03 8.22716007e-01 - 5.37031796e+03 8.22716007e-01 - 5.49540874e+03 8.22716007e-01 - 5.62341325e+03 8.22716007e-01 - 5.75439937e+03 8.22716007e-01 - 5.88843655e+03 8.22716007e-01 - 6.02559586e+03 8.22716007e-01 - 6.16595002e+03 8.22716007e-01 - 6.30957344e+03 8.22716007e-01 - 6.45654229e+03 8.22716007e-01 - 6.60693448e+03 8.22716007e-01 - 6.76082975e+03 8.22716007e-01 - 6.91830971e+03 8.22716007e-01 - 7.07945784e+03 8.22716007e-01 - 7.24435960e+03 8.22716007e-01 - 7.41310241e+03 8.22716007e-01 - 7.58577575e+03 8.22716007e-01 - 7.76247117e+03 8.22716007e-01 - 7.94328235e+03 8.22716007e-01 - 8.12830516e+03 8.22716007e-01 - 8.31763771e+03 8.22716007e-01 - 8.51138038e+03 8.22716007e-01 - 8.70963590e+03 8.22716007e-01 - 8.91250938e+03 8.22716007e-01 - 9.12010839e+03 8.22716007e-01 - 9.33254301e+03 8.22716007e-01 - 9.54992586e+03 8.22716007e-01 - 9.77237221e+03 8.22716007e-01 - 1.00000000e+04 8.22716007e-01 - 1.02329299e+04 8.22716007e-01 - 1.04712855e+04 8.22716007e-01 - 1.07151931e+04 8.22716007e-01 - 1.09647820e+04 8.22716007e-01 - 1.12201845e+04 8.22716007e-01 - 1.14815362e+04 8.22716007e-01 - 1.17489755e+04 8.22716007e-01 - 1.20226443e+04 8.22716007e-01 - 1.23026877e+04 8.22716007e-01 - 1.25892541e+04 8.22716007e-01 - 1.28824955e+04 8.22716007e-01 - 1.31825674e+04 8.22716007e-01 - 1.34896288e+04 8.22716007e-01 - 1.38038426e+04 8.22716007e-01 - 1.41253754e+04 8.22716007e-01 - 1.44543977e+04 8.22716007e-01 - 1.47910839e+04 8.22716007e-01 - 1.51356125e+04 8.22716007e-01 - 1.54881662e+04 8.22716007e-01 - 1.58489319e+04 8.22716007e-01 - 1.62181010e+04 8.22716007e-01 - 1.65958691e+04 8.22716007e-01 - 1.69824365e+04 8.22716007e-01 - 1.73780083e+04 8.22716007e-01 - 1.77827941e+04 8.22716007e-01 - 1.81970086e+04 8.22716007e-01 - 1.86208714e+04 8.22716007e-01 - 1.90546072e+04 8.22716007e-01 - 1.94984460e+04 8.22716007e-01 - 1.99526231e+04 8.22716007e-01 - 2.04173794e+04 8.22716007e-01 - 2.08929613e+04 8.22716007e-01 - 2.13796209e+04 8.22716007e-01 - 2.18776162e+04 8.22716007e-01 - 2.23872114e+04 8.22716007e-01 - 2.29086765e+04 8.22716007e-01 - 2.34422882e+04 8.22716007e-01 - 2.39883292e+04 8.22716007e-01 - 2.45470892e+04 8.22716007e-01 - 2.51188643e+04 8.22716007e-01 - 2.57039578e+04 8.22716007e-01 - 2.63026799e+04 8.22716007e-01 - 2.69153480e+04 8.22716007e-01 - 2.75422870e+04 8.22716007e-01 - 2.81838293e+04 8.22716007e-01 - 2.88403150e+04 8.22716007e-01 - 2.95120923e+04 8.22716007e-01 - 3.01995172e+04 8.22716007e-01 - 3.09029543e+04 8.22716007e-01 - 3.16227766e+04 8.22716007e-01 - 3.23593657e+04 8.22716007e-01 - 3.31131121e+04 8.22716007e-01 - 3.38844156e+04 8.22716007e-01 - 3.46736850e+04 8.22716007e-01 - 3.54813389e+04 8.22716007e-01 - 3.63078055e+04 8.22716007e-01 - 3.71535229e+04 8.22716007e-01 - 3.80189396e+04 8.22716007e-01 - 3.89045145e+04 8.22716007e-01 - 3.98107171e+04 8.22716007e-01 - 4.07380278e+04 8.22716007e-01 - 4.16869383e+04 8.22716007e-01 - 4.26579519e+04 8.22716007e-01 - 4.36515832e+04 8.22716007e-01 - 4.46683592e+04 8.22716007e-01 - 4.57088190e+04 8.22716007e-01 - 4.67735141e+04 8.22716007e-01 - 4.78630092e+04 8.22716007e-01 - 4.89778819e+04 8.22716007e-01 - 5.01187234e+04 8.22716007e-01 - 5.12861384e+04 8.22716007e-01 - 5.24807460e+04 8.22716007e-01 - 5.37031796e+04 8.22716007e-01 - 5.49540874e+04 8.22716007e-01 - 5.62341325e+04 8.22716007e-01 - 5.75439937e+04 8.22716007e-01 - 5.88843655e+04 8.22716007e-01 - 6.02559586e+04 8.22716007e-01 - 6.16595002e+04 8.22716007e-01 - 6.30957344e+04 8.22716007e-01 - 6.45654229e+04 8.22716007e-01 - 6.60693448e+04 8.22716007e-01 - 6.76082975e+04 8.22716007e-01 - 6.91830971e+04 8.22716007e-01 - 7.07945784e+04 8.22716007e-01 - 7.24435960e+04 8.22716007e-01 - 7.41310241e+04 8.22716007e-01 - 7.58577575e+04 8.22716007e-01 - 7.76247117e+04 8.22716007e-01 - 7.94328235e+04 8.22716007e-01 - 8.12830516e+04 8.22716007e-01 - 8.31763771e+04 8.22716007e-01 - 8.51138038e+04 8.22716007e-01 - 8.70963590e+04 8.22716007e-01 - 8.91250938e+04 8.22716007e-01 - 9.12010839e+04 8.22716007e-01 - 9.33254301e+04 8.22716007e-01 - 9.54992586e+04 8.22716007e-01 - 9.77237221e+04 8.22716007e-01 - 1.00000000e+05 8.22716007e-01 - 1.02329299e+05 8.22716007e-01 - 1.04712855e+05 8.22716007e-01 - 1.07151931e+05 8.22716007e-01 - 1.09647820e+05 8.22716007e-01 - 1.12201845e+05 8.22716007e-01 - 1.14815362e+05 8.22716007e-01 - 1.17489755e+05 8.22716007e-01 - 1.20226443e+05 8.22716007e-01 - 1.23026877e+05 8.22716007e-01 - 1.25892541e+05 8.22716007e-01 - 1.28824955e+05 8.22716007e-01 - 1.31825674e+05 8.22716007e-01 - 1.34896288e+05 8.22716007e-01 - 1.38038426e+05 8.22716007e-01 - 1.41253754e+05 8.22716007e-01 - 1.44543977e+05 8.22716007e-01 - 1.47910839e+05 8.22716007e-01 - 1.51356125e+05 8.22716007e-01 - 1.54881662e+05 8.22716007e-01 - 1.58489319e+05 8.22716007e-01 - 1.62181010e+05 8.22716007e-01 - 1.65958691e+05 8.22716007e-01 - 1.69824365e+05 8.22716007e-01 - 1.73780083e+05 8.22716007e-01 - 1.77827941e+05 8.22716007e-01 - 1.81970086e+05 8.22716007e-01 - 1.86208714e+05 8.22716007e-01 - 1.90546072e+05 8.22716007e-01 - 1.94984460e+05 8.22716007e-01 - 1.99526231e+05 8.22716007e-01 - 2.04173794e+05 8.22716007e-01 - 2.08929613e+05 8.22716007e-01 - 2.13796209e+05 8.22716007e-01 - 2.18776162e+05 8.22716007e-01 - 2.23872114e+05 8.22716007e-01 - 2.29086765e+05 8.22716007e-01 - 2.34422882e+05 8.22716007e-01 - 2.39883292e+05 8.22716007e-01 - 2.45470892e+05 8.22716007e-01 - 2.51188643e+05 8.22716007e-01 - 2.57039578e+05 8.22716007e-01 - 2.63026799e+05 8.22716007e-01 - 2.69153480e+05 8.22716007e-01 - 2.75422870e+05 8.22716007e-01 - 2.81838293e+05 8.22716007e-01 - 2.88403150e+05 8.22716007e-01 - 2.95120923e+05 8.22716007e-01 - 3.01995172e+05 8.22716007e-01 - 3.09029543e+05 8.22716007e-01 - 3.16227766e+05 8.22716007e-01 - 3.23593657e+05 8.22716007e-01 - 3.31131121e+05 8.22716007e-01 - 3.38844156e+05 8.22716007e-01 - 3.46736850e+05 8.22716007e-01 - 3.54813389e+05 8.22716007e-01 - 3.63078055e+05 8.22716007e-01 - 3.71535229e+05 8.22716007e-01 - 3.80189396e+05 8.22716007e-01 - 3.89045145e+05 8.22716007e-01 - 3.98107171e+05 8.22716007e-01 - 4.07380278e+05 8.22716007e-01 - 4.16869383e+05 8.22716007e-01 - 4.26579519e+05 8.22716007e-01 - 4.36515832e+05 8.22716007e-01 - 4.46683592e+05 8.22716007e-01 - 4.57088190e+05 8.22716007e-01 - 4.67735141e+05 8.22716007e-01 - 4.78630092e+05 8.22716007e-01 - 4.89778819e+05 8.22716007e-01 - 5.01187234e+05 8.22716007e-01 - 5.12861384e+05 8.22716007e-01 - 5.24807460e+05 8.22716007e-01 - 5.37031796e+05 8.22716007e-01 - 5.49540874e+05 8.22716007e-01 - 5.62341325e+05 8.22716007e-01 - 5.75439937e+05 8.22716007e-01 - 5.88843655e+05 8.22716007e-01 - 6.02559586e+05 8.22716007e-01 - 6.16595002e+05 8.22716007e-01 - 6.30957344e+05 8.22716007e-01 - 6.45654229e+05 8.22716007e-01 - 6.60693448e+05 8.22716007e-01 - 6.76082975e+05 8.22716007e-01 - 6.91830971e+05 8.22716007e-01 - 7.07945784e+05 8.22716007e-01 - 7.24435960e+05 8.22716007e-01 - 7.41310241e+05 8.22716007e-01 - 7.58577575e+05 8.22716007e-01 - 7.76247117e+05 8.22716007e-01 - 7.94328235e+05 8.22716007e-01 - 8.12830516e+05 8.22716007e-01 - 8.31763771e+05 8.22716007e-01 - 8.51138038e+05 8.22716007e-01 - 8.70963590e+05 8.22716007e-01 - 8.91250938e+05 8.22716007e-01 - 9.12010839e+05 8.22716007e-01 - 9.33254301e+05 8.22716007e-01 - 9.54992586e+05 8.22716007e-01 - 9.77237221e+05 8.22716007e-01 - 1.00000000e+06 8.22716007e-01 - 1.02329299e+06 8.22716007e-01 - 1.04712855e+06 8.22716007e-01 - 1.07151931e+06 8.22716007e-01 - 1.09647820e+06 8.22716007e-01 - 1.12201845e+06 8.22716007e-01 - 1.14815362e+06 8.22716007e-01 - 1.17489755e+06 8.22716007e-01 - 1.20226443e+06 8.22716007e-01 - 1.23026877e+06 8.22716007e-01 - 1.25892541e+06 8.22716007e-01 - 1.28824955e+06 8.22716007e-01 - 1.31825674e+06 8.22716007e-01 - 1.34896288e+06 8.22716007e-01 - 1.38038426e+06 8.22716007e-01 - 1.41253754e+06 8.22716007e-01 - 1.44543977e+06 8.22716007e-01 - 1.47910839e+06 8.22716007e-01 - 1.51356125e+06 8.22716007e-01 - 1.54881662e+06 8.22716007e-01 - 1.58489319e+06 8.22716007e-01 - 1.62181010e+06 8.22716007e-01 - 1.65958691e+06 8.22716007e-01 - 1.69824365e+06 8.22716007e-01 - 1.73780083e+06 8.22716007e-01 - 1.77827941e+06 8.22716007e-01 - 1.81970086e+06 8.22716007e-01 - 1.86208714e+06 8.22716007e-01 - 1.90546072e+06 8.22716007e-01 - 1.94984460e+06 8.22716007e-01 - 1.99526231e+06 8.22716007e-01 - 2.04173794e+06 8.22716007e-01 - 2.08929613e+06 8.22716007e-01 - 2.13796209e+06 8.22716007e-01 - 2.18776162e+06 8.22716007e-01 - 2.23872114e+06 8.22716007e-01 - 2.29086765e+06 8.22716007e-01 - 2.34422882e+06 8.22716007e-01 - 2.39883292e+06 8.22716007e-01 - 2.45470892e+06 8.22716007e-01 - 2.51188643e+06 8.22716007e-01 - 2.57039578e+06 8.22716007e-01 - 2.63026799e+06 8.22716007e-01 - 2.69153480e+06 8.22716007e-01 - 2.75422870e+06 8.22716007e-01 - 2.81838293e+06 8.22716007e-01 - 2.88403150e+06 8.22716007e-01 - 2.95120923e+06 8.22716007e-01 - 3.01995172e+06 8.22716007e-01 - 3.09029543e+06 8.22716007e-01 - 3.16227766e+06 8.22716007e-01 - 3.23593657e+06 8.22716007e-01 - 3.31131121e+06 8.22716007e-01 - 3.38844156e+06 8.22716007e-01 - 3.46736850e+06 8.22716007e-01 - 3.54813389e+06 8.22716007e-01 - 3.63078055e+06 8.22716007e-01 - 3.71535229e+06 8.22716007e-01 - 3.80189396e+06 8.22716007e-01 - 3.89045145e+06 8.22716007e-01 - 3.98107171e+06 8.22716007e-01 - 4.07380278e+06 8.22716007e-01 - 4.16869383e+06 8.22716007e-01 - 4.26579519e+06 8.22716007e-01 - 4.36515832e+06 8.22716007e-01 - 4.46683592e+06 8.22716007e-01 - 4.57088190e+06 8.22716007e-01 - 4.67735141e+06 8.22716007e-01 - 4.78630092e+06 8.22716007e-01 - 4.89778819e+06 8.22716007e-01 - 5.01187234e+06 8.22716007e-01 - 5.12861384e+06 8.22716007e-01 - 5.24807460e+06 8.22716007e-01 - 5.37031796e+06 8.22716007e-01 - 5.49540874e+06 8.22716007e-01 - 5.62341325e+06 8.22716007e-01 - 5.75439937e+06 8.22716007e-01 - 5.88843655e+06 8.22716007e-01 - 6.02559586e+06 8.22716007e-01 - 6.16595002e+06 8.22716007e-01 - 6.30957344e+06 8.22716007e-01 - 6.45654229e+06 8.22716007e-01 - 6.60693448e+06 8.22716007e-01 - 6.76082975e+06 8.22716007e-01 - 6.91830971e+06 8.22716007e-01 - 7.07945784e+06 8.22716007e-01 - 7.24435960e+06 8.22716007e-01 - 7.41310241e+06 8.22716007e-01 - 7.58577575e+06 8.22716007e-01 - 7.76247117e+06 8.22716007e-01 - 7.94328235e+06 8.22716007e-01 - 8.12830516e+06 8.22716007e-01 - 8.31763771e+06 8.22716007e-01 - 8.51138038e+06 8.22716007e-01 - 8.70963590e+06 8.22716007e-01 - 8.91250938e+06 8.22716007e-01 - 9.12010839e+06 8.22716007e-01 - 9.33254301e+06 8.22716007e-01 - 9.54992586e+06 8.22716007e-01 - 9.77237221e+06 8.22716007e-01 - 1.00000000e+07 8.22716007e-01 - 1.02329299e+07 8.22716007e-01 - 1.04712855e+07 8.22716007e-01 - 1.07151931e+07 8.22716007e-01 - 1.09647820e+07 8.22716007e-01 - 1.12201845e+07 8.22716007e-01 - 1.14815362e+07 8.22716007e-01 - 1.17489755e+07 8.22716007e-01 - 1.20226443e+07 8.22716007e-01 - 1.23026877e+07 8.22716007e-01 - 1.25892541e+07 8.22716007e-01 - 1.28824955e+07 8.22716007e-01 - 1.31825674e+07 8.22716007e-01 - 1.34896288e+07 8.22716007e-01 - 1.38038426e+07 8.22716007e-01 - 1.41253754e+07 8.22716007e-01 - 1.44543977e+07 8.22716007e-01 - 1.47910839e+07 8.22716007e-01 - 1.51356125e+07 8.22716007e-01 - 1.54881662e+07 8.22716007e-01 - 1.58489319e+07 8.22716007e-01 - 1.62181010e+07 8.22716007e-01 - 1.65958691e+07 8.22716007e-01 - 1.69824365e+07 8.22716007e-01 - 1.73780083e+07 8.22716007e-01 - 1.77827941e+07 8.22716007e-01 - 1.81970086e+07 8.22716007e-01 - 1.86208714e+07 8.22716007e-01 - 1.90546072e+07 8.22716007e-01 - 1.94984460e+07 8.22716007e-01 - 1.99526231e+07 8.22716007e-01 - 2.04173794e+07 8.22716007e-01 - 2.08929613e+07 8.22716007e-01 - 2.13796209e+07 8.22716007e-01 - 2.18776162e+07 8.22716007e-01 - 2.23872114e+07 8.22716007e-01 - 2.29086765e+07 8.22716007e-01 - 2.34422882e+07 8.22716007e-01 - 2.39883292e+07 8.22716007e-01 - 2.45470892e+07 8.22716007e-01 - 2.51188643e+07 8.22716007e-01 - 2.57039578e+07 8.22716007e-01 - 2.63026799e+07 8.22716007e-01 - 2.69153480e+07 8.22716007e-01 - 2.75422870e+07 8.22716007e-01 - 2.81838293e+07 8.22716007e-01 - 2.88403150e+07 8.22716007e-01 - 2.95120923e+07 8.22716007e-01 - 3.01995172e+07 8.22716007e-01 - 3.09029543e+07 8.22716007e-01 - 3.16227766e+07 8.22716007e-01 - 3.23593657e+07 8.22716007e-01 - 3.31131121e+07 8.22716007e-01 - 3.38844156e+07 8.22716007e-01 - 3.46736850e+07 8.22716007e-01 - 3.54813389e+07 8.22716007e-01 - 3.63078055e+07 8.22716007e-01 - 3.71535229e+07 8.22716007e-01 - 3.80189396e+07 8.22716007e-01 - 3.89045145e+07 8.22716007e-01 - 3.98107171e+07 8.22716007e-01 - 4.07380278e+07 8.22716007e-01 - 4.16869383e+07 8.22716007e-01 - 4.26579519e+07 8.22716007e-01 - 4.36515832e+07 8.22716007e-01 - 4.46683592e+07 8.22716007e-01 - 4.57088190e+07 8.22716007e-01 - 4.67735141e+07 8.22716007e-01 - 4.78630092e+07 8.22716007e-01 - 4.89778819e+07 8.22716007e-01 - 5.01187234e+07 8.22716007e-01 - 5.12861384e+07 8.22716007e-01 - 5.24807460e+07 8.22716007e-01 - 5.37031796e+07 8.22716007e-01 - 5.49540874e+07 8.22716007e-01 - 5.62341325e+07 8.22716007e-01 - 5.75439937e+07 8.22716007e-01 - 5.88843655e+07 8.22716007e-01 - 6.02559586e+07 8.22716007e-01 - 6.16595002e+07 8.22716007e-01 - 6.30957344e+07 8.22716007e-01 - 6.45654229e+07 8.22716007e-01 - 6.60693448e+07 8.22716007e-01 - 6.76082975e+07 8.22716007e-01 - 6.91830971e+07 8.22716007e-01 - 7.07945784e+07 8.22716007e-01 - 7.24435960e+07 8.22716007e-01 - 7.41310241e+07 8.22716007e-01 - 7.58577575e+07 8.22716007e-01 - 7.76247117e+07 8.22716007e-01 - 7.94328235e+07 8.22716007e-01 - 8.12830516e+07 8.22716007e-01 - 8.31763771e+07 8.22716007e-01 - 8.51138038e+07 8.22716007e-01 - 8.70963590e+07 8.22716007e-01 - 8.91250938e+07 8.22716007e-01 - 9.12010839e+07 8.22716007e-01 - 9.33254301e+07 8.22716007e-01 - 9.54992586e+07 8.22716007e-01 - 9.77237221e+07 8.22716007e-01 - 1.00000000e+08 8.22716007e-01 - 1.02329299e+08 8.22716007e-01 - 1.04712855e+08 8.22716007e-01 - 1.07151931e+08 8.22716007e-01 - 1.09647820e+08 8.22716007e-01 - 1.12201845e+08 8.22716007e-01 - 1.14815362e+08 8.22716007e-01 - 1.17489755e+08 8.22716007e-01 - 1.20226443e+08 8.22716007e-01 - 1.23026877e+08 8.22716007e-01 - 1.25892541e+08 8.22716007e-01 - 1.28824955e+08 8.22716007e-01 - 1.31825674e+08 8.22716007e-01 - 1.34896288e+08 8.22716007e-01 - 1.38038426e+08 8.22716007e-01 - 1.41253754e+08 8.22716007e-01 - 1.44543977e+08 8.22716007e-01 - 1.47910839e+08 8.22716007e-01 - 1.51356125e+08 8.22716007e-01 - 1.54881662e+08 8.22716007e-01 - 1.58489319e+08 8.22716007e-01 - 1.62181010e+08 8.22716007e-01 - 1.65958691e+08 8.22716007e-01 - 1.69824365e+08 8.22716007e-01 - 1.73780083e+08 8.22716007e-01 - 1.77827941e+08 8.22716007e-01 - 1.81970086e+08 8.22716007e-01 - 1.86208714e+08 8.22716007e-01 - 1.90546072e+08 8.22716007e-01 - 1.94984460e+08 8.22716007e-01 - 1.99526231e+08 8.22716007e-01 - 2.04173794e+08 8.22716007e-01 - 2.08929613e+08 8.22716007e-01 - 2.13796209e+08 8.22716007e-01 - 2.18776162e+08 8.22716007e-01 - 2.23872114e+08 8.22716007e-01 - 2.29086765e+08 8.22716007e-01 - 2.34422882e+08 8.22716007e-01 - 2.39883292e+08 8.22716007e-01 - 2.45470892e+08 8.22716007e-01 - 2.51188643e+08 8.22716007e-01 - 2.57039578e+08 8.22716007e-01 - 2.63026799e+08 8.22716007e-01 - 2.69153480e+08 8.22716007e-01 - 2.75422870e+08 8.22716007e-01 - 2.81838293e+08 8.22716007e-01 - 2.88403150e+08 8.22716007e-01 - 2.95120923e+08 8.22716007e-01 - 3.01995172e+08 8.22716007e-01 - 3.09029543e+08 8.22716007e-01 - 3.16227766e+08 8.22716007e-01 - 3.23593657e+08 8.22716007e-01 - 3.31131121e+08 8.22716007e-01 - 3.38844156e+08 8.22716007e-01 - 3.46736850e+08 8.22716007e-01 - 3.54813389e+08 8.22716007e-01 - 3.63078055e+08 8.22716007e-01 - 3.71535229e+08 8.22716007e-01 - 3.80189396e+08 8.22716007e-01 - 3.89045145e+08 8.22716007e-01 - 3.98107171e+08 8.22716007e-01 - 4.07380278e+08 8.22716007e-01 - 4.16869383e+08 8.22716007e-01 - 4.26579519e+08 8.22716007e-01 - 4.36515832e+08 8.22716007e-01 - 4.46683592e+08 8.22716007e-01 - 4.57088190e+08 8.22716007e-01 - 4.67735141e+08 8.22716007e-01 - 4.78630092e+08 8.22716007e-01 - 4.89778819e+08 8.22716007e-01 - 5.01187234e+08 8.22716007e-01 - 5.12861384e+08 8.22716007e-01 - 5.24807460e+08 8.22716007e-01 - 5.37031796e+08 8.22716007e-01 - 5.49540874e+08 8.22716007e-01 - 5.62341325e+08 8.22716007e-01 - 5.75439937e+08 8.22716007e-01 - 5.88843655e+08 8.22716007e-01 - 6.02559586e+08 8.22716007e-01 - 6.16595002e+08 8.22716007e-01 - 6.30957344e+08 8.22716007e-01 - 6.45654229e+08 8.22716007e-01 - 6.60693448e+08 8.22716007e-01 - 6.76082975e+08 8.22716007e-01 - 6.91830971e+08 8.22716007e-01 - 7.07945784e+08 8.22716007e-01 - 7.24435960e+08 8.22716007e-01 - 7.41310241e+08 8.22716007e-01 - 7.58577575e+08 8.22716007e-01 - 7.76247117e+08 8.22716007e-01 - 7.94328235e+08 8.22716007e-01 - 8.12830516e+08 8.22716007e-01 - 8.31763771e+08 8.22716007e-01 - 8.51138038e+08 8.22716007e-01 - 8.70963590e+08 8.22716007e-01 - 8.91250938e+08 8.22716007e-01 - 9.12010839e+08 8.22716007e-01 - 9.33254301e+08 8.22716007e-01 - 9.54992586e+08 8.22716007e-01 - 9.77237221e+08 8.22716007e-01 - 1.00000000e+09 8.22716007e-01 - 1.02329299e+09 8.22716007e-01 - 1.04712855e+09 8.22716007e-01 - 1.07151931e+09 8.22716007e-01 - 1.09647820e+09 8.22716007e-01 - 1.12201845e+09 8.22716007e-01 - 1.14815362e+09 8.22716007e-01 - 1.17489755e+09 8.22716007e-01 - 1.20226443e+09 8.22716007e-01 - 1.23026877e+09 8.22716007e-01 - 1.25892541e+09 8.22716007e-01 - 1.28824955e+09 8.22716007e-01 - 1.31825674e+09 8.22716007e-01 - 1.34896288e+09 8.22716007e-01 - 1.38038426e+09 8.22716007e-01 - 1.41253754e+09 8.22716007e-01 - 1.44543977e+09 8.22716007e-01 - 1.47910839e+09 8.22716007e-01 - 1.51356125e+09 8.22716007e-01 - 1.54881662e+09 8.22716007e-01 - 1.58489319e+09 8.22716007e-01 - 1.62181010e+09 8.22716007e-01 - 1.65958691e+09 8.22716007e-01 - 1.69824365e+09 8.22716007e-01 - 1.73780083e+09 8.22716007e-01 - 1.77827941e+09 8.22716007e-01 - 1.81970086e+09 8.22716007e-01 - 1.86208714e+09 8.22716007e-01 - 1.90546072e+09 8.22716007e-01 - 1.94984460e+09 8.22716007e-01 - 1.99526231e+09 8.22716007e-01 - 2.04173794e+09 8.22716007e-01 - 2.08929613e+09 8.22716007e-01 - 2.13796209e+09 8.22716007e-01 - 2.18776162e+09 8.22716007e-01 - 2.23872114e+09 8.22716007e-01 - 2.29086765e+09 8.22716007e-01 - 2.34422882e+09 8.22716007e-01 - 2.39883292e+09 8.22716007e-01 - 2.45470892e+09 8.22716007e-01 - 2.51188643e+09 8.22716007e-01 - 2.57039578e+09 8.22716007e-01 - 2.63026799e+09 8.22716007e-01 - 2.69153480e+09 8.22716007e-01 - 2.75422870e+09 8.22716007e-01 - 2.81838293e+09 8.22716007e-01 - 2.88403150e+09 8.22716007e-01 - 2.95120923e+09 8.22716007e-01 - 3.01995172e+09 8.22716007e-01 - 3.09029543e+09 8.22716007e-01 - 3.16227766e+09 8.22716007e-01 - 3.23593657e+09 8.22716007e-01 - 3.31131121e+09 8.22716007e-01 - 3.38844156e+09 8.22716007e-01 - 3.46736850e+09 8.22716007e-01 - 3.54813389e+09 8.22716007e-01 - 3.63078055e+09 8.22716007e-01 - 3.71535229e+09 8.22716007e-01 - 3.80189396e+09 8.22716007e-01 - 3.89045145e+09 8.22716007e-01 - 3.98107171e+09 8.22716007e-01 - 4.07380278e+09 8.22716007e-01 - 4.16869383e+09 8.22716007e-01 - 4.26579519e+09 8.22716007e-01 - 4.36515832e+09 8.22716007e-01 - 4.46683592e+09 8.22716007e-01 - 4.57088190e+09 8.22716007e-01 - 4.67735141e+09 8.22716007e-01 - 4.78630092e+09 8.22716007e-01 - 4.89778819e+09 8.22716007e-01 - 5.01187234e+09 8.22716007e-01 - 5.12861384e+09 8.22716007e-01 - 5.24807460e+09 8.22716007e-01 - 5.37031796e+09 8.22716007e-01 - 5.49540874e+09 8.22716007e-01 - 5.62341325e+09 8.22716007e-01 - 5.75439937e+09 8.22716007e-01 - 5.88843655e+09 8.22716007e-01 - 6.02559586e+09 8.22716007e-01 - 6.16595002e+09 8.22716007e-01 - 6.30957344e+09 8.22716007e-01 - 6.45654229e+09 8.22716007e-01 - 6.60693448e+09 8.22716007e-01 - 6.76082975e+09 8.22716007e-01 - 6.91830971e+09 8.22716007e-01 - 7.07945784e+09 8.22716007e-01 - 7.24435960e+09 8.22716007e-01 - 7.41310241e+09 8.22716007e-01 - 7.58577575e+09 8.22716007e-01 - 7.76247117e+09 8.22716007e-01 - 7.94328235e+09 8.22716007e-01 - 8.12830516e+09 8.22716007e-01 - 8.31763771e+09 8.22716007e-01 - 8.51138038e+09 8.22716007e-01 - 8.70963590e+09 8.22716007e-01 - 8.91250938e+09 8.22716007e-01 - 9.12010839e+09 8.22716007e-01 - 9.33254301e+09 8.22716007e-01 - 9.54992586e+09 8.22716007e-01 - 9.77237221e+09 8.22716007e-01 - 1.00000000e+10 8.22716007e-01 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/result_power.txt b/openfasoc/generators/gdsfactory-gen/test_output/result_power.txt deleted file mode 100644 index 1bd86600d..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/result_power.txt +++ /dev/null @@ -1,701 +0,0 @@ - 1.00000000e+03 1.93384800e-05 - 1.02329299e+03 1.93384800e-05 - 1.04712855e+03 1.93384800e-05 - 1.07151931e+03 1.93384800e-05 - 1.09647820e+03 1.93384800e-05 - 1.12201845e+03 1.93384800e-05 - 1.14815362e+03 1.93384800e-05 - 1.17489755e+03 1.93384800e-05 - 1.20226443e+03 1.93384800e-05 - 1.23026877e+03 1.93384800e-05 - 1.25892541e+03 1.93384800e-05 - 1.28824955e+03 1.93384800e-05 - 1.31825674e+03 1.93384800e-05 - 1.34896288e+03 1.93384800e-05 - 1.38038426e+03 1.93384800e-05 - 1.41253754e+03 1.93384800e-05 - 1.44543977e+03 1.93384800e-05 - 1.47910839e+03 1.93384800e-05 - 1.51356125e+03 1.93384800e-05 - 1.54881662e+03 1.93384800e-05 - 1.58489319e+03 1.93384800e-05 - 1.62181010e+03 1.93384800e-05 - 1.65958691e+03 1.93384800e-05 - 1.69824365e+03 1.93384800e-05 - 1.73780083e+03 1.93384800e-05 - 1.77827941e+03 1.93384800e-05 - 1.81970086e+03 1.93384800e-05 - 1.86208714e+03 1.93384800e-05 - 1.90546072e+03 1.93384800e-05 - 1.94984460e+03 1.93384800e-05 - 1.99526231e+03 1.93384800e-05 - 2.04173794e+03 1.93384800e-05 - 2.08929613e+03 1.93384800e-05 - 2.13796209e+03 1.93384800e-05 - 2.18776162e+03 1.93384800e-05 - 2.23872114e+03 1.93384800e-05 - 2.29086765e+03 1.93384800e-05 - 2.34422882e+03 1.93384800e-05 - 2.39883292e+03 1.93384800e-05 - 2.45470892e+03 1.93384800e-05 - 2.51188643e+03 1.93384800e-05 - 2.57039578e+03 1.93384800e-05 - 2.63026799e+03 1.93384800e-05 - 2.69153480e+03 1.93384800e-05 - 2.75422870e+03 1.93384800e-05 - 2.81838293e+03 1.93384800e-05 - 2.88403150e+03 1.93384800e-05 - 2.95120923e+03 1.93384800e-05 - 3.01995172e+03 1.93384800e-05 - 3.09029543e+03 1.93384800e-05 - 3.16227766e+03 1.93384800e-05 - 3.23593657e+03 1.93384800e-05 - 3.31131121e+03 1.93384800e-05 - 3.38844156e+03 1.93384800e-05 - 3.46736850e+03 1.93384800e-05 - 3.54813389e+03 1.93384800e-05 - 3.63078055e+03 1.93384800e-05 - 3.71535229e+03 1.93384800e-05 - 3.80189396e+03 1.93384800e-05 - 3.89045145e+03 1.93384800e-05 - 3.98107171e+03 1.93384800e-05 - 4.07380278e+03 1.93384800e-05 - 4.16869383e+03 1.93384800e-05 - 4.26579519e+03 1.93384800e-05 - 4.36515832e+03 1.93384800e-05 - 4.46683592e+03 1.93384800e-05 - 4.57088190e+03 1.93384800e-05 - 4.67735141e+03 1.93384800e-05 - 4.78630092e+03 1.93384800e-05 - 4.89778819e+03 1.93384800e-05 - 5.01187234e+03 1.93384800e-05 - 5.12861384e+03 1.93384800e-05 - 5.24807460e+03 1.93384800e-05 - 5.37031796e+03 1.93384800e-05 - 5.49540874e+03 1.93384800e-05 - 5.62341325e+03 1.93384800e-05 - 5.75439937e+03 1.93384800e-05 - 5.88843655e+03 1.93384800e-05 - 6.02559586e+03 1.93384800e-05 - 6.16595002e+03 1.93384800e-05 - 6.30957344e+03 1.93384800e-05 - 6.45654229e+03 1.93384800e-05 - 6.60693448e+03 1.93384800e-05 - 6.76082975e+03 1.93384800e-05 - 6.91830971e+03 1.93384800e-05 - 7.07945784e+03 1.93384800e-05 - 7.24435960e+03 1.93384800e-05 - 7.41310241e+03 1.93384800e-05 - 7.58577575e+03 1.93384800e-05 - 7.76247117e+03 1.93384800e-05 - 7.94328235e+03 1.93384800e-05 - 8.12830516e+03 1.93384800e-05 - 8.31763771e+03 1.93384800e-05 - 8.51138038e+03 1.93384800e-05 - 8.70963590e+03 1.93384800e-05 - 8.91250938e+03 1.93384800e-05 - 9.12010839e+03 1.93384800e-05 - 9.33254301e+03 1.93384800e-05 - 9.54992586e+03 1.93384800e-05 - 9.77237221e+03 1.93384800e-05 - 1.00000000e+04 1.93384800e-05 - 1.02329299e+04 1.93384800e-05 - 1.04712855e+04 1.93384800e-05 - 1.07151931e+04 1.93384800e-05 - 1.09647820e+04 1.93384800e-05 - 1.12201845e+04 1.93384800e-05 - 1.14815362e+04 1.93384800e-05 - 1.17489755e+04 1.93384800e-05 - 1.20226443e+04 1.93384800e-05 - 1.23026877e+04 1.93384800e-05 - 1.25892541e+04 1.93384800e-05 - 1.28824955e+04 1.93384800e-05 - 1.31825674e+04 1.93384800e-05 - 1.34896288e+04 1.93384800e-05 - 1.38038426e+04 1.93384800e-05 - 1.41253754e+04 1.93384800e-05 - 1.44543977e+04 1.93384800e-05 - 1.47910839e+04 1.93384800e-05 - 1.51356125e+04 1.93384800e-05 - 1.54881662e+04 1.93384800e-05 - 1.58489319e+04 1.93384800e-05 - 1.62181010e+04 1.93384800e-05 - 1.65958691e+04 1.93384800e-05 - 1.69824365e+04 1.93384800e-05 - 1.73780083e+04 1.93384800e-05 - 1.77827941e+04 1.93384800e-05 - 1.81970086e+04 1.93384800e-05 - 1.86208714e+04 1.93384800e-05 - 1.90546072e+04 1.93384800e-05 - 1.94984460e+04 1.93384800e-05 - 1.99526231e+04 1.93384800e-05 - 2.04173794e+04 1.93384800e-05 - 2.08929613e+04 1.93384800e-05 - 2.13796209e+04 1.93384800e-05 - 2.18776162e+04 1.93384800e-05 - 2.23872114e+04 1.93384800e-05 - 2.29086765e+04 1.93384800e-05 - 2.34422882e+04 1.93384800e-05 - 2.39883292e+04 1.93384800e-05 - 2.45470892e+04 1.93384800e-05 - 2.51188643e+04 1.93384800e-05 - 2.57039578e+04 1.93384800e-05 - 2.63026799e+04 1.93384800e-05 - 2.69153480e+04 1.93384800e-05 - 2.75422870e+04 1.93384800e-05 - 2.81838293e+04 1.93384800e-05 - 2.88403150e+04 1.93384800e-05 - 2.95120923e+04 1.93384800e-05 - 3.01995172e+04 1.93384800e-05 - 3.09029543e+04 1.93384800e-05 - 3.16227766e+04 1.93384800e-05 - 3.23593657e+04 1.93384800e-05 - 3.31131121e+04 1.93384800e-05 - 3.38844156e+04 1.93384800e-05 - 3.46736850e+04 1.93384800e-05 - 3.54813389e+04 1.93384800e-05 - 3.63078055e+04 1.93384800e-05 - 3.71535229e+04 1.93384800e-05 - 3.80189396e+04 1.93384800e-05 - 3.89045145e+04 1.93384800e-05 - 3.98107171e+04 1.93384800e-05 - 4.07380278e+04 1.93384800e-05 - 4.16869383e+04 1.93384800e-05 - 4.26579519e+04 1.93384800e-05 - 4.36515832e+04 1.93384800e-05 - 4.46683592e+04 1.93384800e-05 - 4.57088190e+04 1.93384800e-05 - 4.67735141e+04 1.93384800e-05 - 4.78630092e+04 1.93384800e-05 - 4.89778819e+04 1.93384800e-05 - 5.01187234e+04 1.93384800e-05 - 5.12861384e+04 1.93384800e-05 - 5.24807460e+04 1.93384800e-05 - 5.37031796e+04 1.93384800e-05 - 5.49540874e+04 1.93384800e-05 - 5.62341325e+04 1.93384800e-05 - 5.75439937e+04 1.93384800e-05 - 5.88843655e+04 1.93384800e-05 - 6.02559586e+04 1.93384800e-05 - 6.16595002e+04 1.93384800e-05 - 6.30957344e+04 1.93384800e-05 - 6.45654229e+04 1.93384800e-05 - 6.60693448e+04 1.93384800e-05 - 6.76082975e+04 1.93384800e-05 - 6.91830971e+04 1.93384800e-05 - 7.07945784e+04 1.93384800e-05 - 7.24435960e+04 1.93384800e-05 - 7.41310241e+04 1.93384800e-05 - 7.58577575e+04 1.93384800e-05 - 7.76247117e+04 1.93384800e-05 - 7.94328235e+04 1.93384800e-05 - 8.12830516e+04 1.93384800e-05 - 8.31763771e+04 1.93384800e-05 - 8.51138038e+04 1.93384800e-05 - 8.70963590e+04 1.93384800e-05 - 8.91250938e+04 1.93384800e-05 - 9.12010839e+04 1.93384800e-05 - 9.33254301e+04 1.93384800e-05 - 9.54992586e+04 1.93384800e-05 - 9.77237221e+04 1.93384800e-05 - 1.00000000e+05 1.93384800e-05 - 1.02329299e+05 1.93384800e-05 - 1.04712855e+05 1.93384800e-05 - 1.07151931e+05 1.93384800e-05 - 1.09647820e+05 1.93384800e-05 - 1.12201845e+05 1.93384800e-05 - 1.14815362e+05 1.93384800e-05 - 1.17489755e+05 1.93384800e-05 - 1.20226443e+05 1.93384800e-05 - 1.23026877e+05 1.93384800e-05 - 1.25892541e+05 1.93384800e-05 - 1.28824955e+05 1.93384800e-05 - 1.31825674e+05 1.93384800e-05 - 1.34896288e+05 1.93384800e-05 - 1.38038426e+05 1.93384800e-05 - 1.41253754e+05 1.93384800e-05 - 1.44543977e+05 1.93384800e-05 - 1.47910839e+05 1.93384800e-05 - 1.51356125e+05 1.93384800e-05 - 1.54881662e+05 1.93384800e-05 - 1.58489319e+05 1.93384800e-05 - 1.62181010e+05 1.93384800e-05 - 1.65958691e+05 1.93384800e-05 - 1.69824365e+05 1.93384800e-05 - 1.73780083e+05 1.93384800e-05 - 1.77827941e+05 1.93384800e-05 - 1.81970086e+05 1.93384800e-05 - 1.86208714e+05 1.93384800e-05 - 1.90546072e+05 1.93384800e-05 - 1.94984460e+05 1.93384800e-05 - 1.99526231e+05 1.93384800e-05 - 2.04173794e+05 1.93384800e-05 - 2.08929613e+05 1.93384800e-05 - 2.13796209e+05 1.93384800e-05 - 2.18776162e+05 1.93384800e-05 - 2.23872114e+05 1.93384800e-05 - 2.29086765e+05 1.93384800e-05 - 2.34422882e+05 1.93384800e-05 - 2.39883292e+05 1.93384800e-05 - 2.45470892e+05 1.93384800e-05 - 2.51188643e+05 1.93384800e-05 - 2.57039578e+05 1.93384800e-05 - 2.63026799e+05 1.93384800e-05 - 2.69153480e+05 1.93384800e-05 - 2.75422870e+05 1.93384800e-05 - 2.81838293e+05 1.93384800e-05 - 2.88403150e+05 1.93384800e-05 - 2.95120923e+05 1.93384800e-05 - 3.01995172e+05 1.93384800e-05 - 3.09029543e+05 1.93384800e-05 - 3.16227766e+05 1.93384800e-05 - 3.23593657e+05 1.93384800e-05 - 3.31131121e+05 1.93384800e-05 - 3.38844156e+05 1.93384800e-05 - 3.46736850e+05 1.93384800e-05 - 3.54813389e+05 1.93384800e-05 - 3.63078055e+05 1.93384800e-05 - 3.71535229e+05 1.93384800e-05 - 3.80189396e+05 1.93384800e-05 - 3.89045145e+05 1.93384800e-05 - 3.98107171e+05 1.93384800e-05 - 4.07380278e+05 1.93384800e-05 - 4.16869383e+05 1.93384800e-05 - 4.26579519e+05 1.93384800e-05 - 4.36515832e+05 1.93384800e-05 - 4.46683592e+05 1.93384800e-05 - 4.57088190e+05 1.93384800e-05 - 4.67735141e+05 1.93384800e-05 - 4.78630092e+05 1.93384800e-05 - 4.89778819e+05 1.93384800e-05 - 5.01187234e+05 1.93384800e-05 - 5.12861384e+05 1.93384800e-05 - 5.24807460e+05 1.93384800e-05 - 5.37031796e+05 1.93384800e-05 - 5.49540874e+05 1.93384800e-05 - 5.62341325e+05 1.93384800e-05 - 5.75439937e+05 1.93384800e-05 - 5.88843655e+05 1.93384800e-05 - 6.02559586e+05 1.93384800e-05 - 6.16595002e+05 1.93384800e-05 - 6.30957344e+05 1.93384800e-05 - 6.45654229e+05 1.93384800e-05 - 6.60693448e+05 1.93384800e-05 - 6.76082975e+05 1.93384800e-05 - 6.91830971e+05 1.93384800e-05 - 7.07945784e+05 1.93384800e-05 - 7.24435960e+05 1.93384800e-05 - 7.41310241e+05 1.93384800e-05 - 7.58577575e+05 1.93384800e-05 - 7.76247117e+05 1.93384800e-05 - 7.94328235e+05 1.93384800e-05 - 8.12830516e+05 1.93384800e-05 - 8.31763771e+05 1.93384800e-05 - 8.51138038e+05 1.93384800e-05 - 8.70963590e+05 1.93384800e-05 - 8.91250938e+05 1.93384800e-05 - 9.12010839e+05 1.93384800e-05 - 9.33254301e+05 1.93384800e-05 - 9.54992586e+05 1.93384800e-05 - 9.77237221e+05 1.93384800e-05 - 1.00000000e+06 1.93384800e-05 - 1.02329299e+06 1.93384800e-05 - 1.04712855e+06 1.93384800e-05 - 1.07151931e+06 1.93384800e-05 - 1.09647820e+06 1.93384800e-05 - 1.12201845e+06 1.93384800e-05 - 1.14815362e+06 1.93384800e-05 - 1.17489755e+06 1.93384800e-05 - 1.20226443e+06 1.93384800e-05 - 1.23026877e+06 1.93384800e-05 - 1.25892541e+06 1.93384800e-05 - 1.28824955e+06 1.93384800e-05 - 1.31825674e+06 1.93384800e-05 - 1.34896288e+06 1.93384800e-05 - 1.38038426e+06 1.93384800e-05 - 1.41253754e+06 1.93384800e-05 - 1.44543977e+06 1.93384800e-05 - 1.47910839e+06 1.93384800e-05 - 1.51356125e+06 1.93384800e-05 - 1.54881662e+06 1.93384800e-05 - 1.58489319e+06 1.93384800e-05 - 1.62181010e+06 1.93384800e-05 - 1.65958691e+06 1.93384800e-05 - 1.69824365e+06 1.93384800e-05 - 1.73780083e+06 1.93384800e-05 - 1.77827941e+06 1.93384800e-05 - 1.81970086e+06 1.93384800e-05 - 1.86208714e+06 1.93384800e-05 - 1.90546072e+06 1.93384800e-05 - 1.94984460e+06 1.93384800e-05 - 1.99526231e+06 1.93384800e-05 - 2.04173794e+06 1.93384800e-05 - 2.08929613e+06 1.93384800e-05 - 2.13796209e+06 1.93384800e-05 - 2.18776162e+06 1.93384800e-05 - 2.23872114e+06 1.93384800e-05 - 2.29086765e+06 1.93384800e-05 - 2.34422882e+06 1.93384800e-05 - 2.39883292e+06 1.93384800e-05 - 2.45470892e+06 1.93384800e-05 - 2.51188643e+06 1.93384800e-05 - 2.57039578e+06 1.93384800e-05 - 2.63026799e+06 1.93384800e-05 - 2.69153480e+06 1.93384800e-05 - 2.75422870e+06 1.93384800e-05 - 2.81838293e+06 1.93384800e-05 - 2.88403150e+06 1.93384800e-05 - 2.95120923e+06 1.93384800e-05 - 3.01995172e+06 1.93384800e-05 - 3.09029543e+06 1.93384800e-05 - 3.16227766e+06 1.93384800e-05 - 3.23593657e+06 1.93384800e-05 - 3.31131121e+06 1.93384800e-05 - 3.38844156e+06 1.93384800e-05 - 3.46736850e+06 1.93384800e-05 - 3.54813389e+06 1.93384800e-05 - 3.63078055e+06 1.93384800e-05 - 3.71535229e+06 1.93384800e-05 - 3.80189396e+06 1.93384800e-05 - 3.89045145e+06 1.93384800e-05 - 3.98107171e+06 1.93384800e-05 - 4.07380278e+06 1.93384800e-05 - 4.16869383e+06 1.93384800e-05 - 4.26579519e+06 1.93384800e-05 - 4.36515832e+06 1.93384800e-05 - 4.46683592e+06 1.93384800e-05 - 4.57088190e+06 1.93384800e-05 - 4.67735141e+06 1.93384800e-05 - 4.78630092e+06 1.93384800e-05 - 4.89778819e+06 1.93384800e-05 - 5.01187234e+06 1.93384800e-05 - 5.12861384e+06 1.93384800e-05 - 5.24807460e+06 1.93384800e-05 - 5.37031796e+06 1.93384800e-05 - 5.49540874e+06 1.93384800e-05 - 5.62341325e+06 1.93384800e-05 - 5.75439937e+06 1.93384800e-05 - 5.88843655e+06 1.93384800e-05 - 6.02559586e+06 1.93384800e-05 - 6.16595002e+06 1.93384800e-05 - 6.30957344e+06 1.93384800e-05 - 6.45654229e+06 1.93384800e-05 - 6.60693448e+06 1.93384800e-05 - 6.76082975e+06 1.93384800e-05 - 6.91830971e+06 1.93384800e-05 - 7.07945784e+06 1.93384800e-05 - 7.24435960e+06 1.93384800e-05 - 7.41310241e+06 1.93384800e-05 - 7.58577575e+06 1.93384800e-05 - 7.76247117e+06 1.93384800e-05 - 7.94328235e+06 1.93384800e-05 - 8.12830516e+06 1.93384800e-05 - 8.31763771e+06 1.93384800e-05 - 8.51138038e+06 1.93384800e-05 - 8.70963590e+06 1.93384800e-05 - 8.91250938e+06 1.93384800e-05 - 9.12010839e+06 1.93384800e-05 - 9.33254301e+06 1.93384800e-05 - 9.54992586e+06 1.93384800e-05 - 9.77237221e+06 1.93384800e-05 - 1.00000000e+07 1.93384800e-05 - 1.02329299e+07 1.93384800e-05 - 1.04712855e+07 1.93384800e-05 - 1.07151931e+07 1.93384800e-05 - 1.09647820e+07 1.93384800e-05 - 1.12201845e+07 1.93384800e-05 - 1.14815362e+07 1.93384800e-05 - 1.17489755e+07 1.93384800e-05 - 1.20226443e+07 1.93384800e-05 - 1.23026877e+07 1.93384800e-05 - 1.25892541e+07 1.93384800e-05 - 1.28824955e+07 1.93384800e-05 - 1.31825674e+07 1.93384800e-05 - 1.34896288e+07 1.93384800e-05 - 1.38038426e+07 1.93384800e-05 - 1.41253754e+07 1.93384800e-05 - 1.44543977e+07 1.93384800e-05 - 1.47910839e+07 1.93384800e-05 - 1.51356125e+07 1.93384800e-05 - 1.54881662e+07 1.93384800e-05 - 1.58489319e+07 1.93384800e-05 - 1.62181010e+07 1.93384800e-05 - 1.65958691e+07 1.93384800e-05 - 1.69824365e+07 1.93384800e-05 - 1.73780083e+07 1.93384800e-05 - 1.77827941e+07 1.93384800e-05 - 1.81970086e+07 1.93384800e-05 - 1.86208714e+07 1.93384800e-05 - 1.90546072e+07 1.93384800e-05 - 1.94984460e+07 1.93384800e-05 - 1.99526231e+07 1.93384800e-05 - 2.04173794e+07 1.93384800e-05 - 2.08929613e+07 1.93384800e-05 - 2.13796209e+07 1.93384800e-05 - 2.18776162e+07 1.93384800e-05 - 2.23872114e+07 1.93384800e-05 - 2.29086765e+07 1.93384800e-05 - 2.34422882e+07 1.93384800e-05 - 2.39883292e+07 1.93384800e-05 - 2.45470892e+07 1.93384800e-05 - 2.51188643e+07 1.93384800e-05 - 2.57039578e+07 1.93384800e-05 - 2.63026799e+07 1.93384800e-05 - 2.69153480e+07 1.93384800e-05 - 2.75422870e+07 1.93384800e-05 - 2.81838293e+07 1.93384800e-05 - 2.88403150e+07 1.93384800e-05 - 2.95120923e+07 1.93384800e-05 - 3.01995172e+07 1.93384800e-05 - 3.09029543e+07 1.93384800e-05 - 3.16227766e+07 1.93384800e-05 - 3.23593657e+07 1.93384800e-05 - 3.31131121e+07 1.93384800e-05 - 3.38844156e+07 1.93384800e-05 - 3.46736850e+07 1.93384800e-05 - 3.54813389e+07 1.93384800e-05 - 3.63078055e+07 1.93384800e-05 - 3.71535229e+07 1.93384800e-05 - 3.80189396e+07 1.93384800e-05 - 3.89045145e+07 1.93384800e-05 - 3.98107171e+07 1.93384800e-05 - 4.07380278e+07 1.93384800e-05 - 4.16869383e+07 1.93384800e-05 - 4.26579519e+07 1.93384800e-05 - 4.36515832e+07 1.93384800e-05 - 4.46683592e+07 1.93384800e-05 - 4.57088190e+07 1.93384800e-05 - 4.67735141e+07 1.93384800e-05 - 4.78630092e+07 1.93384800e-05 - 4.89778819e+07 1.93384800e-05 - 5.01187234e+07 1.93384800e-05 - 5.12861384e+07 1.93384800e-05 - 5.24807460e+07 1.93384800e-05 - 5.37031796e+07 1.93384800e-05 - 5.49540874e+07 1.93384800e-05 - 5.62341325e+07 1.93384800e-05 - 5.75439937e+07 1.93384800e-05 - 5.88843655e+07 1.93384800e-05 - 6.02559586e+07 1.93384800e-05 - 6.16595002e+07 1.93384800e-05 - 6.30957344e+07 1.93384800e-05 - 6.45654229e+07 1.93384800e-05 - 6.60693448e+07 1.93384800e-05 - 6.76082975e+07 1.93384800e-05 - 6.91830971e+07 1.93384800e-05 - 7.07945784e+07 1.93384800e-05 - 7.24435960e+07 1.93384800e-05 - 7.41310241e+07 1.93384800e-05 - 7.58577575e+07 1.93384800e-05 - 7.76247117e+07 1.93384800e-05 - 7.94328235e+07 1.93384800e-05 - 8.12830516e+07 1.93384800e-05 - 8.31763771e+07 1.93384800e-05 - 8.51138038e+07 1.93384800e-05 - 8.70963590e+07 1.93384800e-05 - 8.91250938e+07 1.93384800e-05 - 9.12010839e+07 1.93384800e-05 - 9.33254301e+07 1.93384800e-05 - 9.54992586e+07 1.93384800e-05 - 9.77237221e+07 1.93384800e-05 - 1.00000000e+08 1.93384800e-05 - 1.02329299e+08 1.93384800e-05 - 1.04712855e+08 1.93384800e-05 - 1.07151931e+08 1.93384800e-05 - 1.09647820e+08 1.93384800e-05 - 1.12201845e+08 1.93384800e-05 - 1.14815362e+08 1.93384800e-05 - 1.17489755e+08 1.93384800e-05 - 1.20226443e+08 1.93384800e-05 - 1.23026877e+08 1.93384800e-05 - 1.25892541e+08 1.93384800e-05 - 1.28824955e+08 1.93384800e-05 - 1.31825674e+08 1.93384800e-05 - 1.34896288e+08 1.93384800e-05 - 1.38038426e+08 1.93384800e-05 - 1.41253754e+08 1.93384800e-05 - 1.44543977e+08 1.93384800e-05 - 1.47910839e+08 1.93384800e-05 - 1.51356125e+08 1.93384800e-05 - 1.54881662e+08 1.93384800e-05 - 1.58489319e+08 1.93384800e-05 - 1.62181010e+08 1.93384800e-05 - 1.65958691e+08 1.93384800e-05 - 1.69824365e+08 1.93384800e-05 - 1.73780083e+08 1.93384800e-05 - 1.77827941e+08 1.93384800e-05 - 1.81970086e+08 1.93384800e-05 - 1.86208714e+08 1.93384800e-05 - 1.90546072e+08 1.93384800e-05 - 1.94984460e+08 1.93384800e-05 - 1.99526231e+08 1.93384800e-05 - 2.04173794e+08 1.93384800e-05 - 2.08929613e+08 1.93384800e-05 - 2.13796209e+08 1.93384800e-05 - 2.18776162e+08 1.93384800e-05 - 2.23872114e+08 1.93384800e-05 - 2.29086765e+08 1.93384800e-05 - 2.34422882e+08 1.93384800e-05 - 2.39883292e+08 1.93384800e-05 - 2.45470892e+08 1.93384800e-05 - 2.51188643e+08 1.93384800e-05 - 2.57039578e+08 1.93384800e-05 - 2.63026799e+08 1.93384800e-05 - 2.69153480e+08 1.93384800e-05 - 2.75422870e+08 1.93384800e-05 - 2.81838293e+08 1.93384800e-05 - 2.88403150e+08 1.93384800e-05 - 2.95120923e+08 1.93384800e-05 - 3.01995172e+08 1.93384800e-05 - 3.09029543e+08 1.93384800e-05 - 3.16227766e+08 1.93384800e-05 - 3.23593657e+08 1.93384800e-05 - 3.31131121e+08 1.93384800e-05 - 3.38844156e+08 1.93384800e-05 - 3.46736850e+08 1.93384800e-05 - 3.54813389e+08 1.93384800e-05 - 3.63078055e+08 1.93384800e-05 - 3.71535229e+08 1.93384800e-05 - 3.80189396e+08 1.93384800e-05 - 3.89045145e+08 1.93384800e-05 - 3.98107171e+08 1.93384800e-05 - 4.07380278e+08 1.93384800e-05 - 4.16869383e+08 1.93384800e-05 - 4.26579519e+08 1.93384800e-05 - 4.36515832e+08 1.93384800e-05 - 4.46683592e+08 1.93384800e-05 - 4.57088190e+08 1.93384800e-05 - 4.67735141e+08 1.93384800e-05 - 4.78630092e+08 1.93384800e-05 - 4.89778819e+08 1.93384800e-05 - 5.01187234e+08 1.93384800e-05 - 5.12861384e+08 1.93384800e-05 - 5.24807460e+08 1.93384800e-05 - 5.37031796e+08 1.93384800e-05 - 5.49540874e+08 1.93384800e-05 - 5.62341325e+08 1.93384800e-05 - 5.75439937e+08 1.93384800e-05 - 5.88843655e+08 1.93384800e-05 - 6.02559586e+08 1.93384800e-05 - 6.16595002e+08 1.93384800e-05 - 6.30957344e+08 1.93384800e-05 - 6.45654229e+08 1.93384800e-05 - 6.60693448e+08 1.93384800e-05 - 6.76082975e+08 1.93384800e-05 - 6.91830971e+08 1.93384800e-05 - 7.07945784e+08 1.93384800e-05 - 7.24435960e+08 1.93384800e-05 - 7.41310241e+08 1.93384800e-05 - 7.58577575e+08 1.93384800e-05 - 7.76247117e+08 1.93384800e-05 - 7.94328235e+08 1.93384800e-05 - 8.12830516e+08 1.93384800e-05 - 8.31763771e+08 1.93384800e-05 - 8.51138038e+08 1.93384800e-05 - 8.70963590e+08 1.93384800e-05 - 8.91250938e+08 1.93384800e-05 - 9.12010839e+08 1.93384800e-05 - 9.33254301e+08 1.93384800e-05 - 9.54992586e+08 1.93384800e-05 - 9.77237221e+08 1.93384800e-05 - 1.00000000e+09 1.93384800e-05 - 1.02329299e+09 1.93384800e-05 - 1.04712855e+09 1.93384800e-05 - 1.07151931e+09 1.93384800e-05 - 1.09647820e+09 1.93384800e-05 - 1.12201845e+09 1.93384800e-05 - 1.14815362e+09 1.93384800e-05 - 1.17489755e+09 1.93384800e-05 - 1.20226443e+09 1.93384800e-05 - 1.23026877e+09 1.93384800e-05 - 1.25892541e+09 1.93384800e-05 - 1.28824955e+09 1.93384800e-05 - 1.31825674e+09 1.93384800e-05 - 1.34896288e+09 1.93384800e-05 - 1.38038426e+09 1.93384800e-05 - 1.41253754e+09 1.93384800e-05 - 1.44543977e+09 1.93384800e-05 - 1.47910839e+09 1.93384800e-05 - 1.51356125e+09 1.93384800e-05 - 1.54881662e+09 1.93384800e-05 - 1.58489319e+09 1.93384800e-05 - 1.62181010e+09 1.93384800e-05 - 1.65958691e+09 1.93384800e-05 - 1.69824365e+09 1.93384800e-05 - 1.73780083e+09 1.93384800e-05 - 1.77827941e+09 1.93384800e-05 - 1.81970086e+09 1.93384800e-05 - 1.86208714e+09 1.93384800e-05 - 1.90546072e+09 1.93384800e-05 - 1.94984460e+09 1.93384800e-05 - 1.99526231e+09 1.93384800e-05 - 2.04173794e+09 1.93384800e-05 - 2.08929613e+09 1.93384800e-05 - 2.13796209e+09 1.93384800e-05 - 2.18776162e+09 1.93384800e-05 - 2.23872114e+09 1.93384800e-05 - 2.29086765e+09 1.93384800e-05 - 2.34422882e+09 1.93384800e-05 - 2.39883292e+09 1.93384800e-05 - 2.45470892e+09 1.93384800e-05 - 2.51188643e+09 1.93384800e-05 - 2.57039578e+09 1.93384800e-05 - 2.63026799e+09 1.93384800e-05 - 2.69153480e+09 1.93384800e-05 - 2.75422870e+09 1.93384800e-05 - 2.81838293e+09 1.93384800e-05 - 2.88403150e+09 1.93384800e-05 - 2.95120923e+09 1.93384800e-05 - 3.01995172e+09 1.93384800e-05 - 3.09029543e+09 1.93384800e-05 - 3.16227766e+09 1.93384800e-05 - 3.23593657e+09 1.93384800e-05 - 3.31131121e+09 1.93384800e-05 - 3.38844156e+09 1.93384800e-05 - 3.46736850e+09 1.93384800e-05 - 3.54813389e+09 1.93384800e-05 - 3.63078055e+09 1.93384800e-05 - 3.71535229e+09 1.93384800e-05 - 3.80189396e+09 1.93384800e-05 - 3.89045145e+09 1.93384800e-05 - 3.98107171e+09 1.93384800e-05 - 4.07380278e+09 1.93384800e-05 - 4.16869383e+09 1.93384800e-05 - 4.26579519e+09 1.93384800e-05 - 4.36515832e+09 1.93384800e-05 - 4.46683592e+09 1.93384800e-05 - 4.57088190e+09 1.93384800e-05 - 4.67735141e+09 1.93384800e-05 - 4.78630092e+09 1.93384800e-05 - 4.89778819e+09 1.93384800e-05 - 5.01187234e+09 1.93384800e-05 - 5.12861384e+09 1.93384800e-05 - 5.24807460e+09 1.93384800e-05 - 5.37031796e+09 1.93384800e-05 - 5.49540874e+09 1.93384800e-05 - 5.62341325e+09 1.93384800e-05 - 5.75439937e+09 1.93384800e-05 - 5.88843655e+09 1.93384800e-05 - 6.02559586e+09 1.93384800e-05 - 6.16595002e+09 1.93384800e-05 - 6.30957344e+09 1.93384800e-05 - 6.45654229e+09 1.93384800e-05 - 6.60693448e+09 1.93384800e-05 - 6.76082975e+09 1.93384800e-05 - 6.91830971e+09 1.93384800e-05 - 7.07945784e+09 1.93384800e-05 - 7.24435960e+09 1.93384800e-05 - 7.41310241e+09 1.93384800e-05 - 7.58577575e+09 1.93384800e-05 - 7.76247117e+09 1.93384800e-05 - 7.94328235e+09 1.93384800e-05 - 8.12830516e+09 1.93384800e-05 - 8.31763771e+09 1.93384800e-05 - 8.51138038e+09 1.93384800e-05 - 8.70963590e+09 1.93384800e-05 - 8.91250938e+09 1.93384800e-05 - 9.12010839e+09 1.93384800e-05 - 9.33254301e+09 1.93384800e-05 - 9.54992586e+09 1.93384800e-05 - 9.77237221e+09 1.93384800e-05 - 1.00000000e+10 1.93384800e-05 diff --git a/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc b/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc deleted file mode 100644 index 9bb1dbd6c..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A.magicrc +++ /dev/null @@ -1,86 +0,0 @@ -puts stdout "Sourcing design .magicrc for technology sky130A ..." - -# Put grid on 0.005 pitch. This is important, as some commands don't -# rescale the grid automatically (such as lef read?). - -set scalefac [tech lambda] -if {[lindex $scalefac 1] < 2} { - scalegrid 1 2 -} - -# drc off -drc euclidean on -# Change this to a fixed number for repeatable behavior with GDS writes -# e.g., "random seed 12345" -catch {random seed} - -# Turn off the scale option on ext2spice or else it conflicts with the -# scale in the model files. -ext2spice scale off - -# Allow override of PDK path from environment variable PDKPATH -if {[catch {set PDKPATH $env(PDKPATH)}]} { - set PDKPATH $env(PDK_ROOT)/sky130A -} - -# loading technology -tech load $PDKPATH/libs.tech/magic/sky130A.tech - -# load device generator -source $PDKPATH/libs.tech/magic/sky130A.tcl - -# load bind keys (optional) -# source $PDKPATH/libs.tech/magic/sky130A-BindKeys - -# set units to lambda grid -snap lambda - -# set sky130 standard power, ground, and substrate names -set VDD VPWR -set GND VGND -set SUB VSUBS - -# Allow override of type of magic library views used, "mag" or "maglef", -# from environment variable MAGTYPE - -if {[catch {set MAGTYPE $env(MAGTYPE)}]} { - set MAGTYPE mag -} - -# add path to reference cells -if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} { - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc_t18 - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_ml_xx_hd - addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_sram_macros -} else { - addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_osu_sc_t18/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/${MAGTYPE} - addpath ${PDKPATH}/libs.ref/sky130_sram_macros/${MAGTYPE} -} - -# add path to GDS cells - -# add path to IP from catalog. This procedure defined in the PDK script. -catch {magic::query_mylib_ip} -# add path to local IP from user design space. Defined in the PDK script. -catch {magic::query_my_projects} diff --git a/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl b/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl deleted file mode 100644 index ede844e37..000000000 --- a/openfasoc/generators/gdsfactory-gen/test_output/sky130A/sky130A_setup.tcl +++ /dev/null @@ -1,419 +0,0 @@ -#--------------------------------------------------------------- -# Setup file for netgen LVS -# SkyWater sky130A -#--------------------------------------------------------------- -permute default -property default -property parallel none - -# Allow override of default #columns in the output format. -catch {format $env(NETGEN_COLUMNS)} - -#--------------------------------------------------------------- -# For the following, get the cell lists from -# circuit1 and circuit2. -#--------------------------------------------------------------- - -set cells1 [cells list -all -circuit1] -set cells2 [cells list -all -circuit2] - -# NOTE: In accordance with the LVS manager GUI, the schematic is -# always circuit2, so some items like property "par1" only need to -# be specified for circuit2. - -#------------------------------------------- -# Resistors (except metal) -#------------------------------------------- - -set devices {} -lappend devices sky130_fd_pr__res_iso_pw -lappend devices sky130_fd_pr__res_high_po_0p35 -lappend devices sky130_fd_pr__res_high_po_0p69 -lappend devices sky130_fd_pr__res_high_po_1p41 -lappend devices sky130_fd_pr__res_high_po_2p85 -lappend devices sky130_fd_pr__res_high_po_5p73 -lappend devices sky130_fd_pr__res_high_po -lappend devices sky130_fd_pr__res_xhigh_po_0p35 -lappend devices sky130_fd_pr__res_xhigh_po_0p69 -lappend devices sky130_fd_pr__res_xhigh_po_1p41 -lappend devices sky130_fd_pr__res_xhigh_po_2p85 -lappend devices sky130_fd_pr__res_xhigh_po_5p73 -lappend devices sky130_fd_pr__res_xhigh_po -lappend devices sky130_fd_pr__res_generic_nd -lappend devices sky130_fd_pr__res_generic_pd -lappend devices sky130_fd_pr__res_generic_nd__hv -lappend devices sky130_fd_pr__res_generic_pd__hv -lappend devices mrdn_hv mrdp_hv - -foreach dev $devices { - if {[lsearch $cells1 $dev] >= 0} { - permute "-circuit1 $dev" 1 2 - property "-circuit1 $dev" series enable - property "-circuit1 $dev" series {w critical} - property "-circuit1 $dev" series {l add} - property "-circuit1 $dev" parallel enable - property "-circuit1 $dev" parallel {l critical} - property "-circuit1 $dev" parallel {w add} - property "-circuit1 $dev" parallel {value par} - property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} - # Ignore these properties - property "-circuit1 $dev" delete mult - } - if {[lsearch $cells2 $dev] >= 0} { - permute "-circuit2 $dev" 1 2 - property "-circuit2 $dev" series enable - property "-circuit2 $dev" series {w critical} - property "-circuit2 $dev" series {l add} - property "-circuit2 $dev" parallel enable - property "-circuit2 $dev" parallel {l critical} - property "-circuit2 $dev" parallel {w add} - property "-circuit2 $dev" parallel {value par} - property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} - # Ignore these properties - property "-circuit2 $dev" delete mult - } -} - -#------------------------------------------- -# MRM (metal) resistors and poly resistor -#------------------------------------------- - -set devices {} -lappend devices sky130_fd_pr__res_generic_po -lappend devices sky130_fd_pr__res_generic_l1 -lappend devices sky130_fd_pr__res_generic_m1 -lappend devices sky130_fd_pr__res_generic_m2 -lappend devices sky130_fd_pr__res_generic_m3 -lappend devices sky130_fd_pr__res_generic_m4 -lappend devices sky130_fd_pr__res_generic_m5 - -foreach dev $devices { - if {[lsearch $cells1 $dev] >= 0} { - permute "-circuit1 $dev" end_a end_b - property "-circuit1 $dev" series enable - property "-circuit1 $dev" series {w critical} - property "-circuit1 $dev" series {l add} - property "-circuit1 $dev" parallel enable - property "-circuit1 $dev" parallel {l critical} - property "-circuit1 $dev" parallel {w add} - property "-circuit1 $dev" parallel {value par} - property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} - # Ignore these properties - property "-circuit1 $dev" delete mult - } - if {[lsearch $cells2 $dev] >= 0} { - permute "-circuit2 $dev" end_a end_b - property "-circuit2 $dev" series enable - property "-circuit2 $dev" series {w critical} - property "-circuit2 $dev" series {l add} - property "-circuit2 $dev" parallel enable - property "-circuit2 $dev" parallel {l critical} - property "-circuit2 $dev" parallel {w add} - property "-circuit2 $dev" parallel {value par} - property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} - # Ignore these properties - property "-circuit2 $dev" delete mult - } -} - -#------------------------------------------- -# (MOS) transistors -#------------------------------------------- - -set devices {} -lappend devices sky130_fd_pr__nfet_01v8 -lappend devices sky130_fd_pr__nfet_01v8_lvt -lappend devices sky130_fd_bs_flash__special_sonosfet_star -lappend devices sky130_fd_pr__nfet_g5v0d10v5 -lappend devices sky130_fd_pr__nfet_05v0_nvt -lappend devices sky130_fd_pr__pfet_01v8 -lappend devices sky130_fd_pr__pfet_01v8_lvt -lappend devices sky130_fd_pr__pfet_01v8_mvt -lappend devices sky130_fd_pr__pfet_01v8_hvt -lappend devices sky130_fd_pr__pfet_g5v0d10v5 -lappend devices sky130_fd_pr__special_pfet_pass -lappend devices sky130_fd_pr__special_nfet_pass -lappend devices sky130_fd_pr__special_nfet_latch -lappend devices sky130_fd_pr__cap_var_lvt -lappend devices sky130_fd_pr__cap_var_hvt -lappend devices sky130_fd_pr__cap_var -lappend devices sky130_fd_pr__nfet_20v0_nvt -lappend devices sky130_fd_pr__nfet_20v0 -lappend devices sky130_fd_pr__pfet_20v0 - -foreach dev $devices { - if {[lsearch $cells1 $dev] >= 0} { - permute "-circuit1 $dev" 1 3 - property "-circuit1 $dev" parallel enable - property "-circuit1 $dev" parallel {l critical} - property "-circuit1 $dev" parallel {w add} - property "-circuit1 $dev" tolerance {w 0.01} {l 0.01} - # Ignore these properties - property "-circuit1 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs - } - if {[lsearch $cells2 $dev] >= 0} { - permute "-circuit2 $dev" 1 3 - property "-circuit2 $dev" parallel enable - property "-circuit2 $dev" parallel {l critical} - property "-circuit2 $dev" parallel {w add} - property "-circuit2 $dev" tolerance {w 0.01} {l 0.01} - # Ignore these properties - property "-circuit2 $dev" delete as ad ps pd mult sa sb sd nf nrd nrs - } -} - -#------------------------------------------- -# diodes -#------------------------------------------- - -set devices {} -lappend devices sky130_fd_pr__diode_pw2nd_05v5 -lappend devices sky130_fd_pr__diode_pw2nd_05v5_lvt -lappend devices sky130_fd_pr__diode_pw2nd_05v5_nvt -lappend devices sky130_fd_pr__diode_pd2nw_05v5 -lappend devices sky130_fd_pr__diode_pd2nw_05v5_lvt -lappend devices sky130_fd_pr__diode_pd2nw_05v5_hvt -lappend devices sky130_fd_pr__diode_pw2nd_11v0 -lappend devices sky130_fd_pr__diode_pd2nw_11v0 - -foreach dev $devices { - if {[lsearch $cells1 $dev] >= 0} { - property "-circuit1 $dev" parallel enable - property "-circuit1 $dev" parallel {area add} - property "-circuit1 $dev" parallel {value add} - property "-circuit1 $dev" tolerance {area 0.02} - # Ignore these properties - property "-circuit1 $dev" delete mult perim - } - if {[lsearch $cells2 $dev] >= 0} { - property "-circuit2 $dev" parallel enable - property "-circuit2 $dev" parallel {area add} - property "-circuit2 $dev" parallel {value add} - property "-circuit2 $dev" tolerance {area 0.02} - # Ignore these properties - property "-circuit2 $dev" delete mult perim - } -} - -#------------------------------------------- -# capacitors -# MiM capacitors -#------------------------------------------- - -set devices {} -lappend devices sky130_fd_pr__cap_mim_m3_1 -lappend devices sky130_fd_pr__cap_mim_m3_2 - -foreach dev $devices { - if {[lsearch $cells1 $dev] >= 0} { - property "-circuit1 $dev" parallel enable - property "-circuit1 $dev" parallel {area add} - property "-circuit1 $dev" parallel {value add} - property "-circuit1 $dev" tolerance {l 0.01} {w 0.01} - # Ignore these properties - property "-circuit1 $dev" delete mult perim mf - } - if {[lsearch $cells2 $dev] >= 0} { - property "-circuit2 $dev" parallel enable - property "-circuit2 $dev" parallel {area add} - property "-circuit2 $dev" parallel {value add} - property "-circuit2 $dev" tolerance {l 0.01} {w 0.01} - # Ignore these properties - property "-circuit2 $dev" delete mult perim mf - } -} - -#------------------------------------------- -# Fixed-layout devices -# bipolar transistors, -# VPP capacitors -#------------------------------------------- - -set devices {} -lappend devices sky130_fd_pr__npn_05v5_W1p00L1p00 -lappend devices sky130_fd_pr__npn_05v5_W1p00L2p00 -lappend devices sky130_fd_pr__pnp_05v5_W0p68L0p68 -lappend devices sky130_fd_pr__pnp_05v5_W3p40L3p40 -lappend devices sky130_fd_pr__npn_05v5 -lappend devices sky130_fd_pr__pnp_05v5 -lappend devices sky130_fd_pr__npn_11v0 - -lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_lim5_shield -lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_lim5_shield -lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m4_shield -lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_pom4_shield -lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_lim5_shield -lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_lim4_shield -lappend devices sky130_fd_pr__cap_vpp_6p8x6p1_polym4_shield -lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_lim5_shield -lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_li_shield -lappend devices sky130_fd_pr__cap_vpp_11p5x11p7_m3_shield -lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_li_shield -lappend devices sky130_fd_pr__cap_vpp_1p8x1p8_m3_shield -lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_li_shield -lappend devices sky130_fd_pr__cap_vpp_4p4x4p6_m3_shield -lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_li_shield -lappend devices sky130_fd_pr__cap_vpp_8p6x7p9_m3_shield -lappend devices sky130_fd_pr__ind_04_01 -lappend devices sky130_fd_pr__ind_04_02 - -foreach dev $devices { - if {[lsearch $cells1 $dev] >= 0} { - property "-circuit1 $dev" parallel enable - # Ignore these properties - property "-circuit1 $dev" delete mult - } - if {[lsearch $cells2 $dev] >= 0} { - property "-circuit2 $dev" parallel enable - # Ignore these properties - property "-circuit2 $dev" delete mult - } -} - -#--------------------------------------------------------------- -# Schematic cells which are not extractable -#--------------------------------------------------------------- - -set devices {sky130_fd_io__condiode sky130_fd_io__tap_1} - -foreach dev $devices { - if {[lsearch $cells1 $dev] >= 0} { - ignore class "-circuit1 $dev" - } - if {[lsearch $cells2 $dev] >= 0} { - ignore class "-circuit2 $dev" - } -} - -#--------------------------------------------------------------- -# Digital cells (ignore decap, fill, and tap cells) -# Make a separate list for each supported library -#--------------------------------------------------------------- -# e.g., ignore class "-circuit2 sky130_fc_sc_hd__decap_3" -#--------------------------------------------------------------- - -if { [info exist ::env(MAGIC_EXT_USE_GDS)] && $::env(MAGIC_EXT_USE_GDS) } { - foreach cell $cells1 { -# if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { -# ignore class "-circuit1 $cell" -# } - if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { - ignore class "-circuit1 $cell" - } - if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { - ignore class "-circuit1 $cell" - } - if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { - ignore class "-circuit1 $cell" - } - } - foreach cell $cells2 { -# if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { -# ignore class "-circuit2 $cell" -# } - if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { - ignore class "-circuit2 $cell" - } - if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { - ignore class "-circuit2 $cell" - } - if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { - ignore class "-circuit2 $cell" - } - } -} - -#--------------------------------------------------------------- -# Allow the fill, decap, etc., cells to be parallelized -#--------------------------------------------------------------- - -foreach cell $cells1 { - if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { - property "-circuit1 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { - property "-circuit1 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { - property "-circuit1 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__diode_[[:digit:]]+} $cell match]} { - property "-circuit1 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__fill_diode_[[:digit:]]+} $cell match]} { - property "-circuit1 $cell" parallel enable - } - if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { - property "-circuit1 $cell" parallel enable - } -} -foreach cell $cells2 { - if {[regexp {sky130_fd_sc_[^_]+__decap_[[:digit:]]+} $cell match]} { - property "-circuit2 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__fill_[[:digit:]]+} $cell match]} { - property "-circuit2 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__tapvpwrvgnd_[[:digit:]]+} $cell match]} { - property "-circuit2 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__diode_[[:digit:]]+} $cell match]} { - property "-circuit2 $cell" parallel enable - } - if {[regexp {sky130_fd_sc_[^_]+__fill_diode_[[:digit:]]+} $cell match]} { - property "-circuit2 $cell" parallel enable - } - if {[regexp {sky130_ef_sc_[^_]+__fakediode_[[:digit:]]+} $cell match]} { - property "-circuit2 $cell" parallel enable - } -} - -#--------------------------------------------------------------- -# Handle cells captured from Electric -# -# Find cells of the form "__" in the netlist -# from Electric where the extracted layout netlist has only -# "". Cross-check by ensuring that the full name -# "__" does not exist in both cells, and that -# the truncated name "" does not exist in both cells. -#--------------------------------------------------------------- -# e.g., hydra_spi_controller__hydra_spi_controller -#--------------------------------------------------------------- - -foreach cell $cells1 { - if {[regexp "(.+)__(.+)" $cell match library cellname]} { - if {([lsearch $cells2 $cell] < 0) && \ - ([lsearch $cells2 $cellname] >= 0) && \ - ([lsearch $cells1 $cellname] < 0)} { - equate classes "-circuit1 $cell" "-circuit2 $cellname" - puts stdout "Matching pins of $cell in circuit 1 and $cellname in circuit 2" - equate pins "-circuit1 $cell" "-circuit2 $cellname" - } - } -} - -foreach cell $cells2 { - if {[regexp "(.+)__(.+)" $cell match library cellname]} { - if {([lsearch $cells1 $cell] < 0) && \ - ([lsearch $cells1 $cellname] >= 0) && \ - ([lsearch $cells2 $cellname] < 0)} { - equate classes "-circuit1 $cellname" "-circuit2 $cell" - puts stdout "Matching pins of $cellname in circuit 1 and $cell in circuit 2" - equate pins "-circuit1 $cellname" "-circuit2 $cell" - } - } -} - -# Match pins on black-box cells if LVS is called with "-blackbox" -if {[model blackbox]} { - foreach cell $cells1 { - if {[model "-circuit1 $cell"] == "blackbox"} { - if {[lsearch $cells2 $cell] >= 0} { - puts stdout "Matching pins of $cell in circuits 1 and 2" - equate pins "-circuit1 $cell" "-circuit2 $cell" - } - } - } -} - -#--------------------------------------------------------------- From 08191b9de00664c90532adae7f244212cf1c2408 Mon Sep 17 00:00:00 2001 From: Ryan Wans Date: Fri, 28 Jul 2023 17:48:14 -0400 Subject: [PATCH 36/64] fix routing issue --- .../gdsfactory-gen/12345678987654321.gds | Bin 1348842 -> 0 bytes .../generators/gdsfactory-gen/extract.bash | 4 ++-- .../gdsfactory-gen/opamp_perf_eval.sp | 11 +++++------ .../generators/gdsfactory-gen/pygen/opamp.py | 6 +++--- .../gdsfactory-gen/training_params.npy | Bin 1280 -> 0 bytes .../gdsfactory-gen/training_results.npy | Bin 640 -> 0 bytes 6 files changed, 10 insertions(+), 11 deletions(-) delete mode 100644 openfasoc/generators/gdsfactory-gen/12345678987654321.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/training_params.npy delete mode 100644 openfasoc/generators/gdsfactory-gen/training_results.npy diff --git a/openfasoc/generators/gdsfactory-gen/12345678987654321.gds b/openfasoc/generators/gdsfactory-gen/12345678987654321.gds deleted file mode 100644 index b870ae4cb4911b8785f4e2449483d478d2bf5455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348842 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
qi++?!5mrpKQ4^|Hyyni}{Cd)>-@4`b+NapJMb? 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℘1pZ+8Ko7R)pFXpBH2y*VS{!Q!c>wkCu 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 I-L>z30l*CfDgXcg diff --git a/openfasoc/generators/gdsfactory-gen/extract.bash b/openfasoc/generators/gdsfactory-gen/extract.bash index ff277d5b4..eec39c790 100644 --- a/openfasoc/generators/gdsfactory-gen/extract.bash +++ b/openfasoc/generators/gdsfactory-gen/extract.bash @@ -1,7 +1,7 @@ #!/bin/bash #export PDK_ROOT=/usr/local/share/pdk/ -# export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ -export PDK_ROOT = /home/rw/work/open_pdks/sky130 +export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ +# export PDK_ROOT = /home/rw/work/open_pdks/sky130 # args: # first arg = gds file to read diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp index 89eb1bd2b..ad5d54157 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp @@ -23,11 +23,11 @@ Vindc net1 GND 1 ** .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt ** .include /usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice -.lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt -.include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +** .lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt +** .include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice -** .lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt -** .include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +.lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt +.include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice ** Import opamp subcircuit .include opamp_pex.spice @@ -40,7 +40,6 @@ XDUT vin vip bias1 bias2 vo VDD GND opamp .control ** Set initial values set filetype = ascii -set appendwrite = 1 let maxUGB = -1 let maxBv1 = -1 let maxBv2 = -1 @@ -49,7 +48,7 @@ let savedDCGain = -1 ** Tune these let biasVoltageMin = 0.4 let biasVoltageMax = 1.6 -let biasVoltageStep = 0.05 +let biasVoltageStep = 0.1 let biasVoltage1 = biasVoltageMin let biasVoltage2 = biasVoltageMin ** Sweep bias voltages diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 8ed6120ad..0e8eef07b 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -194,7 +194,7 @@ def opamp( pmos_comps.add_ports(pcomps_2L_2R_sourcevia.get_ports_list(),prefix="2L2Rsrcvia_") # short all the gates pmos_comps << route_quad(LRgatePorts[0],LRgatePorts[-1],layer=pdk.get_glayer("met2")) - ytranslation_pcenter = 2 * pcenterfourunits.ymax + 4*_max_metal_seperation_ps + ytranslation_pcenter = 2 * pcenterfourunits.ymax + 5*_max_metal_seperation_ps ptop_AB = (pmos_comps << shared_gate_comps).movey(ytranslation_pcenter) pbottom_AB = (pmos_comps << shared_gate_comps).movey(-1 * ytranslation_pcenter) pmos_comps.add_ports(ptop_AB.get_ports_list(),prefix="ptopAB_") @@ -219,7 +219,7 @@ def opamp( # connect source of B to drain of 2R pcomps_route_B_source_extension = pmos_comps.xmax-max(LRsourcesPorts[-1].center[0],ptop_AB.ports["R_source_E"].center[0])+_max_metal_seperation_ps mimcap_connection_ref = pmos_comps << c_route(pdk, ptop_AB.ports["R_source_E"], LRdrainsPorts[-1],extension=pcomps_route_B_source_extension,viaoffset=(True,False)) - bottom_pcompB_floating_port = set_orientation(movey(movex(pbottom_AB.ports["L_source_E"].copy(),4*_max_metal_seperation_ps), destination=Aextra_top_connection.ports["e1"].center[1]+Aextra_top_connection.ports["e1"].width+_max_metal_seperation_ps),"S") + bottom_pcompB_floating_port = set_orientation(movey(movex(pbottom_AB.ports["L_source_E"].copy(),5*_max_metal_seperation_ps), destination=Aextra_top_connection.ports["e1"].center[1]+Aextra_top_connection.ports["e1"].width+_max_metal_seperation_ps),"S") pmos_bsource_2Rdrain_v = pmos_comps << L_route(pdk,pbottom_AB.ports["L_source_E"],bottom_pcompB_floating_port,vglayer="met3") pmos_comps << c_route(pdk, LRdrainsPorts[-1], set_orientation(bottom_pcompB_floating_port,"E"),extension=pcomps_route_B_source_extension,viaoffset=(True,False)) pmos_bsource_2Rdrain_v_center = via_stack(pdk,"met2","met3",fulltop=True) @@ -296,7 +296,7 @@ def opamp( # vbias1 and vbias2 pins vbias1 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) vbias1.movey(opamp_top.ymin - _max_metal_seperation_ps - vbias1.ymax) - opamp_top << straight_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_gate_S"], vbias1.ports["e2"],width=1,fullbottom=False) + opamp_top << straight_route(pdk, vbias1.ports["e2"], opamp_top.ports["centerNcomps_multiplier_0_gate_S"],width=1,fullbottom=False) vbias2 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) vbias2.movex(opamp_top.xmin-2).movey(opamp_top.ymin+vbias2.ymax) opamp_top << L_route(pdk, halfmultn_gate_routeref.ports["con_W"], vbias2.ports["e2"],hwidth=2) diff --git a/openfasoc/generators/gdsfactory-gen/training_params.npy b/openfasoc/generators/gdsfactory-gen/training_params.npy deleted file mode 100644 index 0df9b86b9b6daf1d02b77107f2bf7c31efc1a177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1280 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItqpsnmP)#3giMV1~8CtfY2Z8A+!LL4-;pA^3lc7)pJ1A$v|nCyaJRD zlh=UqVKmHqn0lDKFh07yF!ku-=;~qik?S6qJp=6?m_K0t8!YaDg^vhYe51z;OdYy7 h%s()3m_NylFPM3Q#XT^8543w=;W}8t2j(6I2LODa5WQ$^FWVlk^A5fy4`!@1oNUJ&HYqi%@{K(q zeK7gjX~v6k{4Y50ZMveSn0m)9w(c8$;@Y=F>)+;)Byeuh1&41sPrvQ^@NTcwqeUO$ zLx{JZL&=b1ip@obh?CsU7o^{@lP_cc#kq!f` Date: Tue, 1 Aug 2023 22:19:20 -0400 Subject: [PATCH 37/64] Add option to change simulation temperature. More info in PR comments. --- .../generators/gdsfactory-gen/extract.bash | 6 ++++++ .../gdsfactory-gen/opamp_perf_eval.sp | 12 +++++++++-- .../gdsfactory-gen/sky130_nist_tapeout.py | 20 +++++++++++++++++-- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/extract.bash b/openfasoc/generators/gdsfactory-gen/extract.bash index eec39c790..9c1bbd805 100644 --- a/openfasoc/generators/gdsfactory-gen/extract.bash +++ b/openfasoc/generators/gdsfactory-gen/extract.bash @@ -1,6 +1,12 @@ #!/bin/bash + +# Ali #export PDK_ROOT=/usr/local/share/pdk/ + +# Actual export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ + +# Ryan # export PDK_ROOT = /home/rw/work/open_pdks/sky130 # args: diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp index ad5d54157..7fbeac14e 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp @@ -1,6 +1,10 @@ * opamp_perf_eval.sp ** OpenFASOC Team, Ryan Wans 2023 +** IMPORTANT: Temperature setting is added automatically in the reading +** of this file on line 6 as {@@TEMP}. DO NOT OVERRIDE. +.temp {@@TEMP} + ** Define global parameters for altering .param b1 = 0.8 .param b2 = 0.75 @@ -20,12 +24,16 @@ Vindc net1 GND 1 .save i(vindc) ** Import SKY130 libs (this should be replaced with a path relative to some env variable) + +** Ali ** .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt ** .include /usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice -** .lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt -** .include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +** Ryan +* .lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt +* .include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +** Actual .lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt .include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 02ea5b5ec..a92709ffe 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -310,7 +310,7 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: return_dict[key] = val_flt return return_dict -def standardize_netlist_subckt_def(netlist: Union[str,Path]): +def standardize_netlist_subckt_def(netlist: Union[str,Path], sim_temperature: Optional[float] = float(27)): netlist = Path(netlist).resolve() if not netlist.is_file(): raise ValueError("netlist must be file") @@ -330,6 +330,7 @@ def __run_single_brtfrc(index, parameters_ele, output_dir: Optional[Union[str,Pa # generate layout global pdk global save_gds_dir + global SIM_TEMP destination_gds_copy = save_gds_dir / (str(index)+".gds") sky130pdk = pdk params = opamp_parameters_de_serializer(parameters_ele) @@ -346,7 +347,16 @@ def __run_single_brtfrc(index, parameters_ele, output_dir: Optional[Union[str,Pa copytree("sky130A",str(tmpdirname)+"/sky130A") # extract layout Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() - standardize_netlist_subckt_def(str(tmpdirname)+"/opamp_pex.spice") + print("Running simulation at temperature: " + str(SIM_TEMP) + "C") + spice_lines = list() + with open(str(tmpdirname)+"/opamp_perf_eval.sp", "r") as spice_file: + spice_lines = spice_file.readlines() + print("BEFORE REPL: " + spice_lines[5]) + spice_lines[5] = spice_lines[5].replace('{@@TEMP}', str(int(SIM_TEMP))) + print("AFTER REPL: " + spice_lines[5]) + with open(str(tmpdirname)+"/opamp_perf_eval.sp", "w") as spice_file: + spice_file.writelines(spice_lines) + standardize_netlist_subckt_def(str(tmpdirname)+"/opamp_pex.spice", SIM_TEMP) # run sim and store result Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() result_dict = get_sim_results(str(tmpdirname)+"/result_ac.txt", str(tmpdirname)+"/result_power.txt", str(tmpdirname)+"/result_noise.txt") @@ -794,13 +804,19 @@ def extract_stats( gen_opamp_parser.add_argument("--mim_cap_rows", type=int, default=3, help="mim_cap_rows (default: 3)") gen_opamp_parser.add_argument("--rmult", type=int, default=2, help="rmult (default: 2)") gen_opamp_parser.add_argument("--output_gds", help="Filename for outputing opamp (gen_opamp mode only)") + gen_opamp_parser.add_argument("--temp", type=float, default=float(27), help="Simulation temperature") # Testing test = subparsers.add_parser("test", help="Test mode") test.add_argument("--output_dir", type=Path, default="./", help="Directory for output GDS file") + test.add_argument("--temp", type=float, default=float(27), help="Simulation temperature") args = parser.parse_args() + # Simulation Temperature + global SIM_TEMP + SIM_TEMP = args.temp + if args.mode=="extract_stats": # Call the extract_stats function with the specified file paths or defaults extract_stats(params=args.params, results=args.results) From eab690d770b69bcc9893341c872ae11ff0756124 Mon Sep 17 00:00:00 2001 From: Ryan Wans <37909218+ryanrocket@users.noreply.github.com> Date: Sat, 12 Aug 2023 21:49:42 -0400 Subject: [PATCH 38/64] Delete openfasoc/generators/gdsfactory-gen/save_gds_by_index directory --- .../gdsfactory-gen/save_gds_by_index/0.gds | Bin 987434 -> 0 bytes .../gdsfactory-gen/save_gds_by_index/1.gds | Bin 997418 -> 0 bytes .../gdsfactory-gen/save_gds_by_index/2.gds | Bin 1038378 -> 0 bytes .../gdsfactory-gen/save_gds_by_index/3.gds | Bin 1048362 -> 0 bytes .../gdsfactory-gen/save_gds_by_index/4.gds | Bin 979754 -> 0 bytes .../gdsfactory-gen/save_gds_by_index/5.gds | Bin 989738 -> 0 bytes .../gdsfactory-gen/save_gds_by_index/6.gds | Bin 1030698 -> 0 bytes .../gdsfactory-gen/save_gds_by_index/7.gds | Bin 1040682 -> 0 bytes 8 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/0.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/1.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/2.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/3.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/4.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/5.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/6.gds delete mode 100644 openfasoc/generators/gdsfactory-gen/save_gds_by_index/7.gds diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/0.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/0.gds deleted file mode 100644 index 31b5b95e6ada2566a14d4bd0c383707caaa47893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 987434 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�O8@M;^dClFF@MPq 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 WrG0*vOn0qu{#o7mlNx8`#Qz7iBlKVZ diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/1.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/1.gds deleted file mode 100644 index d01306a2f193ff081c4a7a199194182e8a7d6a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 997418 zcmb@vd$gWsS?>E~W@hHpB6Qat(vv_4!NU?uRuEBfZDJ^8xnx5r1xt4kshm9E0ilG` zVssfpcG-d;ltQsC1_HIp5K(KX;jjiG5ZOh=r9&Glx`v7s+ayiW%sKb+`Yrp54UvuNVkKg}2lMC04*KS%^_^F?M;ZOYZ zWHP^DGFdotZt??@g@?^ezJ2oT4_~{y{Po+Gmmj!gGWn(}%*o`8YthZn=N~arfBYwx zmmj)D|KYcprSAAonxT)@KeR>v;airMmzSp8yhkt}o+vw0>2)e&eLn zZ+uj#?`U0H^AY-2&yRus4PRFs`ClrMf2H*eUvJkh>@W2T2TOfN>-$sv;QlwTPL=o>4Y@qbgP?`VC-`rYsn z)hYiC>>vD_)?bpwAKd=}=bY--pH=Ej>kIk(8|KeC#s8He`J2}B`W=kFVQU$G1N#R5 zruD7K|6u%uLuLH+oVyy|w7zhtUB907i+}DP|CQF)&se|f8K3;wKlrb-zCMpXxc~KM zm-_YOruvT7XPlqwS*P;9p8do9o7VIC9gfdBW&YVejBi?>v3}PxPmI62j&E9@F@Nh> zr_^));@`ABWBsn@oWno+2mhw^eEtpYf88&Z`b|$P^``Z8zqrc!sr|>&@9Fuk{sYo~ zEWcq&>#hD{`K_wg{tMnOezf!-LF;+{CI5^^p8@GRmOnYA^>qi5|3N+dN7QTHqTaOL z=s)mH{}I&riEsLkp!G)o!MOAv!6i}t=|6(j^ZA|jKjYGW1b2!WpZ+6gy|I77_uf)Z z-x0n|>y7>+eCwPJ-XY@OwB9(ssiXf0YTZZvru9bu5&n0nj(NCFB!AO-qyGrsJIeU< z9pT@!p3m=L{@Q1e|Mg{j`j5!pdftD7disy>uX8i}o7UBPJVO6g>p$>MpAq+QsYw2n z)?58YWhrZ`LXIaZ{=5Xnn@|rT+;3>>K=>)*I({nQdHoK@XPq+t>>I{6 ztYAAV2yK#;5OK+>X{8 z`zL(wE%o#t;oG#{=s&`@>MCBK}S5jq{s2`j4R2edKRiZ}cDGf0yc*hwDW0H?24N zkMO;tj8Fd&{!Q!o{2u17eHQs&U&g2Zh%| zME-Y)tbfybu$zn+_syJKg#QE|MVH*pZjP1R9bKK zACVj5un*Wb;{Mq;+`nl(uixSLtW)NneZ%;s z^%?7z{v*cUUB@@A&zL{@kErL|#lLBN#`>lI2> zZ=uhC^dE~apVE5k{g1`hmi{Anzv|yx`j4RYUwM6e{V*PV2Bhzx-!ZMX`j4oaul1U@ zs5h-Q`Vaike*|@I;+y^>XuZ*YFh2c9a7mPZ`j4RXe150%hjHmYf;&ZxPyZ3L-q=6k zdvB?y{|Miv^+x{@zI9Fq?-22CT5p`+)X{$gweBN-(|V)-2>-iO$2?polD}!a(SL;R z9c6s_kMM6=&*%3rf9sM z)qh0p`%69jN91o>Z}cDdrvC`)+{8cqN6>m+zv=u5|F`LS?t^_J{~fL8^LvmV{YT_~ zR~eW7Bl5T2IKRU;>y-Prsnm6}K4bmTe}sSb4gO8*jq^M5=bY31(|1sB(tniK)A={J zfBKK`f2BzNruDpjhxu&T7#P3tqxPx_CzfA$UcZ(7gmcQ`)ll=)}hFurMh z#`>lIi1ByV@lES9=8yg(>N$7uZ(5(Re(68LKl=y&ruBUO4ep;lgL?W7>P_pb_8;}< zA0GPg(mw?6*Uy3cQt2Op+CSy>@%ew~xut)A^bPzRiAn!ZUT@d)`AO6(_oz3mH~I(s z(LV%r{^6VcA!xnPKQJ!+LvTryfBJ`@^?d%O^Mi5eAA&nYjZgm&wBA_%;d^hXr+*0F zru9bu5WaQJ2JaB@Z(47hztqt`1hsA>f75!Se+d7(RL4AACz8Kuz0p5}?;T})`iJmu zTF>Y2Fn{fn$p88>KK(=FZ$0myK|TFL_}94?{!QzR{sI5=32`5nisWBuz12TN?)ytU z{X^t$T5t3Z_@;jd>fFOW{X@`tUcc%52>-X~dhUaLBmW((=ks@vAN@n*e^(io{vqy7g_^5>k>{nIy4Z_+=M*VFkmxPSVG@PDO9 z{-*W3euw#QE#uHXgn!d|p2bS8yMfDe<-iF{nICef9@aumDXGRL*&LdtRMCb z`B&0El-JYvgZrm{i0jCW{7vgK&QJP>xPSHy_itLy>vuRl>y-It-!Q&uea8Bwe~9sS z*YQp3Gv<%}A?i7I@o!q6v3}_v!aw^5|EBeP{tfP*K7o4r2I@`gEBc2Q^nd>Kq3_r8 zpYvASv`e4A{MD4!*Il3H|3CGA{_~+{sGjjf#$Ep6l-5^_U;Ov_mrbuzz1IJxTSVp8 z(faGs_`A~hKceejsXF)(@f|%{e`TuA`7y4?Iop!b{aorl#pFgGb`Ol{M zoZnxo{?n=#*R50iMN?Xz|MV*Lp8r$#U+&*O|NM6v|8p82D!!BF_GtZcY5bJm@@8GH zoPx@4`8)KrX}yu((z32sevtf@pERZQR(?wlsb2X(@>~ACDXq8iI}QISzvVR=UpWPZ zR(?;__2dM}?ZrJ>Z{^2)k)Ig(y>d$H&HSFAdh!z^KfMob zT5sle>i%_q(|(EkpmJN}JTu8JUQhR5>g)4s@myU`PLTXq zucr0Z`eVMxPmKJ2a7ydV{MM_U{KUxZ=~G&7=6CA;bAI$2$@;k|VDL+VlC)Ed-)?4}Uxg9yh=Xmrl|4{OS)?4|VhX0h`N$nT%3o5sh zoM)!>R(?OM>&Xd{8|&4y-pY^pB0n*5d)<`QoB2IO_2ehA{!YGWO6$%1PThabPx~eE zgXG3}V3J?Fp7w7#zxaL$pAi529GYo;h5t1EY1F6wx%;^{jl1a6I(?rM)b~$(|HAiCLF+4pzfB*i0`W3$KOKtck~aezo7NT`ipTr4!&oPpYrR@eLV-rE&32s`IXmKx&ONU_`Ms} z8D!mXy=lF*{y48$e?jWsUhARt#`-(?VqM2`4{H6LyroC$jrDgLPg}3Qz)B00asgL!m>#x%F z&!~K<_$qyET7O2W|H0||Pr81$u76Uc_Q1kkeQjEQQmRk>7rs~5f2Zo8eVf+5Gu4ld zzxk_We6#b_7=QjBwO-z(XCTyjf8^KE`n%Hj#eXlq%^y>pa@>5ksQfxw|5&OY_}_f1 z>Xf5>ceH+MsvqQsfAZUWpNN0c`fC2`{^j@d*FJT5Ie5czJb%`j)<@Tm>h`Jr8I>;; ze?woJ)<@Tmu79u7yjs_(5IT`&J<=yQhP3jdv+ zKY!@0AJr+p&i}RgTKVz!AA&9av3|5~ew_ZXaNRnszi-j`S807k|CsjAI_H0sYd`R`@=xfvZAEf%;{j2Uzbp3A?+P7(4?En5*FaJFL8CRC^ z&CXY2e9oOSHpv70&n3T()<@Tm#;0yu<*t(78K(8o^;7(xadzbj|D8U%epILY@E^Rk z`Zukw=D(glv0t>#%D$QAP;#kyqyG3I)#&>dNFQCEw}sZn*PrT6s{Zqp|Fpb(Li=~# zv_882RQJ!i{tqf2QvJ8yP`7zc=$&%3S-2=YP<8qyEIRRC|rag?j$a(Yu+}uSw@e@BCBUPwIMo{utDFC-&=W z(|Z2=v3LIH`m1%lK4%SnSbU$pHm&E+Uwh}DuJ8NTe4Y3W)tjsP9~ob{{TIeJd%l|E ztKVhbpQXC1RP!TKT3_|^!@B-X==rtzV%5X%75DdO{o<7W3jezP4AosNCjUMCj8wlO zKV7GvTd@BVdVX^sLF;ql^@}gmJ!`$flRv7xfBTfyAG&Xq`r3c4`#D|DISaRoZ|l)| zK0kZ+uj_wQ;~y(L`90!)SAC^*vH$$*-M_A9&h9Hbspn4kue83x|H$~{&-mulS8M$F z53qi;U&YN=G5(a+$JdXp|2bWMapm`l^v|aC(ew8wI@8|z< z-8cFFnMnSo^^d3eo_}4>`eD7me-z2zwEo{yeQ*EkdUC(1Qa^_k`J2{nTBW|1|4DLJ z{wLMTlYd9+qyBZh@{jcj_3V!IYqE~Z>%;Zi%m3s}x=#6@{JN;;cSq~1`LFBm#AkH= zT%q$G{;}pz&##WwuNb?3)v5p6^wX6$ic9+1wEoknKF!~WgSwvQGvK4_DC*Y$tmkgmT&_3$sn zr5>%{k?KeMtL~r4ugADAeLc(n`+EMj=z8u0T7O>}zjy!TxwYwvN}V6;^z7MWS|43M zx?azYP5R@G!5hVI(buN+(e!a&Ob=qs;AAVT%_&4!iUhnU} zUjB?5`4%4@H)uWBuV0a$UVo$hJ0B1aGk%ZO-?&Qt_54|<9&Pas)xp0Mzokd(qwA;d zUv>YidY)P4Z*;GZ`{%5EpRR)|{aYVhKYG9J6ROib395dg_w4xZ1g)=j|8@Vz=Um$7 zL9M%q-ZN(X1+C}x_XFwYCv{$|{gCRHOr4)!DC@rvJ>@@m|9tKNUH@+RzDKoso)qdV z4jryiU-v)n-_N~Tbx`kr@%ceV>#t7r>GLPvr=Q!)xZ-Z{*L$?ScSilLTCX(}^``aQ z|CIah{42UWs?%pZOV1bI-lO&W{9oZ;*Xw&ma$CBb@q4tsKlxuVzV3Gi!K0TXFwd zyYs5U|GgslS6W}5PxS-;%V#sb>h5OzDXlM`o$6PNFTXki$$!m3#_!Sk*IV`Se;M`S zHtKt{ep#v?`q%ex_+LIpl>d&_uWHrH@14|(*Hho4^*dAjiu>1itW*5IOvJxwJ+I%P z|CoHy`v(6()rAgI{b2kxFJXN7 z=KLjp)A~!=^%K^q>L=X4>N{GWv3@6vqx>f9ALZB4dLDn6Kj$R%_eUf^eyN{sW)N?F!xXSve{SQBPL!Ysv_YD^B(b|23X&tUoU!ULn z{15#{Q2hr#e?HA?)mvA`jDXYM*k6YyK24WFX~L|js9c#t-AL; zs)IT=mp|I0^+x|eUi2Tq%SB~Q9}={l&+oMVBRB1n;8`O1nbsToCww2EUgPTA4F9I} z18M$NM1wBG7J$esQpcu-XS^dUj(dH)UlUq-$D>HNfhN9&FLBmC=}4xS^*KmAA0 zdgJ_#-0!4bzIAR!{-*Ut{}H}fr})>o8U9V{dHoL7&+^TxdxQS5fADWw&*%4w{N(#K z)i4kHMDjPSH_q?y%{s;Z?bP>Zy}5pM{UQB(gZ{B^@NZggoZpc<=N$R(q`pV%`TQH) zKmAAezhA_EP|tzTVcI_{^4IHnPKAH=4gQ1HVX7aDPyZ45bMBJAX+1yx2lezH)YErR z-_iPv^-KRje)JvW*U@?&e{lcw8BtGe)K^+>^&jDzb&7xX4gO8*dHoK?r~ioY**A=D zT5qmj<<0!D{^!d09j(upKl+dG&-sgg)B23{OaBr6*+2L^P^aR2lftUvk>)?cBX zW1+)U)?e*E_<2+M58iiQyhpV^Z(4_|)YtxlpP!}w2wo}b=XdEpg4Xl?OaA$JS^AHl z)_wFtru9bu5p}z2z2-0KP3w*RW9bIf?9o4{b93o~Jz8({ALK><5xiVfA4mTYw4TrJ zw0|Qv?VsRTBKeut8~sQ4K0v+x>D&zeru9bu5x#X!2X7SdZ(47h-;w`>dhH*rd-6Bw zKg#Q^^`kXAuj}xyb2I!`T5t6q_@>VY|96Y{ue9FkKggZ_BY03${`4O~>v{jJm_Lnw z8TF#hPyBbZ-snHVzs~94Iimd2e*~>J&hNZy}5pM{UO!ipM8UW z(|Y6lj@&ut$bTpGJzCG_-{Ah~Gs6G?;yX9*7Nv-`=`%{dUB(_(t4}^2;Zzz z{IhTHZ(7gmcQ8KvM~u(DVSLkibNwoB=8yG1SH|yXea8IJe}sR|U;LZaXRKfPkMPg_ z!M|xepMQhzeYX8CeE%YC}Z?brg{^{oc3a!Ic>TCbO@1M|r z1g{kJ`zQ1tLF;+{CI9@s3H?V<>puD+(|V)-h`L?1Uh^0Aru9buvG`i$wMTVO=jP&j zd$iu@Kgf&zBX~LE>ub|`KEKocjoh?EJn{{L_B~tvAl^$o)?0Kq|NSEVgL)2x4%7Zw zk-uKob1M9^Z}1i`i|CTtY7*M@}ut{zmC@P z_=EeW&xm?*qrTF5tN#e!tW*56Z}4wg&+B(EKK)0G&%R-N(|U9LDsSeG^*>j}?`VC- z{Lz1ef6ib0o7QKnU;2;m&;G%`X+58RgZrn?VExf|u>K15919(euRs3o75zi-O7WNU zwP`)?pEN$dA4&fZ)Vk&OKluD4XuZ)tMBT1hul%FVwBG0+9{O?J?;h1boqG@cQjgXf z{li1g)%E)sU%Z_0d$gX<-?aZCH?9BRS&XmyH?24Nhwy!XdX1}dFZ`R<8~sE0);Sxz zQN+J#y>b3V{uAo8{=g5C2^*vh8=ilJ|=@Y{L{UZK@I>$qYY5%Oq zU$5&q6aLvZ_zzl#seUj%{X^u>xl8`0_5A!E)YCsuPv1a&N9!}zFZ~1g(KnD^N9%d~ z!Tr-GL_N7tUunJ7KZI}ADgN0v_&2TR^*b1!{vpO^-!Q&uy}5psH}l8(pDW{cv_510 z=pVvA=P&+E>oe9b{X_U?|KQ)Wp3lF*{nIC~{^%Q6e}#IEg$~pD8~pvwInLYfSDl^% z%YS96E_9gc2Yu5dy{%G&#mv#M* z==!fzs`r2B9s1g|{*~lE=l8#3{2wdhpVWNubHwIi)fay(jX(5%xcYx%sh|Ela@7x~ z`n>=DML!>`_pbQ+ook=1vCr($`p>8OJpMhp{!OZfPgDK*Jz9TLs?YiTwXWBD*ZloX z{tg0vzq6zD8&;|J{GYo2a{u-HH~wzt+Bax?_;ihbZjaXAkj78>@%JyuFR1+Z`<>(% zwBE>%zuQTELFLEa?y7+)zn1)h%8kF@Nq#}=t^D4j>&Xc!H~xNSN9(QpepT0#6I5>e{mzco8~L4v|CHa7 zzF#E2pz>S#vc5L0xAJ?ct|uo*ZZGc9dMiKXi<}_&y|PE^t^A&#>&Xd{pFYRvXuXx+ zsr%3Qv0umulG{)9XuXjifB%yFg5<|KHmx`E#h8lFLHv)jla9q(RwStm+N|R zg368ePdZv}<#+1-bAId>a)Qcjk@L*7-pcP>T~AJs{8-1P^;Uk&7db)l`@tTqxAI%B z>&Xd{-_v`v-pcRP{pbAHFXRNtjq|{?-pG%?e@T8p<;LIdB)_2bMt=O=PVx&XKmL9v zIR>pa^5gS6@(U_I{%$8Z2CX;pI}QISKmKkf`3035f4`Ibg4SF4{jjblCrECrW7B#o zKjw>^Ai2G+N9(Qpo}%l?36k5JdbHlk@6`S0{Maw#1j&u_z_gz8%l+@Wb-jG@eHZ@u zIkt}0v;Q=H)cLw^tUmS6%ks$gYmo1I`1v=}x}GWh-@i)VKk;*)eE$@r{-d=XT5o*+ zwESjWr|*-3e0HMmU*aCJn{l&N*hnoI>!+IV+<=372dJd2qeTYeZ<@HtW-#`EHLS?R;`288yPy8H6rS;bO z#4r?`_p=_Ouw9}-;bW~d-8?y@C9@;^#1wL^RMglywcC-h#L1E zy$ASo(|T}NAM0P&KTof}y7Ed<&!0KddVc@8xBnSW*YB;|Extuxo7P7^f2(!7DwRdl zo7P7^f7A8P)B4rlNeMn*)IMG^t&e{Grt6j0lKy5?@N)4j`r5RfKffsX_w(DKI&wTq zBtO&o=;v?LX}klK`hEZKZ(2W)*3XLkRsSW`aUc4-58>amKKl6ub@Hp_1J~R|{gl?l z#`@7SZ(cRr$Gsx?S6Uzc{7u)(w?1Dh{`Gfn!hfap@z39My>efpzhMzPC@TLoruF>( z^NRV?_?J;HZlk_O>!Y8)>3aNMRe6r6^|NeRAN~A-I{mw|@_Op^&$K@J`J1lAH|rF> zOvJxwJ+I%v`dPkNb=(L02LGn@{Q1R-{8V$B{xJ{x^pE^a>!Y7vP^a-&r|@>_d$itM zzqhRCL!M|yJ^z#eq^zYS`JE_+{(|SJt2KTSe*NXr9Mf?Y~sX`C-_s@#__4-!T z;h%kj|Dg3?zkV?OnwK!X{&DV-ziB;x{xztduufG!;l5Sh(fW+_J7FBE^~U}Q-v_AIxH>n(ziItI+J7tZSDnu3@PDI-f75#7{Eqy!WFh?r`J0-CGOvP` z=KO}qWZ}%Y$%^~ec{#5a@qe#K{*~5S{Rh73Gs6GfBK|9_xB3rqr~e2ZWPE*XTF?7$ z=>Ib6iuuzu)2!aw^5|EBePey_++zHeiEaUbLNXuWZMhi}#?{%@zgN9)b?tLqP`j&;Po z!M|z!P+Gq$?q7a6=g5C2^*vh8=ilJ|=`+Ir{UZK@+B~5L`}=1wKK)1dXW!sIsJhUD z{rbW9^dFHw=Pvo1*7Ng!P*49sJ$(oD9j(t;zw{sEN8dqy9j)i_2lr2(5%uIoeWi7= zdH?hu;h%kjf75zizk~7VKVp3L4da{Eo9kD3Gf%AlIg$KL>y7>+d><y7;rz7J5ZadmEn zf7AMb@%0zJbxsFw6!C9bZ=Bzezm_bd?;w9u(@^GB%W|y$z&CwH_`g>q|4Qqv{sZ6i z8R7qK5&xCeTm1*Q(|-gHGQPext>^u>V*WJ#Wz>s0Kk?tudZYgc|2n6G=ZNx8{}Hs_ zIKLzJJE@m%otu%rX}!^Zgm2a<{&jAKf75zizbp2y>TYIyk^OT^kJj_~y&^yPzK!w4 zeT?6u^~U)fzFDXEzn%IXtvA=Nu0NzY{IhRv>CyV3w0>9Izx;B}k^fHWd$gX} zXN3RzMf?Y~c|s5N_s?K_`i$_;zQKP`b)g6Q^@H*0KO%q5UGg`r=jZ>Rp8kV+`VQ(l zTA#6g=|9MizJvTaTF>JT?w>v*>dB4zO6y|t{^>u$Kl=v%ruDpj2jkO!#Q5wR#y71u z*RS$so>>2LW&DoT8~sQ4K2+-IKf=Fhea8Cb{g3d^{=vU#J)eJr`=`%f{n2-@{tERR z3q3f@zxE%z-$MVv`zG`s{Jrr)>%n1t?LX#Tq}R32f>(++=$~ml@4w`K?%BG2ul_-; z`{;*E>y7>+>UPz7&0o};)*JoD+>4ag9@RmepL6;gx})_*|3O~#AHmBRUtgQn^ZA|j zZ{()^6FiIY_0P24*gxU>0QDMI=V$mgtshAHZ$WdfZxr!wT5p`+k-wHKr0*bq zQ`1o9b&|$kasN6m=XD+a?-j|v(t4}^z&CwH_`h4kf2H+S|3U8bAHjo+udhw(dH)Ul zUq-!r=={WgN9&FLBmC=}4xS^*KmAA0dgJ_#-0!4bzIAR!{-*Ut{}H}fr})>o8U9V{ zdHoL75B*2@XaC^ew4TrJ75T~cZHzDOWBeYiH_q?y%{s;Z?bP>Zy}5pM{UOz{j@UQ& zH?23$@5r5Vj{J90-=p<>{tfP*J|q0!FXBI_%@caCfBvq>U$5&q75>>b_zzkS_Ui}Z z(|<(%oV(<2TF=k_K|TEk_4FOoceFlZ{nCGsAAJY;b+n$xAKX8EM%0rV^_AAe=Ka%u zgn#x8{!Qz7{SL;b|A_I~H;ivuZ?0eE&HS^P^aR2lftUvk=)?cCicj&><{3k!G*R@ZASBkIH*QWKnf71Aqr|9~S(>uKTMvY>-RIhcsb+uXg#05 zY5zrTTK~bb7+?2qT5qiX@O^-KjjMAn{F~Mfr2VrZf7R)n4gWWa_&2RL&fmyiWstss z{7t5zzTQ|rI`8In9schX$-mNitAD^ZeM0!ZTf~2*^;Z8t?(`4AgN(1QP3w98te8KI ze;M_n&OiKjwBG0+!oSYh;5nlF(?0~QH_qS4{Z8uTTjyTnZ(48k58<12ihrGZ;or2L z*Y9Bc&_9HK_7DC|>-qd$k)M3u#`xks#_!R3zze}ns{PYD0_i}(-fe}^9I@1GU<>vcV6!aw^4|3T})e*Iv4 z`iID$^OyWh>-qUTsHcCRp1y(lj@D3ObhVf17&GoCinLpP5oJjtr^+x{?z7Lgp`iJmuTA#6g=^w&B z`v?D~^?d#f?tku+)a%@R1oft#W1$E8`S*T*TGwmN_50DH>hv6#|CDJx*st&X{w0>A_*B)e>(P4t{gXWZr|!Spe|`UL z@;Qz728|D&E-v?IJ^%hp%5Uuhx?VX2mEZg~>wlZp8~LsMU%Fm71(o0YBlW*c>y7-@ z{=KeOPC?~2{}}ym(|RMn)9|12Tl-HMPdNpZ-~1)|-=_6ees9(FZfpNg<14@5)LZ}j%j@skbS*hS z^82A4t+(>KMAwrOB){kNXuXx+1-hPlfaIsoF*;gr<#+1-bAFH1c;p1h?YTW#Z>+z$ z&+2;R6jXk5|D>-?>y7;8m@nlNRDN?u^tEZdk>A|!>3Zc9RDN^E^|fiek>6?fPx;NU zUzAf&`Nhv-n$}zSy-4-s1j&s#H?6nwW4_1~&I8kWBfmAvx?bZ18TXO;+O(d>PtX4~59oU36ePdz(ATE* zMt*DlP1h@@Ao+clzBa8l*57IPPx-AmqVbedklZ*AOzW-u-lOZu2`aZWtY_1DD?jFo zoS<@B^SK_axAJ?7t|up`+}3=tN9(QpPThabkNrYUP`R!7Y>(Dk`8`qBlM^I2*0E{5 zl^^p(PLTXw+@tkYevj4la)RXdq8_d1{L=p8`z`zj<)5Ep z<357cv;Q>yY1F6h-@2cB)6c*0eGfnXX7c@9eSP%&%v&n|K|t&79^_wOJ0b9-^|eEvIAl3)E?e^}rB z{GYCWvaZw5-$eaed$d0K`>U#Zp{{>g<(cAp^tEYy^!HcmxE=@pv&T>Q^`DpV>{tJ0 zl3#s&c>n(SNq_DjvTpeN!Hmx#%Im}W?&lYDz1A6@zeSxsf9q(yvHs?stLwGSf?9ub zzpSrK>y7mn<9ZzY&mKSJ*PZ)sQLWY={f0??_4VQX`{zHNUf%EE_h(o?@pB-R{bI`(yFnfz})AZ_N+sI<2#y*4>(4)Yqo<#`-&r@l$?2HzB$4dq^hv z)z^pj@9*FJzLm(j;r%O<{ObE!{rVr6{{K(wb-hi_rprNzH#T^!bT^QZsMZ@tgWb9bHI_vH7tI$CeM|4m-&4wP{hbT6zo)4JFnKRrLF zU(ow@LA`Gr^``atRA27D=YQiDR44x%?-S*}qxCPO`oZ`c?=0hQTq@&twBGpqgK-!1 zK6_B_Uo-xKY5nXp{?Py4Qor%TrM{!}#^;yhwo#uG1n&@)|3=e#{`_EY{|lFu`UQP{ z68W3f^XE@P|GQL2{@01*Z(7fvpAN>~xTB1}@l|E~j@BFRzen!+oFJ(8-6Ma~dj9-i z=wI6>{6DJHZ#1oIYtqVW(A4Vpw+8+<=zY`3|5B0sE3J#o`i1?aenIbJNB*Yu{Q23y z{|45n^55{cqVn%(J+I%P|J%y=8`wYc-_d&G^M}a&<}&_*J~xQ`P3!sdkD-6oDgJLN z^&PFxSic)yqB`w^4eTHMo7Nkj|4_HUIVY|^tJIs;#s2&a{j*N-f2BzNruDpjhxuy-It|1iF3ea8A-&pa{y?mE6{ea8H) zXPr{dxr=|(`i%9vo^uZW>>vD_*7Nx{xc_y(Sn4-DvDBN^#s2)2_3!Ur)Vt7U@cj>c z2jBmg)?57tzrRKQ5xie~cj-TZ*7N>L{uz%x1JZZQe`reUt^OnG=4-v?E$U6{js64Q z^dCW;pZKQ#2wHFSAB<1`5nK}GpZ+6gJ)hs{{9#=BkKj&G8(JHo$dUGiA}fq(jpxQ|Ok@~^bs>OUg){iUA% zBl0(`H~J6moBkuHa})pcA3^JR{SNl;hTC*K_rboA|Blx4`8~*Q;bzsb5AG`CcC_9& zzr#1{l>4};)OWN#WBt;9gn#x8{!QzR^E>kAoYVc&cTjJt?+9J&&;Q{5H?U6ef2BzN zruDpjhxuD{hQYF`W^aboihLI8|L4%K4bmTf5iB^>-eVi z8S_W~5%rwA%%5p}#`>lI2>AEeKK^c{TuYg%vh zAN>9n{YUVA-oGsUN6>oSf5|`N(Pu#V5Bea}daM74y7^kKd5e0}dZYiqH~mLY=O@1D zKZ4d9{RiXIe*~9A`KSK~TF>WqI)50K{v)_k)cEutLFZCY>iAK_c) zbnp%l|EBfE`Ar@DM^NiN@;9wF`j7CxOLfe{bt3tj)*Jmt_})>*r~e55ruBS&5A)YP zi~O%ImczX$oze?g&a z(}#vx#{ z)-n$LNBB3bH=bXS`=K&EeFx*4^dI&0rhod3@X!6@ztXzcuOIkd&p7M@_6_-0S{K{( zXP0{VkI3J&KI8nP|G+=}N8G<@J+I%Pf7U7U&%R;)P3tq(Fa1Z1zq^iaTAwk0^dC{r zxy$^S)@Q6=`j7C>{=vU#J)eJr`=`&Kp1y;6(|W7_;Qbc*3`pO>=WnL3Z&ieIx%Jt>^Q5kRSa=U(YzKANCFTS6Ua_^=FrQ z`j5!pv_9kfr2oJ_{YTutX+5vsp?}sX^UuCv{!QyM)-U}>jK8~%Z(5%*fAk+w&$-L| znbv2lU;2;m&;G%`X+58RgZrn?pq{>idei!<{YU-z2Y!Ex_b-C?i?1yGL(qEOKWTh^ zZ)@EF)rs^C{2YmCT^wCMQ8!=fm3!2i)*Jl;zUd!=I{)xZ{}8m^=pPuL{vo&|%0K-> z(0V?9)A_-;^bf(EqQ<9x2wHEf|M0!H)YCtNZ_|3Ce+b_?XM=Z$_&2RL&R^>2AA(x9 zk-urZ(LaR$U8-Xqt`o`MwBG0+!uO6cKK(=ZH?8OMcbLESN#uWh8K3?k^0%J%&!C?E zA^hvy3;(9|M*o0+`h>WTOGWapwBG6;BKQ5Jp8g^7H?24N2Yk~%1a^Q1kRSa+Kj5A`{&o-{^=jW|CJ*7o7VIC9p=Baj6?qr{!QzR=TGE*NOj7O zzJc-0g{q59|MUsrpZmvurFF4iKk&bvao7j!8}hHTF1G8>F7@;ek-uqu#`#JA5cki% z;r>nQdHoLkvrd_R_6_rITA#6g=^tYJ-F1A^`i%Lbe~5a{UHqHYXRKfPhw#t-!M|xe zpMQh{_M*Q-W9l{eY+5m7ZAt-mtW=lmGgU@|c`RbA}oH}ro+_5a7Eev@haid3J^uP>`c|M>ms`6HtKb+rEFRG-KHtghET zet&x18oiIDf2MV@??31FY1Qi=zdyZho$B?^v@QG@?* z|2kU#TpB;+$L}ALUy$s+S^rGyjr{n%X>x+(Hvh;et+(>y_om4Sk{iE2ZCY>TcN+dv ze*E4v`31@D68$r+xAJ?dt|up`-1zgAy8oQt4H}=EpmO8)raM}1<@as6o}3{0{ZNnATlrn0>&Z`y+@3e3^=5t-sGj`9 z$nOPHT5sle>i%j-Z7>1W`3vcKj)|Y68S-L<2*3Que{#B|Fr)2 z{bTYAk{j#QwBA^M{N6MLi0 z`DwpIeo(os;XE_Rue{#B|GfU5sO!lIk{|2UwBA~O%opoVjND#4rS)chk5xVSiILk& zr?lS8@6`S0{Ip*pKS*wz2PXNI*ZcXU^~3i|_=Nc9=g>^+EBvSNPoqBd&)v_xXuXYdn*Y-nKjp{g1>_f0Zsb6ILFy7ny8sn$@ zd~ODn8#%E4f?9v|_0jyg_pP3y9JPM9zN2!julMVJVEX&h%ge{_TV8%Zbqi-r`Ow3P zZtC@Zeb2xC)}8*|-r<)P9@qa~I#ack)(^jQmHK%9Lf2oU`mYuqSrGMm;HLG%`Td{X z{x9Pl{wdAUe_ruFS<{GtDwOZ~CCN_|J``TgIa|NW}d zydOI#%6~`e`SY7W{gJCn{gL;T`i|DGp5gy0)hYjD*NeLUj@C!t|1IMlyR34bh=0@i z=;wdBUgI8lMdghm`J2{XF~k4arT*B?Qs2>fe*b@v-?4esk^gQH|EBf%H2$Fe$ootE zk$X#hN9*rT^@H{EAnR8-Jb1sT`|oHyuiwG=4<0DvA7lUEztZ}H2ioHw`Ry|Pk-N+I z9j*U%yZ%AeDgJLS^&PFxSicYMQJwOCko_b79j)(4;}7ot2rCXMDjPS=k+@n|H1Dr<3Gs$!M|z!yOaOH_(u+x@sD!;YJAiBk;Co!2U(~1=l=0; zTA#6gk1{^_vw!ekY5iy(e{latx0m{(oex>DC?AZ&R^oeBxQO-I1vw!e!TF>X-;QkNmZzfTH z{28U*w0`(KtE?aQj}Op)s9zF~t6yIG<|(a@_aD0c?ergoM;1i={bJMlc>htxQ-2ZT z9yv$+AF8jkKHh)Sy7MZZU+Yclqy2}jmw)va!Q=Y;8~>*D@%}^CD=+mIB{zNUjsN47 z*2nt~U9a(vY_GgrBtO&o=>92n$MiXK+=qT{g8E~o_0j%A*W-VGr9St@|1s10==ojh zj$B>&zEXe0v_9H@=z8+k=axZz4jleX>!baLuE+mnmHON}{F~PE`Q1Bzbv^mNqVh(O z{7vh5{|)Mo>E{f>|ISi>%(On*f9QJr&sXYm|L|{GA3eWI-I4cK-dpOAnAS)84_&YO ze~|SH?-zCd9j%Y{AG%)t)nAnRVE?dwDy@(AAG)6Wf4lN-k^D{Tqvv<2dysXC|JzG_ zN9!}z?}K|($9=GGP_q8{fDl{H|rF>OeBBPdS1W1^IzBF z`@1XIH~2TLk3PS2J^3FlJj%JN@lEUE@cY;L`FZ$eo#LPS$G>TP#`;x%QSO6%ga1nF z>tKAtkNi#Rjs7G2U!^+c;d&AOru9bu5xy@g;~(2s#_wo7 zpWmr}h}^Z$f;X1&=|5r~tmpkVsHgu3|2j9rziGYEe}sRX)4|;$`J2`o=Xd1({!&lh z5&4_e8~q2q=|6%xH}OyZ5wzauKNz1rBmA>}@Ly@Y)qh0pI;VqomvQMoB7f_R^E-UA zPPvcUOI=6nGuAKtN8AVdNB-$Qg4P@7cjV7GryS@zs59w5>g)aUYp{OkKf=GBn~}R| zJ+I%v`APo~{@FM9H?23GUy-|>|B$|e@lEv|WnLQnNBCx)l0Wy)`Z2A~Sikfc;h%kj z|4Qqv{v&eVUh3&PB7f8RjPvs->zDgy-*Eq?^+x{@~%T-lE>LKH7h% zPX76v1=4rm+q6F3f0S|goF#HQtBg&tDjyz9aH8t&i@XQg`g;N}Ze3 z(|-i5kMf5wFdVZHWK7Wb%)4GrRP3xomhw8}xs>iGO6^4GZ;`J2{9`w!JAe?ET+>fFRX{YTLHX#Y{h<#U$s&;DWES6UzM zKgzg#{u24$UB;#Vi2SXOp5LX8&tJm-?bWwwea8Cb^B4Tnci_LH_0jXY)bTkB_4FOo zo7TtQ|4<$Ivrgg5s(;gZUcbHbzl_W0FX5kkgMZWd=<}L_Oy&{!QyM)-RvGgn#x8{!Q!o{2Q!4 zK4+nxzJq$x`l|g${rQKJ`pkwt0rGPjCx2o}>#hFb-LUkfPx53YonAThUL)4vD z>-D);)SK2D{R6(~6Cgjgfq&C_tAAj8`UJ?&Z7{xRz12TNZd&KT%ggxu{6^$xy|Mno z|IMYIpWC3WqxDAr5dL+}1`mqz&(CiJtvAkJ>gXSW?<;lu{6@@!^+x{?{;$&Y%)|8} z{!QzR{vmu{raIy7>) zeCwPI?iR`4wB9&>siS`g>T~DF-L&55AMj285Y*?+_~++0g4P@T1LM*sgn#xA{wuAw z`iIC}=WOuqGA=*A5&2thoWJ3lb;^C*Ug|nppRs=FAL2gPKl0DdZv?G3&fmzL^G`YO za~sr|^bh6r@#k;&W}V_+KYtLpo7VICP3L#`{_ZjkKerLSP3w*45987&Kz?q6@lETk z{vmv`PVvwEvwlqLGuAJCLfi-YhWsn7xB7?3eS4|r=QbjL)B23_ll~#@pMAsqo7Nls zLyXTlW&YVW%)e=U#`>jyi1D9a$2YCdm_Pc5sOQ|pziEBO`lWve|Lh<9o7VIBH&}o4 z3Dom*8`PWDSM(3P-=Eg?kJ9s>^Hw~5l|Fy@+bOLdzA^2e-tSMV?mJb__#%DF+W&7# z>np}D{(Jq)@jq0(ydVD?QTcVW{)cJ&AB>-$jh{c!_1yPID*sjF{!Qy2N%g&-f7kWj zrR#sK@%X>2z5V}?uK$GU;9rX`@6q}vQhlC3?%VhIjop85{w9<8Z&m*K znd5c$O?mvqMK|?&|ND>L{OP(~%wHk%x9-p6r_%b0`Rk3pynNy;#$8^1=r5)`{^FvW z}dV_)BO+XkH4zcKdRPOT0j1( zRG<5gPwVHlnK!65{^UROX#Hj#lz=| z@?ctjApib)srUNT=d};$dykWFQPlgd9j)J!#?R~b)cxoEf9m;_{JsDGKz_e0-{Rqo zqP`C|tv`@|f2=oun(qr#|2LJ(;`ixm)B5QA>H5vO{)>f&ze&_NU|JuaKV82@_4@rS zc=&u#|9^a@_3`=B^%trBp2|g0```i7`sn=W`cwDcn?Kc`dVan6Q@y_5*8BtyZxo-# z{1sYn&EMPyRj+vpYTo8Pr>{-xjrp7VRb8+7gUs99|D4i#YyRf`AJuFAAoDh-{bO2h z&EFjRSMwCqyv==9Uz^q&^LHBl)BK%Aerf*Z-YdVFKghhzX)l`AoAdVs)iY0!d3#Qe z)?4%UXkE|zi7|hA_L$b2^QSX2=1Gis`>83dH|Os^s-Ag*%-gejwBDM(Q}>_e@6_|l z^Y=LUW&XsNxBq)e>#g})^GB-JJOwp>YyM7Oo7Nlix8}EWz2*-xZ)^U2O6#rpTk`?c zYyUy!Z_PtfT5ruCpF1*tLCxP9J@c5yp!LT5oreE3f2WaOn!h!_E5DjQ$o#GOmnp3` z=TE&>%pYXlexgU_ue{#xAA9|aUgvqk{E0Dtuba|(bN&^Mo^ET!W zGH);Mk@+jH_x+dr{qyUm?my4psppsH??1^e^C!mq{lb*iTk|*hit05_LCxRfxV|>6 zH}>Cz=Z)qM#{6xZ(t2zDCZABf_8*LS`#+|%-kQIOp0~_jQ1dr=P+yzY8~g7x{HOUl zjr`L5O};3X|3Vyxq{F_166HykY)C=5O+jDXll>@9C;%{zT?) za?6y~oAamVZOk8J-rn3J^H*LU-GBJD&u`Fwp1)JiFVEleG(PhuGJlh|PHBC7{+8o& zBfkIR^P`wQ`dQ`?S|6Q1)!n1(w02gyiq^;HPj&yU z>oj(d`THh)ZCW4Qf2z|p_W2F^@6Dg;$;~-AH`98~uQz|H{|D87xiIGMf;xYq_2&G& zwvG?=pILrykBlF$r|*Az&p*A+^M?5o`Tl+RH>b4ToWB>Up7|5`zJ2-krnKIizt^e$ z9@W7`@jX3SZ_VGS`_J=t>iOmQd!_s`e&^LFuX^SQ3d@h{(RyA#Y5taY z-e~?{%-@rywBDM(rGHhu<`2gFJ#|X!&H2+k$NWL&@3B4Jqp#!jwEjx|_5F|2@So@J z)bmU8w9pH6ALHGfNb-ZFndWw7)+`r5SK*njx8&u`Fwn!nS?FVEjEY5XtCx5)f0{n3=x zoAY;x>X|3FEUJ&~XuUOmnzOinG4B8Wn$mi6{?@6U`4eOQeq>7P&H2;wHs%j9Z%^s* z9(^6JH}>DD`_J=7ZqDf&%P-I0H>;lc6J!3KF{Sm^{4IW@j33nai`q-fUr@fv>*@Z} z`MJpRMm3Q6TU3o{y)}P}zpQ%AA7uU(|JRh(Tl2U0o2tJ@bx`xS`1u~KH}>CY_)qh9 z8u_L9Tl_Wo)%-!`Z}BTrT5rzZ6IIVVLFVmwJz8(H|Osn)iZx$ z%-_#WX}vjrPf|Ve1Q*5U_GrB|f2Zz0&)=!%m*?+0uOzSK1OXHtLeYyYo{s-g5=eAJaZ}R(l9r--BygvN?Ej~Ze>u=Zfe^^Pqp5IXq zt&e_wTmSnXsr*-w@lETapWo{G*Xa6Rt9(%WQ+;h(AN~AR*S|y8f1>iQ#oy7_ru9#x z^DpOj>i6H9KfUksK$-90OEo_8Z}NU-d3~6_-@p2({A!-~{e=@BDA$|T#bJG&Ki>B| z@n+RQ>i@n+>u*l=z4cqi{n^Uj73KGYY5iwYeed&2UH?H{ulo)Dk*G7^glRqh{i@#Q zm%9Gby8edBUl;#QUz^r%NaLsZJB|BK^T*F?#`oJ0znX`Rd>>w3ALd{CcfNn-^X{Pb zPyGC+X?=A5RQGSH|HDe^9-*&I>!bUxj;kIZ#@D`!@lETa`%iU$uJL}YQu~hg9oT!bTmb^osGKT)ZD$NLZLzo7Ne{inK9zyIF+sc-sW=C4xEK62pqc7oQ=A6q}FJ5zo& zPw>PC%74eSKED5S{Y9$No)1$0l=|O+)<^fBu4mkzt<;&z{hTnZkM2KRzgE}leuIA` zK2Kkp)<^fBuD?Xr-%$DM;`ixm)B5QC)Agr*|7rfpbF)4_@vA)I_pYGkuRd2t_h0vO zQ%}}B{!O{Qqvo}|p635))1N<@OfEV!nLO-|3m>kZpL*;|CKJ=T*dIUDKjz`39-i~6 zQg2dUU+>qa^LO)qnN0q}-|KHCiaYNR|KBOCi^KYQ{%`t6U9Yi&`hC6457XDC^@p!g zU!Omlerz)Nk2k7bTsgjVu|NLqetxG>pYDIt0gbPp`++;Jk^dc2S{J|J@gMuNav$&; z@xSeY$>dwF*Z=*9$o+47!Iaj;(ebHc9M`WLzrH?N|Hz-#x_Q2i+YM7*qTioDH}!hI z{&~~CKdI~Xmvsj(`3v34*QR70*4O*>W&Y~=dDNwo$+;I!Cc#~zyqs%Vzc7uT*8iin z>UyoY;Il;SpL0#?51Uc{;aY!Rtv9WIIMpZr-+Hm`SJ?$0FYeaYru7Y}KKcLFhfgLK zpHQ86$@hy_Ole(g=lA>aO^!NCB0tmm?~m8x`{Gv={}=yC@!!#U{`t|Nf9;#Nk6VlX zi%sj-r14Wd^LCyx3+^lVpJ!U%o$3eqU-YHo|Dt2Xe@E;2=ik%#_`c{<)&D~EUuj)z z=6{~%jQr2j?;DeUN9$LN*OUK6JF5SytAEq_j#NMNzpePc=w-!!N9)_h>m&DjOaABU zdiIZbUe(3X`^W!S`7b{*2RAP!2bn0FT%gp0Q>jCO6%fiJ^7#i`kKGiVdQUGe|@S? z_fP&8TwDBKu($Z{X#Lt$KlJ~s;{Sqo7XKZsKP%Oz@yY*uo&CX&)%;EC`S&+cJ^r_R zrug6Twc@{{_0Od72mZHwy!hY3Ija0STL1WXJ^63hQu5z&P07Eb^)0D>=zn|l|IF&& zw4Q%|Vd!7uuznaf{F~Mrv{Zvf98*QIA8O|`tN8x&)>j5>lgp$ zYu)0%qxHOgQ+?#Gc?zDW`J2}B{0;oG&%?j=fB3JozGDBU@$t<$7ydaf@n30O?C;++ ze&nuo8r1rY{7vh5{ib?+^ZW?v`GJ3)A3^K+`7!jbnz#?nOV#lF3|i06&s0zD7igac z-&yi!|8ov?dSn0N``q8xcu;)@zB^ja{YM%f-{*cofXKo)hHHbA#MX>nolg$^Ya2Yw16O zkDp8)r_AU-gB!&1dVl?<{2%vorT>KVpO4d=ne?Ca^?rRCKXN}Q-|~K;?t$D*o}cyg z(R%z{{EFg}z7yXatvCA5@OMr1d8;V@^q)cNGx|^ZkI4U^NdBhvM*o3-`p@7oQU2*a zgVr1UC;sU(<31Kd{8w6^)qm1|Mg9jw@;9yL{wvL2_}-y$xsR)>Z_|3C{|x`zihue} z{CBiIqyM}}*O5PUXFb@Ly@Y)qmofb0Yl9OZcy}zT*5y_aC`y{Xy0p`J1f2`g(K!UZ8Up z|D3z{?`S=rziIsN|E%Jl=MMfmT5mjmB6sbx;4zW>P3w984f3b|#6Nu}{ySRF&+mbM z`cLkIz7zi)t>^wF)kp3+r-HYNhzoYe5|EV)O-oJy|?~k7E@nO23@_O_9q5mZRa}O2&9j!O|PyEw= z202GnL;o4H-s(RO>iP@i6Ydg^_Gmr#kAwWF5C5tsfBri`>$!fgf5|WWb6(=#wBG7J z$yZ}W&iB>)P3w*O-~NwUZ(3(Tt-r@<%;-O%^}PO)|LuRN^FsR%M&GG>Hm$ezU*xWP z4r=}*f75!N|CB$zIlqFxQv65%DgT|G&#$3>otJSRx2j(LIlqI}^ZA|X$vxixg!@YV z9kqYz>!a%*-}IlsW5s{;pYq@7`T3W|$2ZUU@V`)fS6UZG$0v8rkKmq?f4u*xebDLo z{21g<{}leOuKrEyxqlk^-&Xub->LjNTF?Dss*il{Eje@Ua{ic{zxDOe`^Pu^XHav< z`oGY$-snHco&GbZELk_ve?sf6{*(N_Uh$!g!DRrgw|XAr}B;W zKcUVm^6$8%~HRul}D|{hQVs{b%^rI6;jc{!QzR@yR{j|AZQs{5xv=`g+qp z^T&Ne->LP}(R!Z0bbjEQ^&8Z>#XsvfXg#mrRL}Zmo`Rac$ltV{=Wnon*yrK@ypn(P zp}G(2EB1dHAK#pF;a}%p_^z}rj^-EnYMlnPej|U=dS1Un|5p_M(Rbo|Pq`1CAKaJN zAAjh7ckv&6r}FP;eMbKo?{jJ%*!Se$QTv~H(d+&32ma|l@pznuT~*8WqZ@7(^zDWm@^ulMWI_>up~ zl7GDKsr*fzpY`?8di-7disJL)Un%}OT5t8A_|tj09o|~}ceFmE|BUxP$zN+J@;CR@ zd1>??_>Vpl9xMJkeo0@K*ZcQB$Upi_{4Z4hmDa_6{UHB%|5KhX)IG5NJHD&VOYXl? zefZl^eO_Jto7P+Xr+oANCHd2LvVJ;RpV5ED`=9bo9r<@uJ^MnhkKRB2qyL1umi6CJ z_g`P{*AMcKK2!dgfBbjcr?1f)^UwOGe-B<=@{jjFH4mMh^Bd$JeJ1|5R{xdOoBgN! zaZZF!ogd-9()x2tp9lb6I##T{|)>{|0)0Uo%rwg8GVhOpWg%jTRvWV(sz=7 zN9(zNN%fJt&Z(fzugKrDp3kqLfAx9c^O++4P3x`xQ~A>Wk~4j8_&2T3=s!8X$)9tZ z{5x9D=l8(>`TL81`cC|JwBG7Jdr ziT3#ueWun4eP{TuwBGDLK6_v_RA<2(9K$T_O~JAPPSm)HCCDZfX*OxIs1pKzD>wjQnL{xQ{uKV278 zJ?n@6PSAR;ANp5L;ZymAf75!S|BQTfpF!P!Wqswa2$PjFw!pZ&u;bb8)D1OGhd@XvD(-yN;z=U*Bh-#q6b&;9UU zXX{|H>l#o7QvxH1xl%_@{5ge@E-Ne@yj}`@Qn5G2?wt z#hD1-}IT`|56d(mDXGRXXO6+lJohW67}EfXg$AwG*~|uT&r<4 z5A>bk+qB;3Kg0jCihue}{CBk8c>jZZ>0g2$6W^wG-(dgJf8w8Yi~o++^ZHHok-O$8ctRw1 z(|Vr2fq(XS_}Bgq|CQET{U^T9ySMu1yu^Q{b#e6kh}=IT-^_#7Z{%)T&+B*S|BB+D z=LY^eTF=jqlwbJYUHtRh#D7QY`T3dZ$(`>%gYPW)v;QBhTspn6|H+;HGkB=@Ki9OL z`;Rm}{^>u1_Z9#2pWH{MH~KGfzu;Q=g?mM<|Blx4`8UX){x$sX5|uywXV7}1{|w&` z)Aihkatz<5^%?yq&k6F6_dWIBF|Dt7eq{e=)&3JcUgLjHj~n!LdA+}WbN=({d$ivk zD@Ol$*_762^`AT^$)D#Y`J2{PJU<8iFMdVw8GWbxceLK>Kk?6b32znUzoYdT{U?1! z^wL z)rbEb)u+~A_&2S$`cL`h{Y&zXzEk;kv_7N%q@Mh#d$jWJXg${t{73(({4dmf&Kl)7hkG@m>J8J&9FTLKcPvevSMan6tdtm+Z{%6p7&M(#Dk9`t8w^sj^ z)>rJGfq%}4@Oi0-|4QpC&W}_dxqnK2RQ@LGuf9Hd|Kb1I;y?ON<=@eIK7Z5r z_~tni)N=>_(SJhgjpt9~u6-8N{)^mA>v{hT@{j)Wtn&P3{Y3u>KU40j_5LTmqyK~_ zivNxuFZZR_`}w8&kKA=m1$BP0{x3GI=ksgme|z=$OcCFv_1yoZ@x%X?>XY+QxkvvA ztYA!2kLCi~s05<-eo#R{yEoqyL0julVoy`f^`-y`BGwl7GDK zsr*fze=#qO_g`55(PxT$-%0+a^=AJm-_d8{U*}!;ue2`q{ipoM{gMqOf1dy3-_d&G z{m<}!g~sJR_7wjet+)D5{O?vBTS) z9xDDj{=U90ulMsCtpDgU;3!&{^>vQPv42}j@I+@FO83H zp7Y^fYdHK@S{FyhC-?JoP6YRq{5e0EhfdGu$I$i_EM-?X0lr=kCC#Xo%`{ySRF z{bQ<+eD5tebN-UQ$@yDfAH9Ear~eEdDE==rtvC8la;N_c9xVRpKe>-iZ}gv$``1hU zJa@?5KVp*OdG_ZYlGk*GKO^d~ery_)0$e;C#f7UPl zJ6g}{H`TN5nZKasjrGs`1+C}#8~A6RhyU}c|4Qqv{uAGvbK#%!691Lf#nJhX+_g@F zU#q#B*7N!u`oE(1=ea@t9j)i*N6Ih!?=Jp%ZsNbA^%?zVyw9n5VBeE_N9}*+MX!(E zKe^L?1`ieg=bF}Y|1t1S|H*yOcjCXJ^+x|i?ic8s3+^rXa}KipJ3XI&gZ$|;!~d@8 z-?ZN7Kg0LKs(;Q){F~Ni^q)K@$eHH``J2{PJU^2E$NW|4KZB3g_;a=Ygd6nt&&uol z`Ahjf<_qfAwBKO#pAVnX`mFww=Op>_+$49?`ikf0!2iXsC_ba_l<$t#8~tbazoz() zzEl1?TA$H>(q}~e2W$SO^+x|ezVx3#%^~?m{|T)(`cM4RXU2Uf!)^Glv@Z7NFXb1x zzpLhdpyqE{&;3`b58peg|EsHi(|V)-4FB7T|L8mAzoYdT{b#)YsqCm@{dZJ7^V0hH zPyEw=26f-$f1znT-~V9!GymL2^qunG(RyS4$^Rnd6jW}kf8PHLTF?0n@@Joff9;>} zUuk{C{u%h^oCyCqKUhD}e~Q*uoFAz^^40o-tUK~IS%3BQ(e;P#3$88xqyJR?9j)i{ zH;s>PoXw(Ra#!N9+0dJ@8Neg8%3{ z<-eo#+`pvy$X(}D@Yb5YX+57`L;u^W|7Vu<6a6RmVLkVMY5efLrTW)+7Q@%S|Z}gw|r~eFos`!rnQ}@y7Gx|@SbL7wSkM(a_ zZ$1B5H}sj1?>pJQruA0;iEsMM@UQcZ+@t>#ttJVzf(*?EPxBg}6pMutN|1?-X^q<_v zxra*r9j!O|PyEq;2Jb7rqyLouPH**}x9YkJU2Y z`v-k~)z^J%N7-Ox%d(KrA}wO~*`LV#kd~#Bx*BC;Bv3T!m@?=`5{*hdV}ljOlctQ2 z6UrzG4Frfrafu9ZaMc|pZGjLqCUi@2qdJVz8bv_taTJOJ#z1gG98hf}Etse0b?!a) z`M#gee(yKd^bh9noX_|D+;h*p_x(BF&v*5F^)vh|e@eIWCrBTa{(7=D^RrBD5>>7-wxzhijes{S&*{nb7-YX92*VEDR!OFh1G|1j$Qf&bh` zjN$A3qxgrv&Y2+nQu+tJT0ghztNKelzH|PKI{*02`8S52oPTsXe}c*#=pJ}RKey{^ z$48%YCaBzn{(&EA`gMJ^zW9glm#fbi)&KCH{$~td`(LTIzWrV2bwcz9!_V?3x-aND z>6hpahTo7sxliD~pL@#xVEA44kD{M>lRu5p!o230|;Wy<^ z?vsq~=bjoj7=G9NbD{r=H@A9nC;A75pX5(;^Y1^6(!jnYe;UJY$e-j7`~P^WBY#jo z_zn4k{K@>uo#-DJev&^Kmz-(+d)v5v{-p84Z_1zKFZ=&U8-IT=e0~16@c)G;TfLv# zq5t;wdj>zrpVog=uV)^23eg=5KgplZ`uijL_lNxG(|h(D__DqO! z%J)~iule=qrjzT@H{)q{@-rDb6Fhe~}pe=qrnUax*@ z{Jij+`Z*Z>fq6ZDdy)FByITFg@Fz-r(SP#q>u+|*JL4Il_C9|@&KUmwQeX6+e7|0Q zuU-#6D*VCy&hZZxYJCf#FZBuSfUs-`BXzL;c#iJBAmouHQmGfBVGx zuk89eh8M1_x9{={Jakd>KgfTR+^?_Jm-$=&ZB762dz$`%;cr_%KDzmDXN~tY{l|mh zZ!Gm?eEY671Nm>i@jtlLdEr$5u}?Pr{I?JIKQR0!OZ~!s{@V-mAA7Rt9~l0l>+9|N zoz3S%dOhc7VE8*reVIT0A3M%XPz4~D;})R*z?``z9D2fP2l z@OQ7TNB_}xH2p`l2l0Pk_;-~0g?>K!MgLLl0nYEh@OQ1R$A6x^8nxf>|8Ow;-cn!Y zkNzWH@A@z7`a6afuI|5uex4m#{}o+-$MC|{`Z7NLA6D--Ueo;N893))@E5PIxBi=& zezG6_4-9`(sbA{9w&_1Yzm)$2!(Y3;-oBrfUe@7jLi`VgKV9m}{Lz2-;ijK^H~I&L zf4I~y^pidCpK;MYF#KeE`>t_}8sEML!`Jbb`n7(Zht|#dgW>D?E%op1`n7MZKN!C5 z-%^k7yoWH}+x%z!Sck#a^;_saba&H#Nar5?1H;$zU&hCG{tdYCqfI~kk9iD!(*N-N zi1w*b`xpP&zsB%&|1R`%pTK|a8`j@3{I2`QLO=IO>!)9$yJL9a>iI48_Fd;6JgRe# z??KLgzrI?()PJh!CwHKKVECFp%J}Fee;MhQ(og;}hM(jw`>y^6^4SHx2kC$P`cyyp z6aUGb=pPt$e+B<{;Qt-PrWgG ztzYWbJn^4-v;PN%uk&B(zo_fi`m_I8e`EN``m^ux&-fLg`VamY!&mxz z2kQJVFI}JdPyfLGqtb%zf#GZaDD%g6-v1cy6Uu+~pE3Mo|Dn%06P*`oeDrq=Kg*x! z=00Qny8l>z$MC|{`4|82o%3hBM=1X}f5!0j{FQp^zp44`+$sG7!`J(F@z45|UySOP z=y(1E!`J*$>g~Jw7x>~Uh4Md0|LWJ*&L92GpWqYC|A7y;dFlFUeHkC!R`h(#o`O~`hcKtVY{lV}X@+bE>`~RpA|AXNt z_dj$ye}WG-{R8iA^V0RH|Kv>O;oK?T2ZrB}Ke_+g|1;hHVEB6fU-<8wiT?At{*K{i z`4ipbOzT&_WdAsS3d7Ix=S$VI4?eJGk5PT#rSEO|$r!%or=@<4#X2~5>iiB2Kgplg zuNvcBP5)Lf{3L(A^cLxTNV>ttgl}KL@HIa!^gDk_zjLR?9H@HcrR&rEgMa9E?$n$I zhOhpW^N;W3Z{uCff98+>gP+X*6+f%c6q+=f02c1H(`5|MvY0(y4Wzf8cwN z{?V^b^^>3QpWKB11H;$+w9xOI`3BWJ+4K+msD6g8`LWd7_dA=<^j-TO3_t0=)_tJs z*BV-XF#IfkqEG8?o$?U>$)CpXll*Dl?`}SG-?9I}@b&()*gxb?=0Wa6|G@CG{3-p; zpP(`Tx(D8+pWF4-^+*} zT-9I3$A9vR@tWp8&p%m*!Pop!>d}4Vrlz0ViT?w`&+;ewuT>pLzm)$2!%y<3eLpR| z_^&=@|AXNt`49bvA8z`|o#-DJewII_+c^`|xac3K@tK#d&;8dp_Fv=M_h9%s{=$FO z$@9>hdF7$Jsu>SM9{*K|N`BS=`Gtp1Kl>fo- zoAM{;9RE50_#O;DJOAk3I@R=(JJ>%1!`J+=@PF%s>ZG6Ch5muzC;7|1f4%w7`)>RX z(*OGPwd;p|@~82!rl0)DJO)3@pVIC83Cc(G57h5qUb?PpYwzMf#K`%>hYa@X4L+}fA*g-{N()) zy6Lmlul{TO9mCJ^C;oGv0i8e5ulo@52rr!Of6gENbMEkeVEB6e7XEYp_B?d|MnCs& zWB7XiF8*2nwN1ZsC%V-)tv`ItFQwkTtABw!_r&)g{i|PJJAZT^ez@r;ccOb>_?rL9 z_~=)@wExbX(myc#hWtsN#($n0;D0duuKvC7pZw{0T+{Uj!%y<3_3!QawO{ew`4bGk zA%AlJv;U6@@jn=Ta{og&`P2Ad(|;%!ev&`YPyRHj-=W|66AV9j|83vz@BW|Z{s+U? z`~Sj!a;Ej4*Y$S{Kg*x!CTCjzMO}Z#@YDSHm6o4g3aSsh?Dz^kp!u}x)BV47s_7?p zvi}E$pX5*LKhg9%cgpvH;b-~tN$Gt^I>E=J|FRVfU-RR_f9mm{dh`zrU+Wj=_n>@Y z9?qT8KQR0(e||;t)jaW;dE@`U@RRwU_>Xj6w9ky%cPH-9&%y9@|5g1O&-oM7xjXUZ z71a4V(XOvue|%^Cjc;oHv;M5Z;OqKV|D~TkW&P@3*55JwuKu;qPoK6<^>6F%7+$!l zztr1zoga|*ZTKJL{PgRq^-KM?HT}o$Y5E6-ulK()KDwPV!TXy2fj8>sc75&m_Fer0 z4KKic%``r3N?u0Ctj>+OFq z{G|U{-+`|41|j-`;b-|1-CB2iCU;tYF#Ifk;``m*{|CGO!SMC|v)Dh*pYqwcQ~C$K zqs>d#*ZPNU=TGnxP5;2V+PrjqZ9TsG`6sCThW`Wiwsq0<)%t~g=S=ipsPWL>G5j=t zYCPvm^k32ScMLCFJ3jl{&pE+sn*RfpU;6d6_3R(#Pw*{G|G=B{bGyD;zu5mgKVu!p zo$Q~1;b-|1-%od+)yM3AF#II{q0jjfe4^r?&CpR7B5RQd;MeCDO=tMz65 z?XSi$YJB<+;~T@*@k_n+lQYq;^<)1G3_r`C=+i#6PWmPKgW>D`E$her_w!Fs>xcgX zwSN8j+WDi~`4iN+NB=;b|9*Y7zKoA<=S+}(Dg6W0|N8aS`r;qHvww}+zxdAnHHNS6 zpGrOYoHNmXUf16-{4{?`w{s@?FY5X`hToJwIp_Gy`N#iY_}Tfl{!<#4dAzCV9~i#o zkA?r_FMK9<;s3z!ll*1hzux?(@8Nrp{@1UsT|aa?e}a!S{R1D;&+YnZ{X)OF1x? z|Hp1={tvvUt&6U&uK!a1ZB762dz$`%;V1di`qeLu_ci_GPy8pB_UmiM$Nyson$P4e z_W!`}HGeJilRxpF+{ykK7`{HgEBhaPjOga6!r z!0^Jg;1d>u(c`pJFh9~i#ozlHw8r<;CqC;A75-;h7))A-DDPxgN>{I34J z)PHf;e@)jP3_r=A_)h*b(l5~;48I|N`uQjRKid5dY8|~UllvdOlRu3QHvNZ!;p_X) zh5zJF^piW$KQR2{{kMI;zx#it`yUKn@Ba(`$(h!FUf16-{49T>o1AI=^h@-23_r`C zFVmSl_<(eSpBH{=1;f|;wA6p9=_hxx{|APjqzLUR=nm_(Ce`EN`{IB|+&W-k& zQTy)dqxv}*zV5#={#D=9>vhhII(Ju}Z0FDzesccseM{?X)cWH;>u(HS*T49WZu*q< ztAAO4$MC!Q*Fryi+WN2T`a6c-)xS%&pY&hrKG5~w(EKNVvku3?Px7aAYu$~vbp65bll*Dl@9zFT zD8&C@_%X??ckYz$1H(`9r+q)&{r_6`KNxocm4#!Px>FeAJINF zzC|eC*}ul{b^k8(bDyyO^Sb_y;b-|1-P|XwU;WbhJBHtsKRM_4@8_QKJs5s={?Wa4 zs_A#`l>Y<6*Zi^YpZw){+|~3uf6D*CPx6<2SN{Y3+*AGs>3{wD^!`i!WFF3)(myc# zB!8lt{AnbAO1JYT7=A;&+Yo^{Hy=3 z*XwoOt^ywwzJCS7Z^)nAKkffVgddmwVEB6fT+-v zDSz_(6aSCh()=G7ev&`%m*+1={SN#;9t=OrpXk3)b)fbz{tpblA%7k_(ERsvPx(JE ze9d1A|D8WI4{|5^2YymN!_V@kbUSB)Pd5DnKdPVG^|kx&W%7!8qw3lJe*OuDulaSU zU-Pt179{i|PJJAZULXM#^O{R1D?&+YnZeHkC!&Y7UbL-)Yb`ng?S ztuOxB_urRJt%IL?%Ksq!yI)^hZ+#bco!1E8t?`55XZiE>di~z6^F|^1gW)&iPws#C z{NhK2_#X^Ex&NWx`4fDw=^uEves0%S=fCjZIaBi>ccOpbo%$JmL;mFXll?y<#Q$LU z`uwS^ANrg#(Rp6i-!c3&e@dToCOYYt=O^gbk=;A6tqtzh_?9~b(aKc$~~_WwZD zGcR3Vo&RG09F$M!CwJoi!0?m&iNDO>sQKeN^EZZ{&0lAQ{r7TE`|jnxw}Rp8{ww-l zt{TptQNQEm-__5-@RRe0?^{}Dqt+k)S$|{ry8gv~bknD-UtU;$$MCcKiEjF|^-GKO zcMLCFyMFflan)%|&JDf?IY0gSYW-6GZF(K^xJM}e2ZpcrzlHzY=RJ@6gz}&JzcKve z{%_yEpx0~8^bdRw(m(q3sebYk`pHe`9~i#or-goUBKpaV=pGop=EqvUUwZFU9mwnP zKNx<}f35p~>d>#;Y5l?Qll*DjtULN|5u!gBev&`!``xO;{|ANm9}Hige=PP7`4j!* zPV^59KgplyCVv{0KhaPAG=`t#PkiV8ZM;$VhIaophOhVUg?@6T^6h}K{Amn7 z$)EQ9v|i6Td`*b|!SIvkkLV_U8lMnKKl#%bzCM4f=TH8VKhf`TrGH@f+4%U+I3VNV ze=vL%}^O_X_3z!0>hb7W&Db z=sd)^m;Qm_>-n$aOSk(U_)*nM|G+!-bGyF2f6MnH>{F2aEB^T(cdxrru^x1F8_J%iT}ay)AKLgTc=b9k~^e-VECFp7XELYP#yE2 zUrPVL@U#4d@AN;R``+tzF#N9mxA5QjRr;M@rGMZ<`n~Xz{E2Szr;$D?{p3$$_zn5f z_YeH%zJdQi{D80bkE&nucK!sVh5a}1e*N68ukPRKzka{-C#bnH{y@%SyS`e#7~l6# z{QpQBe<1fy_@ zw0R7EmOt^0z6m}ll>UL?C;9VPe}BZv_g6gs&$aKb2);-ZigWq53%l>=GN80z_809^Ge~|CL zF-DAGz#(0(Ras3<&Kl%O}{_Zi~a|80dH~ih> zVEEbh-`KY^(v6Q_65?Ah{F%9azW)aOeD4kV2Zn!hsW1Ln{~b*~-+P1pf#L61U(fpR z{ZYnuH~;zmDAr-{uP*fq|M~tK^z*$p=pPvVv!#BapYOTxJoa||9m5M(_fHug-}k*< zdcn5|<^RC&uU}tp-6y;L+q?c?_>-l6ssCux&-dQo|G@A^*Vo&3X$JY;F?Zrz$A7;6(5QZe|9tNJs7_3-=+T7H~ri<&_6JIy?+${tpC+bKle@i9~i#gKTAEnbIy$qH2*pOti#|Z z=O5qs{zc=Ln*K|J;cNaVS zKey|v^<{ki?lCzNbnZO0gW)&jPwtcW&wUf$gW-4GKdb-J=llu2ujwE7=B8iQ=lazz zJ&)6Rz4SYOg5fvhPx6QTe_V+F!SIv(fxph5;L}b2z|S`Qv+w^#H#yV#_jdgq!*9x; z38mw?*qec$e%CN>+qjC{2v&;)-Uus zf6D*;nm7A@pytoKbbY#iSbyf>+$sG7!%x;9-|^2V-`M|rf2A>e^>3k{b7Gx3Ki1zd z{I2t}IKT7>>(|`b|IVMn@SE}{`waj2-cS4whM(;}bYK34rr-Hf8U}{1{dcMVbxpr> zC%Se2VIJInn3r&M{fd9~UFXdBboV_NzP|q}_2_s01i#VzANZ*@ui5v1qmTS)Jlk|T ze@g%0Ykn#7x9{pxM)fcI9}Hjn*HXW7p6Bt}u0I&Q=D#w&bzj!?Ydm}>{~E(@$e;9Y z{HJfT?+1pj{d=MR1@CS8ojbLE28N&HPxO;NjoQcPcK!szZ^)nA=kTBVAN~i!&+dQt z?wl#)eJAHP7=D&N(M`^@e)T)+?-+hl{(O<{^Z3twAO8o2ug{+r{_lHz^WV8s`Ui%e zg~IFCdhM7d=Jup`}MW+M?d+~ z_(;>gKNx;`@529J_*wq6@6v44KD7VA@b&(^*guzRY|rCeO+WdQb1?W>{zSj}B|eio z(LXT!B!Aj>?HS|8g!mr}U-QdCKlu~=SjbCcIFAavT`J;@FZs$+%_nQ8JAJWh5 z`qcl+^&0%A@8SQz@U{Of{3pL!|8-q|F#IfkqVIyPlYS}x$)CpX8}cXj3H;~2f$zca zyY3%FKY#a_{As*OsIx==>fb^? z=fwJTeyqP^_+95`p`Sis{U^Hqj^TIpk5X^n$(!<@eTV-+_FuogcK@OKa`iytyPAIb zFY_3D?Z0JwbaVeP>b`^j&YxiT$^FN^>--s?7UF*}d_8{)|H+@|CwHQIVEB6fUg#%( zqTjhwx(9}@`K8p`cl9abX(9dx!`J?`)PKC|e{I(v3}5qK8Q;1u>-sew{*!-=;Wy+@ z`Zxa5xAA{q_}af0`d^?q<3G6*{|APj_Uo(jFX!)s*4sH#$hqV19|yxv^C$jl zo$a&M-~I=~*Y&UaU%KgE=ydLs{(<3Z|61x-jpw1hjeh#KF?{Xcr5@k?oD+O^^M9bu zPrttE-$K80rt~{^YRrM3ZS&Ig)%r3%y1CC=|K6^1_krPSek}F&SN#{{eLwp@NdN8E*UlgP&Y$2T zP5;36H~qT4T3^P;cjrv-@uq*E_CvqET3`IL@84|x^V}2PgWP}m^|kfrcg{rr;jX`9 z_-X!>Zs$z&pXmBKhM(q7e1CiQU;EJh2gBF`IGT9j&-V*^UL_g@U#3W|NZbf%@I-e_fyIXZ_Ic+^Mk#hOg^a{6n{MCa8Uj?tyRD&+Yo^_@&-^(;F#I%sN*{gBI_a0_?-*XVs=thHf3;7I-{}4a!`J;=>hazA6V!bJ z{R4IX=+{@rFaDvM`=^n9DgE3(jo~-sPe1?E{^#7Y{|COVt&6U&j=#|F{3-pHDtDlN zpz;U$b$zvdq2D=EY#u2X(le=z)p{K}|3|w2 z!T0xdsrhT+Kl#)8Z|}N;;V1di`j0mKll5ocaKSteu(9iwH z7=Cj9vG1xeKHYr}hOg&u;XnBk{p3#c4-8-L-wXZZPxO;J(LFGH%`c_izN=3ePj~-= z;p_Y7rGBlM^}n|34~DP#uZ(Zq+OtObCHjNmH{?(HH~!PN+4lp(*Z#fG{{nf3esU-N z4-7xapXerk8dZya@~1I;eg9PEZ{N>0|GEFM|AXBB`t|AlCuds!J|X%$hM(n6bdxi! zpMHt{j^Q`uPwxNt&wU^N2Zpcr|AqhiUf=YSJJCNde0_dV{ImX7H~r*J^bZU_$)7K~ zr{yQ3&O3iU&(A@@3-oilKJ}mciT{^=sp%gWev&`YPyRI0N2QJDUD0PODz}2ZpcxyVT=5@868?ZvOlEr}qEg>-kyeCx4>fxl_6ahOhU( zGCsa@pZ7ZK?fN^07p^^j_)h;YzODIB|6m;kU;D>WzdW=4+nfL7C-xD!%6!dFOZ|GS z=W%D#@BFD+a;5p2A4|P`|FZOI9sJx=z6a^Q{rcMZqmTS)e5C2#9}GXqpXeih8Xs@^ zoj;|2@RR&$-}O5{KlhaHLGC~O`cywT)A|p0{T;*4@+Z2+cwTmOt(L+q?hT zhxDHp1jE<+_hSEC{)VRCxl?OCF#IHcTEF_G@qwn_`BVOrOZ)Y;{@HikLyR92;(suF z%`Xf6>JJhf#E0l6Mf`QqxvZQ$N3WsKgpl?&+|v)9nF6~|J2xnpX5L5KHl}e zw(AdupX5*L*7!z^Z~ejWlkxGL=buK6i~oN935KuZFZ_Rj)`@vIcWVC(3}4r;^bd5C zKaJYA=x6^L!`J;=>g~I<8nu4xf7Z_!zOLUwKj+-~_ci~WKQ)i=v;2u}`keKv#=1L( z7f$y-``7+!|Jwgx__}|W`d{DlJ9na6_Ye9%_YdYJTphpoXZ^2k`kg!F|G@C|{#okr zopWw{p!v@E$N#}k-hZNx{Av7B(|u_$e9a$aeDsq)jq0QL@B9gdpX4umr~et>CDfjw z{~5#A{i@}}Gr_B* z-t>(9eN$}INkIQ48I|Nk~8f8<3juohM(jQ{B`~WpKkgGezxhKeg2Ma=S=kP?fN^0 z7p~5~_-Eg>X2wT^_#X^k^H-_2{*ztj?OlH`{49T>|ETJ~JDdK2;Wy+@>ha&tJ>~zv z@U?!S-}zJiGjI0)K+T`|>H4aFwf{)Bb0(;DXa5h>?_yrMzFJ?#$9HnNQNH27pMQek ztAC{)eVh~PJS;?i$MCz(&q6JKEA(5_j%)0&3`}t z)H)2lK7T6p?C*UV+xWJopZv)@20zQ6=zq0d52^o=XXY(_m`_@@chmg zzUHTee&0)XZTtEly2ut@b{YjfgjS(?fP2(`Ma&;N8@!uY3KQ+F?`LB zOZ|GCb*c{EsW*nN^^5b1f7VIAl>hi=3}5{#_4Zx!G;03#Js5tHzxn&d>@%bGAAi4@ z{bvkc_g@`fYs5L@?;msS_`Ao!@U#4B-&JeW`rG$l_`3eZe{|EojPDalKmE%XzV@%B ze)UWA)3?z-FnsObwO(t?`N4nA4gL=dU(e4%Klu~=mKlRu4*2&I32F#IHcqMQ6_d|W8~{E2>YC;A75pX5(;lRu60QRydt z8pBWWC%*HX(@4LPXXHO)_(}e=?&Eqr`d=$Ve=z(ce_A)=Fb~E>e=z)PeEH6EPW<<{ z@_%6XI{w0c@+bPeZqh$6d|kiVKct)diGJ@}=^q%r?%!IE|Ev>uR*3(>@OAwb`hCvP zzfbk(?-+iTKhdrJ*7P40qQ7H!;rjl8@9b0X8$$dKhOhf~sh|6V^!vUc{R6|-`$zQ; z{jXL%_->)}4-8-LpS51T^Zpb6eeUJ|!0@y4FWux%^k4cVq4W<7U-L&DU#}s5qMzJ} z{(<3V`AfcEF3tGwz9-EC!`J?|@Zb3r{nvHtnZK!9~8gpU-|xu zgYQ+{_w;(?eq#s23s>ule|+~2-+yC#O!(*Yb1?ivrM~pPt;2f#1F8c*FMQJq zhJRpQ&)C#&-PP&`hCfm2i~cLG(D%OFuQ`M2VOPF-1;gK8>Wls>FVySrRUP=KQ1`5X z;qNW=WqfNtCEaM%-0^Q<_*3ia(arbVSikn5^>++E`~Dkr^F24#uQOo%9m5M(*T2l) zzN=q=hc0T`gM5EfzrI>u=5PJCHT}o$Y5E6-zis{a)_-Hu&-dP-e_;3u&wGblt)57nS-lzJ0&D`F!X>A^r!$ z-@U#b-F$zP@gq$?-yg+12LFyyztFGm$FhFDHw)hfhQDilJ^u6ki$?7?{O9}YjN$i| z`Z9lX^F3qMuf1U19mDVX{;`GrBcJd3^}DRUV|d}({fqy6f1mLhq5S9j`;6f)USDth zH#PlyZyovvhQF!QFZEyB^z*%a=pPvV+V%DJ{j~J54qp@Ee=z*%Qor#3@WV|%-+PGu zf#Dx6^$Y!nH4giqanV08{A7Ilu5pYS-@XUK*YTJ7wN9)9>t_AI@OAx``uBGI+PBsp z3}5$esmFJ|f6;hv^Plx&9R^?5Z=wH?&N=!I>D;4#VEB6e%lP=t_b(dhqw=5rXAD2- zfB4S#FB;z>)c$Ax8pGH9yU@>l!urn>qQ7JK+4nD^oBO2o(=XBAG5qZN7wx;wKgjnk z;(L(u->L-6P4{|5^2Zo>IPjr(%jq(fK;0qbAF?C)(|AVsA^k5H zev&_5ti9@5@X=lyrs$>6CZwz1Sm-;nN z>(~6PKN!Bwzw{sLzDRY_21p$^Jt(eb)Nb3$4Fn_*wo$H}@IqR}Z%Sj^TyV z{=@mhf6g8L4-8+=-@G5m)7$^GB{tJeMp!`J)&!hdq6^`9q1f5-5%{E2RIruEY=(cdxrG=DzQ z^3xWmKET)mAJFe^*Qfh`>r~V4wUhpV;V1di`q{h8gMNv3!SJ*Esk!_4CHRF0KRs-JrNryl-v}dk8b*u^{anbcgOI% z`qx6ge+Topvg_{{UbwpcrQW_X2l>yr!T+G=Bwn~$ztn$Q(|`P)rhj1gdjBiq<2(0% z<9$uP^QSx*{N(;`jp`qu_m2Dz(m(q3sebYkUO9JOu!7-hep=`!Kce5cbN>p4ulcdm z+xI)W|9ZXs4~C!gU+X^5_21C^Cx5e#j)kA(PwUpY8*gd;9}9+`<VlQTUJawqybh8M2gzwB>6{{*jT{tvvkt&6U&tw%Tc)2Lo<-NEpa z{AvBlnMUf1;c5jrv{acm4#! zPsX?Z8po*L#r|h}WB5A$V*jvy)_+ac9}HjDuk;V=-rMzS|5|@AeBHmLp8n(KoZ!99 z|AAV+eto)sIREHB^kCCJFnm4#WqkCLKaC%4`kg=J|KKP658v6pM(taC_w!FMeBHkb z|G7_Czs^4Uhdl^}pXE<r!c&5)xR=-`>XR0a_$*B$ocQrSL>JhPc{9{ zo#SBhf0Xg9|3uU8+=*`WP3A!^>(|$gZ{OAbKtK1C??L)szrMB}-^riG$C_^E zPt9ZSll+OkgAX*F&YjXdF#Lx6c~tYY|DWjo2gBFC_t==y5?QvYolSNa*-x`W|o`4j!rg7@iv)CR+E$e+g!H2?kF zQ~nPOU-Q>Ozw@WYB7dTP;3xGn{49S;xAQ0XWYa(Jqx!jBU-fV4zh38cP(A&JdSm#S zUzhqdPwTuvi2h*sI{z}h^fea(0FAN~)1vj2FEb0#`3R1Nw& zhM(q7>E=FT{ks2Hf5-5`wf^C+pMQdyJN^&U`Rmu$)?5Egs$m|wf1`h3_mGRMc_;k}r z?nM8<@Eh_ceHx!%yk98)gW-4e@1=fnCOW0X`h($T`4jznyMFx+>ko$CkUzQq+5bno z|H1H+`yaZUKfwo^{(*Pv=XQN{{TBW^XKEhgPV^7FQ$NFR$e(`xiT`K1|3TgVy)O0s zzwqBV6P?<7_#X^E&7aceGltHKy8e#gg=^=3==PSMjOqh;=jWf`1NymLU#(y2Kc#V{ zpWKQ5f#GNQ6a6Pt2huO^S;6p==YOmnInnr-@aOe&FnrCA3;oWS(oY@w2dbWV>H6yY z7yAdF(2sBE9~gd;Kk=9O8#RCY_w!FM{AB+Aj8pr}sC{?rH`_imhOhgt=s%`$IDf`R z+r9I}!SIvwhwodbn*Xdj{tpaa*T4Ah?4tf<{rkKAj`Xj7eXalKrcYb{mBO!RJ{`jg z*Vfy2on4Ugga1L!Prtreztn$Q*Ljan{<8;+;V1di`nAW5_X(w+`@b>#VN0yfAT*_|LE7J`pHlD%$VpN7=DsJ(d}CB$zB`eced-Rko#X$nG{Aqlm=_h|OkHJs!=P}09I7W?&|BP=8KN;V?YkZ@|weP|3 zb^L|@te^F3-K;wpzOG;CAJ)BBb<9Ki*Sdq@>;5hE_|E$WK&)hfde=vN# ze=hVpXQF?9*WWSxuJ_M%|45&6COWU|`a6c-lt1wf|H&Qh9l`LE{6Q_xUyS!O{l|mh zXZaKTH>wW2PbmKfhTo7sj~!_KQ;Yut!`J+^@Zb4U^I*@ie+GV1{~vyqKc$y8|WVxzV?q&kMDj)1K!vCAE^D;udhA- z=yT3Qr}{7c2g6VEr*!N7()3@^^>+*}TsuC#bN-C?H2*n&ti#~z`CIt!{K-6Y-$wty zoAfh$y?+<~@SU7uq+iPaBf;=Bzm$6W`?cn?pL;&o`WStP{?)Iqoj>}VGr=dC{(%oS z{j=wv=stY9>38mw{(<2)e9qJMAKulS;J@=Hs9N^Vz`L7%U0+?lvi|t*-T~4trF)<}?blc9 zi+}cA_j%(PA^r!$*ZY5|N569>`lZ48JBFX;PrcST6aD%f*55JwG=Dzb^3x$ueSkeM z@B#hKc75&qt^bt9Wgc&8`Ui%eY<6Px2>wjGSnEO!zYW91LIcJci{fqzTrcYV_ej)lhhTqk{ z7W(Pa)_-N!-7&my?fTjG$D9A0A3rJhZ)^IG-_!ID3}5emOa1Db=;ywV z?*qe6@~3_OLi3;gf$u^3N54MRPkzFGawq-|3}5rpLO=Nv{p3z(r(pP+A4@&{(mRcM zz5Ne{pS=IK?gL%_4PAdQ{3L%`x7OQuOV=L^Kgpl?%l*grVD~>5zTSTp`-l9=Jn#IPjtH${6wz}@;lr0)%9QaZ|zzK?%Vi3kh#Iv`}aaWInx?06r#Ul_*wo$A34)H zuMpxv$MCcKiFWdf5$!M2|AOIbep%|jNn^?@awqx+hM(k5>%UfY%!7U@{R6|#@+bbD z?mnxJS$i=2B>$nC{Aqlm=_h|OkHOdHk7fPQ&G<%*i+=K_G5lnF`>yeg8rS{@!`JZ_ z{ zNB_X^_57Fd(M|s|(l4c-{Amn7>3{gH_eb`heT)AC!`J=0(9eCs`gQ-X{*K{i`4ipT zC#|1;iT;k^H|0;xIX-jl@jn=TcK*@5bxJj$w4i@r_?kZ!{*%8v5B(1GlfR7NC;7|% zf4%un-^2eP{jXo2?jQ0e`pKQ>9~gd;Khb^g0o8%@QRyETenb9bZ2PbKhW!tQug@>a z{$Y*CpT;v9|NHfGF#IHc9?_i1pT(BmY{f*%#>(9Q&KjT-r|H1IpzlDCz z5BiVl+@O14_udWby6Lml&)Dei z7=D&N(e2-Xe%*gu+cCUw?fCf4`7_?r{68KHU(esdf9~HNOZRW|JAZ=V>;1dUL?H{?(H zH2(A4fc_s0zpH;Q^o1AI=>X+8vG5jol9)4fTPsYB7$xrOzgAWMX^|j|8-CL)ce&lf!2pO}Ypr}PgDKgpl? zOa3s0@;{*K{y^{<8g<6rCguk89eh8M1#zkS#F0eRns|3S`A zzrI?()PGykfBc@Ne_;4}|6A(6vFYc&kN*S1&+;e!tAF6XpL_n=4u;>=KNk9(KeZ0z zPW&JEN&O68^V34VbEftWxe@&XKdPVMYkn;C_WjQ8zg}OrQi7z{6y0~ zQ2m5?>H6yaUHH$vi*@jG&nH$ee7%1!^gCyw^TMvbWB6(Qls2 z8J~Uc=bzv;`k(wCc(ML}yS}y_f1NWy#?<~Fc$5BryS`dq{6n{21K!(fgVeU`YwPVh z8sDe?eNF$v|6uq@{$p(CPf)e!ANa6-Zr9h2k3KvyYFy^d_{Q*)@$Ik1F`^y+gW+rb zE$e4}S|_8{&-#PmXZaKTdsPSC*mVcP*Zo`858pjDcyH4_5bxUcRsR*3Lpt~9 zA9#2B-MYS7U&cqbb0$c?e9H>nsh`{R)%r3%zO#Rgs>Oe=9T>j8e=7CNo%;mH{loe@ zhTnDnSm<}oL?`_c{T;(^%AcHbeD-rs?VVuw+4;BrQ%yg)1N{TT*Zi^6e?oQAPwqnh z!0?m&W#7Nv{P%kw`5vVI_3LZb5B<)c;A2hyz=!m6yS`e#(C_>y{p3#c4}3sB!*9r+ z+&}EU?jM}pqrvd?{!#W1^Yi;3@Qms;|AF_n`Rn>x{ftZgG(OtKCx4=2@Eh`{pMPq6 z?wgE1Q1?&t?Ye(1^pi6^kNvIQ@1OO1!q4(2y2+W=f29!J9m8+RpX3kfkKNMh2ZrB} zKm7bf^E`f!>d_s%O+Uj=@~8FR*v9vBC+Qy;enb8|cA$;p=bjpWVECH97XJJBoph2r z(LeB${r67tr+p(Y;@^`(=^q$=l0Tot_eYfT$M;PfKC8dCD?Iv>d-m{s7{Tzu)&1Y* z-@pHY@4eu4Aay_b^bUsKRbR%x>Oy_r%WvxY5`}!<#npH3V0hu$@m(+9T>s@>-|+$WfztsG@{PWGfV0htbeeut~UphU$bbI`c=|CzPp`jIum9PO|467k zdr2_-&zAa?`RnyRt=He#@#DgOq@RP~>-(oV{)s(%&VQlmgqQx3P`xY|{`?n~@vqyn z_k!==lllMGs=q*W;7f$RxPsv?DD`!G&HuUIQJwJoKPA-sgW;e1ol;-s|J`q^{+-*~ z;Q7D2z5Ttd9Sr~6cb=m@`n7)N|A58?uNG?k28REEQh&YY@AIqIzfR--PQ&wW6+Wu^ zj^UsCJLjl>_TxAIGyZ>}@t@SV!t-ws{x3Ti{<)L$`~8>c^)KAB2i*7fg^%xG`1R|r z*Z-92FX;FZ;a}6w!SHL>U$4i%?=(FBPYEATeaGCdC#6d_FUC> z48MN;HQpQa`XA_cwNQQR{9yRC>#x`U80+8g{9A?W-;UweufJaZM<0J>{Z;>GSpSCS z-yr<&G=9hMyVif@{Oa{uzkR>Z@gEDde*1#qf1&K(mGi6DYyI{qXBq!bq1JC-FnoP} zv2uRfy6w}wi*j82;x={mS{(>$QIS-rVs^ zLapDvVE8wmqyE{CzgWM0e?{YJ9rt}ssP!8d{;!nrSNz-F{-V6T=7A-_H1|7e4QyHhwVtImdtY^(*sl z<7S+U8w@`k|BUqihJKImc{fPEdRH*KaCQD=|LlFW&YRW@jPJql!qxf}{oC9BxAq$A z1YZ1{tmDqQw(INbS^o>)-(P=xd;1yf{fjz=zwrH~er5gjdY!!=xvb-l3;(2k4u-$1 z)EE6v-`B!p6hzg%yay5O4n|9{8-f29BSHNNmi-X#5Z>|po{e}BFH zXSDZ!@JCc9jPJqlKlmf1zUXItnWxuT>*n*^G5oIeEB*I{s=q*c0KD)vW$(YcgW-j% z`>)jR|Je5SH~$BH=itY7>e}xKZ=BZu-cL~9UVq^4?qGP~YJHji7x(Ph^Fz#6c){zp zx1ahGI~e|l>i6H4{rg4f{-F=49{d-=FRWnr4^75D(Z?4u{+G1=L67h2rM~RnFKXZa z&^t6P__XT3e+9#@z5lg&XPzGS{yx4i{5j{}^WU==zv|z^dNmz&{P14S)%7d&zx5m2 z+rRe{+uI<&=eIw(gW-3rf2sfOUu>@j|KESE{Q4(%kl)v?ulN6ZKiI|x*~j1a`#Z?^ z?fSZUo!R~R&daA8UVW#&%kn(E2ksbNxSW5#e?ITKdi^cBXMk^44?nzu;cqGREBjw{ ze_8Lnb^igi)%IMh3?2+GT#n!GpU?YEjdzvmLEV2ZzHtS^UsdW${=4}5H2>dKo$xB1 zy^CM8gW-ki$N%@L|CbtHc-0G3uk0KQFI=rJ`R93GRsBC#z3{3-s{c=RFuZWJzU-gh z{T}PLy$xQi_q+e@YdaWz{rYWh|J#49*Wc3d?c3Ym*sGs|;n%L8>TZ`_?S1fs&eAuO zzk=b{ub=A9XuPXB>bb!;ls~QxhF`mWs?&Rqm;Y|VtNw)Qy^amTuU|jaDRaL3UpBnz z1*&@<>(?;+`t?)YKV$tGUUf)ydM_Cazia)<`d{!Vy?=SPdLH-%-ADe^3Wk4oS^rXh z**|Rc;PcfpsSomd`}NiRvr@mk{X72$^&P*kz5T6g7{6oqwd2?N=ik4*{nh`B@f(ic zTkFgDzu;%~?D^sSn!oTu<mu{+CL9x&OcL zf7k2fn^Aq}3f;ecI2gV@zc2b9_Uc!Tz>-m?e8uiro0+h6`c)$6&R@loMP{TvLxcK>MH z@3DRz)d#=)j$c3}2sruO0vS zM^*pp>Yp9gjK6Yzn(n+Vb;0oG)Zfp~xBi&)>OOCj|KED6eh!A8-2Yeod;U@F#Xpb! zhMULN>&Q%J8}9qttu7e;oceqJy5N77-nZ%g0V@Ap@UK=d{96C@`j@xy!RQV$e!sr# zpFMv*i~5!I*YAIi^xo3(*M!^pIT*hBzf!-w{k0?dyzj3zWZ!@7jcxyf;g9{*a{kNy z{pzpioameyb#A|^9Lo7MhOg(hj8DJdoTYE9jvxM<{iE-{XHj3rSHC~0&xyVYep&NB ze+9!&K0m7C@7zb*eYMSNm;ROU^{n<6@wp-Qtrz@OyN`k4*ZZ&Wloz@G8g>7@?0Wqi z48PX@Hm>wp2jeFPBp0A>m;ROh@vQ3W{GZbA|5^PW@XH$iFRWnriT~So%BOE`Z-cz= z-1EQ=hClYrvVT|f^Zu6CH+;pf^8R@n>Tjq{c;aH=KiR?XSAXLi^?m;{J~~0h{raEY!SK8Em-#=7`a1vr zQsY0W@r5UTOsMl841e{bMgL@c-8=ss`Wvp%zcRjF_hI~Rn7Uy2_5Q2wRrufV#Kl7G zzhL(Kk9vCF#N%vK1Y4u|4(VZAN+0A z3Agm`0iOEp9Snc)w@dx2R>x<&gP&{TZaq(^y$}q4@N@I}txI~nK6iF~F#IK@zRiC{ z|B>HPo%A138$$oU@V`~+7y6Ir{l9(t;Wqx!j^U5g=QoS-w=|&rdrcdED;WMr8GliK z-Vf9Qm|R{tpcQH|F(Qf40?c{bH*h82-ci_yfcL%)I`HKL4=(SG4*g!SMC- zkEQD`U5tPDm2LdPoE!89!@siVUyQ${ z{KNQ%=)W327=EkfpGEy)_9^F`;_@}ewcqSeBHmx@!6-WKj(+>gW)&q-$SeuKte?NP{nPXB*+1U$2T1NXtItA$n`c_S~u4R!%y-Dy2&3#^-uI` z+cpe8$sdeQ&H%|Bj2{d?%OCbl0~%k`#wCB)$MBQ$W8EKU_2drg4~C!Q59?Q-Hh#M4 zCx0-HBjG3gn>zA`QTyKh2g6VDhxOmw^}n_24~C!Q59_|Z>wjn09SmRlcj=$@UFXdB zo;E)D!~Tb_=WkI@{_s51H|>8g{3L%^zxuTCRb78D{G@-|_Yb!EE%iy*xNbX?#Ao-(R-=Lp;ihj-C`h(#&>|b(*=b>|B{T;*4@`rst((1___CFYY zL;oayc>X#!o_{cW-MT7=D&Np8ihDA0WBonSZ*2AB<1V0LdNB zaUH|Y@`ruXfX3IfamgR{G5qBGSoa57J^91>gW)In!}`^yjh}A%$sf#v{L!wL^)LI6 z>*Nn3`yT&;;V1dS`fpY}>+n_~{s+TP@`v?Z-*vvT>kfvm{kz=%?7PmH@jY#P@`wEo zU(es7p8R3`>YLUd3_r;q)~`Nod{x&U3_t1L_Wgscev7_||H1H+{DE%rhf#eK{p1g0 z_(}d?eDa4;=Z5jgAI9*te=qzaf7t)ev~kHF_CNfje_J>ElzDu()eQ_k$sgAJbE;z= zIycrG3_t1L)R8klatHOn@U!P1*3CXe{~NphVEDR!7w3=XAJ(sPWBtMKllvFrk~2VZ z2fhcx&z^r+H~SR*n!oo=F#Lx7OU|%D`UHDJ_unwIYj~@)bVgHgpJpQeH{9yPE>qq`@z51^82g7gJzvK_=*ZHyjVEEeq z7V{@(P*3ilJ{W$MKX_h3&hT>+<&UTT*OouP@Uzcfp8mgD{s74zPygE;B!9H)>+fG4 z=W}gbatC=QNd9Qo=k|=-0Mw7=DsJ7?+#@l0Tf|I)Y!%y;u^{Y=CKP{C1-|yc&iZqgW)In!@93;sOyPzDkJy!SIv*ZQnoG>bKN4?SC-*B!8fr{9#nzL_hh%7=DsJ7@z!M z-=^+EDSyI%U&V*Wh;u>Lm+@jn>8?%&e?t^1X29G-tze=z*y{$=04)y5}xFn*By z(XMaM&pyR}=8yhh_znA)oZ)$JZt%Zj_*wq2??+la`NRGP!*A%HAS37F#Lx7Oa8Ea&JX&7;cNd}%%7Y= zJ-LJWVEA+9kN)o;zWt9|egMf2-~N|7NPcM7%l<3lfBWyL{&RYrklet(BMF9|J-=|> zCB0t0yFM6xk{{4VelV)}{NPh6YgXtK4mLKe!1~k5=jZ1#8kKrf# z-?~50>d6n*9}GXq57w_fYy7lO{*xb!;V1osBR|;x z&j{%s!SIv*Yu)Tq=JDZHKQR1;{Y!qZe$Ea0gW)Ir*Z$MzbA$e1_{sgpzU%%Ck{cL5NPcM7H|S@d;y?38e=z)p{Yy@; ze$Ea0JBFX-2m5}c)sr9We=z)p{z-oD{5dzwKN!C5--Z9=2kYS6u>QgD8}={x!Qa~B5J}i`f1H<1} z#xMW<b_BMR* z;M|${ZDoO{#C0# z8VvtarM~pfr~YI8&4#b&`IqqEUg4kL!SDyZQtFHTr(UZ1CsZdqsQ(V-sWu>Y#|NiNzmuvjbYh2;M3xz+mgW(T+ zzKmb|JNsvwe<1#y{VO|&f9-myFaDkVPn&-r{+)g24&q#Z;@{c-W(V=FT`%Jo|9D=EPoVv~bO*!F_TMwV+x!FV-=Q7E zzjnQhU;KOKtIa>q{vF#v{A<_GQQ!T07W#{S&*=RsK7sb{;0}hL?Z0RKR`*Ycf6x5# z4%$CoFZ#>=dq(SJpIA5Tzi0l*4u+qd-)H`6_fLp_Jcke3KVL87H~-_`A63_tac{>A>If8ihdxMTR~{?mHdC!zhLf8wJs{M5e}>UHchp?&+$cQE{{ z|DiiNqdORWm;UOX&WnBG+~6O5tYi3@e>`_#9FTE&{t^toYy7hRp4NKd6Nqn5KedD5 zXa4cr1)o6txO^-?GA>Y`ggPH@lR;qeqjg0PyPF&>#zQCPVkR&gKzY)j^U^NeP8!UXy4e! z_{YA+KVM((-&0yId;;wsIRGDp;b;EwxgkFJb42#vD^%Yx{M5fcy8hzdQ#vpB1ll+H z82-^0IzRL8sSoOP@(IK@{vCTT{OtTbMgPV>)=j=W_30f9KlSf#sviG@`1aIib};#4`W$$i@88aTPOsPdG^5_X@&1MPamMhI_ixW) z{Nf*<_uFsqr=RduT2TJ)Fk$LAip z|FUoV`A1Oxwd?1o@BVTBW&ateQ-1L80mD!BAGv}3XVktUKd}Fd;V1j=S&U!&OW!xj zH|LNb{Y>|VgU>(5{PX_vA4;!$;=kWv-|+fi_}TfTU$g&=)c6CPm-;gPcRt+4 z1NryI-~F$45FPFMIqLiV{qA2=y`EEpe17*`=?I3O{rh9a<8wNY&+WeZk9RQq?DIR< zUDE6I+|%{J@R!W>^Z6b6^|;si2Zo<~e#iKHP6zV&9peYX&pyAiZyM0}nl?V4-`U6T zljqOY{ef1`=XcZ%3_tn&&iem`>X^r;h0;GT{N(cw>iGQ5sOQG^KNx=U`JMIOtUCOE zs}TLc@HdzBEB)8HuW#e?`JMF#!`IJ0+WueJzx?;t_FvDD?RzkMeSW>D=kq)3*XIt_ z9}GYF{LcFIIfwC8Li`VgpM3sd-#^&uxAeJ#{SStpe13;+KEE^Sa|iVE`JFNR?f5-5%&+qK}kyg*=clJLRenbD{ z^E=O|Z{=^Z2*+@q^(vtRJ7>xt_j@{$ThG`kfvm{k!yk`>u0ld`}yne?R1X z9KN2vMLqe$`qekBKNxt>%aj}N!{f#EmoU-F0bb8gTd z3_t1L_Mbi{AIKfl2gx7pdg*_Q`IA4aU-wP>9t>ai@1lQ_Kdhf~gZ^On$^FZ|>;4at zI~YGm{%F@X=x3keKl5k*1jBFGzvK+-=iH#bWB6JAu(VxSqaCeK7on{Y(C^e$Eg2gW+rc zTg;!FK|Q&H`e683{`fsOyPzDkJy!SIv*ZQnoG>bJhw>Ia6O|=qG;|!%y-D!%zCRb+b>I$A??}!0;RPFZsjzIXCDJhM)9r`%nLq59AK&gXE8P zef|C0y4k1bf1?opgW>D`E&boRU)jbXcUXTg{N(<{xa16w+`;(4@U#E^+Pc}N=x6@u z4~E~cf5{o12j>R=JBFX-5Bq+k)ssK$e=z)p{z?Au{5e0&KN!C5--Z9=59{FEu>QgD z8}={x!{guD#}9_zuzutZ*VA{=9}K@?|B^qfpYwzMVEEeq7V{@(P*3ilJ{W$MKX_h3 z&hT>+sOyPep)F1$sfk>lm1N|`NODvZ~uegC;7wrZ&n@a@Kz!I2g6VD zhjm}y#wUMRcQAbI-{t;i-*wK6?`h+cKkR?_dj1ymGQAe)5Mg{3L%cKKaAAEtG!phcSHZ-wXf9ANKz< zLi$HA{G@+dH~W-%e7MyQ48LLjl0U4UbA$e1_(}h^|MWTeK<=PENd9QoOaEHTpXVRe z|3)GH2gBF>yXc=h|FC|}4f=!OC-*P={;f7Xxr6b8d76{2g9E;fAr74zw>h~KY-+h z@BHEpk{{ajvj58X-}xEUe@?Fxk{kHsOyOzDkJy!SIv*Yu`WE>bJhw>Ia6O!%zCJb+b>I$A??}!0;RP zFZsdxIXCDJhM)9b`%j;f599{wgXD*Hz4X7u{K*g2|3)GH2gBF>yXc?f2kYnDpg$OX za{saKx_^V@2F4GPAKLW|`q`)W&-~FJ48LLjk`t_-bA$el;b-~5z8`7z*O&JXhshOhf~;XnDoIyg71e=z)p{Y!rE__y})gW)%> z19ItkpLfp8J0DU$>S|Rr)qKeHyc!G5Xrwjj;C4+&RYjQ=r8uSxgK$I024(OHuSvaP zm;@)dCJeJ$Z!k{Q8H6xNa8scgCrwNc+QANKHl#ubk%q(xv#P4Jp(LtTh}0g<*IvKt zzOQr6Jd6h%htY4y z55xC|FaMC9|JiRvzJGmPe+MXxUVZ=i@(-(?@kPev50Qt_Zy3Mzzmi}0oHYLNxmWyK zFnaO%>B}G2`TtUNkk9S^>I$P5pP%-)8E32G|5Y2G?>%3CRi8iZ#v6OJA8iL z$Di!yeWTUCKaBq5P(SWpSM~jkKU2NP_g=2Ncgg70_g^l*t@=M!y~y`pt{ho1diDL6 z%Wt*sk3c@}eC44f`Tj^dKJ-7{|6A|BU4Q@l(dBnE{-0)*E|{{k(`z5dW_I=Ov?8^Y7Y;?w@G?PA_Tye0=DC zn19!Fzw8tD4gWr~Wb|tNUVE(jC)z)~4j$S+A0Nga*6$YjAN|vMu}`cU{QLBh(JTM1 zvVUp*LHox%W*#!HyI#$|tGZwK1nnRDCq9bNEB~&(q4PA)pncn1GWreQpBwz!LjQw* zSG8X73EDsQF??iS>w4+mXLTMviTK9rA7S*;Kix0;#C?-*S6^B(dg=Ww--`K}Gqu=1) zu>SaYi9R9y^EtFI`VIXL<8PsU$S;e}y=h#2?(yf}LVlh?FTVfG=l1yd$)xUg`o9CC z7e7B;{{@|=pOZ}e{KU^M{2XOQFMfX7!uW%K*M7hGZT`5%#s5(Eqa7dS@8I9!eS75= zzIV#`AwP$<<2R{K{`-Q?*Y`~M{DJGVk1QCy`2Oj&XLLS!0qXmw*R+o<7`^!ZsmIMY z^gloT;NR-=CBAXJ3(CKC{3h4me|}oL@1W;j=AYkx2<2Zpev|s{AGv{fW>Tm8;C}~3 zFXrFXPwPC*GgI@9{J{J(qZjjU3*!&|E%tpq58#_~NXYX5dhz||#rI}D+2#%BGk+lS zuN`0SANw@(&!p~4y&gs{=HHdmI*)xDYW`jM^%X`h=HC{^AN?gFDU=4kNe-s`1*VApJ2Sk_y45+e)|Vi-x+=V=WlfWan--kcyL2h zA7S+MpZ{&+>HRT}d+<*24DX*cMqmH_S+BdR^JK3Nqu(|7*RJ2|Pv@)uLl--*i|YSS z7=7*gXF6Yg>HV?h+j~Uy|NhSC>)$`q`5OP=p-%n3{R^Y7ef_u99Xj8sweSAJ=xg6U z)A{s&uJdJ4{T~XWuYLca)g64I^VwE^FpR$T{WG19|0g<6i})W#KQY|DmFF*=Pydf~ zo)zgoj6S~qFuDH+HKy-_o`dXv7=3*Gcv64pj#hu@;a0z3^tJDw>3sU%-ub9V|6%mC z??1GF+DKesiHm*M3>+v_)cQt+(ef{Tu zTiw0PQ~Kxn=|7ANXE`;+yI>!{{^n=O*)1{co~vxc)Hu zIDaSpZ!%Bi|0e5)@x$md^LLZ`#P}!s_+j*!`?skvUC+Kt|6%l*`Maqa_s_ba|1kQv z|4pu6?@zg2KWDi>%7aNS+KUiZ!QVe}$@&>#83)V@jo zLje5*gCebar1(Tn`y{?Dn7>v&mI z{|iPh_HXLQAExHL{STuT`NRF|-!M;$_#Z|u@`w9=tc_3ZaQ|WSasQsoU-F0jf2NIp zFpNH~zezp$!~JXDbpK)WB7eAl?bGI?BL0Wbi~ZZaKiBHX9rizrUgQt@CV!aPH|d}J zVMZ_V2ji1JOxBJ1Cx4jH$NhWaANj-nzba~c@`o9{*uUL3^OWn*zUjWh=ri+|{Nest zH}oGyFZOTy&psy~$Q{&&MLhyBMl)o+H;XZBC> z2mO;feEnhcasE!nXP$EZSvQOyMxU9#}S z^dCka_rJ;YlQXC%cTgWjuky!^&$Rpj$sZe!FG>FB$5-$Fuzof^+VTe^e{6heN%BWO zzFI%@&v@hvNd6%2gwd<~;kvtez3!Xq!{|l+pg;15seP0F$scC)B7ZPGIRlbA7(a|& zUjOb)V^uo!{|l+pl|YrseP0F$scC)B7ZP0`NL%0 zsDJW@8GYQpC;lD$vd&i@((W}=#+&A--{!fYcA4VVN?_~cZf4G0v4gH7Fi{~%KC1*f#2jhp)#nt_La{qY! z!~Jvp^dCl_nZKKi&pcw?(0^xiadrI3^^-sBKfd9A7=32{B!Bq&SvOpN7=4_-)A7ID z$7kIzei(gb{*pgD{>eUm7=7mckw0AjY_AWa&&*%)hy7#y(0>?x-2W!mPtKs8+(CU9 zy~-cF-a^iRKOp&I$0wI0fAr(4^+W%RN6vuc4)RVIy~-c1 zyQ|mhzPUb(UgQt@BY&9MH|d}JVMZ_V2ji17Ai2Xit}}X-KkS>a4r@yQ?dKl-@-CiUbG_y2IKNj^KNz3}S^dCkqp1djAM{V|@b!n$$N4)QpLxpotQ+;eVDy>! zOaAcqC;Rwe^qKod{%}3}F842tJ~MyGAMT&^L;qp)asQiKKRJVXatHNc^qc07{`rS( z-`ny7BtLBXktN9w{rKAZzwKzt50Koj?GsCqANujK{@`8hyo2)H^4~!p1ukwR^(>yniw{gi2_Az=f|K0cbR!@F#-(mD3Ke&JGv*yd9 z`X@h_(Tn|;I`V_5d29c}=tX{T|0h((eK;-Re;B>U5AOT1Ha_{meTUJ<{dd^E?Yq{A z`Ai$1{9ym1kLzbrPkwO!+V|Xl7`@03?ti=Lm`9I__#Z|u_Fwz{T&pKP*#9tkkss)r z{9t}ll>hgJ(Tn`R`1f9DxTZr=*9kP|Jmo{1G$0vko?e(ukK%y>nA_B|5GCVhtbFRJM7=?`&b)?+~EGh z=*9DoeSf=+Pi|oRko?e(*Znh3@t^Cb|1kQ@{M}?6<`L@#|2w0LtK(0upZs9|@eTjO z=rj8#`GNk)55E2|`Z#~5<12Vl+?dPX; zKI3Mbt&aa!ZT$Omzjl6JpFi%@-+gZV{nfC3R=$7Hk3ZS@jaL8uF#3~2{kVVq_BMUb zMfKwQc8hN=8GZft*L40@RsYA0@B1G_t(`FX`tQH!{9jl7e`wU_#J6pGNA;c2Z}|Sm zc>iy`|91WT^GDl$OXL5E#ueZ9H^sM>jDExSUk3j+-e~?o{M)&)B>wf|tNY(@|2F=x z`3LcB=X;jKzkYnReptU7uQmT5zU{noN&M@_r}cgPY@z?bzl}d?{z3fP`Q1z6Uq8M& z{^;MQx_=`6ZG3S_``3=I){p-EME6g`zYXnuq5W&eSL;XrKHmKk@o(cROWMD7d|Ds> zZoU7}zfX4mMEu)$eo6b+j<1eC`geEtPqcp@TGIZt|It6K7yHDz!N13rj4rN@KlrzU{Y&c<;@=MDac6XKwSMq# zhwc|XLHygn{@EG5@^8nNntu@gcKrF0_}7oGjz8>wTj+oAZ->?kK0*B3!9La*z4Y%R z-9OR3F^}<&d5f>@_-g;7f4X1xiTj3cKeJ@?(!WPkk58ig`^=Kj#ntgg|8Bki(Lb#h z`^37zH}^1T+b^nK{z3cq-X)_~ z{%xWE!N2WVFZcxQ8~Ygku`hJJ^zWR`!zU5nwlj}AqnG}%f8!tbP4jO%IiNFo>E9XE ziQYh?{@AJ z{)zVOpDh`^^zSa!a~w77=7*cPj&u>b-wl+^9M!k2ls{1*M9$0=imDHgMYkVfPbcZ!w38`qZj_| z(DN=nnVLWRJIq5fdNKdV2h1~*I^_n}!|28Q+wqvr(>yaZ@5m3#KQnqU|F$sx;NN23 zXaARP_^_b->&I93&td&;|DgJnPmp=T`C;^G{;^Lp|4iyX*6U&PV*YLakj~@z4r<xc1oJ>15FeEw$F z%=r|OlxAn%{;Rv%$>akYN9|BT1`WRUmIc7N}Z(W}qjxbCiAujfwJ zhtcmE#&6fZ(m(H?(f^_At^Wn17w?}jKJSx3-Zx|XFnaa=nSDFd#^-%A`xizpUjKF9 z=UYARpHaVH^y2+9_pd$Id|CDCpZCwq=*9aF)bakA`E0A>^S{0i(Tn%b+`pc)%+n(M zhtW?A_ir+P4n5ZU*K@Y}4x^9nKTPgFpTF^ac&3eiFpNIFemto^bVsW{q&4LJ!|28P zXZC%2@BdNN<9`^vc>lq^KiB<#z18zRn*EPnynn`Z^ZuFnO;P^e8%8hQKV$rRFSPM_ z-;8k=j6S~qF!Ar;m)rQff5!L=MlarfaNnAz<_oR<-Z1*i{N?>KU&l+Tr~fc|@&1GT z*Zv22-;DZ@_s{zA)%|aB{k(tX{!jJ(!|3Duoy`AxkM;gpH}oGyFW!G)+=Fko@p<12 z|HJ5F-M{9k`{(*q&--U)^qKj)sqyVU>xTY2ql>HKPp+T$&+I?G;eQx?X8+{eUm7=7mc@&1|XpY8Qw^qKj~`)BT-bwmGQ z^l|^2TtDwqQBPi@K8$|D`&VuL_xB%e`$)?lko|rc7x{z!$RDQmPx>c+n9+;;!T971 zNbX?#FnX0g?3>n!dAyBF4zZ8Xi}mBa&$oJVhx-nr7x}~epHm&z@v^A?7mQx)-_(&m z%x7CY`NQ`idXYce{|TMXeK;-Re;B>UAMX1x)zSaiHtvGa$NhUUf5{*A|Cu)a!7%!` z{wDS05BINq)BT6hi~QlfwNIOmiufN!FZOTh4nEiF$sP7Rj9%mq`X+yv+BfN+{9#5f z@(1ISKTOt*`X_&w(Z~IJ;@?5-)As*WQR9<8%;?4b?Y_^odUA*R4x`V^U-F0he@UeO zFnY0n+kf^s`9SWVJ|utic-=qqlzGJUtA4@gGxK+oahOM}8~X2zF0PJ0xqkA8{l_=_52MfQpX3kv zCx7_*!|3DuosQ2u<^Hp77(a|YGk?h+9{*$?Ka4(e|HvP%f40|$(P!o_`NRFQZsnCSWPwt>Tj9%rBJ;z)AfaH(c-m@h6qaRYw~!MlbRQn!se54m!sx~Nao^`#J^90ZhtZ4t;r`F5j_Y_?l>ZAxFZOTh$RFmjt)Beh`w+dz zAMXEz&gVXy7V$rfUgQt={g~?L|7;s~!RX`uJ(<7c5BvX28=w5)`w)Fxf0KIhhx^yQ z>Hfp$MgDN#+f_&Z${qGUj9%>D)R8~T*IPX~#QsMw@&|pBKg@56@}K-+MlbRQ!Ril`NNDp?%xyt$RGCqRZ-)UKg{UG{_Vb*r(B2jP4^u}pP9ep5BJZyq5m*?v47k5 zH(EWpgZhyC(T}h0f0OGcf4KisBL0Wb$N4+iKgl2NpLIk3Vf5np%f7$e#wT|$en|f4 z$Ls#LxAVvy?mvt^Gk-T3hk3-hq5sb4;_CR5>nDFuPwue)Vf2~(ll;MTl0SU?Vf1nS zPRD1SGX6LF_+j*!`Ah!r_$T}LVf2~%NB(d<`!4q{j6O4e$sg{YbtC`DA7=D%|C?Mt zIfHs~2X$feDu3{L2|2^Bn<#(m+12s~j4rO;|6%>?xvS+5NdDOK!6nHb{rGDA(7(rd zt&L0WAn%0akAA$YKd7-e@1X9R>%-_p{-8hdhk0F8|KtxddXYaEmz)8~AI@=|(X0Gn z-wvq`|8(v4FN|KSANPH})ssKmcNo3MAMRiKwE42AvB@81^kV;}j{IS2-rN5$dXYce z{|VJ`A5M$-A4V_ohx>l4jZf}y-(mD||DMcW@`wF@rj1YjppS(5&OxSoBN`xi!^nZM)@_s{ylzcBi^|4pu+oIyRggZeP~ zP4h?p{KGEI5pn_~KkU-n38RZ^@BdEC9dZIBH}H9pFnaa+h3jkf9?Bo-GA+S_CJhXY!Q-Fo2_?jQNV_3XR!A4Z>< zzvKt^&$^-iF#5RvO|GAuKs~vE`Y`$p`C<6}^Ugok^Zzrd7y174?f=`7(W~!2@BGiI zXMB-yZ`ZvKqu(%o>whJ`@HuJx<8!b0w_x<*^V2*3O6T)AeW=e(?|Nv3(TmSdd)$ok z*BgKE@Aj|j`hR-cw(ro`;rst*`5--%zPf%M*|z&{?9lhkANZRaI`2=Ke-Pikk z>sObIUVVRQm(~d1vw?j7X4h{l8NK@c&90|aukWuwz6Y@Dx0Z~4!}nLl`FHF6x9jis zZ`V(0eBC?9_ilFm`jXLa`2Nk{-)&!N{z3e^?e~_%zkYn}{k!da^AFvs$N5B}Yzy%L`w{@wQ4lF>{59_jvx_V34*w14gR zYX8Ifx$Ri@PqcrZSknHrZoU7}zYli*MEm#gCGB53 zzB>Le|MpyL{z3fPqwE;sUq8NDKlryt_Y0q({rk=(ql>HcgMWKoY5qa`_nsy3uOFY* zcmKA~|KQ&qtrvWP_V4y3qgV595BnEBv47zo^SCp*xZ3~dpYE4^;=XD9?qUDzj9&Vu zJ>Ncw__s&dA&f4rjz8>wTj+oEPwT}#v2L_}_ppz3Mlb!ltNSO~H|8<^F>mp;9bfH# z^iTK8K5^gh?a?Kpm;UWiJ@ZVoZ^xI6Uix?I{g3`>z1Sz#4Zg9Dbw;oJ+x_d!Cx~ym zna7>@*N?CDZ@2CjK0*B3t?V5}ul(EnOU*xsf4kpY694+~)$xbCQ>x^Fcx9h()pPSGY z_@1jtz4j5;!|28LUvIlp=V`w&_5Ih|v|sT(STlO@{nsswKlsP{75Hb$H?9}|%;<%G zi}yWtwRz+BKQxaP?}MNh^N)PMJTs|NZeSjp(Tn-FN4bIdXKLP&ADDk;^kV*PVf?|r z#lFw}FW;O)LiyK^Pv=j5{=BSyHP86|4)ccd!|0WN?9&OAPxH*w zyxaW`^f-)O%)c#+KlsP~$^0|r8$RHp8NHZ)JKt{pnVL6#{VbHP{rIZ?E3f}tzy9C< z4~_Rspqmf2s3-K=tr{RsG*uVe}su>R0?% z-5=`whdO^&^+)tLjQ-I2`v3mtJpapoG0*#9^!3mG*ROwDx%d8GY<%$FT)%$l6Wg|h z(eMAoVf?m!`t@J>nQhw+->EuyO#G!4M!$2YU&#+`yu%xvkBRy@VLuL?-}YR{U6osvu}^I@gMAre)RfKKNei;4m>vjDD%v1IMz{OU-VDy>!`@jpTlm8E} ze$@Yh(O($GpIrYD_BqubInnADj6UvvQ~#N#^nYHI{|iPR=kH|v2Trx|A7K5^e;EDL z(EnuoBb#mfBka2xf5GURb^Qa(Q~Kxn=|7A?x9Dj2CM^3i-BlxHK z1*6aGpGTO#^w0XC|IX+~#`!xPpZQDwtQ-38Jks?eGxPTd_etX);du-H!{~GOk9kTx z`!Drj^tt)VKF9oJ{or31ecb;h*MI-NZ}kuUWUCLO-~aD#GJpK@$Mx%1l{Lv3klb-i z{fE)3{BceFl0VF2;vcm9VMZU<-_Sqfkv~k$|7&{vk^EssFY<@$j`w=qH`j&Hi~K>~ zxVk>hxt~kCx7toEc7CO zxPR@_=2cPslRwPp#r{nl`NMpr)sa7ZAEFoe!+oFC`CP~IB7KL^i~QlfPpgjm@M0Tx z!RX`uJ?y`XOa3q~wDHLwz7NsI^*5;}f4G0`o9;i1UgQt=t$o^jTEzb_da-{~N6vuc z4(h|`RsNuFa)$fYzUlruqgVNZamg9(pLIk3ozbiOVc)e+Lvjb>hljgfWJH`VXVe%wO_{`)A$Ie;9one{%ig z5BraQswaP#(P#Ega)$e7{m_4B^eTUNT;?h3fOSLvo#c;p{3g%8{pWZ4&wXP4pA(t? zVf4BC$2_H;eV6($`rQ0wpJV>Ae(*1hKJI@L|H&EDlRKynqgVOk%BwAZKyt^`FDyy^ zXvf$4cU7;SkUz|0;_vHm7=2uSL;s9N{xCJ~$wA}~GkTFfTz9%O@zj9%mq`X+yv z+BfN+{9#5f@(1G|y{_}|?Gce2*BQOaANEb_#5~i+<@FEy7`<3O)R8mHw^|+fgZhPD z0#hkb^eTVYH?0%%OdFT{VIQLx>xVjWhWS>jBY#l8(2M-x z{#wUN+|LEiTo79s(+`sls_a8@cc>c2Qo2tWq_FeoBqmR%3)Bc&K_|Nsze;9pc{*pi3KkJ76!|3Dqlj|pc z*nfOeJ^90oKC^$4Gu%JxhyFXGSNX%^GEZ3ttQ-38B!9Hy_46nB!~UNW@jr|{cmJ5D z+&}hR>ci-B^Ot>&`OEsjzcBi^|4sZSXHZY>pgxRV<&Sq?YWV|_KQ4b}N%BWKzTUsf zpV$7Ub!HwDzpBS!^l|+S{WBiSd?~p&t=tcf;-SJ+p`{ueZdXYcqoBUyF-=u%? zhZ()dAB=zWy3WV9M?`X5XY?w6*f*^c^Gq9;{9zxX7wd;Qa)$XY!`H#OQUBx*GkURq+jsUk{6Ep^7K}dbf0Ow`{&4?#-sJkpA7=D%{!aE!@`w9p z-Ozs+y?Fkz@0+T_fA(Gc52KII|I_}Nr})qH(|;I!X8w{t+&}Av{=?|w_>=1=f7pL~ zQ$6{^j6Sn}k~7>t>xce3qgVOE<1$ZK2do?V?<9Y;_!M`y2xc^Q3CudMk?w~%5UgZxyZ$i$1|^v|{ZL2FFyCr*dXYcezxHYKs;K_S zA7=Do|E7-oVZPGp$REBB(Tn`yzR&7>uH$);zQgE6{&3%?RmXjJv5mW6^l|?l_D{wo zf0!5A_~Z}!AAMYZlX~)p``5nd{=?`+{&3&gr_HBD{12lS`!{vu3`p*vK8#-F5Ber& zxPR@N?!Pm7l|LAloZUoiU2{3U<* zI#@UApZsA)FZOTy&OV3#CtBTt(Z~I7GJnV)?qAQFTtE54j6Tla$^J?HaR00u`VXTQ z&tLX^Q+4>yzKj21^zr$B+CTFY|G9qp52Me_U-F0hXWh_$7=0Xna{c5F`;Tv`Cx4jH zXZBBWhWlsz(0^z2Dt~xf<|*rdbwmH1a`B3wg@6#+8y~q!)JKpQ%yX(W~MSh@f@`I^;kG{zdX7nOIF#gf&I$tC=Fn$=l z$`AHU^V~es#w9=4zv#vMr;eOpzSZi;57aO8B0so)?X%`pQT>x2%;?4bOC9;ae5KWq zAABF87x}?`pVj$X$MYh6htZ4t;J#0*j{ERp8+XCz!OMdWmux`{p`N51{?7#M% zeGdOmw7LbOkNe+b{*WKszn=HFe)5AEeVo6O{geFQ{#iHlA4V^pf9(6F>hPca7yrZP zu?SH1ju@IQ(2Z^7taAMW4q{o`+cOy~cm>fnD9e`STye{-lG{bSsW z^Vb`H@b6nYb^X7larM>b@WG$IejPo$|JR1`2mijM-!Xts5dXgQUzUu1gMX9jf9Sq; z{SRrrTzh@nwgsc#H;g~2fA9;v{yTepXY>cZFw~Fx&mXD(zpZ-s_r*&qj6VMUfpPqo zb^dp#4t~F0N87c+=-)AnKiBYI$u7S^6%PD=y4dm@bB8AI$u7S^6%QG^f-)O_;>C5biRBt z<=?eW>v0&p@NWzK5B^T`+p(ANLENpnSXh+bfJ-`S%%}k55p(@&4_C(JTLM zz5mfa)(bvC`F5H8ER0_H_mIxVCy0N{<1l*VANLENApZUE3Zqy4y;tYs6U4tCU19Xf zzgzEr^pEv|PY~bO55nk$fA7Am^W~E%-`-_DhtUiF-sOJDCsY2tdr6PO=!Jj0UXOpK z{CoGR9*5Bj|F+Qo;NQEf7x`q$w|Cjk!swNMr*u9(L40E#htVtlxL^1L@$DB@7`^iE zq|V1Dh;Qdt7`^iE*83m*W4+)L#5eYXFnZUii0#{zv~n1FnZhapB!F48eTu;_ZIN_rAgf%^nV9N zFJ3>r_9dOC*GWyie#+~IypC!{FJ3?0!uW%KeBThi&0o~G_#Z~U+3&y2?_c_Y`jt<7 zfAOJz(f*wD9*5Dtf2bes{}#p{ z{Nwu)_-D#De84|5dg0&Vdl#RTkD5RJ{zWKX+wq(9-(NrFdn3#x%;?4Z+rs#Rf5XoU^36ZLhVri+zsdFY`M3Do=x5rz;e6&1Wd60| zH>vOb@pBXN&!q0Fy&gs{<{v*dG5<`>JAQs*{+ZE>`L~7f2mcni_oX)P{BxN6%g(&I3C zG5@wO{@|ZKKdgC{&k=LItY0&Fv3@UoLjB4o$h_m<38Pp0AHR2xd1g|t{nzy{dNKbl zeNyLXo|&3=m%gmWVf14DZDIVuzdUc7@(mySxoar@+VPvrpS*wbWb@DOpKAVaKJ(9% zuhz%s-<9#VZQK4MjMw-YN8`Rf0{_jD?Q(f@;C^tGSg()sFJ zpU-N(JtC_A2Roy$|NNHD$G?-ET08bHjK22s2d(a?o^$wjj=t6E7mU94^IJNf{pFX^DnLL@H3sSwEDwg^tGSg()sj#w)1&W{vQpapB?VsWd0mItvasbMUno) z=;P;KCinmFvu*st7uxs>Mjt=FFsVQKXsbV}wdnrC=xaZ}rSs|g;m)T;`VXV8{rpR- z)917N?;N?K)rZm7e|}5n%YS`7tKEn9iTK|cef{URbiVr6=d;>%ux{wTGy3|^Z|QuE zug_7P=kH|xKX9sz|G@KY`~{=0{rpcG_sC`^`!D{7(Z|nE zP5Wn_(m&Tv|6%l*`TGFl;6LjI|HJ6x_>=2Dak6{BeHK-y8YdHs=pW?%1RLL-I#IzUu!l|MsX~ z@`rg$d`6GM=;Qhu`e!`yhpBnb-~S_jn9+;;;kx6!UiZy)Ve}$@&^P(R{D7$b$scC) zB7ZPGIRlbA7(a|&xTY2qgVOEzH6U`HJf;8hBK?Qa$N4+iKgl2N|M@m9`NRE3FP^{b z`=-v<_~Z`zA4VUa|EK*kPwAiQrvEVd%={&PxPR6S{)f@W@h8_${;>b}rh4*+8GUB| zBxksP)(`!6Mz8XR$7P;Ap*q$L{dbZ-`tfr9l0WSKIZ@-2Kg{TJ_wR*X&%R527=3R3 zs%Q7f`oX_2`ndm1{3mBnPwt>Tj9%rBU1wYVfaH$dA6}CD(T}h7Z}*RAzt%c4kBOhw z<1qTT{)YY;kNjb3-jjF8A7=C-f4J^=uh)HZT^PN{AM{QBFtu;eKl#IqUgQtPCucx% z2jhp)tNdZ#v`)-3ZCvt)eT-hLAL_^-ruI$h$RB3(B7eC5mvlbYaaC0R3q~*YZ|cY& zrslo<52F|P!+mS+na_*#A4V_ohxbi$MrX< zCx5tq?VIjDj9%mq_pg20d|Jf+FnY0n+xJ&nJ-LJWko?h)m+P0D;r`zz;(urKDu3|r zlQZ1^2Sobsj9%pr`~G?xpWMOtA^D>pulr}7>OPV?s9!Mp%={&P_&QiO>Yw~!Mlben z>c}7FiB?Dc@O_9r?thc{!|NaJ|GY^5Vf1nSPWDgohx=#U(0>@cc>ZEsUjH!Jckw@r zK0g0X`)8iwKi5tFVf2~#Oa5^GtQ-0dqmScHuAls2|M5-rGHvaQ}CR^xql1 z${!w=dCEF?UmG_hfAr(!{3Ud76{htaG2vGY?ce?aobF3r7={LzoE^>3Hv8u`OKCTh))Kg{Uk`WyOZJo1OB z|0nN|Kg{Sw{&3y#Ua$M+x-fc?Kj@qMVSYeV|KtxddXYaEpPT{79gH7Fukwd|(>gKF zv~kHF_Ah#|eyAgVnA$g~BY&9Di~QmKwNIN@MfFeqFrydyH+AF>Q}f>bhtZ4t;l4Gd z`MgN~Ve}$@xNp^%FShZ?A?`o=xPK4(C*zVo%nPDw$RB3(as5r|$sg|j$yUevFusoH zMgDN#+NaH@Mf?w=7yCDLtGg3)K@FZsjQ!MaiZ>_7KOo{>B3e;9r4{xMIfXWv!-3r3%tzwC4BpWI>J!sz4vH@SXt2KD3)>ci+& z{@D0r%O8;3vGYSql0W+KRsV<>3pu^s;K@Kj9%>D)R8~TS6V%v|L}c?UgQt=tvPExFVcS) zy~rQ#TWijIv5iaq@O4BV_wVWaeOBi`uIsoUYWxMGkLzzzPyTTKPqupUhp!`gkw4t` z!#ZC+k~`dY7`@oPsZ+jiJ-LJWFuGW-Uvh@~*S_h#JEK?mgYn53?w@tT{OOEd!veP;fWKYSf;iRz#HVMZ_ZZ|Zpc!_;$t{STv$``={# zkUzLia)inCI&pc%vux{wTllvi8;7e+7g2Yr)2O!Y$l^$5A&^7 zPyXQFS?ERnaQ`pqe6HiFsQwp>UhLo0kv~k$d;1?oFY<@`KC3#e<9U(3!{|l+aNnm@ zNB=L1^dCka_wVWa)jDH*a)UAMX2M)zSacBK?Qai~XBA z;9Ri zswa0)zhLy4`Ah!rb+B&aANj+KUhLo0kw456t&Z10d>^8Z``={#kU!l2d6E9Z=;QpI z?4RTh_s_ba|1f&-{AJ%aRfqrVyZ9eQAD{oH{Xg95$sO)Lj6O4e$sg{YbwmGQ^l|*j z^^-sBKfbA+{9#6)**}#pn*Vo*x_wy19FG^?<9Y?uOffgckUDZ zpA$9yg3;&hAM=!Y_Fd}3=yUUzeU5p|`oX_2`ndm1uAiJiJ-LJWF#1jNNB{oE_M_Ur z?$q~R;4$&TD~vv_pJDv%2Xy|1>Y(N=-=|qHdXXPocf8ljf7gf6i~K;}Vw?izQgF_{yXe{ zjLZ8c=7lysIl}%&AJ@;Mp8VkcwePwAFnW<6-1oz(qyMKx{12lS`!99m1W0b6K8!A| z?thd1$qDXX`=0ynj9%pj#w91Xf7T8CcSf)BgMEL!jZbc1{E+<6kJtS(Pjw&34b(3f zeP;fWAAB8eiRz#HU`8+YU;EBJhyQxswEtoBasQk8&pf67^CJC+(Z~5a*+0n-?w@r- z|6%mv`G;|jY_{>q4fa2bK0bd>`)8igKi5tFVf2~#OMYJo-(E4Zn(0^xiadrMp$A4XQtOM2!{dbZd+*gqw>_7L3`*2Rw_zOm#yMN46 z>R;*gVf4BA%Ra~aW&Pk^7=7ITCf83+pq|`7eHi_Q{IK%-b9FwyKlei8gJ<>m)8ABm zXY}>Ie^_<8R~|=X+&#a#Wb_-xZ~d?2mj}PDe@Fg3_@6}izhLyQ5BGoN_dn=--RlR{ zv-#h|kLqz4eeL(hbw1-}oWI`qgMYXA_YQB{cAI{0vwqL8`QXos(!=$?e^}@3ZT><0 zyG=cW_}7oG&i~2vKXhNa{)aSQ_IyF#{|=+yH{+jb@b97T?Dd`cy~Ebm|Ndbe|2g&l zw>$s7`0IKcMqm5;Z*=}=bpCgAe!r->cz+mu?eD+Q`9GuccX$3{@wfFjj6VMUm~sBy zdjDj6VMUn_>Unvq$I4CsV%dxnGaN=!Ji~FYA2yWXiWa z$MiUiUii2BTRLApneuJVKhWbadg0#|`XBt;eO2ShCsY3I(Q_6)n$ZjYcK?dbmrtgA z+x@$G97eDF(;T;dP`>ScZH4&Pj<2r2VgKFzd7Y0>P`>T{!xcs^{M$nRqknp?wSQ2) z?S6HI_}7lF_CL(O-QTD4@d@JFkFGF!>wJ8I_{Mw+((^2wBMJK4{|=#_tu>wJ8I_{KaAqgVcM zzwim-+nE(cul)Ov&c`Q+Z=YIW^vb_m?|<}<^@2|j-`Eer=!Jh9f3EZ8lZkK4<1l*R z-v;+fKAHG;mmY`F3;#C$NaxEZ6aVhk<1l*R-xm5G{M%r?$R`uu*bl-~@Zv0m^A;v4%x7`^as z$4fe2KAG}u2lF|MUii0z`z4=D`M2Z0>Twvo@NdTpI$u7S@^8mmdK^YC{M$nRgMT|% zFY?KhZ#&q}!swNMCv`qPL40E#htVtlxL^1L@$F|<7`^iExX#BXh;Qds7`^iE*83m* zW4+)L#5eYXFnZzN_IGr?d@}Kkc^pPB{M*j`l20c7y-$zB=!JjV-_-f?$;7`ydK^YC z{M$nRgMZsuFY?L6H}-=t`sm;I`q_{4{-OHjd-w~|e>*z}mwXKLQ<(*DQ%Gd2JE@#+2R>u(F= z5B?25FUU9l{2I!?ethlti_eYf=MUx&=ZE;(k5B9S{Nv{)=ATLZ$9p}DUd%s!ZesqK zns@yC#QZa(7xQlm;}8BVa_=YGyyJSAf2REF$EVld@88A;bid`3sd?kizl70?`A1%5 z{+ZPMm>!4GzrKF|+c>84HP1}VyNyriaTvYW|F$sx;GaJ~ET8f@Vtl|qGkURp`Mr1e z2bp*LJ7IKj>VKbq{N6q0nMu9&U)RIv#r)fGMCWOqnVNSyp48(odNKdDF#h15pP%KE zDc|q`|IFxxe~b4`543s1zvK5Gp?vMfSN&Vb5B>KWFaG{OfBw?AejbZH=AV`RTm9XC zukjv!-?Zjm82#?QH{8Eg@B63oe`edZyT8);n)pk497g}jP`~p0*~Yv3i=A(X%JX-J z(Z4uT|7NS-d#KficX$2nH;4L3{|EGUdby4R`n$dKzhLyW@1M7E59sf%;@biJ-Cp`% zF#7oZ`DFaN-%*{$-+Py+@x$nMzcbUn{!X#`*WWF6|6%m;^8*wA59seSyMO)NX7?XP zA3r}aso$%=GfVy6kG1**qmS?ZPOkre{?4@f*WbN%|6%mCpZ{p%9?;+UcK`aj*X}=z zzV`DsIv?LZ*!hHr|6%kG*8cB*z11Js-s;2X`^V3JO#Ivbs_K|O`n%Wezcc#&@$*}g z`n^xJ`n_Ln^$SLSYNmhYseIV4zXQ$nFBpBCzmxIzKhwtF&-&5)UoiSJ_4s>#s*S(* zxioD7Ip+V{t$xAi-RB#)&D-O zU-b({pP9e=7zh7ZKlI-jecw3#UAMRWGw0WY9e;|xL?%xyt$shLri8em@!}lTj zxc(;f`(JPMi9Mhy21a>=vDr(@9(sFatHMx`J)}L_fPVN z`)A$Ie;9q7zZ3t-AB;op@c3c$nfXip@c4)N_+j*!`$zt8J^L>GhtX%|FZsj$vwrX| zj6Uvvlj|pEP*3ilK8#-Fk1Mb0`Cj=0k~{djd13S_fAIJF$RFlw;_vHm7=2uSL;s9N z{xCJ~orl8cMgDNzo2{PQL48R6Xvf#jKl&zrnA$h#pZsA)FY*WfKKaAEC~AE2hZ%j` zzlZf}-?UC3xr1>-@<%&9)BmY<9{Iz4htZ4t;l8y`o99LP52F|RH+AF>Q}f>bhtZ4t zVc$1Z$9>Sg>Hfp$MgDN#cee4#9qvDjKJMQW|H&Wr|A{s}`NQ`i`ndik_4{9M_2dut z-xL)d)WUldXYc4Zt{nDLDc*sf0)t7`8!#^qh;PKg{Uk{yp)J{9*r}6Pf>E^kV;Z-^^34<4mhxF#62=C4abo)(!oK(Tn}t{<52F|PgF5nu z$@QzA{9#5f@&~@{V;t52>jwWjqgVOEzQ5Dz$sN>(ci+&{^0M#k~1K=gTFr;Mz8V*fB%;JVZJ7Qt>q6h`ndjv{uz(_VQStx4~5Z-{NcJc zTRpjh`jGt5j<278^iBRSwQtfl`NND}j6V4#o}1 zAMN-||EJn{D)R8|-&3pSFMlbS*ecx0a_d)xn`wycR z`NMtR*~TY-xc@NvxPMRlCx6)gC))Vr58sFAbgiOl~nda-}IZ{{i2ai-NT7=32`l0V!(>xTZr=*9kR|JmnQ2YTMM|6%lT|C?Mt z`NRF|`P06K(Z~5a^?##{PyTTKVf5np%f9RR-(=s#|1f%yKd2*rm|VB&$scC)nfbeq zaaaee8~pE#UgZz_{!XhWcTgXaKictn|0I97f7T8ChtbFRJMo|V!8qg&j~_;#nZM)@ zkAJ9-A4Z?Kf8-C>v+vS>7=32`l0V!(>j(eB=;Qu3xqfm6_2drf!{}B1;P0)IGa$Kx zzuO*0ukr_fKc4(yz9xRPa4A%>OWYv46X7 z<|)^4rqwSPeP;fWKiog-hW^9o#r|#o+2>dXdfv7FVf1nTn_NHn!~N^|)4qq%$N4+; zf1{00{&4?c^y2x;zU%qlWZ%XAFnWd76{hvbiTeEs~RZ}Nw!eUtvl zA7=C-fAH^UAMX3kHa_{o{fE)V{d?j+`NRG{ z(Z(l#_&!7**WaXm|Ld)u{NesPqgVNZ{>d4>jypvB?~GpM5BvU9t0#Zh|1f%yKe%r4 zhj~HN{3Cyu(Z~5aS-<2DUkB?({gXe;=;Qu9@sIpr|DO|?|6%lE|90QZQ?BDot6wns z%={&PxPR6S{fE(u{oDSt&#?~PZuJXBANRk>^^-r`zn(wsdl-G3zf=D=+W6!T_a8tO-^wCcZm4k8NJF6)baUIQ~RF%52F|Pf$Jtem={D{Kl#CoKF;6C z`XxX3I#@UApZs7(ANSvhf8+=I|D1^bVf14Eb>GZWuH#IrUoiU2{3SoQf7T8ChtZ4u z*S@pQaUb4p^$SKX@`L+kp3=Xb|Ll7heVo5j|2NwBu4mt+|1kQ@{3SoQf7TEEhtbFVZ*u+Q z1nS8R)Q8b;$PX*Oe^=-Kpq}raXuM}rpFh>_;SHnT{lswp9@)10Z|vCCzyI>>Csfb) zBI92B=91BG7{B$ul3(um=c?B{zUQY!`L|&7e?E*qet-C5I{$}M2mg2RS5_E({QmXm zALC}6zux$Rf8W}v>;FNGyKTvP{>SUr(ZjocaOi*V?_2jY{~-Q->%T0Cf9?2CKfV6n zY1jW=&6jJhZ`&5$)Af6PXQuw)?%%Jr`g_9Y4-fU@^T!`;+xB<KAH0G+E3_l7`^cC+M_yOKAH0G+Nbn5j9&P6?fZ1T zd@|+VwNLAD7`^as3;hrNU3*O9$tP3(UHd6L4x<lcJ((_7`^guQ|IFo z#6RY97`^h3`-M*s|30$9=#_tW>U?~H_;+H3(JTLMz5mfa)(bvC{9`{0qZj`1c@z9I z<=YkJa~Qqw?+W)zKAH0G%3FFIMlbxk@)eygpG^68}O&0%D<25e0+lV#yk$ASN?Io@CoAExfMpQ{CiyI;}gWU&#o|f<=?IMKl;ad!6%4s z><3}=!oSPk()seq#5d+~7`^cCGWSb9nfP}|kHhGNf0zGU=gTJ(|L)i0FnZzN7WyCj zyUco#PbR*xAB52>|30tt@d?T|-oITidgUMY3!k8TyZqZLj9&To8J&+$P`>g0?Sj!O z|8Bki(LdG;K0*0*nf)w`UitTs&c`Q+f6U`BdgUMY3!fnV{qPE-SN^?M=i?K^zaL#; z^vb_m?|<}<^@2|j-`Eer=!JjpzO3`*lPTZcWj=?|3;*8be#s|O{=IuikHhGNf4p9g zf2RC<_o^O;(F^~!(Es4yyQ~-aWXiX9+0Vl0m4BynK0ZNwV;+amEC0A(_yqCo7giX( z^6#Y1$0vwy=T{iL^6%FBAN^y!;1k3*_Jc5b<==+R$0vwy%;PY6;ol|hmwYnu?*n=q zMlbxk^p4J#PbU5y)8jCD<=?IMKlpcv^&+24d}BWdqZj^N`l8O4Po{jk#C#5;SN?Io z@CnMdORuajdgb5G>3n>G^6k=VD~w+Fw}t*k|5z{h1m)W$_Omd0<==;NK0ZNwV;+am zEC0A(_yqCqV=Iha`FBL;;}gWckFPL#<=?IMKl;ad!6%4s><3}=(ZBKar(f0i>XX+^ z>7Vc6FBpC7e;D6&Iq$DmKfHdm_};(9<#kVg|3BpQRP^!pPY-;mGCalK*mzw>9q>t}<1i|;Ld zL9cuMjrQ+^yq?;Q-=x03{>S$&@A*reC%W$UmyCYTUk>%d{JHw9>a}j*d-sZexMcKu z{^L+T_J8Z+5B^w{)Ju-qZjk<-B0N}%`;Q;?%m(g z<1l(L|F$sx;2)nGW}fA9#9S}_!RXcgcj*)AS3W`J5C2XWy?Xw*^fRj0{DZF3{u@TG z=HI1Hs-D~+GVd;ZdCBP2{M*9#gMWG6hWLgLA^x@FH<>?q|K`c&pWi>#{Na4&pDACh zkI%m=&PyTj;fKfl%M-fY}^sMUx1y~Dnq^}l~u$JPGHB2o zd6E9Z=xaa!((3l=-{9Zbt6J(8jK22sTRI>AH#;8_@jr~d_VZghpZ@RcJR#D57=8Tw z%f!FE>VZD?YHa%-Mjt=FFsaw)v)XlRZ}kT{ql>HeZ!-V)zp6T};|`JjJEMzb{obcq z{a)=|_CJii_VZghU)Q*wc?vIxy7mR5kMnoh|1+vn|NB`t>VLuLi53g>KBYY?thc( z-_Jb7|6?NlhtbFRJN18~jlZ9DL;qp)wV(fK=hC;P6(-y23>`}wU_w~zU&{`YbH zs$Ver%>32ovzq^`8~X2zzW(!DtxmsR*!BDHP4!`PadrJn{NKksrGM59{fE)V`8)A{ zAM;fAe;@0I@x$md^LHQjiSZBh@x$md_irEblzNTr{=?`q^LL+W-TxVp{=?|w{x`XP zeLl+d%4x0-qu=oPsph})i~df{=e8;DG?F{`y9r_RDu3|zhsYo1YohKM`NNDpuD_vw z#v^~2n)m$uCGv+Ey~rP~d$ZM(JE#lEAN}~+`A6U64^#UmeUm@T=tchE-zR^V7e)O) z`NNDp?%%`ww{KcMklewzA^D>pulqmM&Le-g?=X6iKiv08)o~r?Mfwk;7yCDLD z_MLr>`|x(FUoiT(|4pu+{Neuf{Au6A=;QpI`oGb}CwI92FnaO)W#9GuZ?f;=e;B>U zAJmaQOs-$`F_s{4n~={Ud+4UiZTNhtX%|FZsj$vwrA5j6Uvvlj|pE zP*3ilK8#-F5B}aAIRlbA_`7*w^eTVw_xs2n=4;}o^*D?^uD_vw#v^~2n)l8_Ve}$@ zxbDqXPwt>TB!BedYv&(*lRr%DoAgiqFrydwgMXj=VO|t9KKa9pKJMSc{$t;?P9V91 zaYOP)KVJ8Ls+~vvaNl9{B7eAV?bGIYk^aNz#r{nl`NPz_xBp@EB7fNTP1SK9v~Rlq zFnW`zQIs{j+Z9Ka4)k---X^4_^oChVjGbGxL}H z;qedk@x$md_mBMHdiGuV52Me_U-F0hXZ_HB7=7ITCf85Spq|`8eHgvUAN;*oat0)K z@b_oK=vDsU@86O?%-6)zEq|EN$MrY#&v@hy^9}K=9*5D3{NcJcTRpjh`jGt5kFTA7 z^iBRSwQtfl`NND}j6V4#o}1AN_dU|EYE!`NMsO z(Tn`yzE7%->o_mce;B>kzo{dCn40(YKa5`F5Bt8UI_`u1E%zTrFY<@`zO#)_{&4?c z^l|^5_)q?@|4+2>c^}62A^N!fCiUbD_rJZ>kw2)9UgZz^CujIN?hx_6GkTRj?E6!# zp8R3|!{|l+pl|Yrc|oM_F#0%uC+nB|;p<@CsDJW@8GYQpC;pK??EiD3#wUN6(Tn}t zeV=Ug*>~|jj9%mq>c}4^*ROi=hZ()dANWSju>Y(Z{O^ojtNk5ei(gb{*pgD{-Hj87=7mckw09| zzDxgM^qKif{&4@S8~P8UkNe-``pFs8lRKynqgVNZzqd}#faDJTZhIKL${+mwc=Ct& zn)q=&4x^9jZ|I-#$RDQWz4K5Qy~rP~d$ZM(JE#xIAN}~+`A6U64^#Ul{gXe;=tchE z-zR^V7e$Rv{xGAD`}eT_*f*^cNbX?Vko?h)*ZrSr=aE0$cNo3MAMX34>bQ>cBK?Qa zi~XBA@`tH;Z~w#SMgFkwo2uhJXb!voFnWY z!~L^v=s%2J?BDjEeeOf*`|Vc0VDxeSn_NHn!~N^|)4qq%$N4+;f1{00{&4?c^y2x; zzU%qlWZ%XAFnW2_<}dlf;~(ndhtX&5ANj-e?7Q?IMxU9#p0Wu7mPkLf5{*2pLIk3Vf14Ew(sn7 z+=sVY{esbp{NcWtr}VGqPx~K6ALsAX{|(h?eDa6;52F{)UyRG=Pt7+({12lS`GY$0 zhspJ;p8R1(FY*U{lQZ1^b`k$OqgVOEzQ5Dz$sN>(5&OxSoBN`Y`&;{3U<5f7TEEhtbFVZ*u+Q4C=`p z)Q8b;nm_vYFSZ|T`N4cm--G#Z%MYg3Pd~nT|Az6mA87f()V$sPBYGTuQIFg4y8g{} z9=U<~ko@5KH`hP^(jWQ3d_`3Mq}*Rm}0UHlMogbdAt-)pfJuwe0Htw1dt_Z}leXse@$ zi5`||iq6)YO4uTW?Holh)V)g^1{`x5vr-xyb2<_Xqug~=l8ndBLmL9KHn4uaYe||m z3GDN8-S_#t-;4WwugCXo_8Z9eb6gMZ|Q@c$*PKlve^ zgZaFEhI(>B=-0j%`a7Dh@&o$G32`4s3Gu(9`6@qz@2_k1eElN)H<~Z<1G>o%fwv1a zf8>Wi^Lc)U^-F$;`}i}V^phU~&FB4h@Q?fu{(nHo{2R>|`)}xGPPvb(Tm6LQXXcmu z5c*j+=r@`#_TTXTW38Ut5dIs@7x^J{GpFd+`4_$$&FA?Y{XeAjCqIOKqxs_ep)dI% zkbM{bjpmE|KppuZko#6W`61AJkst7noDlxAZt%aO`6@qz|9{)+$qm#S$q)Vga{nYh zg#P~|M8DB|p5MWL@xTYD^E2~Heu)03_WnlmGtZCw5cTZ4=r@|5nP2il=x6<) z-)KJXf5ZKg6R0OQP;WH))#Df34$R3AJ{QF`8fX@89V9|6SMr$BzGx@b~rFXg>e_m^^=L*Wd2H z|NhrO*Q(!ds4sZ0@KXzDKL7ojw5VVDE|)Mrq@REg@1?rgRYlPf%5He?ZNmL zXuk08uy5#k`4lMM4u6_n8_gH~twVqE@34o|Pd)|8zr!_i_!wxu@b9n>>3aDTDBlkI zL%lYdul&=zhku}aJM8ldh=1+<#r2o=-^1Rk>+uPcZ-;$h0nHcwtwVqI??&~*Cs4i} zcGm)$ul#$4uE!@3-(InR<}3erUibv!-|H99d^LYNbUi+S`1ex_Xuk4q?fSEStQUL& z@$YpDXuk08F?Z{F`4lMs9>Y8v%@_VXhUX=p0`c#$dTlgc`1hF4>U#MUh<``wwb6Xx z-#YXs{~p77kxzm6$9`rsU-@^HuE!@3-WLK0nJzbtzCcikM)92Ail957|j>{9r`g{FP{SC+o8;}(R|_Gp*%176e#}=y+^N& z<_rH0{h+RwPl599(68vV(R|_GI`k+14rRT_r$G63DEpbweC6M>bv-_T_{JO?%~$^M zyzmLcx2qS>eC6NMbv-_T`1a-nG++6*cKz8u)(bv?_{M%>uj|pFsI`2>Y4Q zeC6LJU5`&7zA?u}^Ob)*FMI;=@3{+TzVh$!x*nfE{JUfU%~$@dU4QnE^@2|zzOf$| z%@_V1{3%^8p91CE!OXMKeBs~0JTLhaDE|)LrPoIDg?|U%tn1}dp!_>{pI#fy7yhk7 zfAa5O){A@!ly3*KpBc?p{#~Z)@d?B?=GbVy@{i|*PawWsyMX2^|1Q$?_ypqHI~UM= z<=@)%Xa86)_ypn``+?DX;om`jtLx=cAigojM)QS#2l2e*Qy~6r)@!5r!oP$5M%T-y zK>RyZuZ`vl|JI>D`F9ZOMLq@M8~cILeD*JY{p&}&eo(skJ^TsL-`-#R{6F_!dwu%) z!Ss9o>dV(X4}bpx^7T~s{Pz#j*RS}y1$_N7koxO;J!ro8`sv|6qU-c^(m;LPG`{|4 zG+%uEbRGSZe~0}-^Bd&n<+xuX&!NA+=zsEW`n|>H>Fb`~*{(P8_0<0USl_??%E1GZIFaCk}*WVxSzx#K{Inpnm0yRJJ^Djp8 z#r{WLWzGVrd!=3*%@^}`$WwK_<}6TicgRoZwb6Vrf9vR<{Nv|_@yS0&j1Tw+nisC> zAAk1_|3K!4k7G119P9i1@pt!_Gcf92vW(`d`8)Vb)sq*5%-zA4FQfTt{?^ey`4{K2 z`~&d~AB_0d-yiSa-@iGr`4`_m)!cAB^Ajjv`}b8B>lgAv|NF+%{~u`Q7kwi~n9unq z)qnkn4I8!{_Q)fF7q^eM&1n9x^!!?VJU`W)u6q65>A6w1G2jOJIJA6+m1CY?)qE&q-&_WP>z;~$@Y1%6YAexvzS=STCVegC9C zZ@5{1Z~gBc*s#H9{-i%&?fzAFy6W$5xcN|_){oKrN%yDvVf{oO?LYKo{TR)!*gxi9 z*B_z&f7)>KNkXk3qxqBmH1%KDKQ?T5?6KT`!_Ct0&;Eq|4b89Ezn`Bxf8Afq!RAAS zdj3Z9tKYw_*Yl?j7=88pjpkSE-`79SUH2EyfAdK~J%6M5)$d<^>0Y0g*1UH^~mulhK5h4{|=8_jD!TP1&Jf4V_=<;fj?UC&?h%g^rw zn$JJKGwfd*U#9Cd#~ZH^YJMj)|FYD7!9QKEx!w4jj_(m_em5G;=l{RH;GeG7{BHb# zj{i=m`Q2zV{{yN2Lj5C;eC^fp>$HyV@AGRkpMU;&;r>NnL+V$18;Tn%fSe`EyeJ>iXZT`rlQ(ab^8O|E=#{xxe|X@2>lAyy-1sFSm6xq51st+Y8UH*Xa!P$6-D4@dC}~pWj@lmrl*krq^{;f9q%; z&+o6Gf5HDvAJ%p9f754#@_$0}A5Qhze?9k2?^GT5Wug3=(EK}7eb&GB`rM!Uf3Nz2 zUl8i~PiX$V{~!17{>OS@{+K&-__-9%pXaReDW3O^$8Ff~xSO zCsYT1Uih;MXnxi6Q`i4XUH>Z`^|koN{hxYmG{5TkrR$%m>!m+%pHTX@8_nnQf8qJ* zdiCF`ubG4n_w8t2xa#@!*vnL}uNegXMeD!SXnxiGN7u`@t#9f0L81KHYBc|r)PGg| zTR*OP`8Q#|uS!3@p+E3bLixAVXnrOAJ-@{N`FnEze}6i+H|X;@&hJ3;#reJAyL7$I z=|G*|8@B7U(fq3C_akbo>z~t6=k|v0*K4EsRnKqLabEvGN1fXn{ujMAn$PF=g8!{W3(rsUuJwP? z(;80ermrLO!d2J*hE1y9A>Y9dwe>Th`5i0NFZg%TvsL%<_S{(iJikEm&rbEL>Objc zRHyYnVZX0RKkFX-f!7MP{!cQRFZ9QK>w4e+hW}ah@*&XtwX5sjaEPvFZo%IZzGMN- z|F1>;k-Gj0)q%e)eBJ_@zarHyod3PA`+R%-TYb+j59#|QM}J)ZHxpF;d+7ZOX#V4? z_1FK4{5xHLM#E!Xr0r~rzW&kC{LyEm`imC7{`t^rRsYNC3;wn6mIXBb%c=fZi}ma1 z-|Bt;Z&E*fo$w)0Ux#_U(ZFt)rg(5n6vcjOJJU{7u)tNY`J`QCg0;Qm>8XSN;4= z*K7UmIH#lL{fM{gwbA^lpTFt)f3EALGf*=e`i(&2g&0Oek-;U;mtL&d` z-g*Aa{n7uu^`Fpue*O#VPuI)8qwnZ=uTcISZ8U#J>c6V~qYtQF{!Q5LYjyp)Uj7~Z zs~sP$-~6wp{tNT-$RmIIlgbbJya(L$eeLsqqj~)v)aYNI|G#~g>c6ad@FC$x7ts8d zQ~kpI>-wM8^?%lI)8mDF{?yU@#y?B-tLr~j^;*B1IZtEu?b@t*qxqYX{;^)q3*E=* z>*v%PkL~=i_on(m|Hd~o{Ttuc^iOF14XJ+UzwyUf|BZTH^ql zU9G>-{IN@Q{l@KGzy9Aa{`3Ec1I=$w^`ricUH{9wexvz~b^UQ$TK#daYV{ME-;(Nw z`#*7a*MCIU-O>DsyHow3|HS{+^`Fr7cQk+Ee@pd4|KrYW{f~QL>p!9SbL;vOf34M@ z_{Xh&Li4|t>PP+mw&_3dOHKcT=KpP7f848E{c*q1>L)b+>Qq16|B1}0=I_L}b^S*3 zd45OzFX;MNKbrp&jpkoa_do89t^aZVuJxbL{2S}~6PZ)=e}C6+G(R)HCw^zw&$>as z(R}{?@o@jgvCpyp>}~ZEn$P>+;QtBCuk@ert)_oM^Lc)U{wMrt*U!2^e@F8t{Aumq zaksVp$Fc8f|CrGHZFT(#%qjXm+4URE&&=-$Z*TffVEst{gy!@4J>36sORfI+?`ic$ z^T*BXpC>S<=)bb-H=57$JM=%{2fBXN4f>7d^Vg4t=YQP8t^e^Swf;u)$2~mbKXZzH z?qAPuLi028dp!L$zbCM6(BIMg@wxwS|Hq%(>W{}a)lX=CX8$~%`IY|TSwGT0q4_+& zV}IsU`j2P*(BEi&W`2+7Inn=By}!}?%=0^*Ii;Tc7yU-_GxK{q`yBdNH|RH-&->qS z|Hr$p`^pvOr+@u%|Btl%2a^8|oVtwUzxMtL^*#R`(9a)|{{rt6>g(a; zzd-YO|4aJmNB#@c{&V0pdTlg+Q|dp~-`ncRebgJtfAMkeP4#L0p_}{{sB;V5O-_^y2_@P(~E z`7fS>`C|W~j{Fy>^NTw2U!eIS|Al^?lYw6n%75}-p!wqbq>lU-sC_5=H<~Zgu#pLK(Nqxm8~g#Qn>{^UOT8_9p|{TcntDgJZ+=r@|5nO|~V z=x5!azoYpo|4~Q&3&c14H=3W>KgoaSC-=qu8_gH_FZwd4=wSWO-)Meje#w8)|5d%e z(frKwBmYG``!3JVXntmX$$z1r^@Dz+`Mm!P^GD93p4>;h(R`KvmM&G^QqBX(fBTPL zM)TFz|Ms7$dhK(8cM6}Y*GBVs|4aJmNB#@cz7u)VXuimQQFm{vC-+frB>%PdS6@Hq zCjSM#PbmH5zd-YENcDq$@*jQ3ee|Eud_F(Z{vW<+p90B!^fi+I+WV>hP|w%@LjUty zJvlJ+n=kTT=-#O7(f@KG`i|fN8{{nSxQBVF0G+*Su(64hc@Jm8;8_gHzCw1h% zKztMb=|3Wu&%6+^|h<>B_Jio*Ilm9|L>jwQs^ZEQ7=9m0OfAU}WZ#19xzoDM| z7y5N>g?^*?nfWFEg?`oz`iq?pZte@av%C9G+*RD`jYcP zKkEkl9nDwyFMPkP^(X&@|3>r0`5C&IQ}lnb)lX=CW`4o#uU{I;f9?I%=Wj`0uO$Bk-YL}2tdRc#&FB3u>8Bt0FHrkV%Pd zQ~#l!{1^J4-|ESKaUbT3{1>`6>U#9QT!?<7`QrSfj{Fy>brb#@&2Opolk-CV5kma$ zXuisS^d;wo{u5e%@*g_PSNSh|*FF{aLLvSe%@_L@b>zQ5om5Xg<&HF#qJg(9iloztMa?KZp4x|IwfP z7ycW~=lyS}C;x?hom-*bXntmX$$z1rb%TDR`QrQx-`VGQ4trbugy!@9H|Qt-p`YA` z{t3+&`H#NjywK0OL4QZ{RsIX#Z)^R@f8oE;d~tq;ZsrvIpKSFLnxC0p@?YEs>qh#? ze}U$U^D}&3YW3tk>Wt*S_I|zpkpDvel|uYCn$Pn)%s=@r^s{czZ!}-zhw%U5)}P!* zepO`zQGi{p7#6f1~*# z|3zQs6dkM|`Wwy9%rE&b`oF68H=3V$e&oNXXW!-d8O_hkFZnO@vwqNTG@tjsVgAT@ z)RX(DH=3{V-`;1m{0EZz_8q>Ahrhn=$8Ki?^L~h=YaedsQs_KpX!r-`jP(v zweLjUG@38+U)0^(>dAf78_9p|{nS70zvv_X1-?%x{p7zu^KVG?gMRWKeaLO7eaU&D|Af|`{D%(nRsIX#wNC}UP>BCV^Tqx}9r-U%=N9$k zzd-Xv{tNv&Cj-AEM7Pm=aeh)q{tMK;6aE{`7x^!AGpF3g+l1&hn$Pn)%s=@r^s{cz zZ#19J&*Ax#|L9Nt3;&Jg^Zqx~lm9}$&aKdIG(R)HjwQD%~$y^e7{X~`2Ux!?}X-y^D}far`*RU zTm6LQXXcmu7x%%sk$&=Dp!wqb4BwYpJ-LrMBl)krU++KUztDfB5dV$l^ZX9;PyP%2 ztQ+(j%@_G0e1Ew0C->3cNd9Z@&**1P@t^xgztQ~6{F3uRKkEkl9nDwyk2>;SAim+h z(frK*N&Z7W`7iF@XuimQ(U&7c=4YNC`7i3(cX@tB^E2~H z{tNxAAM_i|=lyS(KXM-Rdyj1SFYr#~#T_mG z1#16m@2B}q`sqjh3)KD-dDCdV$bV6HZ>uNwQEw#wwf9s1bbg?Z{1^B>q4bmg0?of6 z)eri~fAk^u(SJho`TQLElk@0L?xU~Ke3kz~_x4s#{tMkk^F{s(-5b09m#ZHAM)Sq_ zNj>>5Q0pfAH=5s){2T6{oEP_@b1U?BG+*UE`jYeFK2GTRJDRWZU-+(lD)5D^Klv}7 zgZX0rqK^C*sB?=t@?W6&BL9Vcos)rIQl0!K{{@;a&QI#de}UR}!hfUrBL9VM&1vA< zgy=V#&+|LXKlv~8vu@CDG@sAU;rWyQ=uiF&-;L(;{x{T<|3bgct;Bk^I-*ulFDF zU+BM5i0?-8d47laC;x?h)(!fN=8OCg{y*IMll$mzB>%PdXY^}MLqGSAexv!B`6cIt ze%1~8JDRWZA9duvKzzf0qxqTrll+H%@?YG)(R`8rqOayOkaa_UqxqTnCI3bLSM~lz z^E1zn{1^4?yF5Rm`I-48|Al_m4f>7d^Zqx?A32YDav$|Z^Hu)at?#>&^FZ?7?!R3| z^Hu)ab4bg7fp@JoFY;g1-P`KPebgJtf9?I$ zKb;@wBmV`yPsq>5Q0pfAH=5s){2T6{oEP_TMAzTZe3k#`OU{e?IHBwB zXuisS;XC^j{=cyGpU`}QDzoa_(PyP!uU!0%Rk^cg< z?}YzG^F{s(-I~+Dw+Yd2G@s{pn1AwL=x5!a-)KIcpTqMf|IwfPNB;@U=lyS}C;x?h zom-*bXntmX$$z1rb%TDR`QrQx-?h&L?rrsa{V$$_`6BGIKLqGX1?%!y>$bZpSa~jCH zp}*1m%>0u7qW`OUf1~-C=STjFdiGtOpV9ox{F47dKkEklM)P_98|IIkM?JZZdZYO& z|MC0AQTuD@^jFYr$3(9a=~{{prDwfEEfCjImy{{?E_i9BjFU*x~2 zySLSo`=~dP|JwVhe>y+VNB#?ZU(-$gL;u9TA=MB1$$#`A_tAes^ZEQ7`jhkMPwu0y z(R`KvLihHr|M^|F(R`8rLifh5|K(l3(R^`!QcwO1)Vc}(jpnx`|AzY~=f!;-(e-yU zU*$jglJnv|PU!kOny>O-_^y2_@P(~E`7fS>`C|W~j{Fy>bBj9iU!eIS|Al^?lYw7S zo#u!97ihjXKdB@C1!~_3|BdF0{1>{JQ|{w!UANJEp5I~q$$z1rb%TDR`Fws3&!7B9 ze{x^=ZZx0wzoDM|7y5N>h3`i5GxJOS3;nDc^c&3==V$oNKF4#|+v+DYU*tb@lm7z0 z)%279xQ~f1@*jQ4d7+0DsnwJFs56rP+WYnXL;ef>S9bkI^Lc)U`6vH{e%1~8jpmE|5dJ^h z`jh+c-$?#z@6YIGPVt}nXKswpg{)@iMDLPm;^f#KHnP2i>^nX?FZ!|yi{K$V%&%Vp^Gn${7U-Dn*XWgLRXg=?M z!~Bu+s3-SPZ#2JR{_B6g<$?QJeha))e@8~&M<%}oYX55Qr}<0$ANWGcZ-Lr3;_nF> zZ&H1{KU05iyN=vOy^;JD_4lUwwEv@zoEG@LrknhR{)vA>svq=|-{?bbqyL2F^Z7UQ zC#TV$+(uuc`6|DK?(JRw^Sf@N`69oC?u}jl%e#J~`QrSep8OW5xex!1=C>sOhWjU{ z#eE#n^>;L1}?BG@tjcp`QE}`gQJv??&@8^GkjU{j3}G8_gHzU--^G$8*@*>L)Z` z7K( z*KIUEGr#1wxDVEi^poEL%@^li_`cNY$!*jb$#3obdjBE6h5jqMexvz3zr*~K-$Fm@ z2K`3!#rYq;KivA0+wk2;erxZ~=x0vxpZjNSjOJ(Nmz);*SvTnKXuisC)REr;@eTit z=4bX#@*DceZ*l)d^F@A(zRW2)SU2=HnxC0p@>}$ORqt;!KlA*^Z&A;_%kwjupP66s zTj*!qpxR1B{r#7pTSoK8z9`M# z`KkU-R8M~)eGgo*jOHKJzv*AdkDE5DUeABi1Yw~OaDVd;#J{iVZ^j$( zuf3n@Q~&$*_v-2Yfd2lsk-qT8s{j4(Y5hU^KA^vcZ=`>FKlLB|zpneQb$8&E^3!Pk zy1IVjH+%h$_xg_JH-0nKr}Ka3W%_>?AJcOOKQFv`0nL9b)hGQspRMaZq&n~(;k65B z{zIug&Ckw@bo~ca2YyBP&IL4||NmQ>|8?kZ_uv2i=FaD;pZ?ETpq}5(x9YXg{D+hN zX-Y`NF^bzoYBrQ=t6Y|5d#>uj|pFsJx#C~QpU-|cBU5`&7zA?u}^Ob)* zFMI;=?-dJZzVh#6U5`&7{$0L+<}3f!u0Q+7dch|U-`Ed~<_rJ!-KFd0Q=oj?$2=R& z7yj+zdC8|h`L|C$hlr1X<_rJ!{hqFuPl5P%kX{?j7yhk7fAVi1>qR~V%C~*&XGZgt zf3MT^_ypn`b8IwU`N#9ZClKFmTtM@ce=pVb_yo$geIHmr^Ob*V*Ps1kz2FmwZ|ny~ z^Ob*x>w0_w@r^k)nlJp@%kz>?f%x}Sy*8RJ{M-8tT`!*k@$YGRZ8Tr`w|4!>zrCy% z`4ot6><32kg@1cLr0eBVpnTiQJR8kd{_(u<36yVpKfi$HEC1fB>+uPcZ+pM6faVMT z)}cT9$9lmhP`>SDKQo%I{CkG3$0rcqm}8^)%0HeLK7si6`UNy!`L{#Y;}eK~Ked47 zEC1H6Kl{ge!6y*k*bj{63;*`qt?T7epnT)!(D5(OeBs|7o|k+I#J|Vtwb6Xx-=5Fv zdifNHe@E)I(R|_GI`k+1_OM>$Qy{*v9~jM7{#~W(@d?B?=GbVy@{i|*PoR9;^Wg#vB{XSN`$5@Cn4f z^B2&3<=-K?9-lz`yKn)`SN^SCfA){{f=?j6u^$-C7yj-3n68&kf%0uP^K3L<__v$q zC7%N2-|l<#+GxJ;Z}$gvy?hFkf4je;*GBV&f9uen{M*fXkxzm0Z8!Uw(R}6KvvoZ_ zf%wK88_ie#@x1T}#J8&#(0t|J({(*Qf%x|31vFpzw|4#6Kh_IAf%wLLU^HL&x9b62 zFP{SOjX5@&FZ|oZ^O8@2`1d5eHkvQ|+x10VFP{SO?^wMynlJoYhyLW>F4l{D3dA?| z1EcxMzqjgod;;a$F6P;2zVeUfg-@V-+x77UG++65g|5dZP`>T@?FBSn`L}lc*+13` zK7sOW7yFsfeC6LJU5`&7zA?u}^Ob)*FMI;=@3{+TzVh$!x*nfE{JUfU%~$@dU4QnE z^@2|zzOf$|%@_Xd{FJVjPl57nC-ZDHU--9^=Ov#4<=@U-dTlgc__y+^^7k)}?)pLL=KnZMi2itgg|Gkn`v+^UPv8HT z{%?f(Zn{AIU$cySAE~{c`ls)I@P9A({#zjRm-TwkeDVFi1KV_+zRwrTt2FVSnG`8@KjpmE_TSx!oAAhe0 zpFn)$evRfU|E9nDqt9QM8$ON^|JwVj`^VocV*UcDe_F2x%@^~x?{T_La~7z%+jpT} z8_gHef{$F2Iee~`W?L< zG+)f$-h*_V<}6TixA*CKZ8TrZ-#Ypy|Kjsy`2^w{_iMzz_Wla@-~IFNoq^09*BkM# zy}v?z_m9t;nX^FZIfsnqi}~CA4PCD}3)I~0IY+OJ=8O4TNB`s>KW~jsAiiN$su=8O5;rM$%a1#0egpQhJF^TqtFqkr;`-#f&o z>Gu%j1O9Q}<}3gBzp3~HGB@#ij2+Ea=P&=amH7*#j&sOpzL>wAf1~R)XMvi#T_@_b z(R?v~>*$~Si+m{mKzzdoBmTAbSD2r^e*JT2Aald@M*M5pa0AH zKcMT+Qyutd{pQd6_WGYL|LJd>bXEQ3-)VoZI^pS07s@}Q`P2SB^>6wY{5$<1)ycop zHwoq6gys)Q^@D$>?N^W+LXWd5g+xMpW!9VNVq4kD;M)ND`_x`2)xmEk@1H#je?eo*o{MNkxruFlH z&bzI@uR2is_5&9#p!wfV`qTYC@FZRTG1Y-z6<)T0=8La?pnKB!52}BKUK{&;Jxc$o z{kQ*e>u;QN&Gg^S&&f;2_CFG8ekL@Ze|~=OZ~MPio&4MWE}{IJ(EPuy{oDS-s*``# zJ)!v@PW5SiLbrA5=eF^0yV3kg`uqH_?;i6(?O)(mgxY^6G@rkIl_n2Q-9r%aB zFD{_@Ur+ke^JCvV=9g3leo;v7F`ECSRG;pjefJpcH-V4VZ~ppJziR*K-0bJ)q^s&L z-~Nf6|H*&$-A(#A=|KJ5bo?B<(fmq3KfSR3Zu(W#YyaK!2SV+?6Po|k)t?{x?xtT< z9r)+M*DRp%Uj^+J840SJt2AXR-gI&(BHMO#gpk=YR5_{VRS>UbyMU`}}k? z|EQmzZ}okC*mpO5x9Y%ig%>WM`R`88KRrM8-AxCp4t%Ci=huYh4^H)~>;IRk*Z#Yy z<0|@B?f>ZWbJ8`_-{iYHja-rX7{!OX>P`~Y(R=@4jt$srD*QEO4{?FFF5&B=<^&8DUGu03M&wfhR zuiuvo{YLXoN%cejZSQLRx82hEPiX#Kb^X~Jy8bO)ztQ}LR6poH>p<79{WtV?G=J8C zx_;Xot^N${x6~WWZ@VMa5BGl-bE^3{OXoIUznai|p5IabZ?^ttv3}HlLi4{__uuwk zTmNkjw*C{E|F3oZS+*AJ@c=+e%1~8JDNZ9uaf@Z{?E9$)t~Y6t$srDGyCV6%&GLB`MIWlLi2fk zhyG{&`_}(V){pd0X#U?P{eypJytws0YnfX1FKAPV% zSvTl6n$P`*`#4HFZ$Vk(ckfm&Yv+izwC49XWgK`;~AYlBkzC1{hxk&tKY7#7gBFD zfBNk!%uoON1wXey&I8GPd>zARzRG|6`~>+gaH~-HpZphSKJR}?e|+8gYppN2kDnhg zlK`a?JQFHq+fy2*cm=I>1PLx1ug{mFgwpU`|hKZpM0 zzwqz1tuOg6{4-zdU!nWDR!{y5-A41*&FFuV>d=3i5dB8;#rYY&U(@Qzec`{+{57fn zaR21LxQ|y0@!x3vnW=vC|0%8i*>7z9Cp4eW&!Ip0FZ{oy^(X&@|K^MRD|ByY^=Iqc z3jId&MgGG-a$fjO-_%PdlYhhglmEC6av%C9G@s{p@c*pe zY<O-_0u7!hg;! z{5P7Pdw$F>>wx_i{T<1F@o|g%7rwF2u?|=_=A>dx!+S~pQ| zG=E<5FRdSRlm7yjgwjv`3p9Ucsvq=||Ik71qyL2F^Z7aSC;x?iuWfzFf8n3`V*d)= z*R^``U+6ZPzivkVn^cGX+l1&hnlH}J@c)`tPyP%4jpnaO{fGM}|HXa0T8RHf^UqB6 zqyJB7{mFfy-)KIcpF@B0U-*AZ>reg*|IHWsSLoi*>dAkh-)O$bfA~kv3;)j*;(tf; zRsIYA?`ZYpKI)C+zxICeZ@7Q*ANN7-L;r;4^ZX9}lmFsASU2iV{tGmp&(EPh`7iu` zP{{saG+*Su(9N8p|E5+yq4}BlCI5wf)(!fN=8N-_I`UuOvsyj*FP?+>y#EdNe-?9! zew|z4ztMc2-_ie5RL2~#ZqRQupU=;sKlzXTf$LECTHk!}#JNQrji~C^xNI&^6(0q{} z!uJ>Jdi>|y!hfUroWF+WNB#@_+&B7-=4a-Y{1^IJKj=4_&;5t{C;!EBz&F*C{{qd= z?4RVn(9gO-ztMc2-=RPGFZ8o+&~G$9Gr#1&@Sk%F|BdG7o*(neI$-}re@F6PeB2`c zg>US0tOM2!`a6>U+WTq$9`2u<$93dB>W$`4FTVcA?|YE*Kyn|yKVmdr~Y{@aA; zH<~Zb&+z}6R!{y5|BdFaN&ScWC;!ELyjqC=M)S{1^`rk!Y5mE6q2FjepPxg2@?ZFW zOY2Ym3;)d*`&a1R(CW#5q2Fk}$ba}p&I|v~72?nD2C=JWgx{*(XWK3F&EPyP!upU=;sKlv~Ge^AK&VKiUlztGK`qW`8=KcV@V z`6d5_e%1~8jpmE`Mm!P_fP%{{W`b8f1~+4zoY-BsE#>e-JsuS zKA)dMfASyw$$j*n(0p-zQb*1U{ZDB13*Xr1SO=^d^mioxwfEEhJ={Mz zkL$>N)EmuL`H$aMCFg$Ps8-e~^37p=qCRKE(xWd{1<5c&Qw3>C;y>?+(-Wj&FAxT=uiF&|6ber zlK;X-^TqxZy02^XPP>d()yGCLch^`K0k;4B+$$iut$$#zrMgL8$enRsz^Gp5<{j3}G8_gHzCw1h%z-P63@?Sg$ z^LhUp?w|Y@`gLxF|3>q9enh{y`k&D1 z$$xwt^Hu&sH#sl#vu@De(R`Kv!uN|?J^3$uH=3W>KgoY_AD+zp+3;&JgbN(8hANeozbKmGUnxC0p@?Yp@{h;4yKKCE)pZpik z0pC0u7!hg;!{5P7Pdw$F>>wx_i z{T<1F@o|g%7rwF2u?|=_=guFAFuBEjpm=3>PP>d()GWw>o=Ou=jYI$ z{1^V;()yGC!hiF{{uR16w0iPi_-`~{;hk^I-* zPyP+}PyXXR$bIOa(0rcX!GH2!+z0DM{mFlU=JWYE^e6v?{|~nQ)~ zO4rZ2LBG*_K0k;4be|#MCRsO>_a$fk)xU);y%gy=S!&+|L@PyUPhVEsrx`7h9XksreM7q|Z8zVP2@ zKIgCD`H}xZKlhD(qxqTnCI5wf)(!fN=5zny{>gvw9Pmx`&lZ`$WVKkEkl z9m#*~{j`4%_fO8_I&vTNM)Otvr4I%|I8QrSLnX3)sz21x6%A{Gy31u_1~s?^c&3==V$nTP4{2x zCj2*=zb5q`?w|Y@_wnkk-)R1ssebhTDP8{?yMCkje0~o7$$#PhEv-NKFZ?%O>|ddK zL#rqMh5ttLMgGG-a$d~OxvIzij^?ZU7yjST>dAf78_9p|{p8g>IwyJinv=r*!?S8}u8^=ks&uPyVAn zxsU!6nlH{z>d1Ma{|T+0{Kv;JU*$i1Bj<(xtQ+)qG+*Vv@crWM|IfF2@?ZFGerEq9 z|HXZLPKa)!`8>aa|Kz{857v+Llm7zE7x^K4e{t(i{tN$&=5ziUo*(%y^mE_nH=3WB zU-Dn*XWgLRXg>EJ?w|Y@&jH_5PyP!uKeK<5|3W|O2K`3!d47lfe)eDVcO?JC$1U<-_@;d>^s{cz-;w;+-cS4YaR1~yt|RwR zZ!}-!KYm}BoEN`0to+B{O(p+<=Bxb2-)|-V1#XoN{Tw3sFVKA6|C0Xb^R?EG+(!;I zlK$?7rcHKtv*UjjEQ`di6*KagmoS)(QHLafS|AzlY^Vg*Q z!~K*0;yzy8^&8DUGu4m&Kc(w`W7lsqpU=;sKlv~Gzoqpj|AqhNi~TEfZ|M4UZpGXf z%@_F(|HyeUKj(J+9nDwyFZ{ow)sy@1-$?#z?zRm zXSI6rUpxo%dH);kpZpj4b#8_KM)P@oNB>Xh`dK&VH=57q=g^=0M}Kl3{Ugvw9Pmx`vF04ILAo&%dER`7L~UZR<;Z3m?rF`%mb;uIvA3tK;i< zq2K&H6Q; z^&8FS^Ka-+ehdF^Y5mD>;lKG}{|Vh2x_+HIq2Fk}$ZzN;r^S7o+x2%eU*)&(|BhBq zZo_{g`K`TQ`%ix3KFDq8pU`}s-(mjAZ*d>28}%o@1)9(2-{`;gsqp{7)}QI&xa*e?r&a(R`KP@Qs`n{KjxQp!2XN=j^wxaxJ7;o-`M9^2do?PcO<{H z_tXA8+&?*u>&R`?8_ho|zrAen|JOY5yUJhxS@pv0KcK(=@^i~*{`CKx`k$Zb|3vll z7t;5@70YP;QT?0#h5WevXH+l$wtt}cH=+5TN&WNR|NaZr>Hn_8|BcZ9Z`t`oy*8Tv ziBzBcqp$mXd;ODt2kzAUf9R1%zWT?@xczzZLA>$w{QpCfe+TYw{(<=S)mxSk|JwUW zf9ik#m96gsKe>$bg*R6H?|)D057PgE7cC?G+xw~i=>K0g|M~wf{QpcN|34+3%S!+M z#s5Er=l6ns-5<63?MCzY|7WEAZ|7yw|5!bD@J!*=3uykatLxwSZ2jMshg2s#{riO1 zE~EL=9!m9Tes*4@dj0<-kpDZh^PS6R{!#xwDb4>n^tb!({_T9O`ahz+!qZv*Z(T<7 zr#+JNC;#?;M%T-yK>4>{>j57F%@_Xd|DEO^h=2RPx{UbO-cS9LfBQet`~&fC|JRoh z|JwU2)c5^k9r}}h`)_Ujf%vz7|1#oVdq4Hh{{5(~$0rcq-m-w^EB`L-{t3gscQ0f3 z7w@P3*}vy?|AgV+FDzsD7w@l7Z~xY=Kl}GX-9KUYcl|PkfAN0mpZr_;2VF0p0`c!e zy*8RJ{9DrV!Y45N+qR76tM$9Ir}+nle`hZv{FJt%@?-%~9 zU4QmZ>m__*-QXMhK}YkIfBWvz_3|lDzU^agiov+d}BZ8XukCCa9xj2AigojM)QS#d-c5V z2@L<9x{T&4|Mq^P`3Hu7Pg_R(Yws8StzCceZ?D!1K7rvI`vLw5%~$^I{gAGgPl57n zFLP`(U-_r!6+ZFYG=F(Bmay@XG!8~L_}{j8(;(!VF_dVB)$jX5@&ul(aVF@M7F@BC#n zU;1}Q_fHu9UAT<1mqSN`q(n68&kf%0uPb8IwU__tfn z3!gyz+kMY6ny>uZ{lVrRh=04kvW)oG-e29nb?8t2?bdq1ClKFuv!8V|U;6iKU5`&7 zzA?u}^Ob*kUf~nZ4gaoQM)ReAPw)N-!@oB#WB3>E7yhkXfA&x7C46Gt;2ZlvNAs0` zyB^T>@+lDCm}8^)!oOX5Uibute@|LQ^Ob+QzS#T&!@pyf5&zoztNXVO{mH*wS}*tn zhHvZ#_$M@9`uA2{k58a{+r=Ck%~$^Ed4*3rH_hL!k1wP7(!VRZe?t7*_1nuB{>A%+ ze{0vD{nL60pIA5YZ5R7lNAsnBn{+)sf%wK88_ie#@tl}HVfgplWi(&<_xSFgF#Nk@ z8N09E|24 z_5Fw3f9>_@>(A5wjZj~{Zx{bR!l?Ub@2~D3|KEb|zXeivS^qeo`QrP32e#=teV;Gz zBf?kewb6X>{l9hePyX%yk>+>c_3DrRMm>-A{tEZ+|DSfe^vWmx{_>8q+x15C+n>5Z zy}y2crs^K2I*@wp9}}8?T&hp=vtR3fyXFtv@igH}meKt7{QaZ!{G+e?e0%+qfBd~c z<~2~h;RF5!ntyuIpZZUKx9}+4hvp~#exXsmw)a=4@BZ=k6`8X@>MrOX2Q**I-;(w{ z<}XllxAZ){HkvQyZyo)UfBd~3{0o$C+%NtGnlJpD{_c-He_?L;I7a5Ly}!DD{Cy(k zFOd4D^?J~JF@O6WC%-g*AoI8H!eumH&EGouC;#H>Hu5P@zQxxOjphsg{Co3(njbz6 za~LT9+WV{f$M5$uXMxo1==GraV*d6Xr0X5b~ zGJk>Q3;+CkXCQOO$1yU0?fupLw=-;iILKaly`bIvlFujX$Z z{gZ$Eyfy1LP`+`$_!nrt@XtTD9jN({_*qW%vm6HoJU6U#r*A3USj?N zHFvvD(`%#oV*b|AKlvBGe<+`(-$Nw-$v^HJU)%dD+`oT*;>*%2pZNc&%njEY%~$6y z|F@Mn3#4BAZ`6b4i}~C6H|kIR6Ec6hPFzOw)%>lafAWv~h);p?4Il6?(0nm}{<*V2 z%?%%i`3aP-?fvBc(Ep_V^O9R{YkiI8Pr7%7`hI?M|C=vU9e8!~e?s$@rTUZ~xX;ZO zwZ5C**`EJ|<}aG5?|yCmvtDmBe|@TN_rIWj>!zlE>-kOpgyuJ;`a%EJ$9LZ@Y5lhv z%|AZX5B)d4zx#K4>%ZA({{40Rsdu;fQy*&e6Pmv})erhl{cP8NWY^!({HdR<>o?!k z>bD%#>W$_%-<9fz`#<%DuK(7q-)R1ZR6pu}N9%v;pS1oHntw;CANp_pa_hh4pw{1L ze)E^>`cp6M`v14C-)R2QR6pv!pzFW3>o=OepswHY#8$uMhg$uF=AW4AhxL)ax_rKx(Phn2cuXCI8YeMsReuw_2 zT-EinZqRQue^t^y^xyKD)_)88uli4D{xx;|DaoXY=`xqsD9XntmXPo|IN_hiN{E=av%LCG@sAU zp+7l~{^UOT8_iewFLYnp>QB|V75a_li~NT_r(U2s@LD1IjpmEN5 zq1$LapPxg2@?ZGRzRUa@%@^lq=w?pQe|f8)(EQB&lK;Yg)(!p}%@^lq_|86w|M#@| z3C+*!pBl5Kf3uMJ>1e*nfAl5ig?`oz`a7Dh@?ZFVbL&s;3;&JgbN(8hANh}uL++z~ zLi028Oa6=dVEsrx`7h9X?mx`m7WPkkz&GkUny>O-=w?pQ&$>as(R`lYp+EUA`m=86 zZ!|wMzvR5=e^l?^(R`KvqK-L5Kl?8Fjpk?Om;4v{SwHAEn$P>+aR1~y>dAf78_iew zkMGx!^FVSR-}f_`uks(?eO-_%PdQ~%-q$$z2$ zRw25L=5I*#!~Br{=tJ(K|AglA`8o6_=h2_sM}MRFD*uJq`8_gH_FZ45~%+WbQ{5P7<^E>!Y&I|plAM|%LU**5>UHe?% zg{?pNFP?+>y#Ec)kNihHxsSRD%@_F(-Q>SO){XR&{{qby=V$oNKF4#ovDHmzKJR~{ ze&!VYI=4c<(R`lY(f_MjfAU}GHk!}p=g^=07yh&FGXF;N#rYY!nN##%-s&ebKQq7N zzwn=Rga1bJ#rYY&vrppxJ*|F1^E3OW#;obzEM$HO7eaU&DpLK)&j^?ZU7rx)z z`jh{{f1~-FzlP^W{^R42`>3DL{LK84|KdJaKhjVB3pAhm5A(N${SzPXjrxw}tNa(b znN#$$e$a0;pXYbzPyUPktQ-0p&Ckp)IWPJj)%$leU**53V@}b}zKedN`I-48|Al_m z5BiPf^Zqy7KRJ(jav$|Z^Hu)i=Z(mDAi0m9TQZuj@*h7xMg9xCTBx7fBL4-N&--7} zPe1Zsp!OYdDETkY{6(vu|50~+uh+VXI-~g_|Dk*9Ce?xG3#ETT^F{s(zjRIpUefxL z{~}MD&*x`azu}wqsleNX_-8a<>|fN8^8z1g_2fT3&cxqc`$x_T{YMJ75qxn3) zga72b(9iloe@F9G{tMr=&jnuC`jh|SIhfD;-|+m%f7FxvsGHDyk^j(5{tIN?NI&^6 z(0p-zhVSfiJck=w-Gt`z{x|ApPSLM(EA$)9=lLD|zpC{o|AlU&`Fws3{mFmfKl?88 zZ!}+=pP`#MMgQfkenRsz^Gp5<|5-QqZ!}+=pW!?EB>vyi>L)Zmvwv#Ln*Pl~=BK0i zD*w@!oEQ38H|XzZzRG{$`^~LC`7iu8n$P)bcz)zRJ`TB$`U%a?%rE&b?t}Fs{p7zu z^SS>pe_Pl;@d4kc?`Xctf1#T>ML+8Y{YLY7euw_#zv$1pp}*1m%>0t`qW@97e@F9G z{);;16#eYG=r@|5nP2i>=x6<)-)KJXf5ZKg^Qb5HQExO~mp z9eBP_`X@ABu{^R3J z{N1&G#@8I-0NYU-*Alt0(tSZzTV<_f!Aj{>gu#|5hQojplDi^~3y-|L8;R zqyL2F^Z7aSC+E?h+(&<-`6~Z~?n_%e`7iVv%@_GEbYGx4^j|APztMbgeo{yN3)H?7 z{u|8~`7iV{r_9kgLi{(H&+|L@PtFVdtRM7uG+*Vv@Ll^{;DxO}`7fS>`Mm!P&yV~^ zJ-Ls%3C$Pz58dRyK-P`)lm7zE7w2dA&OXO;xUtnuXg=?MqkiTT{W`ZoztMc2-_if8 zT7U9i=r)?q=jYI${1^VS?=t^J^TqiYx|vh-U*75`G(R)HR6z>7USik^jOkos)r=wEpD3$kXQY`I**l_@;d-@b=c9 z{1-l&FZM6$$a#SewL0=2^%H-0?H@TW^dG4@J`d<o6&rg|3dert)BcBz8lRK`7d-| z(Dh%ddh{F37w0GS{j^?ZU7rtws z3%s!PC;!EBFrW9o;rWsOs3-SPH=+3=|Dl`w7s$Gie)3O7eaU&DpLK)& zj^?ZU7rx)z`jh{{f1~-FzlP^W{^R42`>3DL{LK84|KdJaKhjVB3pAhm5A(N0`)AbS z8}%K{SNSh=Yfb}MH|RH-&+|Lis*Kukv5iX-)&#chPS& zKQq7NztGRRLBG*_-v5UCC+AU5?xWslzRG|6zB)M%B=_-q??&@g{^R%W$$x=Y3-xn| zd|jBU!0%Rlm7y>?}YzG^F{s({hHIj zbGm+``8>aa|Kz;557rI(JDRWZU--^GhyNG0{u7$d``_^V$bZz6`|y84^F{tcH~BA+ zbtC=czd-ZF`5C@zp9{RP)sg?=IhfD;->6@68v1o^g?^*?Jinv=S9SfY8}u8^=ks&u zPyP%4*>{O7eaU&DpLK)&j^?ZU7rx)z`jh{{f1~-FzlP^W{^R42`>3DL{LK84 z|KdJaKhjVB3pAhm5A(N0`)AbS8}%K{SNSh=Yfb}MH|RH-&+|Lis*Kukv5iX-)&#chPS&KQq7NztGRRLBG*_-v5UCC+AU5?xWslzRG|6zA-ru zB=_-mdyM9*{Kwx9BL4+mEgkwfMDkyt`Mm!n{q!UM1!~_Rhm!vS&0nd1M454Ae-AN3P|ckLfJFZ3U&IzA8RXuisS;s0H&p4>;hk^I-*PyL7cC;x^1Tf1(f z`5RLGFhAr!`jGqRKcV@2eh&S~dGsgu;hWKXmH$HbrCqreiR z=U_hXf5Y=5|4~owqi#a;MgBuK`7e-lBmLyRK=Z}<8NRd6@f>b!brYJ;``@UaIYqzD ztO-=w?pQ&-y{X z(R`lYp+EUA`m=86Z!|wMzvR5=e^l?^(R`KvqK-L5Kl?8Fjpk?Om;4v{SvTl6n$P>+ zaR1~y>dAf78_lnn|N7s*)Z+7jpmE| z7P>F!`mgQ!jpmE z`Mm#)`k7Po>)Z+bM)P@oNB^(t`dK&VH=57q-_W1@7XGvEGXF;N#rYSynN##%-t`;J z&&)6RE&ONQpxD#pL)ZmGr#1wxDVEk^poEL&FB8Z{B2?X#0Pw%zN7gn zzlCn*6#c9p^c&6R`5pR`-=aV3hWKa{qyf0dE~2qyo_7_qkIr=Jn8RJ|K#6+`Y~uURkMNxfX#P1X)cfy;uU&t;fB*ga=c?Ze)E8v^zjXo4 zzaaHb{_X#au9r`N@^8P^13m_tFZ|p8JGx#z1%D=Vi&;I?8`r#9ZZ`UuN`NF@Yf6(>vDG>io)N7;p!oMY+mwXDuzioPL zG++3)v`5#=r$GEWTd$4g3;))kKl!)BdXZ0o_;;FK8_ie#-Jt9736yV3%(Kya}N*vm48px_4owh8*^+l zU-`%L!Y2^_Ua^4YEB{W`_4owh-{lKvzVdJF`m=wm7kmQojs3uAzVL6~UAkUA19x^(;omy+C;#@bUgT4teA~x< zW;9><_c~pVPawWA$42v&e>^XI0`cv}1vFpz_flPtPoR9;_kjg8U-`Fo{n4=!^9yLc^6$O69-lz@w)YDQ zXuj}o9s09>tQUL&<=bBNGo$&+zh~%rd;;-}IX0TF{Ns7y6NrDWUqJJfe>-$NK7si6 zQwwOm@^9_>vwy4?d;;-}{lI9x@NduEx?Vm7$~S%v9sdH&7yj+xdC8|h{Clik8_gH~ z?fI;(mrsHCccfk$%@_WyLx1vb59>uf1>zg~fzf>B-&MLEpFn(Lj*aFk|9D>b1j@HP zA6`K7m4C0%_4owJw>=+OK=YM3aDTDBpH7&qniw zf4g~J@+naM?Y>8^jphsgc7IUU%cns3xBDx4Z8Tr_w+{Wuzul}C`4lMMcC()u%~$?C zTi4?gh;PiX(R}3}&kLVGe7kx9%~$?CUDx9ih;MIRK=YM@+lDCm}8^)!oOWSFZmRRe^1hDqxr(WU0>Ao@+lDij@4_U`NF?-=uiIbV!g+uQ1ze^U-eC6NT z^=JQBFZcxF8~cILeBs~DPw9I36e!-p1_3|lD z{_WhS*GBV&f9uen{M*TTkxzm0Z72Jg(R}tVfB)j>t{;?c{*S|i=#TeT`1-%Uf3WuY z^!<sF}m-#_B- zMxXXF)q&J&|CrGH%Tj%spZ!|@r)kat-z9vBUK`El`Ag4#9sQGk{JlZ^3zTp8fPaDJ z3;(9STX>Xw)cnNXFEq;6_I|qmG=KcvMdmD!x(oWp0nHclx1@cK`3uzCEj>@KjpmE_ zTSx!oAAhe0{{rP3_ltjl<_rI(zx$)lUzi&{j*pyqDhg?eo?U(DY+`X~S5>o)Q!P`<_25sl^x|NMLNftnva4s#eN|JwVj`^VQC zn6p6YcJzACd@+A}57Kp-vp~(=-lyxe(R?v~>*$~Si_e$kQ=oj~ewn{O^M!x@y)%%x z{_%M;a~4Rw_TQ)n%@^~x`y0AWa~7z%+jEXy8_gH~#dw+%dcmDaZ^vWmxe=2js^+xm6`OE)pWzGVr*Zv#z zp!s6{cK(g7)0_or?slE1*GBWj{H>#Z@-OnCdGkFMXKI&h2d1q*0?L#ogHPf`D`sZMyzcHzsG z(frY0OZ6#t{iFM@_x}63Sx5h@f9?H~f6NQd35@5zFfZn-=Xc*Ps!q=-P|xqa|DxAM z^TqSK@9pjRfjqza?pQ{iUweP`=l759zux=r&u<<5)AL)0|LOTHu4mT2_kqA^y|3V3 z|GbC!+wp1Dfqx~``kT=Fr&E3IuXVTMw^Rr26>9xWX#TfSeY*dDbbrmi_p>$K|HArP zo4|k(EP8h;9q}!%pdv#_54_WJikEm#q(o*@%#ey{8)cH zzd-ZF^ZQ5l*ZQ08b1nD3u>RI~|LOUy!~b^fFZh4V74nOHP(Sw_`=8PL6)QYH>;E^Z zd!_0?{rv8I|JMSVe`TuoxqlYtKKhS&X~+L0WdAmre`%^8^zV4K>X@U~3z;9I`Dds4 z?4NY+c)IGqHw&eILi0~g^@IK$`uYBN4%Z5qd!zaMbN{3M!&Qg=Z9?=L%^#ln5Bj%% zLv`qXnh^aR&2Rrksvq=k*Y7=q{_}KQU51Y zC;i*ME|mWNm%Mim+N>P-J-;DTk3X14JC*`1G+6^;po18 z_j<1NzBhOG^VhRCL!M|yJeun>zsw4k*iugCJ=YO|S^4~%K;(vvR|3>ROa{m_pJDyM- z{@FM9Z?wMSiN60G`gcp={}>Vfjn;SkAk|m@^r`&s_?9UDBdzEDt^V&+o&4`$|H%JH z>vyL0OaJV+U3JQT$1|e*kFCr-{9Z0etufN`aef? z`2U26f7ALoslNKBPx1dc5&x$3+`rZToa*q;zQMm~eJ-tE{V!1+{x1^oZ(3iH>WlyF z^e_Go74hF_eS7ZT;(zM(gtrrS*&d`3F^p z|HUHy8?DbjnCh#4`V{}47V&Rd&;48dU#B|xpJ)Hb|48fCrS+@-t5hfd^IsF?f28%R zQhoJLpW^@RBK}S5xqqwwlU0X*_6`0`>nEr6tN-IwhyNQy{F~N~PxaM5eTx4bBK}S5 zxqplQZ7-+}|Lhz5H(KBJLR!E0-}ZCW;r}%v{u`}t`+2G_{*9P-^Tut|B=@3PwQ9z_o@#62Z{J^+}8AM_on*lpFYL^$3^^`)^q<>|5vCE|Lhz5 zo7S&L>sSAms!sm5eO{FRk=8Fw_0>OpivKr@_&2TR{;mFZsSf|_8~mHrcct~K|1GM+ z|9eFIo7T6a`r>~p{fqzABK{k#Z_WK%{BM0qb@*rB;J?xO)~C|?#sAjFREPgpi1=@` zzV)$GU;Wdk^1t=FqWq7vp8L1@ze{!Uzm@$X|0Av6mDaER?@*omZ+%{r|B=@3NcGh} zeTx5EMEsl9bN^QV7pM;Z>>K=>)-OowSO4d#4*#DN@o!o`H`Q1F^eO(&5brX**Ew%t*=e%SO3dYhyS;T_&2RDOZCP7(ey9=Un=6i(fZN3e~bU4zo$CIX{pFWlUqrW1`|48e(f2;pnRVV*Pvw!4&r1e|V z`qlr9s+0etez_;OSO52^ z4*xF^@!xn<(~r6@)mQ)YDgHkp;@`BM`?vbPQg!%e-{9Z0eq~y}`oBzd@_*D9Mfo3T z{jyYF{nMxTzevQtX+8IE^?#h|@Xx-%ziIurw0`wJuR8p{SH!<*eLmF}|C{Mw{I3`B z-)Mbv?%(2n^RueMKl=v%jn+3mo7OM>H$R~|{GTY|ztQ^UCsKX&PoK*F=I@L0Khk>c z-|GKv)ye;6_K*CJw0?J5zxuyZb@IRY7oz-+w0>u*um0&%{C`BmziB=9Z}oqP>hRCL z!M|z!lC*yHf4=JQ|0xmwruFkvef3YD;{Wv`{!Qz-f2;qEs>46~2LGn@jcNVre@=Dy zf18MZ)B0ShFa9^tzxZD);=j@Qrrf{9|E3?P4*%>M{5M+P^nA{BQc2DE}j^=l-q!Z&#iCZ({$*|48e%r}eA_H|48dMr~2xj zKE?kHBK}S5xqqwwb5w_a_6`0`>*u8PtN+tghyRa>_&2Sep6aWA`V{}K5%F(Y&;48d zFHs%-**Ew%tuIOISO15p4*%zg_&2Q|mgd>|uS@mSKYfb-_lWp6t>^x&{!djM{@FM9H?5zV*026gRvrFt67g?Z zKRMM`|MV&TUm@b(w4VF7`af88_-EhX-?V;kTEF<;@Pg{_|2h%>jn+53km`&74fL=4 zZ+Kpm|B=>n{}%rn9#kFv**Exaw7%iNw0`w}zv}RRsEGf@4Nc#0f2yzk=~MiFQpCS$ zJ@;?*f0gRwe*^nR{zqEBDy?7rU!gkr-|%Ho{zqEBBGp&_^eO(|BI4h)p8L1@KVEhC zXW!u8w0?YAzxv;$I{aTN;@`BsE7e#3^eO%~i}*LK=l(7J*Z*8~_-EhXztQ^opQrVU z|MgF)4*#zd@!x2D{ZpyF_+L-|%K!QwiSj?vdhXxq|6bL}|9bY1{ExJLZ(6_lze{!U zzy4RE{ExJLSE{f6=~MiFRK&k&J@;?*f2r#5&%VLGY5mf)e)WHW>hS+*5&x$33sQac zPoLudjUxU{>$!ic|1GM+Kl=v%ru8jp{px?M>hS+|5&x$3wW+@NUq}Dqf2oN7M(gWx z{}%u29#b9u**Exaw7%}Kw0`lw?t7}k{|*uVjn>zFFV$E7^r`%>`-Uk0BdzEDt^V&& zo&2w3|H%JH>vyE}tN&Y7C;#i76y<-U^;=VY^-rJT|3f1FP3yUTtN(LVhky1B{!Q!W zruD1;vs8!wkBj&>t)G?ZtAF|w|F0GCZ(7g&Tm3In9sb!j_&2RDOY2wv3sr~zH;ec; ztuIXV#s6CR7ymC2@!x2DZSLRVf9*F_hky1B{u`~Y{bpLf_+R@~)!~1&i2p|GYrmT6 ztAF}b{?~p{l>d>|bN^QVH>ytl*Rp@)f28#r)B4r_2UI8jYriYX|48c}NcGh}eTx70 ziugCJ=l-q!Pg5QK**Ew%t)G_Gul`R_9sX|-@o!o`CDm8|^eO&N6!C9b&;48dAEG+^ zvv2TkT0bPMU;MB6t?KZ9hKT=0>uY|S>Wlw1^soG{`GqL|BdzEDE&kVhNp<*V-{8N| z`kF7L^{fBSsSf`y74hG=rs-=wm+Gs3`V{}467g?Z&;48dU!ywtU&H>9|B=?ON$Xet zSE^3_*L+2k|B=?OO!d`2eTx6LiTF3I=l-q!Pf{KJ**Ew%t)G zT&l1B=~Mh~74dIc&;48cul}X#@Xx-%f1~x)zf9{F|Er%>9sXY>;=j@Q>St4Z@xPk> zmH*X07Uh4W_1wSJ|9z^H|JCdt`5$ThzO;Vzf4A!7fA!ys@;}o0-KoC%r%&s>A|MRNDKl=v% zruF%>e)Ydmb@+d$h=0@i##CSYucCkPze2=+qxDs}e~bTBPpA(6>>KVfjn-HFAk|m@^r`%>`j#mFBdzEDt^V&+o&2w2|H%JH>vyL0tN+_oC;zLS z5#@iR_1jZ@^-rJT|0WUtruE#v)&Kdb!$125|EBfx)B4r_IjY0|Cq(?4*3U`x)jxfT z|JRB5H?8OXt^Vg!hky1B{!Qz1Y5nSdiR$owk%)iO`jS*%{Lj(9_&-#{f1~xe+`q;D z+_zPSfA$Uj8?DcMJFQ>*&po0#{I3`B-)MdAkyKy()2H%3_hnK3M_SMQTm9dxI{BYt z|H%JH>o=$MtN-1qlmEHzi}F9x`tDR;{nMxTzgEP*X+8IE^?$nR@Xx-%ziIvSw0`w} zs_O9n5fT5U^;1)Q^-rJT|CJ*CP3yUTtN+7Phky1B{!QzLrS+@-gH?zB*NgZ!tsk7~ zi~p7Mul%q4l_>ust>^wN{#QPvI{dS5@ZV^CAoD{o;Sc&sB&2*NFIUw7%l!slNDMLI2ACiYG<+A89@JZ}oq_>g0a~`$zsqTE9Q7 zU;W>!I{Y6b;=gf4(^uS^>Z^bH6#pL=@o!qs{agKCp*sAtZ}4wgzap(){a>m&`CsvQ zQT|6-zckfX|MV&T-z?(aw4VF7`roBG{IhTHZ(84#*027zs1E<{5%F(Y-;(N!|K;>A z{#T3mZ?wKV_iypP{3+GppM8V>M(fL;O6wQ@%O6u6{$C;DztQ^g$5MUuPoK*F^6!fB zKhk>c-|GJ^)ye;I_K*CJw0>7wzxuyJb@IRbc~SmHTE8RJ=k=-M_Y{fodmvPAT3`N$ zslKj%ZmWO)u)cqP!1#L+&Q0|xzsHZ)`U~`aHmKiQ^SFL*<4EhB-(T~%eoq*`rv~!- zYaYL7LhHTXKlHeM&(|{jo+r5cSn(|rT3_~D@;~I)e*eS)_)qygzIOQiKajj1fBS^| z{-5FVw0_F(`Q5r+IR%y9^Pkk$ru9yK&tEg-2g&dG&rV2w!{=%J)IZN(HRK1$@A=P9 zNPffTd#P{v9f1Fo-}6@t`9bn~{>u}R-|%@_Kj+8yotz-K>GwvCwBE~4zh^FT5+lFY zPiVc@f6wdpj73gjeX*zlAM7G4gx!gppr-zVG~=`;xBL`a!M# z+>iCOX}y!*bN3JVLGpX<`3cEy_&lwj`tP~>hMXX|J@<H+-J_r{~83_)qyg``C~ljQsR_M@{k@K2PiC{BG6tmT0iyQvma>riRAa}S0;@7;`6=KxBd&?_W8T{&-v-O z7deUK_Utz%wEm*sznAknPS>+OWPQ$m(|RwzEiFGWa^w6ZKQZ!)&-Zfw?e|wbyRqdb zMt;mcA@UwBE~a&m+2CIR%v)?~f$Ep!H6EyeE;I zAi3?~{B5+}+rN7r9CCt@+d&hO-|+dq^E&|lDZf2D|CAq${0^PadN;pIbv-#ja^w6r zt@rXfzvU-JZk)g5Cq{np`Cjh7_1~UzTYe(>?fK}0kzahim-^O!;oCm#+q9nj=lpoS zk)KF@dpjJ-yg_(63GchZk)g5CtC0I-!s1)@`I7zi4&6F z@OdY{{r8{pdxqzq@`I7zt0uJG%kP;xb-i*5DmUIANq#}=z5H%%If>-<4CilS>SlB|kCpi_iCR|ITk$%TJ8_-acXE7oYE?-udmn|C}GsH}VrBzxPaNy_et9 z-_!NVDX83de@Eg^=^Jw>Uwg5b&kx>{7&(cN z8|N?iiPpRQcW}#3jQn0RVdNK|ckXCr82P6v-*jV&um8OMYVH7oYFt{@eb2>ZF#R82P<-!pJW^-%EYlzv0_H z?c21T{pb96zLB38`MrNa>%IJb`h>36IziUu{5P%V_0#_4J&EK5BR9@p@)NE1`tPUT z9`b{c---#zZ}@!Q`5l1&l;2Nz{wY5g`K_POdN;r8bUisi<;MFXM_TXYcV){-B)6Y( z{x(K_@%divzxCfwuW0#+4rcck<&siR1*yjrXmX)_eQ+$-9UAAo=nB7?b>l z&-b0*0r*e(J<0P=`9bn~@)r|Y@8)-ot|uo*Zk+$7^$Oghbvge{ z>v{e3{NO!_e;Xse_7a}Mt<@6Uh19S{`=4Q@q8mco`2+b(S+7}`91NFu2)V$<@N;UziGXb-xHr3a)RXc z1m|xf`3;}%<^EfKPuxG`2g&b=Urk7U!{>XcZ}}a7|CHYoJpYs*jQkFo(0Vt&3v@j> zL2~2#H?8;bJE!F*MsA$H4>`fejq{iMMDiOx-^=~C{2qUH$PY$-$4p3m z!{>XcZ}}a7|CHb3JpYs*jQmcV(0Vt&+jTuTLFM*1=f7#am*0&oCz0G9=lpGq{NnSy z+`seN-SQL3@A0oq82QELd#QJR`|m&J$McQ+MDlz5TN7G;QGRLu;OE7-E`DxI^}NrD zKgaKt8$M6|^ZGm=SfA&I>R$ZwH?w|zDc--PpOXyUBA%%~$F!b*elq>{gP6p_AjPr{epe_kNefnuLVCT^8P&2dgtfY;{92tsgCz|y-k$=k=9R3>lgpKPEwux z?|QE&|0AuRl)@BKaa<~=>(|5YOIQEar{dw&nUd4Esv$D;i6{+^)qFU|0OpRQN_ytfDcBdy<; z>P!AR?^Yf6@%N(qkF&?REPghiTF3IUzX~t|4USd z|Ido}H?3ci>Z^bH6#wUm_&2TR{;mG!Rfm7}5B^Q-^J)F+f1~Q~|4tGAruB`fzWC=o zJ>h?ai2p|GJARq!i+|qJ6aLvZ_;0k{dw&nUc~4LHKSsoVqxBs>Nb6Vs^r`aay*>CJ zX+8IE^?#@8lt1t7!T(6>cc%4A{=B~@?&BFz{&{~-(E9DEzWS$6@qd$uf75#I-|GK- z)#0CggMZWd`Dy*?{~XovefWfkf7ALoslNKBPx1dc5&x$3+`rZToa*q;zQMm~eJ-tE z{V!1+{x1^oZ(3iH>WhEg(-Zy=74hF_z4!heeDj{3@Xx-%f1~y7-%jfn|GcLs{I3`B z-)MdNBdNanr%#nX@9n|=Nb9+OOa9w$Rvq`j{*nKY)^AShSO2?Jr~J2nUzGom)_14+ z>YqNv|Ft6iP3yUTtN+tghky1B{!Qzrr}eA=RG~)pM8V> zM(e%z_uzZ}LDk`Zv55ah>%I5)gm3y3|DP7|Z(7g&Tm4_BI_1xMd+sO`vnm>Jt|F?_yH?8OXt^Q9|9sb!j_&2SeoYt@Yk5?W3ZxHcsT0cJ3 zSO4@W{&$G@H?8OXE&h2=Pxxow;J?v&@BKaa<~=>(|1~218?E==--B=7-xGXNlz-me z6SV$Ny8r6`eqFEpd2bK?M_Ru>)tCHvPfz$iNW_1m_1^n?!Z&@&eSBQRziB=9Z}oqL z>hRCL!M|z!iW&YdRUO}l&x`Uu()y*TzVy#F`V{|f7V&Rd&;48d?@}H9**Ew%t?x?f z*ZjAr4*%~F@o!q+lIn|p-qREQSBv;>wBCDv559R%Pxxow;J?v&@BKaa<~=>({}m$s z8?A4BY=(dORQdDX9{i8Ap8L1tzx6KFaUbj(`5$ThuC#v1f9oBp<364j<$t90J5qhk zpFYL^Eh7F+>$!ic{|i)yfA$UjP3sq=^{fALRfqpiiugCJpPTBdfBF>vXNdSWt>^x& z{@1Dw|Lhz5o7UH+^{fA7s>AS*_xIrYX!;a>MU?-M)^q=s{Exm>b=(L0NB&1zzcuAo@;~}U z)o~v`66JrS^&3-t&7VHS|NBM!o7QvxR{v+I4*%>M{F~O#O6ynur>PGA9~JR$T0bq- zSO4@W{$C~H-?X0lxB6eGI{dS5@NZgQnAWfU4^bWd-zehWw0=mcFaCLd5B_;?5B^75 z|6Zyu{&`PN_-EhXztMW{{XO{RJw4%nsfhnZ>%I5)gm3y3|DP4{Z(7g&Tm64Pb;_Uj z_TYb{^$(=`FZpk|Ms?iBH$?d#Y5kg1U-PF=@&8T{|EBfazt#UKs>46~2LGn@Q_}j? z|4FLD|A$2Uo7PWC_0>OpivMFo{F~Nu{}%terziZgZ}8t}z4!heeDj{3@c&v7|Bcpr z@9)7k@9zmdBg#MT?+IG}YP$dG|8u%t`Sac${ExK$xl~{B=RG~)|0N>+8?E==-xI#+ zQ|{vvBK}S5xqqwwD^-Vo_6`0`>sQY3f0^p|K73J>|B==&OZBCHj-pTTf02lP(|YdT z>i;;^;h%kjf7AMLY5ki2yz21(UJ?JM_4!m^{BNdz@xNZgf1~x@`+M-sdwRk@`v(7w z)_d>o!8h;e3I8XG_;0k{dw&nUH`Ax^`=b1hw4VF7AvyL5nm>Jt|Bs0HH?8OXt^O}j9sb!j_&2RzlGd;O&sQD(KPBSdw0?f7 zum0&%{J&nrziB=9Z}q=Xb@*rB;NP^qF|A+yaoZxiuvTAxex#Xs-q3IB^l{5M+f zy}t+Fn|`1={IhTH-)Oz}{vLeuo}Tc(Rm6Xz_1^n?@V$vXgo!8h;e3IFUH{5M+fy}t+Fyr(DpuMqLyXubFT9(-@4PvPf9 z`5$RL_ixF6<8IY)AM79bA8CDe%CF?V@jBIUAKwz?f28&6Qhm*zKE?lgMEsl9bN^QV zr>YMB>>K=>)=y3ASN|ug4*xfa_&2Seoa(E8`V{}K5bmD z|3gLmH(Kw#zbAatr`*RUMf{uAbN^QVSE)|^d2bK?M_Rus-G9yh3e|BRUl!$mr1dLO zed(VK^eO(|BI4h)p8L1@KVEhCXW!u8w0?YAzxv;$I{aTN;@`BsE7e#3^eO%~i}*LK z=l(7Jc~4LHXW!tz(R%OwJ^1E5J>mbABK{k#_uk)w@AdRA{E;aCBdtG}?!WrKS9QvN zJ^M!fM_Ru()tCI&-=#Y4<5!~mkFA=MMf{uAFG%&(KYfb-H;VW-t>^x&{A==Mf{uA z*QWa7pZD~H|D_`S8?E==--B=7(-Z#LH~4R~-g|!!zIjhi_}?MoztMW{{XO_zN1wuP zi1I(udhXwn|GGO=$9=GWd>|Z%y?zfBF>v9}@9zTF?Dk z{hzBk{IhTHZ(2V$tzZ40r8@k7T*SX={j5}9{nMxTf31jr(|YdT>VKK)@Xx-%ziEA0 zTEF^Vs5<<=S;W6-ePOCE{&`PN_S*_xIqN_whRCL!M|z!khFgB&wF~p{~03w8?E==--B=7-xK_WDF3{_CusefY5n4#_w)@BKaDn?B_}J|*Jcw4VF7`oBhX%6|>}NB&1zzb4&( z&HqZ(aUWk1<$t90D^q>xpEdL;{@*6z-?X0lxB5Rxb@*rB;NP@2)9Kkx0q|48firTUWp>bq6Pef+&B|0Av6o$5>etLanj<6|QJ zP3yUTtN+VXhky1B{!QzbrS+@-OH_yd&x-grtzVMrtAF|w|L2MLH?8OXt^Vg#hky1B z{!Q!iY5nSdqw4VgP7(j6^^K{%_~$)6;eUmQ|3>S*_xIqN_wz4!hee6ONU;kQKjA89@JZ^?hvovPzL*f;V&()yh#zmor|+f~PXJR{2g zNb9$!`kFs|ivOEL{F~Nu|5pF!s}BF{8~mHr&rj=D|L3R<|DO=?Z(2Vm)mQ)YDgIw4 z;@`BM`?va^Qyu=Y>>v3bY5nGu zU&()Nx9Yf$?~C$3()#XHU-PF=@qev|f75#I-|GK#)#0CggMZWd>1qAy|5VlC|05#) zP3xzo`s$xP#s4cs{F~Nu|5pEpsSf|_8~mHr4@>J;{|BoM|F0MEZ(2V%)ffM~zX$)k zw+H_tt$#b!7yrDcC;YQ-@ZV^?_x>Jy^PZmYzgWb7qxIhVd%`z;ivLfG_&2TR{;mG6 zQ=RhXy*>CJY5lr%|0VyGSE-Ks_?jsHBduSR>TCY=DgNIs;@`BM`?vZ(S#|hl-{9Z0 zesWsB`afQE_`gBKziIvWRA2qmr}*C?;@`BM`?vV#Jw4%{eS`l->%I5);G6gKg#Xuw z_;0k{dw&nUd4EsvNm2fJe^1c*L+Spj|NC{l@?XLJk^hm_?@#q5f8Ns*{tpuI-)Oz} z{+{qnpK>1`7x8ae&;48dU!gkuvv2TkTEAk3|4UWJ_u=!R{ExJLX{s;%vw}Xw|C>ep zo7QvxR{y(Hhky1B{!Qz<()u<3Evm!+dqn)3*0-ek;-B~Qg#Xnd{u{0L-rs|7-qREQ z**ExawBCDv559R%Pxya@i2p|Gz4!OvdpUgyzbnfBNb9+OOa9C6QXTifzLEct*6&LB zmHe0Ap*rs4c~SmHTE8RJ=k=*;zpsJ!_E2wH@4de#);)JvpZE4eeIxJh89q*|GW5heQjF*4{80BAMd{*zo7Et{XOItwBE^&_w$fn zQ2Fux9`XxX@8rk(dB`uQ{CIy4IR>qF@;dxNLw-T!#_tayzo7MAeth4_36k4u zr)a&G-<+-|CrECupQ80%e#>+{IYDxx|4r+?{Py2}&TpaCBPU31Z=Ry{PJX=qhWvuc zkN5YGW6*jhKi(a(-pTI({HOeQKM(l@l^^f# zA;+NgUVi86dUAr~cI_0c_wqYS*OL<@w+~IxdN04zbv-#ja?|h48fm?k-~Rj0`JJlu z$O)3$N2X}KlOONDA-^E`t=8A3^-g}gw}Guh7?~^Uwg5%8mE;jI`d%kLM3LLFLB#dq!IC<@W(yPfk$z z@&2BX)_eKwzyF*c&p&d4%8mE;jI`d%?>JpgPLTXK|4r+?{I=+Na)RW?`DU!lA zRBpVthx~%pd--vGlM_^KyuW9p^w0p6%8mE;jI`d#?*RPg{CMt>6I5=zzh|WN zUVbO*dUAr~#`$kr@8x%#t|uo*ew@Fi^&Xd{8|S}iy_X;7H#tG&#`}9lTJPm|iLNInsN8se&q(XN{Py2} z&X4CFIYH&d`+G)O@8!2d*OL<@H_m_4dN032bUisi^5gt9t@rXfSl5#iB)`{8(Rwex z{r8{pdy40uate~)>-4p0y^|mBzahV%a^t-{qb@8rk(Z^$o5Zk+$7^-g|2<@uwWg5<{e zYg+H*$NPE6FGzkX^tEZdlivaOPx<|n=bv&4lHYoLZCdZ;cb%>$C#c+bf6qwkz5F=8 z$q6bq-rqCQdN02#bUisi<;MGaMq2OXxBvcgemwWc2`V?<-!syBFTb_Ao}3{0asHdu zd-*NV_2dM}kMq~G-pg;Ht|uo*erHV4dN05I_n-6QxkpZr{N6Z4>z(|b{G6^=PC@0y zdwa+)XuXr)lRSTvQ&73_{vPrRTJPk?`+3MOsQh?;4><;{ck(*`|0zG-+e3aq<;VMb z$T4WWm)|+Mo}3`LasHdud--vGlM^I2&R^4dFTYcDJvl*gyJ3pfd-?6Z|C}GsJ#vEN zcGDECck<)?H{=&2H_m_4dM7{L+e3aqa^w6pt#|U{y*=a?B)`r2+O*!u?*RO#{CIB< z`31>uhrTwg_wu_@*OL=eZoI!|r1f5YoZsXGl^gHx8EL(j-!;0PoS<^!{XHYC_ww6+ z|2aRNd*lR_8}IKKX}y=K>%IIg(Dmd5$&K^hwBE~)^P8L?xpDrQ)_eJ# zrR&KFlG`m)wBE~a|NZCuc*vxMcm28k+~4TWZ?qm%ow@Am!=GpV!QpA$e;n(^dzTh0cVYf<+&n(7IUbe~o_Dk=)k&)v*3Z>;EFvPyO86u*PTzm= zzxw|j)?c$~Sl_fRPS=<9R~|d8zw+#1{gKv>?bomV4@3QG?LqvHw4TqM>i^%XPWi9? zj;Q=cTL1TH{Zha3;-P-!e;n#ZTE95em-}B$pDO>=I>W-hX+8IES%3AJ!}_b)KlnGT zpV?o3<-3OUSN?Cq`XjBst6#sGKE?k(9_mM0pV7aoU#2?pXaC^ewEnWRe!2gZoO7yQ z`Segf(t1AsO8%?pU-@74Yf=3((t7USvi_?7dsu%p`v(7w*2RARKQOGnl5>~y$F%-H zzkU^civQ0H^&_p%=-*ZUR&~m675hj2M_T{4Y5j8lEB6fbbAK?@o7Tnd{jZ`=@&68y z{7vh*f6Mx-{%BZ#75fJNru9GSufOs)!}@bPzqGz-UF`d(Pw~(FPOo3?f9}|!evaH!KhpY)^K*{=mH#>R5BG0c&;481r%&a7j{U>>ru7;9JID8l z^)GDeo7QK1|K{jZ>N$V$Z(5(xzjK^(_-Fs%-?X03zjFU8^uPV6U-P}8-n1@GfB%N_ zr_F!MHV*S2Wd2+B)P&4`?ekjS=D%ex4D(;`Va>3shxsq4^RInAU7!539`j#N=gxBd z?>^?gp!M65|62d(P|w^)oyq(cf9|8HKApe#WBv>3xrJ}$zo7NYQ+-*V`Hyv&`&fUZ z_5A!S>oe!EK64-In$~;sU-;hH{Qqh5ZCdZlf8l#g^Z%yi-?ZL&ep1i;7u3Fq{7vf{ zQhw$BHQx>S>$w%VH(D3F{llCW_pz$^Z?xW<{~~vtQ^B)`^_l>Kod+z=D)aq_Ko~A{{^k*{w?{>(Wm%e->|-EeMbK>|Hb+jwslSG zGroV!e^Jl5i+|JljQ(Z*3;*mJ{F~PE`B(0rIgfhgKI%>Dz4`CR6`Hp+=RxMbBY!lZ z_1@qA9r?WKb!xfA}Bu%hUN;{4@Wt4s##tkF=hjpXvOK+;mPs=04Unng817eg8X~ z|37WMP3xWcFMO|Q{@>L6o7OwePwJWfg4#EcziE9#%CFqN=DQ*Pf7tvtS{JA9zvR!H z7x%HM`ERt|oBtwrom0WHhxM8N;`?B|bAD0B{1?=7i#q1Np!LrDhi~S;;CED~{$c(L zTJJnRBlnAkdgi~#-?ZMD|H3zY%6+`A`8KWR{;m0++5EF_@NZhr&(HGxXZ~Y-=D*0@ zw4TquQqTMs{`K67+)e8<`j`1H@@L=R-?ZL&en$SBbL@kshx(D$^Z8f&Gw0!-xexy% zt#{@>*42DB_-EhXztOrly?@I3%zu$T=Pu`uX}$CO4BzxA{y)?Fo7QLaFY{mA2m40; zng4>;JI~L^ea}$O+((_s{MSD3-aqqS_>K=>*7NyS z?w>i2dgearP3yh+Z|TBe{)5baOZE4cCi7qWe4qWdRDWN|{1<#!J`Nq`zo7Me{w4pc z$NU%6xfAoKX}vT5Mct!AJ#!!RCi7qWyz8Gi5C6=4_#SEf@^pR{|IB}^!`#REBdzD> zXF7i)H=R?ExsUZt=D+rN-~Z0$|4*BL(|TwA3*T#+|2H-NruEMAlX~XAp!QAVZ(84w z@+zoRnJ*?0C7vBf#o%4%2=D(nx zThuZC1+91HKYTO)1;3*@^$+u3(0b?j8M$9P)HDA@{-*WL{1?9IQ|{w^&9`Yi_ixSr z%;ul{gMZU{etwqkKl2~!Gyg^IruBUOm3rpC@UQ1qR0 z{0!gpDgHmx{F~Ni^e^*Y+z0zc{+a)R);rJ7$bHXH&)i3y$^6$o@7_Q2U-*AV^KV+u z{agB<`7ivlZ}4wg@5~R8`)`Kz=hhADo6LXh^S*!jl>E7W`p2|Bqkoz6!aw^4|Bcpr z^B;B0e?f91f7AMm^ON}x|IB^(A89@JZ^@teFV<)Ou)b-1M*lMZ#rhYv^-b$DzJJVr zQO~)Hf7AMm{$>6P|Lhz5o7VIBSMHxVk9y`l>P_pt`R|CA4D%mk?mOaZ6Egp`&-dAX zM|^*n|AG(e`ri)oUr^^?`+T}S`DZ=mzo5>Ym^V%9o%t{79v$kL`=~dW|Jvu%>!!-c{)Fff95~dVeVu7k=FC`v#igY$NJ2DtZP~q`~G(h_59pl_%^L~ z=D+a0Ms@gqQ}b_H?>s-LWBv8K`!D%3=Y{`O&3~iy z-uxH2>zoRnJ*?0C7vBf#o%4%2=D(nxThuZC1+91HKYTO)1-~=+XZ|C{QSUrIBlnAk zdgi~#-?ZMD|H3zY%6+`A`8KWR{;m0++5BtYgm2S&etwqzXZ~Y-=D*0@w4TquQqTMs z{`K67+)e8<`j`1H^4Goz|EBfM^E2}2oMRv8`4#z_);sebzM21mzaIQE|8XCq-kJYc zSM%NAU;8HfH(D2`_fN@>`7iSSyJ21CzxX~_?>s-lH~q_fd}gQ{X?;fjGXKSWXy4$U z`7da_^Zbn5_YC#SebkxEf9><`{WJfC|96PwZd%X%Tl$~*FZ^rYgm2S&XMTv>e>1E< zw{BS9Wd3WP_x;nSc-;zJ`U#zcv6YHDSXY?=gU#x#&Ti>)kV<>~w^{+a(+ zhq;gSM_SL%&$2#q9_usrv94*oH~)q2okKnIU-&kycjmwFy+(ETe^c{sTJJnRsbl^N zvTw-Ww7wzbSMFc)-H^YYTj9Uax;Xv)EBQ0$h5uE}f1~x@{1>_FoC=;jtk3)x-v{fR z^NTv>zo4F5)G_}Bt#{@>d^6_-zcct}{v*dx?>s*v_lt*m=D*0_wBDKj!Z&@&eY~&v zHm&FWt@)qX{A=HYZ_|2yewOb)^B?Oo|3&Vm^?d%7dgj0Iujf|eZd#wwzs!G;zxGY| zH?4P`pOHW39Q%Oh7yWNq@63PrX3h)#dhpNu$9;@?XZ~Yd&3A);?VIr5XkDD%KP5lr zzsUdZhIN_$;`?B|^ZX3o^e^}EnW1i^^%?!k{1^A3eS?4Izo7Nb^D}baGt@KpQD-v$ zwa>fv&-@qu-yxE_X+8IE>3`Q%LFT{1KRcmyai9Hn_*Yb~b1wL>sGmdR=l_D%^ZA$jvmWzbQ0Gp}o2K>7{1khzcbP3FJ$ zdEfue;X3BO@NZi0%zxo~jq33KCK3Op_0IE?I_AHi_D$q(THlcJEBCMYZpdHHt?=Jy zU7WuEl0S1^_+K@w&%gi0hxOk47rE=43Z5;JziGX5eo@E#7u0i$dgi~N_0Ifp7}5GH?4Q(zwk|;av$##@o!qs{af=tb6B7M?i>D1>-qUvzW>aB ztk3)x`J2}B`B&jDp!Lr4GjiWE)HC-{XEOh_&%5`}{1^V;A(FpoJ@;?vf9AjN&%VLGX}vQ) zMDD*C)}LE9tZy>^wa@$h=~MFO{_$^GpV7a}dEuXZga1bBz4?zi=D#4hk-uqu#`($o zhkxci{ExJr`?uuJ{1@x9e^}qNKBIq`|6=_M+xn*U8Q(wVzo_Tj#lLBNM*lMZg@5)B z{!Q!o{44j*oJT!#AN8j7-u%bEH)hU*%zumTozQx3{#*RuF#iP~R=s`>k@+vE^RInA z-M`5{>oNZYb?(GGYFh8ie^K}7P`^_9hkBFwuYEqfemei~$NU%ku*lC*n$|B*=V$TH z{Kq=XeXKvydVYSE^_lZnpSh3qP3yhC{|nzchkE9}@NZi0%zxo~jq33KCK3Op_0IE? zI_AHi_D$q(THlcJEBCMYZpdHHt?=JyU7Y^@mHe6W!vCsaeda%WSnth$k-N^R;MpSi zo7Ow$7j?{kK|QyqXZ{OX@63PrX8sF)N5r>jz4QEx+%F#Lng1ex(|TwA3*Yo9_whav z|EBfazcv3ehxM8N!oO)fKR?U&pZSmVng1ex(|SJtN7>Ck{|P5 z7M1P&d;0jQ(Z*i~C^T$UpO6(0b?j8M*Hn>Y4kfGnxO| z=iU2f{tN%_5Xs-Pp8L1-Kl5MsXW!u8wBDH?BKO}6>(8wl);F2|+UI@$^eOps|M)kp z&*)#~yztMy!GELm-uy=$^IwqM$ltU+_`3pV7a} zf3g0BZGF@FjPD=wU(|E%;@`ABqkozI!aw^5|EBeP{+0V@&ZC~Wk9yPkUgy8|`&$;? zJus-t}KCJiVx5!=ROz>=x{7vhf^M^X-x1gRo)HA;Yt#{@(d^5iVza!$? zwBC9CMeY|5^~`UPziGWQzlCr5l>2y}h=0?1?%$gKnZx?bZ{gpxo}Yi^`_KHw`pj>U zziB<6U!|V;E&S`b6aG!>Gy0eLE%ImIkiTiY^ZbkaIp^31PY?AYt#{@(d^5iVe=RD1 z=C`2r&iux@n$HIR>>K zzr}s9Z{(l(Eoi;-{EOW84E4-y)S1k0?ep&aGrxuZcZlR~TF?Dk`k(nN{IhTHZ(8p> z|0DO`4C~LW8`d|O-`eMW|MV&ObN~1^t8M)`i$=%^IOz&?&9CHKBIq`-@-rp z2mhw^eEyaDXHKJ@xs7_$`ithbe?I;DpBMfc&0qhk>clla(eHox;|Z;c)BQK~d#_b@ zqv}~-WZmT_PH6o_>ks~?=Et?`Rj=>=+EYa3H`4n0wEooZ?bh{o==!CNr;Fd!*QWKQ zsXph&x?bmZTR-Ku{4aF>uhswky9w9mXAsa$eZJ59mjBI=A0)pO+B+uswa=&P)A}#_ z!(rWp|7b$iMK^ovzwGQ`eHeYSYC_g;pHHt}^S{33uYI?CtMW9hU!U&3)UWyPt^QxN z`bO*G^!n-fwP>|!?$zHv!*7TuPtp3lsXnd0XtA!pQ*}^#XVGa>w0>u*PyMs#rMg}{ z7}WoETcqAwZd$)%FZKTY=lkz}xc~P1Hy16@dLP%iQ2nz=y*SeP$J6>LzhyV*dgT;U ze#^8U$T4WWli#xU>U!lARDR3u*Vm@?PJYYYqwAGZP`NGpoW3@#ck(*`|0%y^*JwTE z6jXl8KCQ1!>%IIo>w0p6y=Yb`5pOleQjFr^xpyaPx&3meo;&Xd{+l^DS-pg|OHOF0F}Z;QS*t#|TU`lPN`PC@dU*Vm@?PJRdAKjpXdS*@p>g5a)Qcj=@+MH zy_erHx}KaMxzWd_^=$x^m6$&EfXt@rZd`$bNW+-{ws^9$?f(j zTJPnz|Ne7+=W9K3g5<_|U|R3x_Yz%CPLSN_W7B#kza@OXlv9xWj?>qs^-g~Lyg2y< z$?tf5ZCdZ;xBvcAeoJ1^ddewCZpY|r(|RYrB_GrE$|z(`#z<&5Gp+aXd!?=?CrEDRPtkfWzhiVg zIYIKfbc)t{`R&m4a)RW>d0<-a61&Xd{8+~kA@8!q$i<}_2T{%VTz5Gtp_2dM}?W!qS z@8!4u{&RjOYdvy;emTJPky=*PNVIR(j$J~pj)@>|6BOF0F}Z;8G(t#|TU^etVl zoPy-HOkbPUJNX@e|CHY%Wkr5La$BsgP3yhw0p6%5BkoQ?%a8Z~y)0{Maw#1eMz&&NI_`&M*D<3;uf_{)6(*dmOlrp!MuO zt$zUZ>A!!l4*%TJ++qHgsR*Xz$6KA)~n_rL5}UB6V< z!PB+=)+t)={P(~1=MU@PfA;z*KYm|w8PT`T6%Q!?oX3z5X1N{MzTW zzWw(jesA>JPw6^Hz0Qx3)<2cjPx&4BV_mO43;sa$YxT8hJ@;SszyIr}{P=x?z)2Pfb~;;@%J{$50V=>nB>X%mJf!cq-Xy>Fd982zm%neI z&w{Gw?{TOPTJQAVl81D?`YfovJK`XHZCda2-vO+j@{9kStehaZala<{wa@GQxBSL` zclKHNRu)`ul3)A0*0=ol-_7)2kb0g&ru9z$9sYS;uRaT^?+*W^zBa9Q`tJbNPxg6Tsq4iGxExu3Jsn3Gy zyT#AwYtwqC{|;dNlpp`@kend7alfYZUVh_yPxZZ~Z}@Xe@@t>(Ge6$jO8*6^=Q(6r z@ATiIPw0BB9aP^fdQ4xN);s-o0PCmxJU2pe<9zKf4sXTzsv*Hm#qX>R*$7{!R13 zI)2U%@^hQ#PSJY)`M>J_1l8I9MXKjMp!E}exAl)!{;Y3~zGkey#a`;${jd0>u0KO{@G|kMQ?!0Ys!#X7;&xqsvg+WqqVgYU{p3`i z`e(&Wx?VnmyG8t)*0cY8uD@&Nu)aC^>a0(0JOA5|-!AH3l%KFM#F_FMRGw7ysWt^c_HqdwmHM?Jh;&;Kor z*2TJhyZ_~%SN#`N2X$`qzuiY#|6;07_rLsZU4O6Y;PaxMpChez{{Cb6$8Xe^-kF@^JQhn+latr@ZKetVOBk@0cUcdiS=U4pwi_Wj9=jHI+ykj`m^m(nHI)9hn zrR(NZ|7G#DQ?!0ps!!iP&fVp=s19oO;Q2Aq`YowG-9P8<^4+Sl|BLkXkMuRPzB|?L zbNv@TKSy6P*8iXE`JeJ<->lWoNeA_F)0|)Y{B+Rz-hO_1>ik{%SGr#3@7n)U{OS~~ z|JA;~f1JB(|3Y=}{}I1GMeBc&>XU!YUHk_h74dIc&;C>YOs_vaH?M6zeuwqR?SHc8 zf6AZx=jY_3fBu!I^J{IR^%wp8{7^sj{91d2>U93DJyz8DJJR|Q>HD9)f1JB(e@}Jr z)uNtXBdz~ls?Yv)zJ^b6?LSpL{u`~o$p1dqAD^4;IXe34t*`w2ocD9zwEjQX^S}J> zzoR+lweNRcGW_p9)4DkQ{2J<8|M0&*xBkBB;8CKUK_jjIeyUG@f6V{hJo^6|*4?Uq z!@~dmHm!@(>zDein)mo~w*FbGH?8OY{Z;($cvyAvzhjRm|0AtG++Tmke;(G~p*a}; zBd!1ERA1KL`X|HsTi-gYKhpZ2^y_!%oDKhfJ=E_ot>^Q%sP1xa{oJYZiN4fMe;YTzdF^I^>@5{SbxX6hV@5Ue|f4e>u>$@ zVg0T54C{}y{^$Mr9Ser~9UF%Fk=7Ta`r?24bE+eMoxhQPqjj<0|6dsDx9Pm4-rU-B zak{?T|91LR{l8t$ZSo&!J@;?*|2M<>+u1)_f28%l>94=_zYgnf{n@boNbCQ#U%#C` z#s6(X{YdLG`gi-kRGsqQ&c4CFY5iZO^~?Ql?jI|EBd#$$wdY+Y!V1+c0w~?Rf zM_Qk8e$LaU_-Fs%-?X0lx2!);pW>f=gMZWdjQ-um_etw-oMm+=01LY#I)X<|Dx`MR%EbBA>MgI2;>ofmF{?|;0kM&1d&(F`Azs|YH|7XMc%zu%; z^?d%7dgj0Ie_Qi!TA$Is%zyEHVBg^1wBC7sQpfxk)N?EHH?8OMullD?$zRW{$ltV{ z`?u!5srhH$;NP^KpPyxY=0DbF?qmIt);rHn>X`Gw|KZJlqjhn*|BCv{ev-#_NR@XvkY+q6ETf0_TtkGU`Wo7VIC<^GxfB7btz{WJdst4>*7E-?**mV!wYm=g6OZ zga1a&eM7GK{44j*oJT!#AN8j7-u%bUOETv{=01M@(zM>2|MQ<;eXU0PW8n<^B+E# z`&fUZ_5A!S>+|=2k>6W~b(#MnKkJ?ID|}zy{Qq_HZCby6hW~dr{|_|(ruEMAGxEQB zsAv9*{7vgur}fMIGylbX=(!cSo7P{Q>TCWlZ~oua{F~PE^Ruka{1^G(Gpx`27x`Q7 zoL}L4LG!QYR`@rqcjiCxW6q2IIkx$4wBDQlBL6Q8^~` zmi3wcSf9C%^+#IoJU^*p&I|vCH~)>+d-ET;&Hu3ZXW!tz(YiR@zvcd!|04en4)x4` z@qMs9SF%z2QxkAFX6TJOz&{QDK=zu-~wap*Ar1+C}vFZpLZ<~+#U z#~f-}@6CTvcS5VzzKMF%`U&a$Nc#uh%z42*gMa2f{Ezy>slNDU{=)}zAM1~_o}Zs( zedfQ&@2$hS%zu%e_0IVfzOQfo|GN1$tzSRG|GS(22bzD=dgu8W`CmQMGyg^YruD1S z`sMza|KdLM+=|>y>#t7rHUF14|LcA zi~C^TXnp3tp!NLxEbBA>MgBh<)@S~U{H^EnuhcXDh5y@zI_AH)59>4fm-#RJvv2Tk zTJJnRsbl^N>bVv9o7VIBSN+qcod+z=DfI% zuMhs2|Hxs~bN`n0ng8NG*gx{m{1>#|nI9teHw^1D|3&_$^*n!-?;rDD_~*XyZCanv zzs!H(pM8UW(|TUN+&}YQ_A^RL`La~{_*_fcJW5=0E=ZE%RUSDDk(${1>#I&%flK^_cS@b02f4X}vf9McoOl zUi&8MP3tG5^CRsad^6_-_YD4-|L{NR52yO#pZO0T%zdms(t3V=mi3wcBEPo|>oWgE ze%3qZSNOhusORVY!nbMt`WgP;tvdWa(EOX$JI~L^|LUQh`7iP}tzVtiFZa*<7x$s( zR`@rqzdF^|{9oSuzpME-t>@=wS)chY^1o+TpZPEHx86Cw!uNuqo}c>*|EBfM{6~Jw zd6ECI&3~iy-uxH&e_^O+?jwJb`LBIG{roKV&-}-IF!$kqr1jjtC4c6>xDV|c)@S|; zTF=kVvOe=)X`Gw z|KUSDKmW&{W4$;3k=y(abv^q)`zHK1S{JALx7%IAp-?zb> z2buf${T-(D-u%b!4`Kcb9wq)_nE!&-^ZA$jvmSFEWbR`QHLdsNzoPXbXa2(nb06!Ew4R@zWqszq$nUMgy3Bu(pY_i96~3<@ z>Y4w-w`u+Q8UEj`I{ZJ-{F~N0&(FyJ>Y<+bFY-67U!B%3_s{$n_o3%j_&2S;I@QL`|jn;ef zU*!LVp`N*q{LQUR7pKpka{tVK+y`?X{zqER{af;9{)_w2zF~dlzo7N}{4DD;|3&^k z8`fw3i~OzU^RLu1|AqhChC1fIxDV?y`j`1H{A=HYZ_|3``AHq~Uy$b(`J2}B`B(kZ zr{u5aR`@op=l-qvZ)*OvZ^FN6JwHFo`pkc<&)moQBdvFypVTquh5y5cdged=9P7RL zkKE>esO#AW+Bf09(YiR@zvcd!|04enw){=&GtN)uzqpUDH{Yi9+`nag=D)ZP?H~Lz z{{^jg=7-4r4a54(f04gwJw!|1$rDf9;#_ZCcOkm-}b_i~N-v z^~`@k>od+z=D+Z-eG~po>$!i+`pkdfU;8Hfo7QLaFY{k~AN1Uc{7vh#zJK&D`#|S! z_-|zXi$8Z(|8mZ;543N>es*v|Eq_3=D*0_w0?D3zuZ6bU);yVBKe!vU!Ce}{x2Wa-|?|Al|{4gO8*o#!WY%zwc@9_pF@;`?AdpMTXqeM*D8U4%r7yj8d_&2TR^~?P;|3&`frh4YT zp!FH&C-YzUXW!u8w4VF7tk3)x{@FM9H?7a;U*^BapXV0&o7QK2|L9-#0p~CN8=3#& z&z;r3oOA30_6`0Ung1f!eEyaDXU^j~=0568>%IApe{am32buf${i&w)-u%b!Z)N@q z9wqAM5Sjmi*7Nz7{Iec&9%Sxg4mGX!=D(;rq19{OM7?SKgmiwS{ey4jzu+EG{+a)R z)*nvw#Xs{OKA8Jhf28&N{4DD;|3!Xp9oA+3i~Ov2&ad!&{ZP;R7rssF*U#|(Zq?!c z0TKVE_0ID%^1phhXa0-)P3u>u^~?P;|HXY=ERw%z{ne?y=Ku0xedfOKZ(7gK&$2%A zU*vz!us-u&xDWP?)@S|;TF=kVvOe=)Y4u{f9o^OPv*b4kFSgPHm&FWE$cJ?#eJ}Uv{ch|IB}pKe?%%`7daF#`($o z7yj8d_&2TR{w?b>|Al|{4gO8*Gy0eLFY@QPMgFGsS>HeUmwmwbi~mOEzxZ=!^)Kff z`+$9e|3>D&$TgpT<^GxTxQ@Axdeiz|=fC#*9~R!N^Y-`k`~TokqW(MbNbC9hO6&9c z-I>!Ma~r=$(6rv0-=gk>RoUJZj@CQpPx!umsAql)-=_8JXZU}&>hS-7h=0?1=lK`;Up>?_ zzeWD0^{dnR<^Gx9;y(1;3IC?`SEu@#|I3H{X+1yx%KFT2k^eoz`pj>UzxB@f z6TTM=^~`VK-?ZMD-^hzV1z4U|Ib9u57T-+ze+vxTll|isAqnQ`>;Nvf0^IH zKl=v%ruEMAk2>bJpq@LCziB<6f7L&IO8$E8gm2S&?%$gKreS^Nw(xIS&(FWIKJy#v zGqU#D8`-c1*t&7wBTkfCvE%N{1P|y4p z-v{e6&QIpIxR0-k_%^NQ{w?b>zr}s9f8?L}Eoi;-{Eyt^iveE*o= z!aw(of7AMm{$+j(|Lhz5o7VIC<^Gx9B7bsIJ@Z@8`i%3F`7QjjZ}4wg&;480XMPL+ z>>K=>)@SrD^IPQ4bBp{<>$ARp^e_8>^B4b(+nO%+`g9@2~kcn!o-J)rmX*NWcF@*_+nIY5%WE^*5@X^+ncQe&U4IU$p+< ze`83v4XMW3d#*h;vzZLJ8(E5w=OY6Vv4~KOZ>g>h`WL)OO{r35^|C;}Q8}jG9FZ>>PllP~@_hoPIfARY-_`aRluKO=T{Z7+*e*Z^0 z{}!#5|3mfn&v0Hmd5YE#P5CGPix%tm|Np(}#G{WFPn*!XIDP-Ae-^z|^}kY`$a{wt zDSOlUi{77<`u_m@5BJ~lTeL*$|5odYN2`Apy>>$D;bdFzh&AFNN&qMHzE18&uhJZ|KR@nPx&poX2=hc-?C3n zNPg|}>GgAdn{_=oL2^5Fiq?Dit!Vj)k>6PpMt;NR)9dH_mbU!F$nTs9BfsJETJQY! z-+#_;uH`32erHS=`3;{>ub=We@{77&IR%y9k&o$X(|RYrBlZ0vCrExrK0BdxaeDof z-;tjh@`L1e=At?;H8;p3r(Xzt^?=#K`Z)2_wJZ^J)L-{0raqY2T*x>_6wH{SrB`Z^-Y439a|? zTdMCd`2|^*J~plA_0#iXslH$21S7vK6I$=(xAe&&KN$IGZIk@k=ljg>0Q{%?mTJF{ z6O8;g56Drp-p%h8T~AI>-j~wHruANaH?;gj@>{B(Lo_45;q!X`?fJL#{VhL{+?GBx zVdOV_UhCWb4d3=@-=_8KKj*i*h-WW$fdFe_@RA zZ;UaHi&BOnL=i(R#8QU!A}eKC8nG@#G(s#zE}|@D5%RF!EW=W2Q4ghA$}rT;pbUx- zMNE`M5z0mkjUqNel(N|rrBN1TqBPA$SvI{s_xoJ$_q}uHJZH|yAJHf0`o8yhuJ?NH z=XoFO0{G+9zXXV&x!sMBey$dwBGH%Z7n}B^1E}!$Zz<3 z>OaljW%$qeX}&~G%o}oJ9c#4S>p%Y868Qy{+j;b{X}y!*d3s*t1j+BbU(RT~m*07B z4*5ay*UKW8^n{zHoj^_n-6Ae2JWxH{|xrjMlsPou%u^36dXuY+CQ+H?QYK zPB8Mjd`9cN{P=lsa)Obcdf2osE}Y-e{ipoqHDAaHMt-bgTeUVeIBk&{S%^Y6}Ry_?@tEkBXm_<4IX@*6&1Fu!H^&-rP-L{7{bj8@eBu0-?my?J`4TxXZ^-TL z8Ljv7Tl>DQS586Y#?QZzU(k9dzqNW^_6vsPs>Rpx3#QijgjB*`E>lD-s8{ddd7i_OCOuo^Z051 zx0dHb|A~>`H8Wc8_TQN;KQZ#VZpO%O_%X}#>w1k7)VOo>v1vVzpYog2^CBlmesdqpXuX%;+;c;Iko@L8nvwk4=L_by4F4&= zIn5Vxg5);Gde&&Yo8Jw(o}3`L-7}%}UVeIBk&_tt9h=d5H@_=eeq!YJ(2SAa@cF{| zE!}_4PxB>mV&0J312bCh<+tWzU9X&i%IK+ydo!&{MNiOqxEin z_qF^)@>}!jjFI2)`NH`v-G9zc^Cfa(-YB;J+$8W`@ao8)^+!)9=_cE z{>Zf6`TM_RjGyx3_a#T(@I=esp?wea}< zy@f&b58sFW3o5_%dG+r<|NDWiSD*2F7NbsU&PeN>{#*Bfu2-K0)pzUH>1)$^r~hJH zkAv^U$4~k3`+CSPsNA?;@(Wt;s(Pxmp;rp1@#Rc=@_ZHEALDlo;U(^S!clz(V zZ)<$jK>BZ;YE0|B{#(ZQDZlu08|4&KZt>@Fru9yK{&(|1JwLt={S#EK?ehim)a~$e});s+-|F*7Ip9R%-=bfpqP3xWhTgLb)zxeND2%o&3h1+kQp&p}vWq-!_$B`+ULt`1x}BFG!u%-}pYzdZ+*9v|pnCg6g}u zPxQ5Ez0-fo7(e9~|Nc-p`QIUOzvLIR-pOw~_w>b~Z}>j+AEf`<=L_b?xvlhBkUFiu zQ4g(m`frW0qR$}xx90mZTJQDWGR9B&dEXdRZrm^V1(jd>yxxC%|BpX+c1ri5{^9zO z%CCJstuNzW)P7!a_y0bOYg!j;eS3d%|J#nJ4n8O<_mS3*r24dfRVph-f8uw^%JRnxc`a&-CI>B|GTdh<$t90t*O5F-@RIOx{uwr4C9ZqzB<*H z@we&OMSgD%<8L#qpX%4|`e3Nv_32PQ()tIfzWCquE!E+Fm8kqp>*DnJm-=n*4)xpT zhI-SwIIS=Dzw4yxl>aWRz2raA`pHyZ#@}^(7=PC{hw(>RKc4E#_}e}j#^0`YH{+Yu z#lHW;L;bD?hWe4#52yO-|2owv|6PxZ%73Kw>-zQE=ZE_3w+{6qt2%^+o!3=jEy+{|7|;o7OK+`?rk0>udg}hw-=b-Xed~`ssfC z4*FF7cX0ozA8CD&{@uYi%6|v*NB&1z&*PW--_H6;J-JceXkF~y|Bhp-!$0!}|EBfa zzh(R#ceU}EKa6i$U!;Gx^ZXcpu8rSlUF`d(PpQAP)tlBA>E9i!bL4ka#J_1huYcwK zx2+lKcmLr~Z(0|t|F(bR&%4;?LH2$8d7){&xBuhM@7VtZ9~}Ptko_NjjyURh{Y(BC zkNsaz>kof^$^I{B{ZR5>>rb?L&6}t*t)EEsY5w7x{a^6f!8iLq{Ezz9RA0tt{};L4 zGK|05w4UFeWqkI3k>8ucxa|KTKkJ?Ki#qmy!B2-e_J7om`Uidg?DN9^D%B}}_J7cN zZ~qt1?cJfCeIIou`@i;i?Z3AF4&Nu6|JR#u)B4Fp{2w32Vc!?NP3!snS@YNWg%9?9 zCP zQ~SHY|F-78(YiQYze@h>^TI##2LFxLd;7o0{q!(C`@YECw4V20<@vGyDe^E!D;-7UF|EBdt`j`D*_-EeW-?X0BzjFWV^QdRvN4;sixBuhs z>DcE%_I>=lpJ~0f|KsmH+2;ixl#h9RZCcOkU-Hj*?EivVci4xr{|j0_l=`REpJ?^( zv^vvzXa9$9_Ibf;2mkE^b=>i@{?)G$8#zR1tC-dVq> zXP+1Rbf{v#n!naBe6a5$H%ILSnGt#{s^kvr=g&*9mjZlv|R{#F0< zDgO1|3je0{+`l#dW6eMF2LGn@{QfNCv;T|yS$CBm`@f*|&igZbU)TH}ZT?N`i}Wx1 zzsR3?gMZU{=lvPEvrdx#heQ2H>x-g>|BKvB>v{iGo*(-^z7P98>PK2%q<`7};h%jU{zqERv%pd%l)^q=s@!9`{f94J2o7NZUU-o%1{#+Zs(Ry$H7j^V0{#keNZ(3iZf7$ko7VIC zm;5sx`@f*p9rmH@|AN*JrT(e)CtAJcP1KpzJNrL;v(F1&JNRe+$9;@?Xa5&@DZAh; z!}z;R>-qhe`ag2hIu(3#7?*uuLKeo@ChFZk(D$NrD{QU9QyAN#!Uze;t=pFjVD z)_eQEcy8|w_3ZnoGui*O&ljBk;rnFs|9bOnT0gmn|Kr0r?EAvEX+6I`YyMil@WH;1 z+)Va==)L`4_&?nI>%A4Zo7Ow~Kk{M!7ks?=H?4QxpVYDc3u@ho{7vhf{a^T}Pj#QW z4mSU$_1wQ@{;|&s|I8curqOzD|HruO|AN;KH~*&f+`l#dW6l5T&9`Yizdy_P z?EfPFCx-Fa|3&`RJMYiPoj(16ay#1mo7NZUU-o~IKl5gjzK?0W^ZtzdStq}%KKgK| zA8CD&^;7%1!T+}AztOrlUB62H?DN7u^9KKo)_eQE$o=#%KKsAO-L#(fU*-9+|Kt0x z@1uUC^+o!Z{U83>_u+q}^*nyLf9>yvdUB(_(YiRzullD?@&9b|Z(7g&TgGSq7yg+y zjBi?Bq<`7x#rSh={6_1&{a@74r}$^xC4bZUBK^z$FZ?ra@NZhr>tDHl_IcE^@1x$d z-rN82bJFbdAp1Uk{@S$O+yC+N-|YW_4~m*g?Eiw+^ZJ+kGamcD;1jwJy>re%N6KOO4W|4~2cAN2EMpBMgDHUEv)d;7n5Zto8D?EA>yWdGMbUvU11 z?~}TY`*>Z%w`u+4BL0sLtd%_1wQ@{;|&s|C%?Ef1~x@ z{*Q6l{{^of#%KQ*&%t_L|H|`Y|3^LhKI%qV@9h8Z&HgX=>ENIJANMipo%d(t&N|0) zc(&zlTF>iW^-rJT|K;Z2w4VF7=6|gD*SrberuF>(EaS8Pi~P0jM((Ed&igZb)2H}9 zI@FJ}zDWPF|BL)JZ^FN6z4QKz+*v2dUmmC*X?>CPQ~SHY|F-78(YiQYze@h>^TNO8 zP55uL-rN60?x%r=kd$^YkxP? zE4Qd`v@TBbtN!Uz{A=EXf75#I-!eY?zwobl6XToK7wKR2c`^Q68^6(dZ~qr{^eO(e z?uLKU`Xc?y{xAG%{)B(idS3s^{j<-bo_!znruE+bkALUIJ`b|*c^ZPUPf8=&*7@vJ#)8K=f75zr|3^OT|ALP<|EBfM`;$8Mf5BT@{-*WL z{xAH~r{9r}gU!EbJ@;>!f9&(ZzvfNk-)OzJ|6^SCf5GdA@!9{ybFiM*zw-Rp|54Ar zkGhf8JNrL;v(F1^-r%48U(kBz{TaEl&hZ?cZTXwl^ZHl))2H~?dn^2#)^q>X{Es#N znm6Iww4UFeWqkI3k-yg6$lbKwd4GoQ>xO#vec|7CPQ~SFi|832Gqjhn*ewF;$=Y@aGoABRgy|@31+)oeVv;T|yP3w98Rh}RF zKfVw9KI%tWU!;H8|KXo~AO1&L&*PW-*Zyv(S8h??XkDDdHpN*&pwZO z_I=cw)_eOu{=GW;JjlL}fA?-$@9qEi_xJ4of)9#6($}W-y#6KsjK}^jsC9>ZDEq&l z^+TzDYW;~;uXz)7ruEML58v$bg4c@j&;BoHy|e#|y!4(7-XhBXZqs^xf2RJA+)k;E z9N!$q9cjI@eo@ChFZk(D&;Aepqy9lZKlXXyf0c;;M(e%(Up%*WhkEvX)SK-8+UE<- z|L}cM*Kr@}h45`!Ke>qi_u=6>_J85u zwBFhOkq`U7;Nv3xP3xWaCw1)qf?9VXf75zr{}=x0Q}RD3(l@5{+`nc1vCj+t%p3eS zTJP=u7?=HD@cLnV_J8pltmpNwJU{k-)U)rSZlv|j{tw^m|ANdL`DgzZwBC7tM((V0 zJcnn8x{=oN`d9tar}%$a#J_1h_ixSr*f2gn_ZPlR>-qgz#%KQ*`9Cp?&)@$>{?^TI##2LFxLd;7o0{q!(C`@hKDw4V20<@vGy9c{+U1IXIjteU%7wwdDOG-qu#XM+yC+JjoIfx_I>=`9@Bbn z|HtnSV*eL>Q2d_0Hm&FNFZpLY_J6@A#GmME)B2&*KehfutJl1VdeeGm|A%k(f5B@- z`DgzZwBFhOMP93QJ-OW?%Ku2~`Td#tKXN;zI&yq-7S*{a-w{cZYiRebk%m|JvsZ&j0XzQrB@G>f!KhT0gmn|Kr0r?E4sh zr1kv%toeU5jL*K0@lE!B`0DNd!uR3fI`)6z-?ZM@|B(;-zu@B{{!Qzh_a}Ai|AJa~ zB7f6*Xa5)eSF4Wv4~q1UX+8IEnSbo_!vD3y`0W4iVZFEiV_f!s!RtlxH?8OOuRK5Y zf7G+@qkg3I&i)VI?Eiwy8+@DAJMYiPopp}q@a#}O(t2M1s(<Tb(9>3hb_IE=)xpCi(*2QUl)jxfTf94PVP3yUT z%lPd7!awtd@lETC^e_9o7=Nyf-)OzJ|BE{M6#uNd_&2RD(!cEg!awr||EBf4{+0V@ zpGQ6WKI%>Dzj6Q9e*XsNzOsJ{J}9d9*uMp>=k+U%&+ivx{}$A`!S5er{}!}^b&>fgvs-y`_uFfRMI z$j^Fb{h^NiTkzANj{O_;qy9lZKlW+if0g*5{5M+f?cd_Ly*t#iZ=>F1|JFWVaQ=qx zle&)kcwNM|Y5n9P{*Mpiuy14hk=FD3ujc>JFh2V>#y8o&;j6cQ3*U!_>)5}Af75zr z|3*IS--3^e_&2S0-hb4we+z2ei2P0Ko&8(*r%%cMph*6v_1wQ@{;^LB|I8cwH(KxQ z-x!zuTk!f}eD-hg9IWT{t2{sUZ`8AIqi&@2&i)PG?B9Z)it^9?Eoi;-{)^mM=Xeg! z4s|1~=k>4pr%&;(_fGgXt>^x&`5zm`Xa5$yP3!snSH@@m7WuR8(*LIQ&igNX)2H}9 zI@FJ}zDWPFe~bK?H{@?x@4WvacV!<`E%of*g4P#VKeay_{BINKpGNEAbp0y%vrh~E z%p3eSTJP=OB6npM)Yy@~X+7_s%JXCYMm_sB>PK2%q<`7J;h+5*{zqERv%pd%l)^q=s@!7wHf94J2o7NZUU-oG+{#+Zs(Ry$H7IpL~{#keN zZ(3iZf7!oGQkxjK6X2@0{V^AN{228DC`FjaSZS{ny4H{7?3eyZ=)4%5V2yiOO%J^}kHxr}Hm3 zpMLj0R~`I!;`7UHF`=2QX>83tkFu#re z+mIh5zfJ%3jO5oopVp`G&;5^vaaaF`Gcqo^*&F}dzdei(qi-&lk@4H-)A39GdpVY*kPiXyb{)T%0{_v&yAMU@+zcuq3?{8^b zsQy`V!-UrVRvJI$x8Vt0ubhI)Z-eFoIR>qF^4svRu2)V$<+tHAeQjFrzbB-pOwn{!@M%9?^KpDX9E5d{tkY)_eKw()Hv7$?edD)_eJ>*CRhjZigo% zzv1&~|EK=juuj*L6C}4I6I$=(w{-tGzs(wtoFKW~GNJWOe(S%k>y=Yb`K|xHzBa9Q z@>|dIQcgkTw_fjZatvDU^xyig=z8T8RDSD!s;^D!o&1*JKjpWc`J$YH%5VKA`r5SK z%kOqwPfn2B=x5V{z9 zoFDUroS<@B$9iU3@8x$;*OL<@H~QGL-ph~YMNW|X?wHVeFF*aaTI2`G@6HLyZ}_~v zf7<>feA}meo7S`coFDUroFKWe9+=iU`SI_T$Sv{aN|2vQ8rJRDw@4R2? zYtwoszw_SI^~x!z{P_1<Az+8Px+n4d{It8<#rzHnQ6V3-`%>NoFKW;$ENjO zempO7g5-8`LhHT!KBw!+36k5X39a|?Te|<8AM=HrAi1#~nAUswou%u^36dLqY+CQ+ zH_!7@PC@d!Twj~kJNfbR?&KFFzbo{$X}y=<(*39W=9w?bDM)UtW2W^^e)C__^~x!z z-1s?k@(Wt;<;U|PC#c-!-<{BUFTbaBJvl+;#?Rr8wBE^Y8UAyA%olQk%59$Y%(ULi z?`mC7PLSN_W7B#sKb{vkLGrt2LhHT!_Un3bg5-Dagw}icE!}_4kNHAQkla`gOzWNe z*1oUnl~Yi;@$+xw7qs5VZ!OPDIR(k@Y<+E7@8rkN{gGdg{8s8~(|RYrW%y6|t!2I_ zry#kp9+=j9`8}ZP$qAAheQa9q<;U|PC#c-kzA&NnUVcY)Jvl+;w)Uk7t@rXc~#36dLqY+CQ-$MYg5NPgE$XuX%;nYx~wAo*Q4q4i#VOZT7i zW4@3RBsbOr(|RYrxi9N_j1`(|Rwz8+1K6L2{#yP3yhf6j5>K7!V> z|1|zG>hqsJYdrqmi1GM)yEs3>wEl#)_kYV6Kjp{oOOCwZ|J8Cgc@D$p_0Lb*-{1K6F2gt^bqcKaKC-TNqUT@O|jRpz>>z(}g^C$WY(l>k`)4I4|e*E4d`Y)(@{@jcD zp!H7wo%d~BuRaT^@7Ar<*QWJO|1D$ulwbV0jdBVqxA^lo(|RXA|GW91`iJjB{{@w6 z`+ULt`11z(ET}sE9EbX#^-llIzpd-lXF>Jdd1vZt(|V`>mN9Jd+Mnxd(|V`> zmN9z(|@pWD{HhrWrQ-!_$B`+ULt__=fXFG!u%-}pYzdZ+*9 zv|pnCg6g}uPxQ5Ez0-fo7(e9~|Nc-p1(h53OMXG?o%}dAl|F;?4d2JK-dq1Tx0OB% zQm^$l>Y?>c|E+mh*Qw8f>bo`H*Vm@?PX8@q{FI;fjX~u`4&)b9e(m$xKmPfzQ$v37 z^JnTGuBU&3%C-Gm+O*z3Klb<5tT^M0^R;I`@NdsJW7YpK<3|1L(yISQd$`5}f1>Mt zPoFnh530`Gpc=lPsqZ@-H|=})esP^hJ$0saaay1Dt>^!Nu0KO{aJ%^TC$xS>s?X#9 zzQ+H5RVQw|O#BBkS{Lj1E%)Dg{N>*N^2bm6wq@j>@}pmPPB5PTq+hJ}p5LlJQ=Ohu zP|t7G|Dmr<>z(Jf>YokI5Ayt0{hu@P{MzRWKEL03{N>(%dw$CpKRv%?_;c04eIJEvJzahW&{OCXY2lf1ze>}gS_0IES ze)0T*dVb75o?p;<=lT8C<7@tn_qmk&pUl4{-hX<2%gBFt?@#jIc)#*u9ehS){WGoK z{~Mm4{r^w8{!Z0F?HN|-*^RV*XR7ym|5D!j_}_S2qyEe*-uI^U+fse;f8a*d(MMkp z=^xYjjj2B8C*KFIQXPC)l>d>|uS)gB|AEU@M;|;c()XtI{B!@+zy7Q^{O=X*U#ervLCAs|JRE6Z?rB>>x=)(-cp_NzwBdC{zqDWE7e#3 zuc}V@U#9=&#s5g_ucrFy|Fr7l|FTa-`5$RL|GSmy{}I*U|4SnNP3w=O@vHxPRfqqt zi1;_H-<#^I|GQL&fBiRK_&2S0{@qIWrcd#IyNG|&dhXxqf1m2`&%D9EX?@=!{&%Pj z{||`dZ(7g)Zl&bEpZ>-FCK3OQ*2QW6761ExpgR0BZ}8t}U7XgJ{P%yPI{Y6L@!x1& zoYq(W^r`&se@~SEk=AqnR{t-kPX6~Zf8>9p^%v6k)&D8g$^ZUOMEM_S{Zy*2{^?Wv zKPBSdw4VF7`oBYU_-EeW-?V;58o&BKqB{J)EaKm^ek9db|MV&TZxZouTF?Dk{clzs z{+T!UH?40@<5&Ols>A6!{}un2ephw)XWrny(YiRT zFa9rmS9SQ`CgQ)*x;U+`{^?Wszw{fT{ExJr`?vakT6OY&Df37EM_PY6jbHtrP@Vi= z`k^TQBdwoE_0>OpivLGN{F~Nu|5pDus}BFn8~mHrZ%*S^|A$nE|7S(~o7NAd`s$xP z#sAeJ{!Qz-f2;qMs>46?2LGn@m1+Fye}(Gsf2)Xp)B1{3U;OW*f8~GQFGTqtX+8IE z@xSkF)#0Ccga1bB;VR z|48ePrSYr(hg2v3``!`df28$?QhoJLpW^>M5&x$3+`rZTHLAlu^9KK>^=s1j)&CW$ z!~YW^{!Qywr26WgKE?lj5&x$3+`q;DCBIZ1{+T!UZ?rB>pMUXx$xl^>|LaBkH(D2` z^~L`s^soG1@2%2UCYyR{p{y#6`-?X0lxB5Sz zI{Y(l@NZf_kjAh6_oxp44~qCVt?xTL zw7&S?`+e2n|Fa_g8?B4e`s$xPmH)l(i}F9xdhXxq|0UJQ|6b;g{ExK$QX0Sde_nO+ zzxOAi{ExK$e5$Yh=~MhaBjVq*p8L1@zf*PiXWro7w0>tAzxuyTb@>0Xh=0@iZK=Nc zr%&;Ji->>IdhXxqf2->7&%D9EX?<%Nzxv;xI{e=);@`BsA=MZE7t_D^UnSzd(YiS8 zzvBPm4^)SL<_-QEt&7w8;{W3Bs1En|5pDeRVV)! zGk@fNr1g_&{ObQn)yehRCJ!M|yJbsE3=KU;P9|D1?_)B4$| zzWCom|H}WKPeu73X+8IE@xSL=s>46?2LFxL#cBT*|9jq29sbve_;0i>PV1|G`V{}K zi}*LK=l-q!kE>4p_b`9tf28%}Y5eN{5!K26o^OltKhpXmslNKBPx1eNh=0?1?%(SF zI@RHyd4qq``gLji>i;U$;s1*w{!QywrTXfhKE?k*5&x$3+`q;D?q8`6|I8cwH(D2` z&%gNJ{d3jf{{|8Njn>6!eeu7W{+0jTpNR55(t7US>i-SZ$^UNVkNl6c{ze+V`hQh* z_&-a;f8*|^i+%s}DgIv;@o!qs{agJXQyu=9H~2TLA4}s`|M#j+{&#;}l>d>|?@jeJ zfBF>vM@9Ub)^q<>|Cg%{|I8cwo7OK+<5&OtREPhEMf{uA_oe#ce;56W|7{}v8?B4e z=U4pi`myTp&%D8ZqjhmwU;OX-f$H#orHKDV>*BP&`lnCjf7gei{ExJr`?vZ(tvdPN z#r%=~k=9SA@vHwAR44ztekRKQNb4`8`s$xP#s9M+{!Qz-f2;qyREK}&4gO8*cct;G z|2tHN|F4MnH?7~1>Z^bH6#uu1_&2TR{;mFZs1E~l{fqxO5&wPV0;Ro!?a*{`ZRbZ?rB>>#KkIRQ`9q zBg+3s>$!ic|5K`y|DDVq`5$ThR2skfe_D0&zw={J{zqDWI@MSI^eO(I5bg@o!qcIn`JH^eO(Y7x8ae&;48d&#Mmq%p3fh*5}js z)&EM>;s16K|EBeoslNE%LI2|aOcDQ$*2QW675_WlRUQ7BH~4R~E>7!<{~d3u4*#1( z{5M(`r}fo8eJcMu-W273r1jjt)&B|A$^Q=KkNl6cej<%u{XeEU`QP!LDE}j^KbGpN zfBF>v4~qCVt>^x&{tu}R|I8cwo7NAd@vHx9REPhkMEsl9uSxaQKYfb-&x-grt>^x& z{#U3D|I8cwo7PvP@r(cMzf>LmZxZp}XkF~~&vyD({d>|bN?3q+rOqd{4;Ox z-)LQ&j$i%1raJteBjUetd(*{feaU}2eTx4ti}*LK=l-q!A5xwCZ)g6<|48c(rSYr( z`&B3Z+rJ^o|48fir~2xjKE?mtBK}S5xqqwwD^!Pn<_-Q$>sO@ltN#P4!~dfq{!Qx# zQhoJLpW=U)h=0?1?%(2n+fP-8f94JT8?B4e=U@D9`;qGKf3=AJM(g6VzWCop|H}Wi z?}_q1(t7US>i-qh$^SOykNl6c{z@9Z`hQ7v^1tmDqWq7v{!*&1{^?WvKPTefw4VF7 z`oBkY_-EeW-?V;D8o&C#Q+4?Ns)&En`kkr1`lnCv|2Yx=ruE#v)&CyV;h%Yff7AM& zG=BBJRdx8kPsG1zeQT;O{x70`@xM;Qf1`DA+JD9WMc-E){+T!UZ?rB>>x=)3K2RP0 z_lx*%v@TBTtAF}b{xABrDE}j^=l-q!pI4pyU&Q>8|B=?8PvckrCsil^7yVF_|B=>D zruyoiKE?kRMf{uAbN^QVx2X>Q%p3fh)^AJWSO14qhyNEv{F~Mfr~2xjKE?kHBK}S5 zxqqww4XVRG^9KK>^$ltK>VLKB@c(%c|EBfTslNE%O8?^jED`^W*2QW675`hmqdNRE zZ}8t}U7Xez|69MMI{a@D@!x1&oYq(W^r`%B{kkasBdzEDt^S`>o&0ZQ{>cAG>rbZf ztN-JwlmD&ni}F9x`tej>{nMxTe^|u7X+8IE^?#%4@Xx%#ziIu(G=BAeo$B!ajEH~J z`gN(k`lnCvf2D|j(|YdT>i=xj;h%Yff7ANeY5d~j znJE7wt>^wN{x5t>b@*rA;J?wjI32(Ge?xWnUnSzd@xrEy)B2MCh4d-@zarw_w4VF7 z`hP@q@_!-oNB&1zevUl8$cTF?Dk{a>Xz{4;Ox zZ(6@9jbHs=t~&fbF5=&`etD{|{^?Wv?-lWHTF?Dk{BQZW>hRCJ!GEK5ar*p=|1CdO z9saKs@!x1&oYoirTj*c;-}132|0AvE{;mFBRh|5AVgAVfNb9er@vHySs+0dMpNjH7 z()#ICU;Wdk`2UiKf75#I-|GKf)#0CcgMZWdy=naF|1QPV0;R3qDdE{tt@yZ?rB>>#KkIRQ@k`Pn7?W)^q<>|1YRc{x4wu$p1*| zFQoCS|5K`y{|i15<$t90Q>niCr%&hS-v zh=0@ikyKy()2H~qNyNWtJ@;?*zgczoXWro7w7xlwU;WRk4*y3*{F~P2Q+@Hjnf}H9 zIU@cWt&7wCEB-fsS9SPj-r&E{x;U*b{x`p?I{a@F@!x1&oYq(W^r`%B{)Q<3BdzED zt^S`@o&0ZR{>cAG>rbcgtN#hit<0w`iWFu{nMxTe^kW3X+8IE^?$SK@Xx%# zziIvEG=BAeNOkysR>Z$){ZOi}{^?WvUoGO_w4VF7`d_I!{4;OxZ(3iO#;^WYs1E

OpivO>Q_&2TR{;mEWQ=R;u&-{`9k=7qe<5&L=sZRdSe@B%6k=7qd_0>OpivRmW z{F~Nu|5pFks1EZ^bH6#x50{F~Nu{}%t7eyKYA zGjH(UXkDB>|KfksPgRHi>qY!GS{JAF#s4PySN=EsP?Z0X)^q<>|F5Y|{x>myX7+r%&n z|5pDmsZRbkGJoWMr1h85_|^aOs+0eXKN01Br1j@heIB1Wem{{IzXw9~rgd?8|8@M^ zTK(h0`2PI?Fpnh-7xyL57-ueAC=iV^<{u;>duQ^w9*5vos zw9lvh)BT^TwQj>-={j-ae;^*8(Yjdc+wY%PhX0h`xmv6FJwK4V&wX-6>%aEDX9E5eM?`P);sxadTz)MlG~>5&Paak^Lqd7_h)Q+cE}Hs-=+^{B)|4~t#A1) z!+*+e(^Er!ko-1jE}P`nKA(=C^W(Xb6C}60CbZtm@5+{+82M?t_1`l5r~Ed4bI1=yew$|`zxMfb{M3INAJ#SG z1eM!Ht=S{3_wu{1%Y z&uhK&Te|<8pZ2qUQ~_dDI~uQKbX&Xd{8|%Mmy_eth zsv$oya%24^Khb(OziV|J`H7Jq`yX-?t#|WVy8oOX?>F)jBexSXTJPn@Ig#WSBsbQ7 z(|RXAe!n(3!N`sEm;6NQz5LdHsOyv;jNG=)XuX%;GW@6f*7N>TelYUeGo$rxeoyFn za)QcjJ?p<|y_es^EhmxO*0cULMt;NRb^f*e-}(nzej@p;e`ChTZ}_~{xA_~s?bE(Z z>)C(KkM|q-iR8Ebtr@L%^V_BC83!^h>%VC|kDq>jAitkIauOpq)?e}yt#|uxUCU35 z{Eo~R`3;{hoZr&@=lpoTkst3r^1EY3>%IIqCzAYv%55F%ziGXb-@303IYDyc{7#en z+UNEDTmP;5%8(x^AMt&z}wBE~) zb0WzvNN%kEru9yK=Y2Bd1S2=rU-A>luYF$czvXw{4~P6<h`j+1^{HOfR z_=gl;6DGd*lQozq4nw-p%iBT~AJs z+*toj>%IJLZ~2Ll8|yDQijm*&dA)z<_qmpz82O!=G4dNeul3Gv>Hc$myx+)AB)|C= zX0+bT?<`$UPLSMK|4r+i{MPHbrGYkB`EKN$I4Go$rhew-6YenI87mi6DX-plWqmXkBUVd}$>w4uBRBm&u|EBd$ zesk{(Il;({^_Toa@@t>h`)~QpeRIeUMt&=2B)|4~t#A1)!+*+ej`yGPgOT6-jMlsP zJ)rB!36dM@ziGXf-`y=Ik=!`H(~SIv&+Gj=zoRWbk^JUfnlbVlKCku8Z|VMXe!Snv zPb5Fi+cB+o^PAK4;1R< z);u@l2gz^EM>CRN`@Gh-{FdQA=g0ev{6zBO+$Pg{H@_QnJvl*gWBoU+_wu{C>%II|f2`}3Q;^(P z|4r+i{8qm|Buny?^I-U&~J+)5B|kCp8$Pf1@BCJ^{KUxb z<{2Zu;qzMW{Fd%N=g0ev{CNM7-;o)u_wqaUbzQHVg39e&)_>D_C%<#QJmdt)?OfL1 zM)GT)*ZXhzo%`~TA0)qXe>5Zcwa;sP%WoO}Q-0^_y+=-v{LcO9jMjfGzx4MP{Ja>~ z#m|kYp7X5uK0ep1eLnS{$LIaP_#$<`{_{8O=bNVW>F=N8{I~lx-XEy`8S(E=Xg&Y@ zWcvH#^Z#RAf2Zo;i{d|=(E6R}?~jxJxZm4U$9<~@;`}_*dgtfY;`}Vlwcr;-`RDwe zp!FNm_{IN$t8~5mA9z@l|B=?OO7+D*=l9^BpSz25$4u*&r}~or0lo9W|6URQruDN^ zeeusZJ>g&P`taXqy?1^OzB#8S{9h~nBaPo^y?1^OzB#`q_^~MeoZl0){?;P?U)A-> zpL2WgKhpZEslMcY*=f~rAD@cyKhpZ?RA2JH>=D&*ADYAA+qC{js;~Lqt2+FDMZ~{p z{oYhx{okcJ{A(=@|EBf3QhoJLpW^>^k^D{TxqqwweX7Gh^9KK>^?hml>VJpo@UOi> z_&2TZNcF|P&gU8YZxZp}XkDDHU&TM?^n`!r4gMRg_s;LZH|O+(|AQj^(`dbSeh<0t zr%&N~qWq7vp8L1@e?fK1pL2WgKhpXO>HbUp`%kHk`}jnZ|B=>DrTUsbeTx65MEsl9 zbN^QVcc>2k%p3fh*6&E;SO3~`g#VXC{F~N~r26WgKE?k{BK}S5xqqww&8ovc^9KK> z_04Jg>VIB!y?1^OzI8s&;GcPe|3>TLbp90ooYNEj zw~6>~v@TBTtAF}b`Eza${zqER{afJ@_AKJ@;?%&pAEepLv7- zM(e%vd+^OUJ>h>&#DAmp-uXS@n?A+=S4I4r)^q<>|BtCo`Eza${zqDWEag}7-}jK} zxQ};4`5$Thp;TYuci8uKj-v>|1(AWH(KwV-xI#+Q|{wM5&x$3+`rZT{i?%1 z^9KK>_4^m`e~;>T4sVL`KhpX=slN2jCG;u&KQH3nw4VF7`ahsL{4;OxZ(2W)#;^JB zQ62st6!C9b-;?T#|Go4t{-`~YQ=k$bs<_-QEt@qCF!8hmhg#XWq_;0k{ zJHH3td+Ag7z9|1At>^x&{$Em^^5@(h{ExK$Qo8?=|K8_S$9?=nl>d>|pHKBQfBF>v z&xrUpt>^x&{_j*B{+T!UH?7~9#;^WwQyu=lEaKm^ep{-q{^?Wv-y-7Qw4VF7`roQL z{4;OxZ(84)#;^W2s1E;ki}*LKZ%FmUKj-v>|5YOX8?E=w@4@%QAE*xh%p3eSS{JAD zr}*cbp76g*#DAmp-uXTFzL-9R-xTG4r1jjtCI5?0s*d|${>cAG>n9iS|D@`aKj-$~ zf28#%Q+>^!KE?mzBK}S5xqqww!>YqS^9KK>^}}iWn*WWe!~b(4{!QyQruyoiKE?mF zBK}S5xqqww)vCik^9KK>_0?(o>i=xj;s0|Y{!Qy=r~2Zb^Ly~mxjpzFX+8IE@y|Iu z;h%Yf|3>S*^Ly~kIX&TjorwQN>%H@P!Z&@2|JOzQo7QvxR{zIUr~Em$2md3jA5Zy} z{P#SfI_~4!qWq7v{z$5?`O~NPe?Y{)X+8IE^?#k}@Xx%#ziIutG=BAemFn>SMG^m| z^{Y~S^-rJT|DcF}(|YdT;-7PR!awr{|Bcpr=l9^7b9%!64I=&u;p`l0WD4g#WWd{5M+fo!=9_=~M3GWfA|T_1wSJ z|1s6!pLv6S)B3SR{NJlOp2OEg`5$Th-c(=uXE%L{|Dz)QP3yUTtN+VYhkxb`{!Qzb zr}1n4`&5VjheiCG*7v3Q;$P?U4F0!?_;0i>PT&8f94JT8?E=w@4+|c^o0K_ zMf^8f@15U6?z`wy_@OBOBdzEDt^QA|PWf|g5B^75Kb`Ks2OAtAF|w|F??xH?8OX zt^RkY4*$#>{F~Nyr17i&&8oxy7exG<);Fj6;-7PR!vCCz|3>S*^Ly~E^LYmU%p3eS zS{JADr}*cbp76g{#DAmp-uXTF-btUrcSQLgX+8IE$$#f5)o~xpANe0?{nR4bE>cY z=~Mh)FXG>{p8L1@pI06JnK$@1t4Nb8TK`kFs|ivI^i{F~Nu|5pEpREK}&4gO8*htl}f|23+^ z|5GCVP3zaB`s$xP#s6nT{F~Nu|5pDiREK}&4gO8*E7JJIKj-v>|C>boH(KwV--BHcf}_p6Tk_=YI|Bdy<`>P!D@r%&;Jw}^k!dhXxq{|eRN zpLv6S)A|)@{ObRJ>hS-lh=0@ifmC1p)2H~~CF0+-p8L1>=bWDK&%D8ZqxIhTJ^1FF zp74LQi2p|Gz4LqU&G|jS?}_ry`8`4FUrYC2{lB8?mH#&8jr@6#{_j*B{=X{X-?V;bs;~a( zQ~ZBU#J_1h_iy#TM|JpT-r(P~z9)@e{clwr{_hjWhEQ=?VYqMEo~e@15U+ zZ_eon|I8cwH(KwV--BU&;TXld9uBekjWSNb4t4ea)Xf#s3#Y{F~Nu|5pFEsSf|l8~mHrZ%gA>|A$qF z{})C4o7NAf`s$xP#s3W={!Qz-f2;ous>46?2LGn@4Qc%9f3@oH|9KJrruEgSzWCSq zJcIwUMEo~e7pMRISNwBMPxxov;J?v&@BAKob52kA-y-6_(R%Ov9&+DGpTe(;@;}mg z?%(SFN!2NT&h5efNb66g`!D%#J+3TCY=DgGZ8@o!qs{agLts5<;J zZ}4wgzcGzp{a>d#{68b&-?V;Rs;~a(Q~X~k;@`BM`?vZ(TXpzn-r(P~es&ta_~)FS z@PCVl|3>S*^Ly~k`8~m(iSp0+JwfZ=N#hs)I-h6o&%D8ZqjhmQf2#jCR7d`+MEo~$ zeh+%@{GRYlpK>2x5%F(Y&;48dKcYJ2&$&JLA8GxOMf@LA9X`J)%Ku2~$5MUip9|?z z{C`2jziB=9Z}oqb>hRCJ!M|z!sx*Gh|8mvg|8WujruEBHef3YD;(xD*f75#I-{PNh zdcr^R2LFxLd*}Dyn{#@?|Ft6i8?E=w@4+|c_XIx{<)8C=g4T2YR{yW+dgaf#J@_AK z{neCT$$!gf)o~x6it<0w`sq|(^4~(Aavxt3@o!qs{agLtt2+EMZ}4wgzc-Cv{okcJ z{J$>Z-?V;Ls;~a(Q~cj9;@`BM`?vbvr#k#IZ}4wg-hRCJ z!M|z!jx>Jte?)coe_6!8Y5hp5um0&%{NE(v-?X0lxBB0#I{Y(l@NZh*oW`&I=T(RQ zqayxI>+`9;_}BS7ga30x{5M(`r|&ZN$$#?+)o~vmit<0w`iWFu^QTYo|EP$6 z(|YdT>i=fd;h%Yff7ANSY5eN{km~UNtcZWp`k_=`{nMxTzgonPUlbY z&pAEee@?`IqxIhTJ>i=^#s63JKm424bN^QVkEurab8Zj*M_PYu5&sXVM)`AY5B^75 ze<;=0{OMEt->3iK-?X0lxB9ma)5&wXiQ`=8yc3wEkMkujJ1;J>maM5&wh?gi2p|Gz4LqU%{e{cpLv7-M(bjC{p6gU@c&s6|Bcpr=l9^7GY5k2 zi}JtGw4VF76O!NX`E>l$f1H0qenG}xp|4Hro%}eThx~%%w_0DD);sxe zJ`ec?$!%U=o7Ox1w+#O&KhEbNzaaT-*4L)>PXBRkPvi%c8|U|oB){SFY5r;b+o*SS z(Zuew^P!jzR04{FdQA<;S@_ z=hOVt{N>!9$Pbbm>#s?E!{^ibG=Dc-tLw=L zk{kOU(|RwzrTfqM@!lgRNNy)4wBE^&^KZy6NN%kEru9z$ac&R!1<8%|*R-pg<4{&Rl3_s9v7-yIWL@8rk%H{=&oZk*pkenIP<{5YS7 z{DR7j^LxlIXuXpk=kt(XQ2B9w4><;{ck)|?|CAr+_K;st`Eh;^IR>rw^1EHvlM^I2 z)_>D_FF)3Aa)RW>`fFP6<#&^=Cnrd5PflpPm*3L;=lpoTkrO1hlM`C+D_CqK^TA-^EGvHqIYJNa=w5BUYjZ=b$4t#|TUhX0fw=k}0ako+#!*QWJee$VK7 za)Qc@^Ls{G@8!q(O-@j`aemK8>%IIQ*Y)HCl^f^xjI`d%Z|VMXe!Ta{2`V?v?-^;m zm)}8MPfn2hSpQAyz5I6RdUAr~$NFnp@8!2m*OL<@zdI+i-pg<4{&Rl3_s9v7-#rsr z@8mcCj;>cuLFLBzJ>(a(-pOyC_m6T4DmTvWA-|yYPJW!vLw-T!$N4?v7_{EWZyEkm zew^DwenIj(TVI>jd->h1>&Xd{8|%Mmy_X;BH#tFaWBoO)_wxIkt|uo*Zl@-+-pg<4 z{&Rl3_s9t&Xd{8|%Mmy_erXT~AJs{8)cY>%IK; z>w0p6TdA*2>z(|T;Xmcaxjp0;B)@rmZCdZ;_kgY^CrECr|EBd`eyrc*1eF`- z_l&gO%kQYJCnu=fIKOA4^z(}8@cvOwLFLBzJ>(a(-pP;idB`uQ{5Zdd9D~+7`7OhL&X4yVIYH&d`8^}8_wu_z z*OL<@H`agCdM`iLZ*qd<#`N^-g}A&qIDea%259t#|U{d>--(lHUe>ZCdZ-w+#O&KhEtTzaaT-)z_x= zUVe}2dUArwjq`g(TJPn@`b|zyxvggXHLdsZyHD4X6I5=T-!syBFTbVx&-wA*BPXcb zIKOA4^<;{=ls&&KXN_~^+DC~^IFsgt>^kYKJN|2fvWrUpTB88-!%RE z%iGWR8|VJc8JC{%_tvb?IRDETXMAR@#{X|;-1xWk{eDM(cinj4AM3gc_5B;IL+Z>8 ze>r?VQ{Q(wu6@V2oB!uC&N%o7zxvhx{h!ac{$J~BJ#+Ij|6V^!{h!KLqxGQbM*fkm z)Aw87c<>L>xG8VGUt9QFCv-X??-xr|W;)@#*{J+}U)1~?Y5jLo z{p9}JxE^OY<1hFAC-ZNK_n-YQef&v&!}I^lzaJRux7KUZ`ohm|=)Z&O8-GvK{5xn` zU-0?qdd&H`l^?#e{@c*!gf75#YdHwwS@qeT0;1@;wo7Qhk<5&OJsSf|oi1;_HUzh5u{|&0c z|CJ*CP3s#{ef7_C#{Uf>{!Q!o`4|5Oex*A6(|7o9w0_`MY5d~ZS18=1I>YqNv|5rr(o7QvxR{xKv zPW}%tf8>9p^+(e9)&DWo$^U_Git<0w`mt1B{nMxT|AL5r(|YdT>i;U$;h%Yff7AL^ zY5eN{a@FDgaS{Kf^~+Oz^-rJTf3Jvt(|YdT;{URrs}BFn8~is~U--ODT`%94{dnL3 z)@}SZT3`6QO46?2LGn@d(-&U|6QuX|LY?DP3w21`s$xP#sBRh z{!Qz-f2;p}s>46?2LGn@eQEsae~0Su|A2^p)B287U;OWU#O!|Ixt94vP41w7&3po4Q`U_tU5FJyHHgTF?Dk^56f0>bMW) zkNl6c{zA&HbQ?jMEM_S{Zy*2`O~NPe@eu^X+8IE^?!%z@Xx%#ziIuBG=BAe zM0NOoS;W6-{Ya{>{^?Wv-z4JSw4VF7`roWN{4;OxZ(84+#;^Y8RfqqhBK}S5^Qpf0 zzm)#P|2ZQ58?7&V-lndX?@PZsa6j_~|BcocK5tXk%lD=44&1*@#DAmph0oj6_40iw zeG0!J%Ku2~xqnOkmp-jJ?t}Rw|0AtGo$@RBUwT4y+{cHa{ExJLBGuRY=~MhaD&pU? zp8L1@zgczoXWro7w0?6MzxqFDAia0^eO(Y7V&Rd&;48duT&lWnK$@1 zt*=buSN|(ihyPne{F~NSr2682AN?!;`+gzH|48fKP4&h9zPD9}f94JT8?7&V-lndX z?|okzcQzpSP*&@lBt?uZs9Lt>^x&{vT7F{O@D_$p1*|kEQ!B`R{v3b==20 zqWq7v{!pr~`O~NPzfZ)!X+8IE^?!}(@Xx%#ziIuNG=BAeh3fGCgouCB`W30Z`lnCv zzhA_^X+8IE@qfuLRfm7(4gMRgFMQsnu9xpiemZd9^&g4|t=8yc3wEkMEFZo~cit5P!OcDQ$))zi+Q`h60K7}ue_&2TR{;mG+ zR~`PDH~2TL-@l0edsN4BcvF=Bk=E}?^`(ChS-dh=0@io>X7_@1=k7zeU7z0a$T`}m0{ z|0AtGpXzJ=^eO(I5%F(Y&;48d->EwMGjH&3TE8=mU;W>vI{bfG#J_3%wp3sJ)2H~q zMZ~{pJ@;?*zg2bkXWro7w7xZsU;S@T9schY@o!q+km`&7i|JqduM+X!Xno=HHg&yx zU;M$qz04c@H(Fo#yiHv%-xq&p;ND##{u`|?eBP$6m+y<|Q}|6${zqER{af^!KE?mzBK}S5xqqww!>YqS^9KK>^}}iW z>io5&x$3+`rZTYSrPNd4qq``sy@(^?$bN@c%gx|EBe` zQ+@HjhyIoSJ)es5KhpXKslNE%^DWikpLv7-M(Ycox2fypd(T?~FJ33&ztQ@_=WXhG zeAB1!brJuj_1wSJ|8dpH{~qR#{ExJLJl%iEf6pVT<37GE%Ku2~kEHsVKYfb-2Sogv z)^q<>|JSJw|I8cwo7S&O<5&MzsSf{N6!C9bzbe&N|MV&T4~qCVt>^wN{&)XMb@*rA z;J?xO!sl)3dimb{^MQMA5b@t=ec|&qb-jG=rhnllqWq7v{;hQX)&Co+lmFe!ANe0? z{f$&#^56Zc>d5~r5&w{F~N~E#m)P)$ts@ zF3SH%>-VPm(m%WDQ~Vzl@o!qs{agKCt~&fPZ}4wgzdVg!^WUdB{68$>-?Y9j)ffM} z=wJMA6Y<|@ec|&qb-jG=`tiWs%p3eST3`6QOI{68z=-?X0l zxB9hRCJ!M|yJ zM;gES->f?Pe?i2*X?=65FaCGZzxbaM@!x2D;qx|iy?pQdXy7j94gMRgFMQsnu9xqf z-yOJXuZaIf>kFT^sq5u?Cw&Uv5#@iR_1wQD|DC5)$9*t=|3_4Zf94JTP3uR}_|^Z-s>A=6MEsl9Z%*~qKYfb- z>qY#V)^q<>|MRNDKl29vruF$We)Ydnb@;zs#J_2MWvVa!chJB1KU2hiqxFT)+tl^) zz2n`1JDE55Z?wMfd7HXkzIVJmaOWlw|BcocK5tXk%l8iY6uv3S|48e(e@p&5PNOpivQ1w_&2TR{;mF3s1E9p^@q~^*Zl8S9ry7KQT|6-zdzNN{@G5S;{R?D z|EBfazt#U0s>46?2LGn@E7JJY{{hwE|4|YDru74et0 z^9KKo))zi+Q`gJ)wjT}Lezl1IM(Ycox2fypdmH@=zbDH7Nb6rq_h0?LqB{BC#{7~0 zk=9>H^(FspFR70E_=PC{Bdx!b>P!CH=u`YZC*t30Ph=0@iovFV1r%&eK(%p3fh z);FZ_tN+!i!~f?+{F~NSr~2Z5EB%ZAvqbziT3`6QOn|Cao>KB+qHgZU%>BdtG~@+TCY=DgGZ8@o!qs{agLts5<;JZ}4wgzcGzp{a>d#{68b&-?V;Rs;~a( zQ~X~k;@`BM`?vZ(TXpzn-r(P~es&ta_`mR1s>A;+BK{k#FMQsnu9xo%>0kIWQT|6- z|4tge_`mQi)#0Ccga1bB3!k^C>*f2xHwJE9CE~x)`oiaJ>UwHx{!Qz-f2;pT zR44xzGJoWMr1eMA{nz}DsgC>jrYQd-tshJErGGA@Px1c+5&x$3+`rZTRjR{3^9KK> z^{dkO)&J$H!~f$V{!Qzbr~2xjKE?lD5&x$3+`q;DmY=H*|I8cwH(Fo#yiHv%-&=k> z@WN|F{5M)(_`FSBFW+0}U-+>o|0AuxmF~a#e^qtzzlHfD|0Auxn(9mbTTZKv`}kCp z|B=>Dr}~or7Wx$bUlQ?eTF?Dk{okuP{4;OxZ(6@MjbHuWr8@k-F5=&`epjlm{^?Wv z-!9_cw4VF7`roHI{4;OxZ(84%#;^W&s1E-Ri1;_H?@0B<{{{3f{x^yEZ?wMfd7HXk zzAyN}z%9%h{5M)(_`FSBFW(n@G;qs75&w^eKE#l>d>|bN`n7FL*(9 z+z0bV{zqDWA>~){zu=VWxQ|an`5$ThRI0D})2H}?=~MjQB;wz+p8L1@->f?PGjH&3THl<;um0y%hySA@{!Q!i zslNE%O#kBl91;JG))zi+Q`gJ)=I;)?fO&)eM(Ycox2fypd-J;kFW4sHztQ@_=WXhG z`QA*Q!f%N3Khk>c-;)34r&Y&&Fn{EKr1hs$ekK3SCsfCMd??EQNb4t3ea)Xf#s8xs z{!Qz-f2;qSRfm7(4gO8*H>dHd|3j+7|Fa_gP3wnJef3YD;{R$9|EBfazt#Ur)#0Cc zgMZWd$~1oUze08Rzg5J)X?;biFaFP`f93!DUx@NQ()xE(eer+(+p5Dq^9KKo))zi+ zQ`gJ)`Cl8jc}~QCqxFT)+tl^=rcdElMf{uAbN^QVkEu@n&u9L~|48ePrTZ`WpZ}2R zxQ};4`5$Thp;TY96Tto;%xP)N{VQ9h-f)K+H#N{Fe5rPn55Ml^o5J8Ab2to`(jGN0?z6>GA zLl7beA;J(u2tf>C2tf!Tx-iBVf0oPT!uEZB>zwE8wR&~E%s%r6`ptfL7yGH7_j&iB zl@!j;D(+wRKTYT8f4@k7)A?z|`MN*PDg8Hy^f#TC&u`U#Xk6#$&*z5zT{@rmzqhG* z^&Z;a;R)x8^zYL7#Q(ib&8zni&oA5|s(+8p-zt9oy8lZ$r~X5He$>B5=PwoKEB`~! z>m2?ki}df(`NaRdP0iDr=M-)c>2EqOpWnLwEjmYkJ~#9?o!|03{cq4Y{v2Kv)xSsQ zHx%cq=VyrLl>S$X^f#TC&u`s-qt4Nv&kg-e=NpUr*Z$Y)9Q|(>>2Eq;Tb!@@FXQ>8 z{|b@*T{@rmzqhG*^HM1F{&oK=bdLVdiS##}Us0T|`}3UA|6-B;rt|Xot^2RkIr{Ut zp}*;TWpV$y|Dev%|9X-Brt`t#eAR!D=a>EiBK^B`KDe_uU-cjSMCa(w=Z5}WIv@O` zIA8T2{6OdEzec2gm(B-2D9+dYc}~@T@NH53dvsntzjgn|bWZ&T`TVGVkIo+}?qBzR zNaxgl@N-f9dvyL#alY=)b4vevMf#i0%jdW5e~He~pU(~bP3M;s_pke3pmX$pQl!7> z{DR_qd4HYr@BK@^Z%OA(=lZ>V`R@;_??1D1|K9KI;m?5{-F$FnalY_3yg~QZ?}}_Hx%5wU4*qZPs*KM6wCLaQ z*Zuu>ee^H<4KLCC^!w)$_51gRuhX^Zy!`!pnLmA3*{1pbugm`?exPg9`Go#7zeV%< zJ&B3>{fQ^&_eJx26ce3K=udO{eVt4Hw9Ef3exYmA`Go#7-@bq5Pv;-k{q%b#6ZLy1 zPtflx<@Zn~I*tHncUP^T^-rn#U8Azajm; z=pLO%{`7mQlRqeLLoa2-U+3>n`23~b?)kUtU;4XI_rnvEx1rZEI*2J2~hbM?X-hZa^z~8c0H7`$z z^0$orZ#obBE!(Dfc}kQw{ku}~m*_n3x9mC1%TuEKE!(YY(|Pdu?W2F;ZyE1Dc}kSG zWuv+_ok#vI*F2se-q`=9^T;3j8&42_>|fJ)0f9?C1{&?@<3F7UM zjLrjpgCm-kr$oH5_f6-4zrh`vm#0L$v42hHfxp3F&C63F{?_W+bRPKYqkrLVkoTWF zCE{qrU;F;0Ki+$I zg7~{Gqw~Pu(zi7)Pl@ujl>Kiy5Bx3V{Uc9_^0t)yYdR17Eqz(@@{}llOULz>={)e) zNB_d#Qr>^^l!(8n`oB%*k-uv-k0*#X_P^;o^2h$h6T}<)*K{8FyHxXdf_Qr@qw~mL z`~Iar-g|h0^0styM(2^g$(qL##2fqHbRPIyGNO5TO2ixc*K{8ETe4U4@|1|bQ}mbV zJo4ARf8lQl?>~7;#NQeE%XA+2Tk@plY@w9{FqEzx2m@4^I$(w`6o4_&feX&C64wydBT}H=PImj_3U&PlemU(S7@$lrkG@dWY4{x_XR{w8Z4PY`eHU(~7;#NTGCGg^weMg0OE+ z@|1`-_OIzY@ORw%nwO_U{4LhC={)e)NB_d#alHTJDG`6mb!|G2{N1T}JVALoj{R>s zkNmN}@dV}VIQFmUJo0y==J5pO?YQSNI*^T^-rn#U8Aw}r1{bRPL@-@o+7dk;@g-WI-* z(Rt)=jpp$L@y7l)ok#wLG><2UH}zyDX#g$Y1;Zr9a+#c!K!5Dx>qj z--6dQFHec`wt)R_IuHCU;Qb>{iSo99{cAc8{4Lm~d3j2dzXkhsZ8{J9_0hlZw}AJb zJSEECf^l7&&Le+UY93DzZ|r~5dE}4%jVFjV_OIzY@^_);@dWYqP)6sGzxMr0f4ukb z1o8G*M(2UQ`D2=wr$oH5|4rwCzxlf~FHebhWB;1Y1Ap^(XkMNY@wZ;rrt`pGAN>n| z^LhWtQzHIO(Y5J3^7p9b@dV{!eD<&DJo0z1=J5pOZT?#sok#xK z_b>hN-oq1=xB2g7bRPNJqgP`D1_M3Ci0%_OIzY^7pXj z@dV{<-Uk_-2mbo#U;5*{hbJg+^FGPwJo0y@=J5pa#{M^*NB%Zx9#0T&>|fJ)U7OAWe|_{X{LSV4Cr^p^TdZr-dF1a_&EpB;js0&rkNmN}@dV{tHg{`A=aIkm{Y!tm_wWSeZSM0Kok#u_X&z4yZ|r~5dE{@p=J5pa#{M;( zNB$;j9#0T|=VWvq`D@?5@HdC|pFAbv?*d($&I5mQp3}TMCCb|z_P^;o@HdC|k31#H z+Z^_<={)c^=Sj`WQ=|fJ);BWSanwO_U{0-{bbRPKYqkrLVHt#=qO2pqvU7OA$e|KvhPf*@wv;R%! zkw5k~o}j$VX8)SbBY!t*9#2r-X1|cpdE~Es|I#1tJv>2qoBc{g=aIh^n#U8w8~fjM z9{F3Oc|1Y9v42hHk-q`W;|b#LqKwWXf9?C1{&?@<3F7avjLrjpvtHJ`JSEE8EcUpkN$zv(>iH*;9?@|1`-_OIzY@Hg{w&C63F{#NVSbRPKYqkrLVChtFaO2prKU7OA$ ze-CONPf*@wvj0uzkw5k~o}j$VWdEAZBY$^l9#2r-X12qoB38o z=aIj4n#U8w8~fjM9{F3Lc|1Y9v42hHk-s6$;|b#Lij2-9f9?C1{&?@<3F7aXjLrjp zGv3s^JSEE84EDe2Jn%Pz_m4a!%G(U~ujxGSH{(Uk%TuEK%^20S={)e)NB_d#4Bmh8 zlqi2Qj_KNT9{Iak^LT=IWB;4ZBY*5~JVCs%e@*9+zl$}GCy2L4GCGg^weMg02qoBlyY=aIitHIFBVH}=2jJo2|r^LT=IWB;1YBY$f&k0*$~>oPiz{I&02 z`s2NaCy2kBGCB|ZO?zMS@{}lV)7bx}^T6LU-aqn`C~wo)zozrR-?Y~?FHed1o2qNm zdEl>){)NA3y#M4W5r1=aZ90$q-KcpyLAH=_iFjlGn$81%Q^zzfPl@2qoBCNs=aIj&HIFBVH}=2jJo0y{=J5pa#{M;(NB%Zx z9#0T|w`6o4`D@?5^v8P-PY{21WON?*oARmVD_&Le-fYaUM!Z|r~5dE}4%jVCB?Q`oP(c}m0^``>gP_?yK0 zN1hV##{M;(2mU5~ta*7##NTpVo6ZA&ee^H!B=*1Q zJo3l>#uJpcN$g+KdF1a_&EpBm+oYE=I*<2UH}zyCkFY$Y1;Zr9a+#c!K!5BBS#O{T(}Y>{ZR{_v|L> z_wF8J|C`Py^rv~=Kl(kpiTb^}$JoE7^9lWF{yEL-_v|L>_wOFtt!vZyg#I+&zJKOV z=Xw9>_v|L>_wF7W)wSt7@^`uB@dWY4{x_XR{@CAmf_P*9n$9DC=W8BM5N{7;bRPL@ z-@o+7dk;?#Z;xbj9{4*tqIr2r#2fqHbRPISxujxGScXU|u@|1|bwYoN) z2mbo#U-&!9`%j({@wZXert`?(!gP_&dV>mZwB{JHq}ood^DoysUY7 zN|e7N!W|+Z=Cm^JSF09fv!#Gk-wWYk0*#X_P^;o^2h$h z6O^}c_OIzY@^`i7@dV{<{OOF&BY*Atm;QL~;R(vy__G=9#0T& z?0?gF~qb_QzG8j z|EBZ6-x%*7c}m0^``2_H_#1m)^YWC4zs0&Xod^E<=wJ97gP`D1_M3Ci0T``2_H`MXi`c!Kga_IyU?k-zr+OMkrg@C4;;?4^v(BY#7h z#}mXG``>gP`5VwYo*>@XzozrZ-)zm}3F7a9jLsu}?faMhc<)Lc4`MX&2c!GFi|C`Puf9!8OLAa2mbo#U-%p4{U=X} z_*<)M(|P3Ye$C?v%G)UW-*g`NV}Iib%G)UW*K{8FyIu2mg7P-{N=E0AzxMr0f4ukb z1m$h?jf~DCe`_?4Cx|!pzv(>kH>7zyLAhN-oq2b z-&Gl%2mTJeu6cP%l(&QIf75y3?;!6Vc}kSGgX~|^dEoEhHqFaZqWm4)uWQqJ;IEJV zg};Nm|KurA{tk}o+H@ZIyHfLbf_P*9o6aMD>~B0lys>{x=aIh)HIFBVw}&!1kNmao zU;5*{hbM@)$1*w({EduhUY-*1#{M^*2mVHOXtHp2clok#xI-*|%ZHp2cjok#xe)jXb{yp6n- z(Rt*regD!Q?>#(0c^i2zqw~n$Ce7ms;*I@pI*@XzozrZ-{qRe z6U5sS8J$P|+V?O0@!rD|l(z##(0dE5U<2Uznd~TkNmaoU;5*{hbM@?+cG*2{O$W#^YWA^Z~NH)rt`qxKHfj_l!!O> zujxGSx9@Gu%Tpr$=IYvX9{B5{f8lQ*?>~7;#NT3Fo6aMDw`v|w5O3^%(|P2N{f#Fm zZ~NH4rt`?(wVKBhl(&6bGdhp_weMg00GL zh&T4H={)i`S@U>;_&X<~^T=QO{)NB2y#M4W5q}rx+H@ZH+xwj6~B0lys>{x=aIkDHIFBVw>vUAkNmaoU;5*{hbM@?donr?{OuXmygVi1js0&r z5B%-n{Uc9_cw_&X&I5mYKGeKCCE{;T*QWEpUmyJoe|vcU$x|Z!R_fYx9{Ial^LT>t zwuk+1I*;^0w!NjLsu}?faMhc<+U7OAWe|_{X{O#ubCr^p;w|l>? zP3MunOEr%th&T4X={)ks{>Br;8~fLE9{D?0^LT=IyDy{j$Y1;Zr9a+#c!GF)D5LYh z-?w`;FHebhWB;4Z1ApHRYhIob@y7l&od^ED{ao|%l!(98x;C8${`%-&`1_XkpFAbv zZ@sQf=aIh$HIFAKZ{M>2P3Mt6_BWoOynW05HJwNP?$kV@X|EBZE-wMs+3F3|YYdVko4QU=v5Pw%>bRPL@-@o+7dk;?# zf7fJm9{Ah!rsm}-QQmg3|4rwCzg@h43YJ(1CQ;P0CwnwO_Uys`gH=YhX(_G(_967k0VHJu0kzS*UDc}m3JMqQiE z1Al$=FZ_MO`%j({@pqc8P3Mun$2E^9C~x1e|4rwSKlV4CpuBy<{xzLP{_fX2o}j#a z^G-(Rk-zr+OMkrg@C4=Un-4NNkNlmgc|1Y9vHwlyk-v4C#}mXG``2_H`CFrTJVE?j zm(h9TuYLd0AMZUpLHym6(Rtu+=lhzMr$l+%$^JK;2mW^Q{*k9ddE3eUHJu0kcD}B8 zc}m3JR9&0S1Al$=FZ}J~{U=X}_?xS1(|P3YM$O|1;*I@pI*2q+qpHP^T^+9&EpB;js0&r5Bz<7MDy~Lh&T4H={)fF z^_b@6DG`5X=-PB1`D@?5@b@+EKY2>T-#NNAod^ED-lBPVN|d*++5e{V$RGO~Pf*^z zX8)SbBY%%-9#2r-zWykq^T1yp{Y!tm_wWSe?d#7nI*zyCtLZ$Y1;Zr9a+#c!K!5Bct=c-;Pf;FHec`wuAj|IuHEq;Qb>{ ziFjlGn$81%JKoj2JSF09fv!#GfxkZb7yfqe{*$Lf{0-{bbRPM;UGsQ?cw_&Y&Le;9 zZ#+SH+rj=dok#wz*F2t}yzO{4qw~mL`~Iar-g|h0^0woJjLsu}OEixsh&T4X={)i` zTl08=cw_&X&Le-*HIFBVzw!W|^kM|y)puByxGo$m!--VjT z6T}<)-*g`NV}Iib;*I@lI*yxo=2dE~Es|I#1tJv>4D-IvjM;BWg5&C63F z-q`=9^T6MB-aqn`h&T4H={)ea{bS9`QzHJB>)Lc4`0Jy8;cq+dKY2>T-)dc(&Le;K zY93Ee-nO&hN-oq2b-xV312mZc% zRrB(cC~se~|4rwCzb|?J$Wx-ceaZecod^EDd`|Q7lqi2+?$)*GJn+{?|H9vwy#M4W zQU1Oh)wSt7@^`uB@dWY4{x_XR{@CAmf_P*9n$9DC=W8BM5N{7;bRPL@-@o+7dk;?# zZ;xbj9{3v`(Y!n*;*I@pIuHB}@6fzFCE|_!YdR174G(Kxo)Yo5R@bKUz+WHz3xC7B z|KuqVe;ajeI*~B0lc^hW`n$9DCcWWL`P~L{$$ml%s*S>%0 zkM|y)pu7#glhJwU@3$w-m_KFG@smzoIQ7`EU;Sn0e4>7T>hfQ3zDu3&{QXJO7U@6j zFiZb=pn)lq%KP));6702PGJ9;&ddA%qjdk1xxeo7e@~h;xUx%qhL-96^JuK5LBUM%W&&JLQ+7Zm5S{+id%J2;BrAssHIB{Y~eC#re8Ff6nyR zJ0$ftotJ<9RsW60bPoSKcl7VlxtM=`s{R{4&^bLn8%IR-@6q`O#rdlLM(v!`f4YeO zE}e_{{pe>SRf^yhO!|1O=2`JaE)|7W{(j{fXz{CDYG%+FW- zf5!8x{y!TQ)xSsQi@GNqWbsf{Mq7s-Jj=_ z{!fYYH=UQyZ{7bUoufaW8~U5hZz}Fz_rFf(=>M`vf7AJO#re8F&nf+{6zOj|FQ4DK z|9YLHKc5@=o6gr4_pke});ap$D$?I{zPdPH_20nrOaCE}{#`m3^XISXzhS%1(Vx!^ z{kwE7=I5*a8$Q!H`fn2H-=%XgKVSFfIaU7+AByVVqx16lt@}T%bLzi=&yV`|==|y8 z{&oK+bWZ&@>=M<#N9Ruz=j;AFr}TeVq`&FBe17ZxSLq!6`P|UobbeKF|GNKWI!FI! zMEaY~FDuU1{drF5f1yZ!(|P&)*8P|39R2y+(BE{vytseef3eQd|5}m$rt`(c`KtfP zJiqjxEz-YB=VJc+RsB!?NayI!=Z5}WIv4ZvRsWOU(>eOD66xQib1^?(_vblP|C8So z)xSsQffXDM~eH`{U6Xd^*{MjQT=;#{y=fQ?$2{d|GP!{o6gJU zx9)$D&e5OG4gF2$7Zvxf`=6(C^nYBWzv=wE;(Xno=al|uiu5;~m(OqAf3D8apU(~b zP3Loq``7)a>Ky$q73ps}pIV%+`mg8tRsZ#4qWbsfynKGE{_Ee;Ir{Utp?{ao#r*lL z`mcXY=jgvkq<@#r#r%BTpXZeRFN*XxotMvV-Txk)Q~&jRe$>B5=l2x%ulwJjbLzkT zT~Ymebbd#1zV6R+O8=Wh`kT(n=eO>Emd??i&kg-e=Vul7ult{-bM(Joq`&F>wBmf- zpXZeR8$|k>&dcYw>VML>&e5OG4gI@xF6Mv!RsWOr>m2>h73trlb1^?(^*@Q{SN%`g zA*z3m&dcYw?*Ed`ssBlQe$>B5=Pwoaulql*bM&7q(!a}-y15wl=Q*YS7Lop@^YZzv z``@B-^yhO!f7AIb#r^C4H|U)DpY*Dz{yjRsp*Uar=Q*YS)gt{(=jHQT_ur^<^yhO! zf7AKK;{J92wK_-t+eP}D&es;_tN!bFe(AqLq<@#r#r)5&>c4KM&e5OG4gI@xF6QT} z{_DQbIr^U}(!WdRVt&5v&vUB&>pm9Mzenfg^IP}ds&neUj?a(!_vn0UasRsiW}Q?2 zb$dni@6q|@;(Xno=al}Biu5;~m(OqA{~Dd6Kc5@=o6fH(?qB!6Lg(oJoJfDu`4z?a zxEPPjrs{d~WF9rE@VqU-kd#2RcXpH6s1HbS~!S>;62a>i^TXMfLB|dHMX- z{U6gg_5UfKANB9i`D4ZX>;4bvocjOtb5Z?!bpB9rzV6R+O8EiO$iV z&kg-e=a&@sulrx1bM${wq`&F>g5rGLpXZeRXN&YVotMvV-G713(Vx!^{Y~c!iu>37 zXX+gNFBj==I-gmbulld$`Bne5M@04S(Rum&R{ht$qjU7;5^O8;v``kT(n=eO>Eiq6rW&kg-e=cg3+ zulujpIr`rz(%*ExzBpg?U&HfD|5YOWyL2w*e|}Z}HM@0={(Nre-=%XgKVS7SotMvV-TzsgQ~x!5e$>B5=g$`Rulql(bLzilL{$GC zoj+Ziulw_y(*JRh{-*Qt`K|k3r*rh@b3=dA`E|wp>;6~i9R0V6^f#SfRh+N;^PJNE zQjz|q^YZzv`>)nH`t!M=zv+B+asRsia-F09jUxR`=gW)pRsSFJ{L+7sNdGRKi}~|c z_5bl_I!Av#H}vn)xtO1?`v3SNoumIck^Wse7xVLVf1XqI|M9z``uFI(e17ZxPw1Tb z|CrB@`uFJkiQ@is|3`FA{eL_xs(+8pA1Th){drF5f4@k7(|P&)*8MNjIr{Utp}*<; zvf}=A|BG~v{!fYYH=SQpoUi-yoYMbXk^ZLh^7*a%FV;Ew^SPnF>3nf<|GNKNoumJi zBK=M0bBps;|J6Ld^q(x!zf0$0{`^(_SHGuo^yhO!|1O=2`T45<>bG=`{zD@DyL2w* z=j;AFr|Q4@RZ;zWbY4Ecb^ix+PW@N&`BDEKoj*|AzwUpJ&Z+2EqOpWnLwc{)dbJ~#9?ou60SzwUpQ&e8v2k^ZLhvx@U|f1XqNpDNPdbY4Ec zb^ob4M}Iyy^f#SPE$(0SKXF{==zpO||1O=2;q!AM&#(HQxK~vF9-WuZZ`J?A*L05l zd~WF9rE@XAf8GBjoumJ3k^Wtt*v-ZKeC7W{o>TfiC(_?^UOvBd|2uR}{ZHicqy9ZQ zzoWQ+-TxMyQ~wj+6xF{+=eHE+>;62a^uJ!Dzv;Yue(V0H=^Xv}+|b{2ep+$=y8lL< zqyOC^{Y~c^i}Q7Vo>Tg-5$SI_FQ4D4|Em2uM}Iyy^zYKSnE&}#{a5YOIr^U|(!WdR zVt&5rzl!Hq{a1Z1s(+8p%jdW5|Gdtr|0+H|>ffXD=ZpK-{kQ6z`mY)j)xSsQTZ{8` zf1XqNKPl4RbY4Ecb^jZ5j{baZ=x;i|p}2qD{~Dd6|BE91P3PAX=j;AFr}V#Eq`&FB ze17ZxYjuwPd~WD(I$vAdzwW|CI@6q{V#re8F&nf*M6zOj|FQ4DK{}nn%e?B+#H=SQm+`sOB ziO$h~i%5Ud`6b2qxffXD^7*a%KcsW&zmm_7`uFJkq2m5^|NC@K{a1c0s(+8p?<>yN{drF5f2T-) z(|P&)*8MNgIr{Utp}*<;g5v&l|8sPX{*Q|EH=UnToUi-yoYMbvk^ZLh^7*a%&(t~k z^SPnF>3n8!|Em8FkLeu!FBa+FrE@WSetyXFtNuS65!Js(=jHQT_5a};I!Av#H}vn) zxtQO-?*EF;(SJasf0sY(=3;)n^8Z7gQ~GZc>2EqOpWnLwT{@@!KjibH{yjRstGIvN z|2Cad{~x|Bs(+8pZ!6B%{drF5f1^l$(|P&)*8R`WIr{Utp}*<;jN<-v|5J31{`ZRX zH=UnSoUi-yoYH@tNPp9L`TSP>SB&Z${rTL`zf0$0{^wuyU$I-~=zq3I|1O=2`T45< z3Z7r}UokAIe~-?~=eO?vg3hV`3O+yT-=p&viu>37pVc|_UvWfK{~nz`Tb!@^^PJNE zDUtrB^YZzv``@H<^yhO!f7AI*#r^C4*XbPnUl!?aI=`+sU-#!ZrT>*8{Y~fP^IP{{ zuXFV0b3=dA`TFAib^p~mNB>(z`kT&I7w4<~Kj8VL|By)kE}e_{^H=r%!FHXaKc5@= zcj;Wr&sY6_@R`ohf0Ic6E}e_{`MN*PsrvumLs9*EbY4Ecb^oVzPW^wt=STf}bpCX4 z|GNJZI;Z|W*d?lekItVc&e#2UPU-)!NPp9L`TW-XuhKdC^SPnF>HMnV{&oM$bdLVd zi1as|Usjy2`}3UA|3Z=ert|Xot@|(6Ir{Utp}*;Td2#=`|6-k^|Ft6hP3Mb?^Hu-l zJiqjxEz-YB=VJc+RsENLq;vG=b3^|wos0STs{iu$bdLV3MEZB>T+Gkc{drE+fBBpG zOZ|IvUOvBd|3`F2{g?CkQU4yDKT_Pk?*D+!sQ>a$^_Tkh==_1=eBGbtl>T??FZ!F# z%jdW5f0546pU(~bP3IRC_pke(r!(|_Tz}EubbelOzV6R+O8+zU7yV7=RS@^f#TC&u`uT9-UMF6Zrh7e~-@ZDehnQ zzeDHL|Aco%_3zR79mV;&KhG)sZx-oqIxnB!y8l@^M}Iyy^f#TKRouVsf11wG|9+AF zrt{N^^L2loQ~GZZ>2EqOpWmwg(74XgpU(~byL2w*fBsefq5V2X|8qt9cj;Wr&sY72 zcz)G?Xosl&JvuL+-@5-xI;Z|ae16owN9QjU_pkduuXFUDEYiQrp>8h5{drF5zeS|K z>AZY?>;AXs9R2y+(BE`^OL70Y{|!2){zI>d>ffXD8;bL_f1XqNUoFz#bY4Ecb^nbz zM}Iyy^f#SvEbd?TU#oNUzg?ui>3nT*zUse>=a>E~MEZB>T+ILcs{YG%>Ky&~+|a*E z=VE@o>c8v@oumJ$BK^B`F6QU!{yeAZzwBdC{d;s?KEHMUtvaXv%lQ1Le~-?$7Wc3F zZ`L{WU$$3N{~n!hF3#8ec~0s7s7Qa)dHMX-{jbqE`t!M=zv=v%;{J92D|C+j&x!Om zonKL$ulw_y(*I(S{-*Qt`K|k})H(X|xuL)5d}VR}y8ocg(f@jp{-*Q6;(XPAkmr~F z10wyqbS~!4U)6u`6P=?!pBwsj>0HduSN#V+&^h|A5$WHhb1^?(_vblP|G~FK_3zPn z`TW-XAJaMYALR3+{yjQ>thj&O{~?`I|H02i_3zR7L&f>JKhG)s?-l89IxnB!y8k6Q zM}Iyy^f#SfQry4pe}T@?|4EVlrt=Gm^X2_@&c83|=SMr|P3L0%=U3lGv*em^5kA(k}nLc#*D6=Sz$8#qWO_UZwdtItPDS)Mvg&=W~kl+0Ucr{Dji`S$%Ye>%TJzpv(KhnxPXc%AOwrE~pxOyE!7Rkmq< zX_tRr)Ms&%>3l+en%|=NIbHs?_?fOv=M(zV{8O5r(d9oDztFYmd_sSkZ{I)jr}K~F zuft9MRMajsornG|)I6Rb-fqh1Jo0z8=J5pac1K3%k-sxFk0*$?yD~bD{I&02`a8Aj zPfXtKYnc3X{{Do|AK%sSmx#Z)x;C8${)Rr)ygVi1Pw%|s5jqe24QbclFA;ysb!|Ei z{Poel@Hg~+#~)1oRyV|7_wP^aPw$H456aun){OY;{QdlVw*U0^Z`VAYp!^NJkkNVM z?^ey@3Ci2hOBtO<{@V91{oUC0C*p7DwT8)G=kMn~fA;>+JbNEc5P#=nbRIo_OEixs zh(F#xrt`?(BF*Co;!p4F9-T-2+V?O0&F=aWlRw^ncodVr&flNV-?CRVFHec`w~YO7 zIuHCU+opMWN|ZPLoe6)5&I5mZSI1wX{4Lw9Ytwn)uaEwPKmJ_@X|EBZ6-;xo{%TprW*uSRpz~7R+nwO_U{GFm}(|P2tegDGW z621TM1e3or8aj{sEqPM&@{}lVOW6OW^T;3j8&6Q)mau{x=YhZD-_*Q3CE{<2UH}=2jJn}bL^LT=IWB;1Y1AmK;XkMNY z@pqQ4P3Mun_WcWgi}n7)6HNZjYv?@kxA+;&%TuDfEoT3l&I5modH={$qP#6;|C-Jt ze~)V(Pf*?#f0EI8;IEJVr9Zv*k|z;=i@#{-JoI<2=J5pa#{M^*NB&ONJf0xl*uSRp z$ls}&#}mZgZ5f?M{@V91{pr1zJc-HQT@9T_{*L=x^YWC4H}=2jJn(nihnknCM7*(o zP3M8X&EpBm+i~oF(|P2N{f#Fm zZ^yBJP3Mun8#Rw7C~wC-pV4{buYLd0pWb`PlZe0LUTWw(^f#n=JVCs%|4rwSzX8qT z3F3|YYdVko&DK1gApS1M=sfb*zJKXY@4e)S_aFW)Y3Mxix9CO9%TuDfEn@$h&I5mo zp3%HKCCb|(_OIzY@V97-=H)3-{uXW5wdp+Y*GK=t-y*&L@C5O;Bp}&hYk0*#X z_P^;o^2h$h6T}<)*K{8FJ6rR3f_S?pqw~mL`~Iarz4wwQG5LF-q4UV!!d;q|r$oH5 z|4rwCzlEP`UY-*1#{M;(2mTg*s(E=z#NSF?o6ZA&ee^H|fJ)!!dEgnkNmaoU;5K~FL@I2xA2XI&O?7| zG><2UH}=2jJn}cBc|1Y9v42hHk-sIH#}mZgWf`4E{@V91{pr1zJn{a+-&GBrNB$PP zu6cP%l(z-!f75y3Z^4V2m#0K|TfqJ`od^CFY}33vCCcA|{kk@t2mbo#U-(;~_aB}h z{uYckbRPPE=sfb*zJKXY z@4e(n#NYh)8afaCZPGlRAl}&jrt`?(8qMPg;*I@lI*gP_?tJTd3j328~fLE9{8I#qIr2r#NTPU zHl0WQ+V?N~&C~l2PcZpAtD*DA-@KAjaciTIoMNkiwMzcV$DCx|!pzv(>kw@LGOf_P*9n$9DC8#Iq6 zh`*aMI*V$Cn#^T+5e{V z$RGO~Pf*@wvwuzJk-wWYk0&T^vtP*QJo4ARf9X%}z2r&6-|SZ!IuHG=&^(?X-q`=9 z^T^*K&EpB;js0snkNgd29#0T|7iDxF`D@?5^r!b;^2GZOf0s3M9{HQ~vgYL}QQl^; z|4rwCzgf>|UY-)=Z5I32bRPJd^^E4_DN+7r?bNmDJn+{?|H9uaz5nn8@i%LKL+7Et zOEr%th&T4X={)ks{>Br;8~fLE9{D?0^LT=IyDy{j$Y1;Zr9Zv*k|#0wd#IuF$luJp znwO_Uys`gH=YhYO!tHk18tI*hook#xK_b>hF zy_YzbFR zMEp(Fwdp+Y*GK=t-!#4d@C1{;xec9%{%+Jfo*>@X|EBZEANw0m5O3^X(|P3YO3mX5 z%GAjaciTIngwW0IS-)zm}3F3|YZ#obBO+BJ{c}m0^``2_H_?tSW zd3j32-x<0#ok#xK_b>cS)%y=mF!?*Dq4UV!)GeBqr$l+1%KkT<2UzgsdokNmaoU;5K~FL@G^zdIT_kNi#fRP*wbC~s5P|EBZ6-<0~B0l zd7HxiHJwNPuGc)CpuA0aHly>%U;F;0KfU*oClP;BUTEk%^tVLwc!GFi|C`Puf3r1@ zCx|!pujxGUH(m31g7`Zxqw~mL`~HQ$$$J0c2_}CRHFO^No4if)@{}lVliB~K^T6Na zEt;37M0uOc{xzKk{w6=Ad3j2dzsX!W|^Pw&0tNyOjeoeiCb{w~x!o*>@X z|EBZEANw0m5O3^X(|P3YOwHp7;_a@C&Le;A`A!Q^jsL+7Etdo_==t*S>%0Pw&0tiT5A=u4w3dVt>bu z9eY*t`aQde`n|iy*#D;U3H@n)o96X@X|EBZEANw0m5O3^X(|P3Ye9hwt z;_ZQq&Le;A`H=_iFjlGo6ZA&M|Wsmo)YoK{xzKk{*Df7 zUY-*1w^rAt^T1yp{R@9b_5Q;XO#U`DbRPP9So3&-@^+N{Z#s|svA^*Ikg7S9sjf~DCf9?C1{`B5Uo<#f|eW#)G(BB5l;|b!8{ck#t{H@YFo*>@XzozrZ z-wMs+3F7anjLsu}?faMh^xjLJc>m$=x`xgpe@EWdygVh!+Y$D^={)dvs zkNmN}@dV}VJNB>XJo5LT=J5pO?Ys9fIuHEy(ZBSk_g?ZO;_thU8afaCovwL2LA z|4rwCzwx&n|<9h$$2_}CF8afaC-K=>$ zLADw z6T}<)-*g`No2+>}LAx&I5ma^e_C4>HUW% znEWko=sfgyr{?hl@X|EBZE-+<=v1o6iHHJwNPW@{c#5PuhBbRPL@-@o*y_g?bE z`wxGYG;|*MJM^OF``2_H_&c;k^YWA^e}}f~+H@ZH z>!W|+?~vYqc!Kylw7a46(BH+H#}mXG``>gP`D1_M3F3|YYdVkoovnF1LA>3Q(Rt*r zegD#*-h0WDnEXA^(0Sxm6O^~n zS28+}{I&02`qO(ac@ptA`bIgP`5V$ao*>@XzozrZ-xAH^3F7av zjLsu}?faMh^xjLJc>m$=s)o)Ze+OUJygVh!+d=lf={)dv@I}qbQ=+^bWdEAZ1Ahm% zX@XzozrZ z--VjT6U5s?8J$P|+V?O0>AjaciOJt%4V_2+M#eNRPlpkN$QT`4b)3xb5@YhHG!ruYC|L_EpznKl4hyJeDJf0xl*#D;U z$RGO~PY`eHU(-~o(nEaj9(0Sx<|5KWmr$l+% z&;B=^NB-E~c!Kh_pZ#k(kNiEXc|1XR+y6mE=YhXI`j`In-b{x=aIh+n#U8w-%S~vNB-LPFa7DgmpqBd-)#+@NB;JGta*7# zl(&8Cf75y3Z{NF`m#0L$v42hHfxmrkYhIob@i$l3rt`pGAN>n|`}F?96HNXVH*_BQ zyH)def_P*9o6aMD>~B0ldE3YSHJwNPuGKuApuFwdn$daWuYLd0pWb`PlZd~4&o^`) z`dg%VJVCs%|4rwSzv-IC6T}<)*K{8Fo2+>}LHwPQ(Rt*regDGWUcLYD1e3oD8aj{s z?R`%3@{}lVd)fb{^T6NUr!+55iSo9W{cAc8{Ox^G^YWA^e|taEwdp+Y*GK=-pWb`P zlZd~)+Z#F${hhCQJVCs%|4rwSKlV4CAl}%&rt`?(>6*tA#M>Piok#xK_b>hFy_Ye_T3`0Jy8;cvIze|UoU+r7V`^U&X=n#U8w8~fjM9{FQ`;|b!8{cAdp{GF?LJVCtO zm(h9TuYLd0pWb`PlbHNH)X;h4@7ukam#0L$vHwlyfxmBuH7`$zcw_&X&I5nney(|W zO2pr4U7OAWe|_{X{C%tUAD&?Hx4xnC(BFfa#}kydZ`uE*^T;3j8&6Q)zGeTK&Le+! zY93Ee-oAY;qw~mL`~Iarz4wwQ5r5yl)zEq9Z=L4x1o6iHH=RfRR%jki5O3^X(|P1? zNb`7t_`4#b^T=QO{-r;?_mU^xfB3tmq4UV!t~WI=Pl@uji~Vmp5B%+VS@ZIgC~v#i zzozrR->w%mFHec`w`)|_rt`pGAN>n|yY&9U6U5)HV-1~${;t+Mo*>@X|EBZEANw0m z5O3^X(|P3YV$I_T;_Z=)&Le;A`PV1e3qh8afaCJ+65?L3#Uz{ck#t z{IS3B1m*1;_OIzY@^`=H@dV}Vn|CrgkNmaoU;5K~FL@I2_ss_lornHT)jXac-q`=9 z^T^*i&EpB;js0snkNmCCJf0x_uFL2=^4Gq9=}+&y7 z|C`POe>>mQygVh!+fMec={)ea^L5S3QzHJR>e_T3`0Jy8;cutje|Un)-`s}ILw`4F z9#0T&?0?gF1m$h#=8VoGf9?C1{`B5Uo<#iZ+}hB2=x?^> z@dWY4{x_Wm{=PnUTpC~seXl+k(MuaEwvKfU*oClP;N zf7Z}>=AjaciOJs` z4V_2+c6_RNc}kSG9qfP8dEjry`xVBY)Rx9#2r-c08NWdE~Es|I(k{ zd&!fCza1|$bRPO!qIo<)ys`gH=aIkJn#U8w8~fLE9{HQDc|1Y>H$ml%s*S>%0Pw&0tNlgA8Y3MxiH$0+wc}m0^``>gP_#57#d3j32 z8~fLE9{3v`*1S9=;%}|4P3M8XKKd8_hV}l#6HNX#Hgq2Pdsy>$g7P-Z{x_XR{@CAm zg7P-Z{xzLP{_fU1o}j!9zmd^-PFB)>b^Yii3X-jD(|oNM!FC051l`O{nw@QU%USw zbnpLvEu5;FD!lKJyrY3~2feY$j>sB=C3>&`!KX_uS+u;_hm z^K?7yksRq+qI{96CrmcOTK)A>J~`24gzo%7T7=)W1Och2;`XF5;Jy=C{;-}@i@ z{Vu=O?_D}W|F`LU!u#jvxvze2&O$T$=LY8wtkC~k)tB}E-$5MtvHp6lq4Rw&7e9aJ zxjDJ>+#L8D%`ee;c#3!+qw^)d;e7YGJMf=%W=wyHBNyqfg$f{to<==Jot0 zo~!>`pS2Ow`PAZk@!a=)fB*dN%ik8=AHLi9S$cH7rMQ3DUqAD{)jB8c=jXqpq4RyK zi}SzJJincDp8H##FYo`X?thp5IdH%3zcQoqyNdf~=k=^zqWPCQ9Qm>SyXRl%pV6iB ziJu?M&(pkiM&c>rNxC+jPx$=kzWV&>`A8hmch*{z*Jn=YLDr zrt=A(pTEQX)AOVI&6K|_UA`-B)V1k+!skc#zgP3CJKWFDy^ZImL+2AeKYg7q|NKAK z{q^tabKrj6_tK2cgXd?yzGuuiZqg*UP`@{P{`C!=i}n8O`Ww)DdcmJfnw0oo#qGK_ zo&VWyIG^^9=Fimp4?6ty`#Tr&`)8lOzRnl^1|HY_|49EF_>F%4fsD@oXrlY;|DEz< z^zX3l@4sK1&+gy(`*V)-dGTZXcj$a#|N65Y(*6Ie%l|6s`|kqN`Go#E_ig&?{2QJ7 zL+2Cw@9TW|^Xr*i@JIURz;AT_>oPho{b%R(-#OK1b*jFz!ukJ9|J~mO4V{bm^V2!s zeST-@vpVn>ItTw+ye*^izxWO3yU#E89r$T>|FQ1am`TqLlfR3l-}nlJj7_xH~=vH!l#mp}hC>iZ}9=fFeaM;V=${JG>CeR<$^ zeTVGQ`LDe{I_JC3@4WYPUhkU(CQzJKoDq-)dpg#I;K^w;?p^cUYn#R={o{QQ5b^O=9$L*Ezq{+X!npZhP<|7|)i z{b%Pp|K2vH=QaI%+==@4FMa{XcD;KJy24 zPV{|E=VE^U^P2DPI`^dR_lI5nM^WFS#!TnszrSYwJNNZ{d|%V~uid|MzWe$8JOBLp z{yFx0>H+n=YnuLDu1Dv;7ySI!>d#x>8K#N++|!2|Iu~<)#m_%k|Gv3rRR6srkFfU4=STPZJO2FR`uD%F z-_t(_>U;CJ{{6p4=M#Q@)PFnAM~CU>exm#Hi_Ry0emXz@9=)^q^JniL)xVFM&L{r- zbbkJQI){gSw~0Lert=9uKb`yT)%%M3@6+z!&)sxB@#jbL`t#@KOw3&Ufkj;QxxxkLurF`R9!OLHE4ry!`j?&d;CqKm045Q~&W9qWYW85C1B@ z|Kb1Hx&Qdm&izg2hyQ1BzPkVD$({R;{-SgL9-W^YpFga9N&mzDrE|VV=f5n@SN;$G zJDroi!}|9Y{P*bm-^J%g|3&Bg=>OX}-=p(?QJk-S{=>hobM*gXQT}^${`D<3Z=f7K=ukJtkuR8Z1{r8>w_vrjz#pe$%>zqIQ4?5?2biS-OU-zG-bNK%! zBK}S1v*Pokf8IGisy&cCKc@3PFV0s#{}|7&{Ez89ivJ#+m(Oq2f9$V1_dm?%hyGnU zAN#BL{-gh?bN|u5>D<3Z=l>}_KgM%P|G(^<@6q}9JilZAM(5;zjL(ny_vrlJ6!))w z{!#Xy&L29dbKZ15TJFEvKhG)s|D}k3(|P&)R`(zKt_X|?s@&WrSqoq z;QI%?`JMs!-a&uUdG!5*`|~{m^1Xxmo6e)}AIY0OCyBr4+@J3s$)oe&^OO4jvU8sA z9h~dYdGP%s_1B(G{A*GD`TmjUJlNlyixT&`}4gc^){WC`@7h`$-6#hiT}QHf4+Yt|IW+LUv-}EAF03gX6kP`559k-{@T-t z|3t*U={(rq$@`yo&hz~v`8S;h-#_Th_m4#FP5SfwBhh*A{e%1SJtOt!^F#kGok!n4 zl6URt#J}m>m+v3Rzw=;!r`|lL{2YJTIoG4}?|FXt{*itTK0oTu_m4#9!TwJE*?;oD z_YTgPeE;bD{dj+l@to5CUyArQotMvVvHw%=-|F0l?;WYP={$IUCGUFwL%w%#f0OSY zoxlG*{drF5&(BYP)A{#2zkJU~KL?*1{CDX*`u>r;pWHdm_m1S>bpAd2lkXqt=jU_7 z&u=;pzJH|q^PKYM&*z3ef7AK*JimPZNcaDP?)^>Y-}C3k_m6a*y-R=7`S(1(eE&%O z`TWq|bYAYi>iOe)2Iu+S!Fkhp^!;N*|NAK4Ga%nT4(fkLHl0WR`^UjsJKsMb-#-pM z){yTXoxfi^zeRuU$M+1#_Yc1Bn9if`AL-l=y65%hmd=~bgYO^o<9i0=dk6hZ=h62M z?$7rO$oG!)J+4dV(f5z!O`ns*Uv%!z_mAY!dGPs3{eRgx&-V___2@kK{*n4?PbdDh zDF1x_NOT_TZ_e@kBT>(N@^3m1zJH|tzpr!rIsCCmfAjw*@7;qnt;#d+KJC4GHwQyR z4N*RZF`z_{Fa(tt#!w97h^Ior=K&BYBo-(bh7TDg9>N%gpg{!-8Aec0i9v%#6bWUB zM?6uEC)7BG5;fu&%fas6hiM zgZ0k*5x$>S)@S|*-=_6^ey8~%a@Rf!URBm-{)qgo=l$2zGk=7Cotxp`wBDIN!oSYx z;0Yr6o7Ow$cjW$oQqTMm`J2`|^9R0}KY}_p@z4AbwBDINSf4o~{Ih@XUunHJe?;y& zr-R=u>oR{t{?z(sE^5>jW4$K|Ynam&M z^XdF+`iJ=={GTV1ziB=9Z*zX~{g3d^zQMm~z4QJRx$FHOGIy}P$^211KfynJO8(qG z{!Qx>`j>FNx z)B1$|W&ViuUtZTYtxtIUm_MSPa~J=n^$GpU{1N`yKlnGT=ku@WzXi=7)H8QbZ(8ro zAAG-rIU~MrqWNR~6xCN+@68|cuU5VG8D##Lzha5jd*AZlLwf{1N_jP6xjwDu3pWp!LrAO&#+`P<WqI{zbg?X%!jWqsz4$lrS2e@#8}NBGyd8U9V{o%tjD>zodrAdos??jI=i%pZ}zX}vRl;G6j)sB;tl%pXDPo%w_HnKQya`v?D()_e0uottZ~Bz`xV6*`v_7GKnLpw_*gx{m{1LR?Ilm)+&OhbA+(Dhm{82u?^Y`!Y zO`qcbJdylO>$!i^`5(T2zpTUD5x!09o%b)+WzK-i9jtF!@BREGeAB1+=l=0;TA$Fr z%o%YX>>Kj0wBDOPBKJc}J@ZH8Z(5&lelmZ={j+blf75zr{)qMIQ(k}e4X?jxeM0{- zf5iGPuj`xEC%k^lA5qV_i+|Jlg#Kmz2>8X<^;(6!1|{3-uw``sn3HiDC;vnM2^-w{U82sDD}(@)D5)WnIFQx&e`C% zMEPfa2wLx)ztk~51l6~ZziGWQKZO5NRmbb_MiKv}_0IedzMogtXMPCZruBUOruYBI zUHc?>Rau|;A@aAL_fJ#L{1Ekg# z{zdp_-{9Z0-g*Ct-1YtqnHyN&WPT{0pWvT9C4cT8|EBc`{mYyX{@FM9ue9EqA0qcd zOFi>Lr;UIAbn{d7{?Bi+3*3`m*(l|Iz%i?P}Glf4AK(D!+l&uTJZyzu(^cTwSkw z4t`#|R3DqxFHiM3Ki2g+k8J&v-$wQ7g4W#h<0Wo8TYnQE-CVddt)KGSw5sF>$#2t_ zmq>o)^QpeQ|Lx`ex2sg#EZ&CMPl3)3Js!#bXJW%q3 zY>C!;`R#`Pl;6U}k{=|$#V0M1{L1H(|D4}7H9wKu z7VcPLK=PZXk1MVB&cAuRUgQMHZ+^!Tt@rYq z|Fmk9AB@~qFVT80zuoYk@|)LwAty+F^PFRq*1P$=S~cV+MsD;m`H9xM`RVnFoW#iQ z+9g`==68zf$xkFdzW-uc@8-Ab{&RlXFOd`bhTN`MqV;ZmGpZp!F><4i$&bFSdN02@ zy)rfz-G9zc`z3N> z-;kTm1JnAl{L=d;U$5a4;-BAxGp#T4pVr@v`ZT``zjvo~`MN89|IU12@v|-e{bs4J z^ULC!RCl$mgVfzPqV>+#Z;Kb`dfj_a?}2>%!q;y>>z%LPc4PgNA3yIW@1S}w@;9yT zpZYiDH~ij!=9cZxF8_|n*K_6bE7W`byHIrp={iXLH6vO-DAlL_SvXtQ>%0k`B&rJ8-`Pm0$V%&etD)?r}=#oA~*M`Y5RU%I8<8ulX@I(0@Vd zuBiVGwBG5z`O|fs`Yfovo7Xu={{^jg`foSZPx%e!{yR%z)3aJ6YGM&w}c^xwq?M(|V`>c4PgNpU=&pawCWM zy&I_hE1%zae#7_8bno$fC%xtam23HYs!#im^J4pF%DJ&)jlOqx%)<|x*0+CVh5FjR zTh^*x-}4FTdq!Ih)W@dvFQ@wS{D#Giy8e?|AL{$KTaFyj`X^I;_Wv_o|JSM)?c21z z{jXE~PS!8aVdD8qJa;L4Jd*WatLtwfKT#gG=y_}dt>@?06#qkhy8af`trhPU4;<0@ zEj|Cb{@vs!hVK!rzdO}0%TL!|Nq*vT|JJYEdHu#KR;^m|BYnS6T&umb`MFE9z9xVF zDBb_Yn^nI<_2Syci(guz^))-v`swxK`EhGB|H8G0iQiwM^);RE-zEP~SN%^^U%3dT@N4oy(7qzbP+rZB)l%HvR_KWHMoBU?=y<76zpzpzwpJ{#e$Em*YKl=^U zDL?x*t+?TJ z{?q;QzBT_%&R^9%TJ?JWGOf>lGu5a4!~53!mpFe_x7>f#=f9Ndce?)a_s>VP{=dBU z|CIm6D>N_Z=S+~FJMnWk)B1`(f2#Xu({~Um5Xr`ZzwH>UZw{ zbGrW9syA2mpZaHM{n7j8_0`8CT3>a3pZu5c{=e+&zg4T&Y2Ms?x!(75_RO8QMCr&f|7+xb{YO+M|LZk};(ws^kM!4H|DLk`dhI*>544`2-`wW6P}ZN)dCmIfx~i|s z&%bQy*Pm1B*K2MG|EBf){Jtjt^)FMMUWfJ9iTF3IzpQ`%Q@>s6r?g+GA87rzQ+@0I zVAYYo-haZsY5m|--}--SS%3XY%K8JXKQ`4j>rd(H9@d{awX8qT`tSAYXMSAj*RLz} zruCWp^-tq}=3A;G|9wUBue3h%t+akqKXqQIpZc3pKhXMlslK`Y8TwTBKl2$;{Ws8h z?%!tpnYWeoXV^dTKhXNy`s+`zrNHDv_7GKXHHO^@}FVf z;NP@0kMu=KfVb(E5b_on{^KXaC^8()x5>zq$XZg;GCFZmKt} zPfa*Kr|DDtvw!e!TF?F4tUpbk%KtR`hxJYC6Z&_W*NOF?T-P_PPk8;N=~L=CfAMcx zpU}V4oOAeR|KQ)Wp3lGL{@0yd>Sy_Wwdzgl>&{-Gf9luI3m??`z2*P+U3^7$3+zs?`{ zX8s83{KP-=N6>m_{@~wd{s`VDYJKL9p!Ixyr~MnbY5zdx4%Ri9Kg#DP_&=vy$NUk# zP3xWcBYf+e4qhkX-?ZL2zo}#X2&(TRf75zr{)pTURvoW{&du;|TJOvs;alf)@Fit^ z=8w1!>-qd{@@M{t{7)6h-?X0hUsKPV5&m^X<)* zIyWPK(|TwAz&G^gMB0a%pXDP`TTD3WB!QzZxG4fwB9+t z!#91(eZ0QZ541j^f0;kRKl=v%ruEMG9l3MP@jA?v`hnK-`Pbb441J1!y?;jTruE#v zZT{0`eddnvZ(8rXe?{(k{||ERlD}y^zyCM>nLns!?x234_0If3Zp;~xKl_IKE3NnD zkH~$Y)H8QbZ!&+B&-c$y=8y2tzQMm~J@;>uKl4Z22m6NgP3sf-m-!>se{x;lv_9eW zWB!PG&RzVQ)+h8Y^GEn+|KQ)Wp3lGL{+TnVXYQchwBDOP=C9ZLz2*KcepbQqSB$y~+GhKELz+!#DFs zQ0FGTnLmQoJM#zsKJ!QLK2hs4e*~@P^E>U|$W8kMGIy}9$^211Kf(Vwz(-n-^?FDotyY){s>yn{oCwc=8w1!_Ko~Ae*~@P^SjB9`6KebL8Sjp>z(sE zeAB1g$LmY|KKO=Y3dhXvg z|LL+m^GEnMt#{tPB6q$22RV1i-?ZMDKd58=2y*|bXZ{FU@5~?M#+(uPvv0`1(t23Ci6%6eEl0o- z=8vf7+{M3XeM0{-e}sSb5B^Q-`TT3{pE-ki<__vj>%IAd@0T!V#P>}!f6VK@fy^8N zt@q}S`B&>Y?X%!LqJAHS`6FmO@4w_f)_GrDPkkTrkZHX$e?yn=XW}PA~)?5$lSrYCi6%6`~?5!lO`@yQ?b+f5huxJ@3D!o;f4@>)Z_gmDYRn2mYBe;y(5j$-mNiZ~lnf z&nxxJACbRly)%E{oB1QCa})o}A3^K6f1CZw{1NxTzL9_CkD&E@emD6se?ottZ~Bz`czvlKXnjKeGJk}B_6`0`>z(sE^5>jmAIz2df!6c+*W5qzNBGzKXXI{L z&;8rxKV8;m{s{l3_0IcOyZAS)Pv~FfkMPg_!M|xepMTB$GiOlG+(Er*eZ~2s{`_I{i_82FyhpzW za&eg-g4#dj^Xc_V>u-Lxu797dgX&v;k7S_r&ioK{_m_I+2I@`bhw}Nfe%inIV}1zg z+`~8XL(qC>e&F9{ehA(tYJKL1p!IzIHtRDdus(AG>zdYkzrPW_&nflH58>Oi-kBf5 zx6aw%bt3*v>z(tLI_8I<`Zn@6t#{^!@PDxCcpY@^g@4m}XMPCZI%k6~DeE&w#C=%L z=Wmlg^F!o+s!0B(^}K(Ydgg@iuX8W_S6c7Q5BO$I2><(vsMH$PCv&rgCn_acAO zdS`yXH}gYK=N|rAv_7GKnIFPG`v(7}_0IVlxpU6(I_P~f@;9w_=7;c2pW$|8!ZO z`62w9);sS%tjq6j1UY}n-?ZMDAE;w~2y)-5XMPA;@5~S6#+(rOvv0`1(t2-xh};)S zJ#z!~Ci6r2eEl0o-=7*@~ z+{M3XeM0{-KZJkw5B^Q-`TT3{pE-eg<_79b>&xbc^!%pHPu2T9=dCzlgo{`DIprgGzq0mx#)5p!L&J|D@kP=I@w29>wtmWQ$$xwQUo7{}-+e9KqQ9T2bdFzs3Fav1z@N-@*gBUO5Go z-{K+q*tFisZ{ZiZUO5Go-{N8V*tFisZ#Vp>{1!H9J>?Wsev41i$ENjOe%I)Fa)Qcj z;f@il_wswIt|up`+!pQ{(Rwex%XB?CLFKmal@YD?^4oR)Iln8k9yvkfw($88t@rXf zQrD9cB)^kKwBE~)*NdDW`JFMM^9$xq*hA85Uo->&=5`LSQf36kIGBUY);sy_hX0h`Jo`mC z1(n}C=b34}m*1;(Jvl*gqmNDNz5IB+$O)3$wIf>Z<#&p%Cnu=f`2Nd4>%IJT-G9!H z{X$NV+&B+R>%IJDbUisia-)w;>z(}Oc)gTUko=C)$ENj8eshbuUO5HH?`VB&TJPnz z>;6-IbLw0p6 z1P8^))|!?_u@< zT_;AJ&Jol4>;tJj_0PiDs@J}O8}#@83p&qC>$Ca!1KIzsub=W8zh9CY_iK`0`F!%9 z)*pWEq4!_A&4r zKjk-^`#S&0jr%ppuY7)m`>$Vr@^?S<8KiHx-n8D^zns_f8H~C&FVT9h|K?6sJ?FMa z-_5;!iPn4lw;SuH{CsXgaw7+m{L1Hdp5O3&vuEo*)IVH5P`Q@Rr}|~<>$y=cDs^lA zsH|UT9j;Jc`bOC+mt2i|-uK`knpyhgO&RhmI@t z1Ff%4_2vEt|EpH5{)+0PNJGX{vAiU#L3#-!9_cw0>c)UVe|KUc8L@5v?De>X+TW z);m^p_&-y`ziIv0RNwkPg7sB*0qc)w{fJb*Y<>AXnf1ksSbs$8C->_0jZZah_&Mf_J3Zg>>v3bXg$xr%hs3QYgu3X6zh*@{n`os=~Mh)L;Z->yZx){&r%)! z*+2Lg~AAS_|OSJw_KL3{8zt*Eq@qdztf75#I-(~CT`U6>CWZ&T5 zw0>anzifT^znAqzS&#fp>-YBSAEtlt&;8>+sDC7MnCh4L*XLOW{|AWp4_b#4>i3~u z*O43fo7TJMr>>_@b^i~uf7E{it>^x2{nMwc&;DV3(|Wgmbv>^W>mOIwH?2>2{T`-I zslTk&o7N}v@57vP_-Fs%-?X03zvljT{2BGDR;~G6>P@|mhYr*0SNd=G`)hq(^9NtQ zFn93vOQChRLVbPzUVM{2ul*N%fUlqQv1vW;zvQ3irZIm6b?ZDod53AeGk;LW{1Mda zMm_UK(0XV7;Ojr;kD$&^zW!tW2wLyVALPaS5!@zzOdp%p^ZA|jKe;h~1dn80eQa9q z?4R&`DfL?SgVc{`y)%D=Z=KV@+eQ4F);s5S z-kCqb_YthGx(ir;MCa~8Q_1^q}Z|02f zf4GSMO6$G(BXYl-dimD*8Tp&mJM#y=nLmO$H}TK>5wxEBciH~c^*8H!?t^_J{{yY( z^Ltr-@_nu9*ax3t-4U&K&hPL|pK>49P(PyeZvX1~vs8zF_7DC|>z(sEa_5{={>&fb zZ!&+B&-czxtw*2Y|0EIrruE#vZT<(cj_TMq_&2S0-oGOEds$z(%X;K*TF>wQ&FjaU z5&pS<{0H@qgbvgFFY~X@vkv|b5b+-@oU|Cv964~X*4{1LR? znLl{mKJ!OVx6XgZV25eFGk;LW{1MdaMm_UK(0XV7;QO}BA3>d;{2l`HN6>m_{va>r zkKi^@a~$(W(0V?<)BYtl=8xc!qVi+@2wLy#pYVMt^;%c=9==WMo%tht%R}&X5&x$3 z&iNg=A5Xn}Uq=0i);se@_&!#3_&-x5f75zr{s`Yku)gXpVEqxT=kvSG|76ye?~7P} zMC*C~EvwggsfG>z2T-r|E3NnD4}3Fcg#W`u{8w7<%^#8b<d607tUIFh&iNg_RU1@o_%^L~ z`&WLIUHE6;;NP^~Ilm)!&N*Gn+(G^(^GEr7@BGwy^eL~yNh0~1)^q>1`5(wSs$<{a z-?ZL&|BBr2Wqsu?>yf`{J-`1quOD+p_~-udAJjh*I!yP!%)dU*I`}_8#DCB_oKU|H z^}3GS$ltWyJwJ6leX9Fs?%@6hTF?F4`lnA>pMAsnruAUv%$)<3SUZ(5)5`Z0e* z{bjY@v_7GKnLolm`v(7}^?d#{_s^Wc>&M)|>sP4v@z7y<{YwA%=U?yC=QV%C_f0f^ z@bfd~5B~cxMTaZY*ZG70ehu?S@B#4(eQa9q%pbANopn9kddx$n_0If3J@ZFUuN(Eu zA3^J#`GcQ7GJgbhe)98A=8vHD&ip}M%pbvRqUJc}kD&E@ey9CQZpvi)m^~)BU;brcbmWVS>%5a>+3#D>v{hztJitCgL-kU%0&72Yb z4;S%YX}vdpMDCYUFW+}lKce-{{DE)gkKhkP`DgwJTF?EP&Y$pqv##ep*f;V&(0V?< zm*pqF*Q$rvD% zk@=&1zIT3VJ^B>?CyDqst>^x2^FNSvRL8!-ziGYm{uR03%lgWlbC>*0>-qh^dHt9( z!aw(q|DgVn&|$j&W&ZVf*1`V)BL0Kc;e`5qsMmGmM*gPt?)j-qd^?w>h> z*N?e_*RN1>K-^-lkX?@OuIx*w!|MC+aTA$;qc4c;!|-?ZL2ev{hytJis_h7JD*P_OkXt@q{! zd^0D6|HDQ6S6c7Q50Sev59<7j{7vhf`2pX|4?&%K_-B3yTF?EvZ2#)|n{_?+!M>6I zf!6c+yDUHDeXZ(VEPjf0N3`BKf5SI@%6(iz{fO4P{j2NGQXT%;KlnGTch29)opVn8 z&-_6CCi6r2d^-P@-M`kOPw}t!z3^{Z&;8rxe<16qo_&LV(|YIqCvv}+^_9DYK@z4E}f6zKi_rJ`)KF>P%KS0EP&^nw@zYq1gj@-!KwB9{Gbv=Em`)6+8 z{s&sm{oDGdPg$RR!}_N6ZvX0fUMJQ+uC8xdpYZxIKScdywcfNop?{el!aw^5|EBeP z{x$c{oWSeH+`#KssQ2;EVS4@2-w$tosy=^_>h$;5YmU{=U-b9ah1OxJPk%qW`I-Ft zs()r#m%qPe{lz=2!&G1V*YAJOw`=~h>fv>w`gfr9|D5X6@1OJc!E4S_9sDct(h;ra z=U?Rfc76Sn-^TlOf9LS`*QVBgLHYaZLiFT6<+o`S`INu2CO7{6y3jgI_3i!tsN6sQ z{ZjsZ!Q{Vd7PYxt5x!Dn|e<7`(Uq780{C9pgi~M(U=k{8n^=1G4-`sz@?!VlB{r=zPZ)*K7 zYJIp}>(7j6J^%fC%5Pztu2)V$<+r%MJ~pj)@>_U7*DI%>@>@JaADh-Y`7LN>ASXzE zi-#@IdN04-@SpNq*r@fDQ&9OWK1m;&)_eKstc?7ia$C4#MDmNzr~XO%XW^~7o}8d^ zTTt&0wBE~4XMN-(lHbBtmT0}3->&=5`CXy)$q6dAh0l*@y_esSx}KaM`RNQ9Xua2e zyk6u4$?uF2t@rYKqOPa^#K=$YnWpt_e!K2J=f{2_CrEy$k7&J<-#q7*atbQHdHUJ3 z-pOyC*GoACmESz)r)j;D-~6X_z4C*R+v+7+@8!1}{!@PQ>=)$}RDScEXQuUDey`T` zy9lb>B-TZdlf68x;{i2+Lem zTJPjH_kLZkoPx@2j(#?+_wwWQA}6Ta=9mLa>%IKmsq4v4B)_@uEYW%|zuoYk^JBk| z6I5<UVhKg_2dM}jXpN5_wwWQA}2_0=Zg!EvT>G;_D96dgtr6-B>^6$L|Y}cko48pZrbh zYgV{_|NVo1Z$MmoDF4n9`8uxrUcn0W!|xyJ`VG2HzdsZ8*NkX=L#j{x!{1%6(Y}Fe z_53^j{@S#@=Al%dUjJCv>)?O#`YFHh`z5*Ydl&A#@*j=#I+`v^hno&GETeq9IOlh;rA4d*`R zzw(PY#8iIe^DErHfB)n}`BhH*{SN)Z@1dC1*Zl4Z^))~K?u-5lQm?=Nih5|h(|`Qk zHGKx@JO2LKwBGB#-B>^6=W{ct-1s{vattcJ^7$3+-(SD``({wDUwr?}RIcUwYN_7e zzj@`at$q06E%)i~&HwS?hky0Yre4F>>H9ywZ%TiQu6vtlz3^B6JmPQh@9E zz4QA0YC+fQbqebB+o=Da*D+|l^ZNZCuTS6mKGS{~=_}oTef@T0{q*|nM*ivbTiVZM z-}@X0zD4^X_WRCXzb${My7%ci_ytkl_Z?_GKlePZ|KD}}yHp3iA>K2h^>?kX{?Pxr z-s|kn`onpqf9D^yemw^#-v92epI*P+$Uo&5=e1rZpW7RMzuZUA`de1WZ`gk&zm01| z<+t&-MpUk$cV53=E$Di^PC>nX8-GV1o7Ow8U-|dzI=izz?^nK0y?&4Q{)hdidf(?G zTR**iyODo+-yibVIdL2JFMdz_tr4x?w!-UI{r_r{uD?n7!=I_1S<|$BQ>yp-{-M0@ z$N8b}6$Kw4Kh>MouTS;M{3}0wuO?o{=i*-z$w5;(PX|)xW-n6aFi$&;B&6-}s;XPWAt|>c7(Z>~~Uqz&^liTqEi{@+yno7PWD>$m=&U;V$m`ZujVKh?MXkFWmqy)XJ_*0g?ns&DgGpT>PW zv-&r!=l*T|&sP8J8}&c`-Ls(e*|dJ^e|7bLlIrkpT3?;&8~^LozxZFjC~E%>w4VF7 z@xT7A>Ysgs|4QrY?@H@8{@34G{XeSuue84Y&Q#y}SD%Lek5~Vu_1wR$|4WMh_3R({ zA87rOw0`UV;^Ke(-NpYv>ldf`*1!5R{J*yPH?8OXZT%lp{j+cIZ(2Vlt>5}Ts`|gI z`Zui~mFipn>eKN5lbv400zzh#1d^=bHjfAw!#&;8r_ zKfn5C-{9Z0etufN^?!Et|EcQVw0?G~Z}V55hX2#6f75#I-`4+O)j#_N|EBfB()z9c zgR1|Fs(;h^L8-p+Kdt@^|BtW!E3HrG{%!nE|GfHV-{8N}`t;A!`i=kTA65THR{xdO zr+<{{TmR}){7-+c_#bFJ_iyX}rs98^{UiSat>2W^Z~b3i{7*kn{13E#eX4K$t53uK zJF9=wdhXxW{~6Uk`v(7}^)u4?t^b!+{~xaYP3tdB^{s#PY50F(^>13w{oDHAzxrq2 z;NP^qe_Frw|Cs9kRn@;~{V}P&@js>h4gY&o|CQFKa{o5|r@mkPvv2TUX?^PZY5m6k z)HkdDCszNJ)~CLi>RbQnQ~XbTsrVmgJ@;?x|LWp@iv1)11Fc`3)^Gh^QT$K+u=pQn z{fboI`d6QZ|2J3vruE#vt^X6NfA$UjP3tG7^;`eXss7(x{hQXGlj>Xl>eKN5tm@yi zp8L1;zgP9ozQMm~eXq2B>wl{He{uD1TAxbwjsJD(U;MAzR{RgNp8L1)zwRs5Kl=v% zmDbmNC9U81U-#MS|IyWdrS)~6P4%sR^=bIOz4|w;=l*T|Ut0XHWBUj3WabN@E}*Y2qP**EyFw7zynTEFqXcE0+5cJ*IreeHazZ~U)S|Kfk`FN*(x z)^q>1{_iOM*Rp@)f1vd{()z9ck5&I`tN+TiRbTtDRNwknpN9VrR{y5;+`p~=3#)(j z4gO8*7pC=F|K}F}Yd>B5543)6s&D{Gj+BXg&9D>;LBBe+~Ob{s&sWIj!INzp?mVv$^;mX#K`i-}+adhW~4- zf75#I-`4+G)j#_N|EBe`()z9c)2jcER{y5;(^7rwUws<>PpbY+>$!hh{|8q8>>K=> z)(=eUxBmC5{$E}Fo7VSB^^O14>fiAHsOrDc`s&=jjsMm6R{!i9{8w6EeQ#R7@xS^z z)&G;K|4Qqtzmw`)|LRlxufDtZA80-IZ|ncs;(s;!NB##|zc#Jk`oFUHU;UHff1vd% zQ+?}SeH#8RtNu;vxqn;#Cs+UM8~mHrPfqK%{-0m{zqk4~tv^52xBk_q;s3bm-?X0l zxAnhI_0PV+ziEA+w0`Sc7(Zs=HEs>tB5u{y$ayo7Qvxw*D_K{#UVoff}U`?vLfeD%-1!M|z!__TiO|Cs9k?bW|&{g_nW`d6QZ z|0An^(|YdT*8l42pM8UW)B5VP{xbh++O5_9bF2TLb(rdx`Pb*wzx@37;RoauK9e^CEQ=rGl{{?(`9|HIY4X+8IE>;K~FpM8UW z)B43}{nr2a_*dQM@js&V^HY86Uws<>Use5^)^q>1{*S8u**Ew%tsj-vZ~Y%u{lBUD zH?1F*>RbQn)A0Yq>ff}U`?vA`(8lVYeS`l>>kn;A>o@)%`g!&L%<8|=`a?fY^^O0B z)Tj7==!eDsK13w z{oDFKyZUF};NP@w@Ay$#zwy80`_=zb zs{cysJHDUlTmR}){O|aB@juXd?%&q`^~L`V_K*Azw0?bBzx980@xS9|#s5I-SEu^c zzxp)%zqR@|t>^x2{lB#OXW!u8wEohxe(V3l>i_-KziIu%RNwknpN9WuSO2E<+`p~= z$5j998~mHrACuN^{qI%%pI-f&*7r*FjsNZH-|)Y-`meOUJ@;?pfBQG9fA$UjE3I$; zW?H}Tzx^xK|KqFwO6%LdlImOk>Qnr0|8(&`(0cCQ*8dg7|919|{13E#MOwf0e`)c* z{d>j#K13w{oDF~PW8{e!M|z!IcfdY|FPBoJF9=w`mw3L^{+k+ z|4*;}P3yUTTmMtlKl=v%ruC_`e&c`Jj_Ut~)qkb+Z97tZ5}Tu=>BC`Zui~nCcte_H*sZ}4Afed|xt`i=js_g4Rh zSO1mPx89rTTmR}){BQks@juXd?%&q`jm7^~_K*Azw0>h+zx97@@xS#K#s5I-*QWZ` zzxp)%zrFf5t>^x2{hwC-vv2TkT0bqV-}*nf`u||{Z(2V&)wllDr{Vv()xT*y_iyWe zzv`cTgMZWderf&I|320Knbp5(eV$!hh|5q0OTi8GHKhXM>Y5ms!<;DM& z9~A!stzVw%TmS0Q@c*Xj-?X0lxAp)0>Ysgsf7AN&)B3Id$!hh|FhLU`v(7}_1Uz3>wk6ie^T{tT3?;&8~=;yU;HmF7XJgS=l*T{FWy!C zvv2TUX?^jow0`5CXYBF)+bxf({wuBPS$ymE(XX|v*RKZdwPsc8Uws<>KVJQt)^q>1 z{x2#17ui4ZKhXLmY5ms!#l`>P-NpYv>ldf`*1!5R{J*yPH?8OXZT%lp{j+cIZ(2Vl zt>5}Ts`|gI`Zui~mFipn>eKN5lRP}FKKRea8{?(`9|McqLw4VF7^?z9P z&%VLGY5lOYe(V3B>i?qZ-?V;Es&D+ytAE4)+`vP8~^h^um0IL_^-4+|MRqd zxU-) zB|rcD?ymb!`E9&T>*;5{LA?$e|F=Fit>@ zpmN*tul2EMy_4VKKk0hq6jXj&4%Ww}^-g}f;XmcK_>WpoIR%y5mZ$1t(|Rwzcj$U@ zg34|2))B4u^7}JgPfk#|E&lz8)_eK=sjep{sN5DmH=^}ke!K2J=l7qq9yvkfw)oW% zt@rYi$H)(o-wQ@0zxaIGKk4}ei~ma3lM^JrmyKw>m){d~Jvl-0lZS!Ud-;Vw)xk&R zKj*iv>c|O_-ye-=y_4Sp&#O^RL9M^=&-&Q3-s!)Ezti=~DX9Dw7WA=cy_4U<-|BkZ zdrz({|!+*+e;cv8_ate~4=CH^STJPoeN?k`zklg<3h}L`gy+qfO6C}5* zMzr3`?+4X}y!*{G6^= zPC@c}s{Vh|dMCg6U+H?~6ePcYqyOKu-pg;-{ipoqdH+*RLGt@O{r{%*PJZ*(>3Zc9 zRBrQsum73Wd-=UX*OL=eZu4Iq(RwexztHvM1eM$T{}|DFC%@hBpY!`Otw&B!xy^rf zMC-l$o}uf>36dM|C!c1{kI$bQ+{)Qr}dOmko@-6|4i$>{Qg+ilM^I2&VSQ-FTYpndUArwZSFlI zTJPoe3SCc5P`S;$Z$#_8{C3@c&X4y!a)Qcj?n5J5@8!3rt|uo*ZciQ2dN03Kx}KaM z`EmZ5);sxa-mdGFQ;_`rtv)ub_ww6y|0%!Cy#FbuAo=}!eQa9qxo!TRBUaFAh~h=n$~;y{jRPjCrEy}hk@36`R%&@oS)W+{2=+g zaYXWq&!_jV^!z({IeM8sFW03rQT_2m) zJNfN~|CHY*-v5+SkoUwg59?u;$t?!f8UzWd~xAs%j;eSTNf2H-_^9%9Ka|*-%<3#*dTJJr- z5Z^qfF#I1N-lzIX>%Hd};+y9e20t&#KhG}=TE8*ff0O_0mAan$__iqj1Fh$u|2Fy0 zUamUs;|HSr543)HTEETzG}Un*ZxZouT0bq-xBj26I{d#~#J_1h|NOW0f4u7Oe~pNL z)B5pg{nkHyivMSd_&2TR{%!rwst*6`8~mHrXVdzv|JAC)|4AbLP3x;uedC|!7vi7i z7UF-P_0I1v;G5?ZhJW@A{wuBbo?nP>o>Lh9A0^_y(t7Xth2fh%#s9}e{F~Nu|2Fxr zzeIK12m40;2U^cR|84SLf3fPgkGn46~2LGn@ z{PW+||52*L|79ZnP3xWCUkKmyDgK`#;@`BM`?vAWa|**h`v(7&)_cz{#5d0=4FAW8 z_^-6ydwwCld46H=XQKS`{KBC1&hIbad*(J>57|HRKhS!9|8DZ1xkYu{$HSuh547I- z{e|#NpK>4X7x8ae&;8rxf4=JQ&%VLGX}$CN3*q~0)#3kBBK}S5XZQPmhCapr=_3A3 z>$!hh|A(m#|Lhz5o7OwOzYx9;QXT#;67g?Z@BID(zIjez_)rWN z*I%zX?&ASb{s&s0Fn>^x2 z@}Ig|b=(L0NB##|zdGgDbQ>|it<0u`W30Z&7VHS|C>epo7Qvxw*F649sb!j z_&2SenAUIoKSy==f47K#)B1B#ee0h-#s9NJ{F~Nu|F-`3QXT%;H~2TL@0HeX{ZFY5 z|1TEtZ(5&9^^Jd?Ux;FR4;h%kjf7AMf6a1g6I$noQ zi}F9v`njpT>7TXqDgMtC@o!qs{oDFKLUs6O-{9Z0eneWo&HoV9;r~xW{F~MfN%f6? zo>Lh94-oNRX}$OSLVWX_!tl?&!GERo-t!Cb&2tLF|I1{?Ae! z{@FM9H?5zQ)^GivraJt8RK&k&{j^ly`lnCvf0BrQ(|YdT*8hR3!$125|EBc=)B3Id z{ZxnlSBv;Jt?!rW8~;3~F#JDC#DAsr-t!Cb&2tLFKl=v%mDYRDFT^*`DGdKl67gSY zz4!b=e6OZY;oYMA544{9x5f8M3 zQ~X~h;@`BM`?vLfvg+{9zQMm~{p7TM>;L(x!~c6l{F~OFpXyux^eO(26Y+0a&;8r_ z-$!-$XW!u8w7ySTzx6+>I{cp^;@`ABo9Y|?JiieC`Vn6EA87sFRNwgLIfdb$eS`l> z>%Hd};+y9bhX2Qj_^-6ydwyZ~rcd$zDN*?kw4VF7^?$kQlt0fc#Q#9+m#6!0@?Uj{ z>bQ?@i}#Ia{gPDQ=1-sE{~{6pruE#vt^eayhky1B{!Q!0r}bO^$EXhfZx`46~2LGn@)oJ}@{?)WwRfqrQiuak;VX9x|U!SLc|5AKF z)X#qhTK`(AU*=!e->EwN{FndZ=f4B3-$!hh{}-zc|Lh<9o7OK*>$m>TSKZrG_jyr2zaD7){8Zoir%& zo>Lh9pDE(M(t7Xth4|+Ag~1<+^8b)&J@;?x{}$CLf1X>2|AE$TN%=MTKXjAoxQ|6q z{s&sWDb+XmKSZB$AMY0NZ(7g&+xkCSb@*rB;NP@(IWmUt@oZ^ zh;N=#82;He_^-6ydwwClc}`*Ye~O6zO6$Gn7vg&deG0!W%Kt#?xqqAdcU-SJ?t^_J z{{yXGpYm(+-*L6-xR0NS@;}h})v3PCpFYL^TSfev)^q>1{$Hv({IhTHZ(4t8TEF#w zqU!Mfei8qs^%GNl>z_Ww|FcE>o7Qvxw*DWZI{dS5@NZgwOj^J7znALpf4Yc&)B0Yi zzVXj<3d8?e5&xCed(SV#H_s^y|Lhz5S6c5qzYyO%r!f3KUc`T;_1^Of@x7fsg`XDX zf1vf;zfJzzuTUNL!Tyo|f!41``8D}(zf^VH$M;0}A87s3RNv-LpW^>dMEsl9bN{yf zpQAebvv2TkT7OPjzx98t>hS+g5&x$3V^e+WpFYL^(?$H7)^q>1{-;!jfA$UjP3u!> z{l-7fDGdKF6!Bkaz4!b=eDnOm;AT<&d46Hg`Zv@1jenj~82;He_^-6ydwwClc}`*Y z-$TTIrS;zP3&S^k%6)uP#J_1h_iyX}4XRWA+t@$yKhXLc(*3vjU#L3n<4dCa543(^ zs&D#d8-0rZSBv;Jt>^x2{U5D5{IhTHZ(2V(t>5}TLUs6mvxtAw`VpzV^-rJT|4AbL zP3yUT8~;3~F#NM`@Ly@Y_xwV9^PIx)|11&zmDYRDFT^*`FAV-flz*OI7_|P`bpNgY zkLh~l&vOg$KhXNeQhk&EgEy;=``9MR|3K?Er}`%U2kBGp(4*%>M z{F~O#P3yP*&r%)!Zx``zT0bk*xBlr<{GTG?-?X0lxAlLB>hRCL!M|z!khFg5|3KB@ z{{j*Jru73;edC|!6o&uDiTJOy-g|x_zIjez_-EhXztVc|`GxrAIfdc>a1sBN)_cz{ z#P?SE6n0Fh=0@i$*I2ePoLudxg!2e>$!hh|NE&9 z|Lhz5o7VSB>$m>*Q62uz6!C9b-zU{K{&`Me_@5E+UunJf{6c*5oWk(WzQKQ`_1^Of z@y&Az!~X#y{wuBbo?nRXE%Yh;y#6Qu1Fh%&ZSvo8rE0hj_K*Azw0>pEugQPQ<*MO6 zexU!!|3K@Pr}{R3`V{|f(*N*pTF?F4`hUJ^@Xx-%ziIvXY5ms!@v6c9HToa^P3y;} z`qn>vivMTofA}}8=l*T|&#DIh>>K=>)@RfDt^d`k!T(A6AO212t5bdBpXV3ipXV0h zf1vg6r257`&nXQ5>>K=7TJJr-5Z^qfF#JDC#DAsr-t!B?H+_o#kBj&>t>^x2{a>Ow z<;D+l;h%kjf7ALg zY5ms!QL4lLWg`Af>qn*f)<1oU|EGxfH?8OXZT$0`!tl?&!GERo-t!Cb&2tLF|8XMz zE3NmQUx;s>Ul{zEDE~aaFlha*bpNgY+jPD1=edRWA87ryRNv&kaEt1=kB3G1A87rS zRNv&kK%a6S?-%iJTF?F4`afTF_-EhX-?V;yTEF#ww(9WzDG~ps^|Mob>z_Ww|LG$B zP3yUTTmOft4*%>M{F~MfOY67(4^kceFB0)@T0bb&H~x7}VfcT%i2q9Kz2_I=o97gU zfA$UjE3NmQUx;s>QyBh_6!Bkaz4!dWsDB;x`n$uoP;ctr4IQTYZ}Q_gg;9TItq-a$ zbeQT>ej7ib_1>qyzlC2AzdNG!_oe#$_q%_k>y_a~_zm&LBU*n~s!#p1@dLVE&nyY* zZ}B(Yua8aZSFKP#Jik!a+vg+mpYq#yo$8f)@E^tht&dIXZ%ON?{1)fR`a!L~<+1wM zl&|vnRG;!&{9n3WIR%y9mVd2}P3xWf7XL}tE2p4x+j6izHm!H^+YSFIzr}ylddexN z+_pSbADh;D`MpEelM_^Ki?@zwz0-e-f2Qln2`ab6zaP%IJ*pzFyAlHbcm zwBE~a*Zt@G_SJgi1j+A@Mzr3^Z$ZDWLViKzxA4#U*tFisZ{hEBy>bdFzl8;TY+CQ+ zxA3>RUO5Go-@=3X*tFisZ#Vp>{1*O3>nW!o`RTu78#zMjz5HIO>&OX`+kYL=dN041 z=z4O3M(RwexUH6~!d!E)KC#d`u-ZP^0UVf`|Jvl-0G|3)91)_eKwy8o2lJnw(XDM)_5r;knRo&4sn z)Ahv6y_esv`_K9DzDG`w z{Ql#J);syl-J|Q3Q&73hasHduJNeD={-d0N`EOe9<;VF=PEfhcasHatd-=UW*OL=eZgcM& z(RwexUH6~!<9&~upmLl0(1_N1`R%Fe$qAAh=f7#am)|N~Pfn2BIDbv+o%}X$*Y(ON zNPhoTADh;D`R%&@l;39F|CCdZ{QkW@Hm!H^+x%C$UO5Go+h)#x(|RYr&Ak68r=W7% z%=v3t@8$R3bUisi<+k~Mj%dA;-){KN`SHF-PEfgR{_%*`d-?r4T~AJs+&KSD>%IJ* zq3g*Bk{jo*X}y=<@9KJTg5>wQ5v}*~+jajrKi>Dq36kF%N3`C_Z_|CcUO5HHjq~5M z-pOy%J-S{w1<8%`*RbeY->>Uq(|RYr-SD6C+r;~yate~)Z|Y;ydN04% z>w0p6%54+pziGXfALlnYLFKlI^VhWA%kMS1o}8d^+w_qUt@rZVb^kd(-uK7}Dz{Ca z9MO6&zu(aH)?fbp$K~HYE1ysGFJCpi_nKAvu6pIK zt<^dYYTX6>_iNb4LCs+A(DyO_UsL)Y>$?BXv|jity;fWw+`zx5kAwVsY281Fb>sW4 zddA0(^Sr4Z|4Vh^;s)`pOSCSI>qp;rF6%A)L*b%)&%RsrmDa^>J>T=fH{bJ$ zdeiz7QvK-r#=2gtkK7(B%Kx@X>*Bb+S)cD2Mt(0S>+`+C z$kBR!ZfH~g;0>kz!OxYtf!1$G>o@s7_zu-6zX!i1%Kt#?@95VrzM|AGzOU2|wEl`z z-}*mQb-WIG&*r`dT0b?_xBj13)_?GAW&MHHpO@;J^%wP?6Zv0N)?YNO|8c+mL7jc! z|MyD$gQoT0NcF9Mow<>}&fLh~w7$MyzxaVtzo>H{`rowvfmGkz|5o}}`EOkimH$BN zxqln~Tfb1&e~|q{|5RER`~Clkvi{} zk^h0#|1_=N+&@1vqJGP7mwMB>*uDR)^eO(&6UpDSp8L01f9vm;^|!Kr@NZhr&pmEl z|HUn3{VklkTHmxT_WjeR_~-udZ(5(wzgt+J{Mk47ue2_X*Kh8B%b}%y3%RL&p!Eso z=N9@`{xP`2#X{?5W>5FquE<=iB-^ zf9$E>(P7Sj%pZH+yhQ80`GfT|U&Ol19edtU<_~CH9Iv15pL*txpkBAAH?4Q(4}3Fc zK;{noo7Q{t2kSCtK;{nCH?8;PkH}5?B=~}|KJ!Q9XuY$4!v77Wp1Fg%fz~_oNBGw{ z9sHIk|I8mj>z(tPy2V$NdghME-?ZMDKf?d1s^fKdqlkagdT0I!-_I-SGk1h<(|SI? z)A<{@Yo7(LD(f?UME=(E{%h))Kf=Gx&G2tp@5~?JU*~l21d;qr>z(sE^8Y}oXa0!% zP3xWc1K-RaL7kiUXZ{FU@5~>p&zuqd*+2NNwBDOPBKJ?IPCl4BB6rhz=ll-e^eOjo zYpEY-eM0{-f5d&Tf8?L}BWS&IenqkevTel`8W{1N`o6UpDSp8K~s z|Cm3*Kl=v%ruEMISLCkuf5_ay`ljZN^19^r|JFZ!O8(qG{!Qx>`j>FNx)B1$|W&ViuUtZTYtxtIU zw$P`%ew@4bH?2?TU*?bS&;G%`X+58RP5&`xP|w^!y=lESe{8s^%pZ`sV~=x}$ox@1 zztjD*#~aH00hvGcc<&OKKkDbl^~pc$F=s&L59S@ydT;)Sx+m0ny>3x&TJOvs_+!q1 z%pLeQt@q{+)@ROu%pEbuRa)=OACa5(N$>?_eddqI(Rye9g#Q~#J#zK0#7>X|z(-{d_S+O&-@X-P3!sm zPUmOju6-7~s;tla5&2us`>&~I{s{j%H^aYay)%D=f1T686GZYit#{7v$o~VSp7|s4 zH?4Q(4}3F!1a)rWpZOzby)%EXK66I+XaC^8(t2b+>zm9U_49rI^eOps|M)kpPv~FfjPTFC!GERo-uw}{ zA6n{}KO%qA`h@e7`6KS1eZ&2m);se@tWTfv`m=9%{Y~o=`j`15)_-|j-?TpA_1i+9 z^7?V^;@`ABp?{e_!aw^5|EBeP{x$u_oIyQv2lb})-u%J$TbMH-^9TR!CeymO)Bf9V zL76`w^T&p(m&p84KR>Qd{#lPX12T6o@0iwm^GDP@q1Nkli+a;~Xa2w+a|UGYz`tp| zH-E4`a|UGoh&is(dT;)S+_X=EFDUCXe?*SfJNqa6-%#qAJE$9Iy)%D=f1T68Z;8sE z`6Fn(bAD5|_=-}`{1N$^);se@_&-&3ybf;^@o!r1%pc+Vd1Za(kMM0;&*yhK|08$p zv*1-_eddqI-+JDEO+E8R_}94^{!Qzh`6K-6oDQBKlD}!abACtuA1L+AACbRly)%E{ zoB1QCa})o}A3^J#`GfVDGr~Xn2mh7Ud-F%+{t4B|2lGedZd&i0-{G4+ z=wIfKxDWP^{4;+9t#{7v$e(jgIWTunXEJ}(&yUZ)rhk|}!vA?9`J2{r|2F3*^GEn+ z-{9Z0-g*Cu-1YtsnLAkDWd5k1@B61u$)EejziE9!|1xKUfA$UjE3NnDkI4PdQqTMm z`J2`!oS)1easTWa?%%ZDnLlEE`jpq7eZ%W-TA$Fr%pbA-%j^24^$D-v7W$Oek8>CQ zru7N^%lr}k*+2L^Qv=|AQS>X|#JH?6NYf7G9!tUtZX50LqR{|21N{7^qX?!UDD z`WKe@0Wvr6`y?jwL;ZZWo}ZsYy>gFw(|Tuqz#nr0WNyH}X}vc;ur6}~WPV_M(|T`y zh}_iY!55VEnI9rY>z)1&|2LF+<_78pTJOvc;a}%$@LQt%Gd~2acg|nx7GF{7nI9s5 z(|Tuq2>++5j@RLhBK}S5o%tbrKd-FM{1CoP>-qdm=Xd0;eGSRt z2>&|w!oO*~Ge3lXowLCcMDjPSch29){{y9-`62Q*t#{@Jd^0};b?)Jx`5|b%Ge59C zb3*uM|KPvUdT)M++&`f@`CxvC+)eA9^EZ6cr`*S_rGB9G3H{6b5ck3Uk$>igp!LrA z8~Jn2DF@~T>P+T``uXws)$|YZL-;>WB!AO-?%(G8WPS+$>>K=>);sS%k-Of%A#(%k zo6HaO^L_vHDfx5%_&2Rj=wIf9@Xx-%f2H-_{1CYxTI!h}B7f8Rg!7a6A?}}j!~L7q zJM%-VPoMJovu}9)P3sf-m-!*qe|cTsv_9eW+d`l6`f={!-?ToVf0-Y`Kl=y&ruBUO zHT}n&Ks|E<^``Y@^TTQ5-#=adG`;_G-iq5!)z4qPwM6UUxc^4KcdNSNRL}Y%>+X5i z60I*=zxW@`FWatGz4F_3yQusITE9B2Kl;64U4N3Uzr6DE;uZSXw4R^al=EXA9Vi+o~@1>t9pzyRX!5Gp)ZS)#vl`C;C0-U#MPO*h}9Bn_8lEap&uQPxU`ky|}QS z>i1cqb#YvuU%zjw{s*cT7xq{EW0q)LZ0p^ByY9c-zkmPw`&$1;T3=jvoYsHT60I+L zZb`~-&$T5#NPc@Bv_$f&pC9{Aum2v4B|k`hdmgbw@~fX8*QfmU*j)01Rk&{S%d)&Q5>%IQl&=5`DwpIPV5`ywt;i3(t0<)N7bCf$c;WGKl+;d%IC+gf7-trc%A4! zG4eZRiPn4hsof$!7`Yw0MDnYjAFp5bf8D>;U--0db0_|De(V$ajD16HoMV;Nd-=_N zxa0&`ca}b`Wc~X2vHz6ctX?m2g5)>L98hV!o8P-@ej@qJ-n+!euY7*Ie#&n*{HOe8 zwO_~ylG`ljSf%xDe$TG?iILmcON{)==g0nYetNwkCoyunaEaEt`8~bnCq{l3FER2f zpC7NE^V@a*IX~@}$ccSJZk%J4)|cg%?w_yM@CotH@4=bY#j*di{%+K#_ut|7?zApn zcg64DnS4Em{=&3=%8%b0v&ar{kclzAkx~|uGWb3E=#_yNpMh*j&U;X^Je^dVrKljl4FZ~xk z|1gzn{d`;R_Ydti`i%J@>NPhEwBG5z4X@Jm>a(Ewj`@N93tI2=U##nO@I86`lwbV* zh;s7pk;ELL96gWJ&$stq`;Wi-q0bav#04g-tVCL zZ}yrIt#|rwH`Y)2`P>XDH*%o=g37giey8~j-#2?<=^L)6e}c-jetuk^_TS9sb-$m{ ze`-+Nv8L3S*2T8I_V3IORsUtxLw(|d#j*dLtgrvx^u4Taj(m03*Y!8CzW6ip8`1hrY5n4V$WPbb zqI%6>Yws3!jA%VScX*k9UH@*?eN9aMNBX;0SikPS@GZ}SfAxIa2eh7_+nw^?^EUl= ziZy@1wI}QQe-|v#x;V~1-T&T4t6ujE*FIi+@e-|z}dp}9_nsedW!^E?fXk8rF zC;xlzU;M+hPggzuEAd}HKd#^D`Wt?|tZzP&^~r7aizUAe`nd(`o7Tng`b~bbKUSUc z+ptPhex`MCT;KSg{f6q4pM9Iw#c_R;A3n)x!xKdOS6W}uf9=2MpA*aduenR#FMhLL z57YXIE39Al&tA{b_2;S%zEynHh}QG(FQ)t7ORx2sQ&b197cU;s`Y9`{U;Xc;o?9cI z!4Hb~H?3#?J6(VFzm)aO!B=Pf=%1&R{ANE?)*op7X)E|2e3#c}_q`{#XY{+p^37am>Szf9}mxIW!~`1?}v8UFRYWzJV! z9M|u3{o#GHzK=fA_5D8Y_kGj)|7Gw0DgXF7O+ROX{M>18&EY0Lf2yA!=b!p#@1u47 zZ>SEcU-y3Th}QG(Z=~06?Yu%yqwD`%b?`4mzMeC! z|9N`-)9bg_({=spR0sc7ym&-+bt=G}F-ss`R8Y6co;{nk{UzJI}b z>)uz^UH4DoyY;bYJwNxYt-rt2Pd&NRo9n7BcKxsai0b5jz2;E-548S~RNt(>{yk;= z_1bs%A87qOslLr`p{zfp^P2U|byXMp{?94(>;IzE543(xs&Dj$U$*8gM6`s-g()*op7v8ldUf9m(j z`ctQt^#@x2y?*`7k4ydfb*0|4E{R7d{%isWBuUF_CR>G#E`pZc3pKhXMl zslK`Y8TwTD&wNHy{|&UB`?vM~wzB>V`$zrkqX4#(w<_eTx6r zm->O$C-m>k393_mGwdJyo7PWA>o@m5#W_d*bESTu^?d%d`O~NPe}+i@ruE#v&H6Lb zW&IiU4gO8*d46ivpVIp+>rZj+a{idsKbP*msh_5QRX@%BtA3#M3H>|GI^@s(!GEQ7 zvETm-rGA>+RBujIT^!f9{^?Wvvw!e!TF?F4iVYj3H>|G>%{s`uIroD zC%k^s^eOe6zxX$;Pw3xi&N=+Ef5^|Yp3lGL{?}=3>Sy;W^`>>P&A)#AyvIlNey{lh zGJouO(Gsoq=8ruuQ@!?C@E-AIeQa9K`!D%tJ?4*~`hL$l^s#BZGk-+g{iU9{gL;$s zqkg`<|2jY6oB1QC^ArEfA3^J#`GbF-`6GCrsP&mYg4Xl-o%%m=(>{UB9jt3If7H+S z{hw2=W9|swruEMJ5x#X!2d@+HZ(8r1-_$XG1l9MEziGWQe?;yFtB%(}=Vtgft#{^+ z@cr1bK66L-H?8OMyUCyVBl17Btk3)ruY>ix|C)Nu7sbEM&G27oT^zrDP5(1z#C_~5 zl7FT3-uw}{pI7RcJ0gG6dT0LNzL`IQIydpp{1LRC`?vM~HeIhiVD4c3f!6c+-Q>so z5&7Rx)}1n~ch2wdO`mcfuP^ljtxxD*=8y2tzQMm~y>os?{+x5{gSk>a(0V@qn){!j zPw}t!&&b`hp8L1Wf4Z#C+!6jw>z((n$X)OMLC#&yAJck%|8M*=e^AfdLH$7Mo%w^@ zG+&hb**D~0XKlXTo>b1{;_lWP+$ENkX|B`>!WBv%L?_(Y^t#{^+sJp+^Gj~vL zGJn+1kNY?6AAB=^1a*GmpZOzby)%FC?=yb{?-R8?^GDEnKEIpwnKM|Qxr230>%H%P zgzs}oJ@ZHSHm!H&kMON?I(VIkf75#B{HBiiBdETQ{7vhf`6K)vtU6u?otxp`wBDIN z!ne-p;7iK-%pq|f*7Nz@^Q*$&dLX z^1q?1J7rq$oZsP_KIJ}MU+M>1pU}U|AK{;UgMZU{=lqWRIp^31bESTu^?d#{_s{$h z{`I~YxtrE=|F-#0m-U%H!oO*~^ZpgN>-|5-xl8|>*7N&+S0^qMmaX|EBc`{mc9j{@FkHH?8OMuepEb4CG+Qdv=$d>zi&@AbQ%bvbq>w2!|UhBX1*E$-1+O(e6?`C}V z8H~@qgKz(~a_|`fdyg|gjX}z<4Q^)=zsJ@TUa)XH^aYay|e!a-&&`GZy3gB{}K0LJ+I$Q{_H;@|2K)`Z(7guuc_DmV(_nZGyE4? z7wi6O`k#G9_}9K8d>2~p?LQ*-^M`u&ACbRly|e$|zS(~SwQk~{{YTJx?%&q`2Xwvq zfPDw!kF=iG?$!iM{MmoR_{iW zbN}o!sAu0ny=na^_aEiw57Va)`-k9P>pkGIVgC@+{3#!Q+UGz0+F}0?RNwM@B>em& z_)&5Ac)$L;!*%Q%s599=ME!SD|E2!NANz-()<1l+e+XLd>>v32>>q;P5;Z>ihoJSm z{x;*YPhfoZ4UB7A@9iJL_qjto`-kvtTJP*1!nfAh;0+@FP3xWYmpb+jLG^9qZ(8r{ zAHx3&RL67Bx)=UU>z(~W_|`fbe1nL8(|TTioBY{7ME-9Q$=|e|=TB3w{lVa0>t6UT zv@Ul0mwiI`|4|YDh1Prfhsgc>p`QIi>s#q_76d=d-$I+t>^wt>j&dceP9@$ zeFNi>uJjm^b)0t#{Vn$e(qN zd7$^t$ltWy**}DD`V{|q-;4ZB>$!j1{MQfTvwsNxruEMI599Lt8$s4x`rovk-@lvZ z$NqtO_6^jJwBFf2kel`gL;lPg@-MV5cIOZKhxk0?rh4`d@f?cY+dqVF`V{}n8~mHr zbN@E^vww*3nKz7YT3@1n*+0biFDm1k)|YsG>>r|@br=7p^(Fe3{X_U?{@~xVp4Y$T z{@Eu`&%S|r)B2+QLpr}{`e?o1v)+o67wG3N>KW6zSU>+o=U=Iw@sA(Io%`G#T306p)A;H4kEc)8_4+S(rKtZVruCCkea??@J7R_&qnMftV&|M}tm`MWQEAKK*ary`fnr}5i* zJ^Q%scZYiZ{>Oh86#CJrKCeID(eM3h%xQSPysxWh{f<Z=n*N%`yG`T6Z)^O$D_XxT`A_-Ht=09) zDX0wQ4%TbadMCfxM|Hh&3hG|wHtDr#y_4VU_jSE;3M#+3qx9Oe-pOwT{!@Olk83>T z6jXk5N9eU_y^|l`FDAdBa-03MUYpi?`F%*&lM_^Kv-efB-plVQT~AI>xy^pLqV-OG zEAXH5yGG-Y6I5=q_g1vt%kNlSPfn2BPOE6WmmklIoFMsat!TZM-=VsmoFMs~SJ8Se zzvcVS`7vL}36kGA6|Hyjn^9)u7u5frp`T6bo&09*)%D6LNPg?|+O*!uZ{`cSUO5HH zZ=%#KnQ6V3-`={OoFMtp$ENjOempO7g5MF3t7yHG z-(*48E2kj&ZPshkdN04_`_K8U(|F_r$&K~EwBE^YqHD-6sN5#>vuVAP--PF-oPx@4 z!al&X-plWLT~AI>xlJCZXuXr)3jC-1CO2z5We`+u6Wu%c1+Dk;d$q17CrEBvD_Za6 z$MYg5NN(FITJPoeGF?wjko+#GXuX%;^8M%hm@ni6$&K~Ew4U?J``@c|y?pX@8~*t{ zxRKVg|1^Ho`MMvjKJA~!-@DVeeBCv7SH=AYKl-|){`w{DpZUE(zJ3Z)&oeWvcfNj` zdzY?1S#|JAk)AQFcfNjG!T2dZe%?>sa4+=`d6?G4_Wu3%59i6Ra$?^yvvK%5ruANa z{NBUlA=Qadr}f0NF4p6x{+Yc{^_n+u<^WMWXIdBQ`thjm23HUTVK9^z`lY03sQGY`8?2ir~lYD(0@Vo9s39RFKE5fe=8V2 z+g(79tHt>5?b^OtkJcHP6c;)1C2&qi9m zr(eH&^-#b2_@REJ_0_3Yvr$6V*Q>t$#7qr}c;DwfZi`7k4s#MeBE^ z`bFa}EbON5mEZ0o8NZ_SjlFt}cRBUqt<+bvetD{I{cFz>{_hm=Z(85htC!y`)QeY8 zU(x!ORKMu{HQr{`;h!}W|EBfLslN5UiSbp(T8e+u`leLBXngrSh4ICU8NZ_SQ+oCK zhUYHoHSU4b@1b?Eov{jXXngs-j`7928NZ_S>z43OpW^>o>ML6B_OGr#TXpzn z{@~xVes&sv(f!LW>zwjm*qi!2v@X`qZ_)j0Jo*&>dcO|;ruE#vi^f;oL5wdlZ}4wg zKd3jp{6E0>BI_^to7Nxb*Duh&_~-t~Kd2l+57zg;$iF_$IQVD&;6G?R*stG6y{;oS z@;9w_*H2wfpX&Y>?iF?aBdzEDZT-`yjQ{mAzG=PNzpCRoG5+yoeAD_8&u@V~rJnT{ z|EBdN`gehK4*$#_@-waH^{=`AUB6EKs#R-#f_hW$j0muTATD{w4pM7tH=6sJ`d?WcD9H>z(}vb?iTadT!LQ z{|H*|>_7PWkNrnb>nC4-vi}HL@9aOwi~UD%r>OtUJ|t*8uit6?Avg9P!6QZG$37%z zy)%Ep_vO@U+*_%uXuY%l2;W+#gLjJfH?4Qp@5p@%_3|wbk-KTVv;PR+n^lMZGe!KH z);s%;@V$xgRd*5NSG1nj?>2wUv&dhcBXT#b=lQp&UhCy9>NT#`&G27ny|@3sH~Wn6 ze}sttLhHT#N94YpdgZV6Gx9gBclICnX8#e?x`}`GA3^K6e;3VPU9XzB59W<(*oOqI z=kv!bNI;Z^E ze~`b){-b=nvwmtk`V{|q-wgkz_1wR0{s%FR>X|qAH?4Qxzan?N{|8xj$=|fz*?&;S zJ|p~d|KuOE9<1+wk$-)haq!Q)!GF+tuwTECdR<3u1 z{^?W3XWlTrX}#OOx}N96_{W#=P3ucMKlUF{uO15jru8NIm;FchXa3;dw4T?$=Kk4d z@ch_+@cahqeLVDF{rracU-loISI_=~@7uBO;QN0Atq0rsvj5=RfA$~2hs2xo+O*!; ze{kMD`;Vado`1)H{YTJxXa7MR`;VZW8+GhIg4R3x559lO{v)V$lb`3a{|H*|>_5nh z{YP-8_zAr>t>^VSt-s{P{v&uKv!b7g?jl`-$(AI_0Ikyd~a4A{?8Q2-?ZM@e}wN%jIX+j7{8+RyneU&Yo0~^nnRJl zX+6)sMfF-QcTul#52St%t@rjH_-3CG{*MsxUueCz|A^eTQ?LBBen$SL_0IkS-|Rnv zS~u~}{v&8T_itK%!v79k&wVg&)mimg; zyZx){&sH7&nK$@1t#{V%$o)R*wQlcC{T{OaC?D^vpBj%o#lPM+!@p@g_ivm3L5!n% z<_-Q$>z((n$o&DvSMCdpU(tGJ|3Mx5kMPg^lYh{9u)hCA{`GOj!T*6G{)5(o{rZj6 z>pF5Hf75z*{nYjJDfhv=xv8S{+`p}V`jqjRH;ivu@Aj{*=Q%O{@nw9|`V!BN{YTWZ z?%t%&V_ILLf7yS8f94PVP3w96Ywn+Y2G5Uu2hVSy-p4}^*3WO4|Ni-xzTd+BBff8< z{RclcWB_1|hd&+p~|JVe+t; z_1vgu{}Hs_*?;i!NA@2iuo4@8+po2DdHyY`*Lt~&dX2AjGyE4?@9jVE z%|0XiA0d)|q4nPWBXZwPy?kr^jQmaOo&5*C*?$DJZsMQ)N6>oi-?aXO{~fxX`(WP4 z|48e3{a%!xd|#(J=E2>JThV%F{SM#sDfe+L^%bpm`&ZYWtvdWOZ}4wg@2uaEJL{bC zXa7O|Ci{=_@y`0G@#s_hpDg0vw4VF7&Ho_AQJww^|EBfM`&Z%sc|7x~x683+H&8}biY5BBRfQm^aCjr>jP-Stz~)2G}A^G5eS(t7US z)<1p9_{REU3Z(3iXf7yS8f94PVP3w96Ywn+Y z2G5Uu2hVSy_5q;>>*tr||Mcm@{vr5~eh=ibVgC@+{3#!=>(luB`)YjuBB;LQ-=E?8 z7eVWt{R4IEAA-uAI`$7i>z(}re|N?HA*l6_zrSMt5VYReKk$1q>>q+V#jEw&w4T@B zCO`HM)rm<^=GRN|I8cw zo7Ow)Z{*H8r~KJBkiW_Pp?thv{}$c9#-mU1ulK$1Z(7g&+va}|VO{YL6_9l4ReX}!CC z>U#S0bdhq|U8_773dx{H6)`V#%i z{vrG`fADWw&+A`v|LhZZe(W1~egpMB9(u5Te(CRrr;pahS#R|>xNA1+=PzF|tq1G+ zMSp)CpFjTonsNF2>w(sTb^YMKeE);KUGq+j4{s3Fzay=`GyVQj`u%hMK6uUfs)HXF zudHZ2pMR0_TmJYdzxn6r{?6s^uT72rbHm?X4-CD&|CHbS|A>6z@2|;?zrP-6Jy_Sb z_y6tT{`vPy`TGTvfB!Rb`Sud|om8&Vv!kAWzcOh3q*R~R&+q8pS>xOf_^`eYwyvV} z&cDAoeZQ{%tm@%z)o-k5{j+KO{QSPE>;IqXMgHBt$-aANU99uV{kMGo!~OgBx4)+G zKd*6MoY6jXk52kW(Iy_4VUqq<%>1(o02CcQSTck-M4zOGk( zko@M3+C%HT{8r#U($5)D!18tE0W*v@w)$0|IHq&>&Xd{+i4Z8 z_wwU;krO1ptre~J@;g-5lb;y*owtY9yZJ5Of6kBjLQatU&Z%g<(|?uz4C*R-((N1_wrkT|CHYh^F=uY$&dBSwBF0_B3(~T zklg53(|RvIo)VLdag_ww6Y z*OL<@H~QGL-ph~YMNW|Xj;mv{aN|C;c;lv7aoP1pyR)_eI~uj|Q4B)`c6duYAa ze=G2x@|!SUlv7Z-O<2!N>%IJ5t?S7NlH1mb)_eK!yvPZX+qR0p8#FKYYE1Pl$hhkIuBd$bTAt1@&qFJpSIDz6Rv$uK4{s zldtE{f8y!)&-~sdU%v&Z)7R|rd7$;q*KhpYHDA94_4QkP-C*2Q-Hwg2UhpYp5UFUgJH!x*Xj%EzB}{PE`=`konm6F>hjm23HUTR;B( zgzD61{QNBHuc>Ig(|`QkHT@S<-|=_Xd>@p>SgUWfK2y)^?{#M7 zbIpZ?AG|}af5nvkK7C(D?_~q67e2S*^Z9&w9gNRckDKQGhR+Vy1vOsOnW`@zuj|vk zYs25G{^hz3zFFK|(fZ5Nx{=5KD_#E*)xmQ${!B&dFG=<3edoVD{z~t^%$pUApZza? z{FL7m&t11@-)<{+C{x);rH{>M&ie=M>cQoBAcaHm!G_ z-+z1jmEM1Oek&M1J--#?pPt{I`8>>fuLHq7^Sv|wRQFNlpZHnkUq$O5P0v4%|5v*H z!^}TX|Lr|f(fWr|eY*b`*W;{YeASHWn(pC;zW;IlseXCmXaCC|KjjzewVu z=su>P_4hqRe&hTb{BveA&yRmYe5CFx^v?5}(t9n>FR14?^-FqfTJJo+^7)5xRx&>C zSH4f*w`u*U?th$rs`q{VaO0=vw}SkK_x&+{tylV4MXUq&i>!a9^*f&8`Pu)Abp0)= zgAa=5Rfjs2b1PckKh-btuj@Cejy}-dJNn+V-ubyLz9;{vI{Z(G_%F0Bw(H-Rzv}-+b@<;; z#DAf6v953Yb5>sXKTu@e7FrkU`X>L0_WE%jpAqGMVp_jB)i?Q1u2!A=PrfS3|48ds zr~20acGW5WiGE&<|B==^zc&)TwdW4LN5sEr{j@ZG>;FX6;r}WT|EBd5Q+?}yi|X)y zt%!fq`j%AR=1-r}N5_izH?8OXZT(MFhkxb`{!QzXG=A%Uwd(M%pB;yP)B5UE-}s-V zf8~GrQBnR!TF?F4_@Dlq>hRCJ!GEE3vF_i-|MWeo!~fnQ`4?Ij>-yF|eTx52iTF3I z=l*T|U#2?wpJv|3|48eXrSV(;m#9wur|%Wzf28$GQhn>6KE?k9BK}S5xqn;#$Egng z%p3fh){jf$xBib(9saKn@o!o`D%H3C=~Mh4D&pU?p8L1)KlQlk@Xx%#f1!1;e*TUB zssB_R{*M>&Uua#d>l^=5^soF+J*fZWf28%?zpei}R3raW%pdt5X+6JxxBhQejr>n7 z=s)=%Y5n#k{L`oS|Cs*6ziB=9Z|na;)!?6bgMZWdg=zfO|5nxD|8D(?{fB?kdhXxW|KX~^Kl29vruDj$U$#{YWy7yr-JfA}x7 zF4q0m_+S6es=+_=2LFZD#k#)nzy8~*!T*u^5C4VM#k#)rPoK*F`uj!sA89@JZ|naS z)ye;Q=8yc3w0=t(zx98k>g0d@L!$hTw0>i%Z~fD!`2UcIf75#I-`4*bs>46?2LGn@ zGt&62|5H_m|Jy|To7PWF^{s#U6#uUk@o!qs{oDFKKy~tfx1jsJCDQyu=9H~25KF4pyp|8-wh9sZvu;=jvivL%L_&2TR{%!rws}BFn z8~mHr=hOJD|8=Uv|LaBko7UH*`o{lW^soHywNsS;k=AqnHvaeeqU!L^yup8=b+PW> z#{XWQRvrHL5%FJWU99U{|MV&T?-cQGTF?F4`oCOt^1m1JNB&1zzdViK`oC0l^1s)Y zMEM_S{nAw5`lnCvf02lP(|YdT*8gVJ;h%Yff7ANrG=A&<7}eqb{UZKN>&K+})<1oU z|06{Fo7QvxHvZS{QXT%8H~25KF4oV#@xS&5s>A=QMf?|97wh`Q|62N2{?~p_l>d>| zbN{yf?^2!ouVwzo|48e1rSV(;pHv?sYZ~U+MN7do~Wg`9y zt&4Si>z_WA|21D1<$t90+`p~=9jcT6HOwFRA8CC@8o%{_v+Cr3&G$w5A8GyORNwli zPw{`Ph=0?1?%&q`*{Z`o^9KK>^|RCXt^dXWro7w0=+;zxBVr>hS+o5&x$3{ZoD8e>MG!|Gh>07g`tV{%icNen55jXWrny z(7IUHH~v@ujq33KLJ|Lk*2TKM^-rJ5|LS{1`5$RL_iyX}I@QVlYUYppkF;-1A8GySRNwliPw{_+h=0?1?%&q`DXPOi^9KK>^;6RLt^X5MhyR;I{F~NK zO!cjQ`V{}ii}*LK=l*T|Z&V%rnK$@1t#3@@xBe%p!~Yva{F~M%slM^QivE@VRSTm0 zkF=iqxADK~KGor$d4vB#>tfx%jsI1jQyu>I6Y*bYU99U{|MV&T?-ucITF?F4`rocP z`CrBSk^hm_x2N%2|Cg!mxvKlBDE}j^UzX}y|MV&TFBb7{TF?F4`ro2D{4;OxZ(84y z#&7)}r@H5=?kW-gruE}eee0h-#s85a{!Qz-e_Q{nRfm7(4gO8*tJC<4{OcFSA6MOT zRreYZ|3T})PXFlR^sjyoX5k@GKmQ$RJ@@Y-|GNGj)#>NI3(Oz={CA}FdzSEjhwAV@ zrT@c!P@g9BVBbG|ivQb0{F~Nu|F-@wQ62u7H~2TLU$TV%3stAz!&&%@sGnbtw0>c# zU(`Rko<7C@IU@c|>$!hh|3|3~|I8cwo7Rs?z_Ww|MNur zo7QvxHvV`2r|R&}yup8=b+LZ_jsM;MtUCN3E8@S(mY{&&--^1u6=qWq7vp8L1; zf4l1Be>d|-{zqEBJ&oV`zeRQOzxz>9{zqEBCDph7=~Mh)FXG>{p8L1;zg2bkXWro7 zw7xZs-}*m8b@>03h=0@i8L7VYPoLud^&$!hh{|BoM|I8cwo7N9bd>|bN{yfZ&aQ9?_&PQ|48dMrtw?<*QieZcReV||48fCr25uBeTx70 zi}*LK=l*T|pQ<|iGjH&3T0b?7-}*mEb@>07h=0@iNvXc|PoLud)gt~)>$!hh|NE*A z|I8cwo7VSDi>kx_vqk(DS{Lj3)<1nJ|4;s@DE}j^=l*T|U#U9zf0Fql|0AtmnZ|GZU#>d& zfAW4&{zqEBJk_`U=~Mi_OT@ovJ@;?x{{+?HpLv6S)A|W%{MP?w)#3j`BK}S5n^S%3 zpFYL^%S8N})^q>1{@1Av|I8cwo7UH*@f-g;cc~8luNCoMXkF~~&rbSR{&#*~l>d>| zbN@E}cYa!R_-EeWztFl^kKg*gOLh3474cuVv*==7-{ilOKE?khMEsl9bN{yfFIAoV z?_~bS|48eXrtw?<+f*n2JHH^x|48fGQhn>6KE?lAMf{uAbN{yfk5L`|nK$@1tsj%d zZ~bpl9sb`d;@`BsDb=_B=~Mi_P{hA!J@;?p|A`-{4*$#>{1;jm>*wG2f8yU%hyPcI z_%F0B*7c45C+J`Kf8sl${ExJr`?vM~N!7{!6U-m^A8GxQY5dmz4%Ny36FWuuA8CC@ zs&D<%r})1~#J_1h_iyX}Jk{Z!d4qq``gv*m*8kb6!~dNk{!Qy=r~1}EeTx4#iugCJ z=l*T|AEG+^GjH&3T0bO>-}*mDb@;zX#J_3%pj6-Zf1Lis|9&F=3$2TF|26&}|3}r~ zpLv7-LhE8(-}rz00oCFE2oe8<*2TKM^-rJ5|Knd3<$t90+`p~=n^hr^NIkAF{;|B=?OOZBaP`V{|HiTF3I=l*T|pQbweGjH&3T0bp~-}*mAb@;zk z#J_3%lvLmPr%&Uc=|6}wo z{-;Fz7g`tV{%ia{_BX1-Kl29vh1SKozVZLqeX7I%fg=73t&4Si>z_WA|HnQf%Ku2~ zxqn;#SF29`A7lQ=|48dsr}10=+f^t3k9}Q~|B=?Wr~1}EeTx70i1;_H=l*T|pQt+g zGjH&3T0b$3-}>L8I{aTN;@`BsCDph7=~Mh4E8^d@p8L1;KT#e2nK$@1txwYUt^d`k z!~e-5{!QzvQ+?zAQTkW@AAMAm|B=>n|2F;~{haFX&%D8Zp>?tD-^Tx=_oxp4dyDul zv@X{5t$+Fy|DO`^Z(7g&+xovub@Klx^GE(iTE8rf-}=8qb@Kn{y`ub&w0=pdZ~fD! z_`g8JziB=9Z|na!)#0CcgMZWdacTV4|52*L{}m$sP3uRc`qn>vivL4J{F~Nu|2F;~ zd0ch)XWrny(7ISZ|Hl6#|EW6sA1~s+(7IUHH~t@?f93y?2SxcGX+8IE>;Deb$^RqF zANe0?{f;z#>;HDu$^Rn@qWq7vetW8K{nMxT|Coq>(|YdT*8hd7!$0!||EBc|)A+6b zt*XQS-6H-?>swQO>z_Ww|LG$BP3yUTTmOfv4*$#>{F~MfPvf`#4^|!iFBb7{T0c0| zH~xP>|Kk7IBK`}li*^4s{(tb#s>46?2LFZD#k#)n|ATL<4*y4r_%F0B*7bRO)x|jv z`uSh{9j$);H_&>pu5ZV`k?~b`CgYo`3q4rZ=luRfAAh;(p#JWEdak1N-rxU!L)X7V z^-w>%oqkqD>%G7K|2ti;zhRz&IwxiN$17St>?!i|-|sHpf6nhK8t?fUAHGB5Kfj{& ze11a8Z^Mgqy>bdFzYRaD*QWJOej9Y|Yn*=pmEVRpR8)TDgB7j!@_U`GCnrd5zg5wCFTdsc&-wj~#v>=F+~#knXuXr)+-_a3oPy-X zdTd(nGFVSn$dMCdX_)q!GeOKctry%+1eKc}} z)_eK=wyq;5sNClMq@wj+ejm{Fw0p6z({&dH+#PL2_gLHLZ8@oBcCgubhJ9x0ha< z);syFz<IHLe&_3Ya)RW>`fpnA<;VI>PEfhcvi_RZd-=Ut*OL=e zZnGb$XuX%;^8M%hc;6!@sN7~hUeS6lzZqRmPLSMK|4r+i{APCRdgT-(H`ZO#dMCe` zCv?4X3XMot@rX{{U#@< z+-6vRP3yh2`aalzpZG!liv#b=lpozBPXcbX1-O?dN03M>Uwg5u>PCYd-<_`lM_^K6V_kTdN03obv-#j`fiq?DiE#H66kM})tg34|3hZU{& z@_VMPCnrd5tpBFa+_xTH?4Q_o96vTIR%y5H0!Tvy_4VcM|Hh&3M#+pf6!~wdMCdX z_|N(AzDG__xlR9TMeDu%eoohu6C^j*f75y|Kh|$@g5<{fYg+H+_mjGwoFKXVYDMe4 z{Fd)O=g0dVIYILKjf&QDe);^zUm5E8zAyDYN7v`-hMw!w`0;&5jpOe>F8=;m`FQ>P zzx@5jzt_0>IY*pBd%wthGOg#If8_5U{)Mi;MRia=f7yFOMeDbu@4qJhai97=bMPU~ z?^L~M{l-+k$iLom4#B_p8vIwZen_fc{1;jm>*v?_=bXauzhCiRXuWrSA-*}MF#I1_{1;m9onJ`qoL?CH z%;2B%3waKse)AIkuh#X-pK}Yzf28&N^WP@_$#&IqA73B*kF>r$jo;>fn(Dca_Y~iz z_0v*)oBxT$|5e4mX+8h^xAniJ_`kOJH?40;QvwO=lnwab8aDhGtzqJ_ZR3JoliLQkLFGIFSIV!^QZC8Ifc)_dm{;-7O0<35fo{tK=5&M(CGdioUJKlmSMJ@;>u z|N2`7|D0Qh|B=>jN%=MXzy8L-Kj#)Qe@9whV*k0GKE?lsiht93?%&q`8O6WmP53vh zpRt7hQ;YxGihtAksj0qM|JT!}_nEl0TmL5%|JN7)ru7q2ee0h-#s4dcf75#I-`4+p@vnIk{!Q!iY5dmz zy5j%!#lLBNU8-;VbABQIIk%8~!$|92OZAO^olhA3&$)%+ztFl^&!5IW=M=^~*r)g} zwB9?vFnrUe_`kFGH?8OXZT(+9_~+b0{ExJL`4avw9sKY0rNRG5>zAhbHh=mQ{}&bi zruE#vt^du%zvfN&H?40@Xl^eO(2DE>|Bxqln~oKwj9$+?B$ zztDQ`{6hMMa|$8n7P9`B)_dm{;+yjegWntcbABQ7VAON}w*K$Z_43cTh4>$7{jQW> zlRxJahX1w2f1&l>`Gw(|KIJ}cExt|bxqn;#+lqh9oA7U1-?oJR^9KK%TS)#Rt)G|b zoBml#pW^?_;@`BM`?vMKsrc8t3IC?`O= z`Gxci=M+Z&Xx@bXLhHTr3+WrqDU5mWvf{tcdhh%~e6OKT;nxTMBdzEDZSr5UWAM+p zh4>$7eMic#$$!nwgMZE~q<=^x2{hwX@Yu2c_{_|N9sJZ!P{!>-(qr#=p)d z9Q^NH{1;jm>-Yc0Kj#$2JkY!e|Ap3j=NHoVoKqO{;DyD1q4nPRh2*}PK85!V{zqER z{oDG#Zt%~!h4>$7{knAjP5!H|9{h7|A^ktn`qinv&7VHS{}si*X+8IE>;IJEU-KsX zo7PWBUAh|C8eXjm5ud zeUj=M|D0clf6gsr-!Rhp1F638uk#6`|2elX{1;jm>-p38=bXZr2m2NOh1PrL7lv>8 z6#sV@|EBfazpel6gMZE~#Q#X^+n4Zv+2EgZ3+exn)-Ox-ZT|Er{x2^6P3yUTTmM^% zf6bflZ(84y#&7dKuK2&I_&2Q|m+D*p^eO(2EdEXFxqn;#tBZfloA7U1U!BHZQT$I8 z|3Q74(1U&d^eO&tEB;OExqn;#mlXe+H{sv3e#sL4FT}sb{|x>sTE8&WxB1hj_&=xk zH?8OXZT%lr{A=EXf7AL=Y5cZ-4ln-SQ~aCO4^Q>2fBF>v&nx~->$!g$|D018{iAsk z{tK=5&Mzc)&MA!ik1hTSt@q9^#5d;`2ERG@=lnwE!Kml{ZT;V_>(&39TZsRW)^AVw zHTmzpMfKdrql5pE)^ADmP5!&-Q|{yX;@h;I`?vMKwfNV(3IC?`t!ez${~5*qr;2~m z`WdOd^-rJT|MkVcX+8IE>;K^5U-KsXo7N9bzcto=N7Vljr>5~+ z|0fmyA1nS%>nEl9)<1oU|5q3PruE#vt^a+Cf6bflZ(83sjo$!iM{GYsX@Xxu0_#bKg$|d|?KKOs~{=xr9>zAkcHh=mQ|L-dPP3yUTTmL5%|C%@9 z-?V;08o$kdbMgP7;@`BsIn}rR=~Mi_toS#r=l*T|uPgpFZ^FN6eO(&A@y|Jh^bhA2 zvi_LXd*>J8oAV2U-yi&Qej)pZQP2I`_~)F$mzh2%fd`nFWx^v_QE6#s86{!Qz- ze_Q{@6#tqx;or1=Od7xKpH0R8dy9Y5`leLh`lnCv|H9(mw4VF7@y|Jh^v_PsoA6&~ zy?1^geZx70(MPW+{tK=5&M(9_=NAUQGx+EHLi&HyKb`Ks_5Vp-FaMldi2sq+Kbh*A z{GZsNdhTQA;D4m`9jU&_{|Wk(`?#t2Hm&FWZT+8D{A=EXf7AMTY5dmz*~R~z#lLC& z>{Q?Sr%&xZQATmJ_Y{}&biruBnTedAx}6Au3OEB*_u zi}m||}4d)a_{~S^L7h3O~Ur6qc)2HyOga47%bN{yfZyx+} zZXy0hTE98nf0O^?*A4zTw~+O7r1k4keVadhivO#Mf75#I-`4+W#lPlF_&2Semd0=W zpHlqaTKt>VPf7KyfBF>vuPOdb>$!hh|N9sJnm6I!w7!2DzxBVd_&>AwH?40>^^Jed zDGdKp#ebpo-uZ>}z0N0${^#7n@Ly zxqqAdAG><+&$)&8A8GySCH!w6{Bv$0{Xf$B_Eg{IPoLudJ;lFiJ@;?x|HR^7^CtY8 z)=y01xA|`={;w_mP3v1yee0h-#s9IzziB=9Z|i?j{A=EXf7ALTjoRH|?N)2H}9wD>oz=l*T{b50@s!?}gwztDQ`{6hMM za|)x6jxYWTt@q9^#5d;`1|J;!bABQ7VAMaC?!Wbahpv}@&Mn0MNb7f``X>KJZdX0` zu`u`_Y5n$8-{k)Yead}&toSyq=l*T|Us(KW-h_YC`h{uy*8kSx|L)@7w7xafxBlr< z{GVR@o7Qvxw*C(<{xxsHziIvOG=A&<;Nt({;@`A>aH?*DG4@<@XD^o}3`LeXyeS zUVg9B_2dM}?YAmg@8!3A|2e;((RkzpmEZgg6|Hyjo73+*kzbJfo~zfU^-g|s59@m6 z6ePdH^xCxE$#3r8b-i*5lHW`8+O*!uZw3BSeskZ|c*-eAe)@MvBS&bxm)~#eI&y-_ zZSGGhTJPoe0bNf{P`Sgw}icov-W236k3fD_Za6_ZD4GPEfhc-cZqcFTXeI zdUArwZT2G-t@rXPw0B(6ePcw>wlZpd-*Njf68y>VU4Gpg5>uq{cqEHC%>8B(e=tHsQhMF|4r+? z{CM9XC#c-G_mS3n`Ed<7L2CcDqV-OGEAXH5`+&wHC#c+JzE#nBFTYpndUAr~c2-5} zz5I^W_1rrozqeJi-plW$x}KaM`MtfO^`fiq?DiE#H66?=2dSoS<@> z{9#4wz5Jf3>&Xd{AM3wqy_esNt|uo*Zm+6ny_es5T~AJs{C>Kk^z(|jH3s>|GQ`hM>R_4@yq()CO?{H|%ekaJ799?tOj%=mou zxc@W8ea5Q8p0QSc>u|%u!oyb#{Qhh8rg_%Ff@%HXE7JE(U%jV()vD*bN`Gea&4K@M z>#9`;&MhpM*2T{Ft5&`A3C7o-9sL>O@1gaVKJoPR4=9t3zqqgff8<3A3*XSXYg*s< zi~ah2erl-y(dnVyw7$bLOl_f}2szy6%_6=0-YuGZ69eD!la zt}%|+agpmU*!K3fZF_sV{wY7Zp2?f}?C&^h(PwY2R+5_i8$Zj{Z~NcdF6w{o;p%<< uFJ8{udcH1C*DI;)T{-``y}#ovThF-YrTy!NWQKc<>o*P8PidUJR{ejLTG537 diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/2.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/2.gds deleted file mode 100644 index 226b989e83bedaaf1cfbce22a8e4a620c0eed4f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1038378 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

D)R8|-&3pSFMlbS*eSf^_@L&6; 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%0D{-hbD3yZv_`+3jyy-}T*8KiYrcb>038Z}0Y> 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 diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/4.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/4.gds deleted file mode 100644 index ae663f3ab68d521510512eeb686347ad7ef2e1f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 979754 zcmb@vd$^@lb>_SFuBu%Z4(XUi5DE;};-;omG$Cq0Y>i5Y55zPYg9X?o8byMd1ofdy zMdFE~1glMJFwzRf_9U?-JOsN>Gyw!Jr(>c>6B191?Lm@G2hF7@>azDf?{Ccc&i#%3 z?KPKGPybQRkM*u^?D>9UUdC9Ly_qab=I38BIeKn>PugL$?M-VnH;um!&!&D`I|rf$;00AqmO;ld;iD3y7osWM{k%OyJcbF@?X56*U$z;n-=w|5aA2TI>&+C?# z_g|qO{64e9?RlLU`qcP+N9hMYetCI$X@#5rXn7gkT>tpVF#eqIe^~Lq?}Li_nywc& zAFHu0S)ujyUt1%--ap-OH{BL@j;&dOIG;jECwEngfKk~oniZcGDTg&*3)~`tMqwzPqzl^`( z_A-8>_4oJVH$AJwZ`xks8?8Sp#gF|zQE{4wO_z(xf1~v$_Tx8vvBWPNQsPbP8@`z0 zNB6&RkK)MxR+0QyTHm-Q#gF`N{M$1Arqj##ruB_~o8m{~Z+M`LzhPe)ztQ>w{rHWy zmH3VKm-t5Ox25>8|Boq7`QP}EsQfot|5!hM;m{Jl@S+mmX#LO>Kf3>otW)KG<4#fe zZ?vA*@7Vt(W&DloAN-rvFX@lJa7-D0;jA)#qxEC@@f%sE_~-udZ(5(Rem61>`Dg#& z-?W~`AKm}L`6YgV{3*WCdOrU~`CnlD;-CG4|4Qo%dHs&ZXPx4oeS`nXg{m*iSicL* zlg3}*+|~Gv)@RKh>y&uTUE)pav(_)?ocu4af5@L{J)eK0``@ro;x|29;!W!t7S>ol zwf-&LUg{sD{w?oVA@#33zeaqmAIsO3`WIB)TfU{#zo6#7JfGr|f5xN!1(pBhJ4*cv zTJO}qh`Xl7EAJ6!TJO|9{89gc+PCL24%|AMN2j8FXwTF>W4TK|zB&2v!o zFY;zu&+|Wur~ZZi?InJbX}web!ne+epz2@vHm!Hg58|kEkh({_X}wqf@J*cy|Jt{a z_e$%%`p3A`x$v+07yc`)_v&BdUFSq_Um2hJ7xQ4fbAE*X+e$ojkGMwbo%$F4bxs5y z5|uydU(kBz{2-3{7u2~Q`8Tb1>Ru2T=-|-;J?y(ul~i)XP%gct3~o}TAww4tW)AScZoNx&sx8n zbF5?b5BW2#=ksrrf9f3Z)IH)&>%IE7_osL zN1cPzJ>pI4z50i5>RkBOzKy(BTJP0A#-+}Mf7QM4UunHp|03@?KZ5(p_|(6c2kV{s z7yfT6@zg!y8m)KgU-;KK5qwBg{-}RJ>z(t1IO<R<4zGCuVWA5G8oXSDvQf8n3|#=mKO#`>lHg@5)9{!Qz7 z{L%eW|04h7jrDI@&*$IBKXoqrvw!ekX}$OQFUDn^vJcod_^+h?mFN5CH?RL9|5uCT z-LyVy{#d8XBj+yhruA9tmvfGF%>E&NruBUOjq*>OBc8fPylK5x|9HJgorBcB#n-IR zdhh+u#kc7E(>w>?ApVvfo7VIEC;yB`{R=AZ)LZIb(0Zr-Mcg$tUU`o=(|V`=;hXvw zyh)UQ>R-@$r~WZM^)Gmw=N_ac9$^*sNhc>K=>);s4X<5K5>XO;1(fB0y6u0NyoPyGx3+&BJB z>oe9b^)LLhZ}4wg&*P8opZXX1CvU8O(|SJtM*gXD;h+73|4Qq<`WNG}PT2?S8~j&N z|H|{z>tE!Zd14-}7RkG5eb)T3PKoE-CEm0?YyEQ0v5wh4@X}wp!@J*cx|JrxqztVcIelad}D*UT%h5t(H zz4{e-*FF#KE8|nYVjiq_>R0%`t;AEeh-vyz&sbArreS?3~dguIOTX-$Uk)|{Ih@XUunHpzhYe0Df@tZ zga1nES9yMV{ffLZPt3#BB6&Bh&ze8hDe;`U#GBS$Oy_3JCeY#$G3Mzlg&(dSldMAGe;XmbXc~0Xg zPeJ8x`G@t`wBE@d?^lt(pz^l#MLjmH_wsjxt|w1Wd0V<~K%IKFM%R-ksJ!v|yU}_te+TYA=a2nDo}lu!$a!X3@8$0ZT~D4M`C}cM)_eJ5 zzQ_|Kf6pDzdM|$)bv=24z&t62QhxiAD=gp@8H+ugZ!J;-?7I1`}?Qr zSI856%jWCK&oQm{^2g_{n=exwBwpu9qxH+u_-Xwty-C;WbzV@f|CV%~@j5VQJ-_}- z^M4TIr~IXQsk}x1W-5Q>`Q$&1-`@9D{bk*8y-EJc^J~P{*KhOK`H=TJNks z`UcitQ0tEVf!Fat>z(y?5aXx(wR8WbvhJb}QU2VIl;_vD|GNJ8-ZgoGtQ)R3t@qX+ z=QZmuNc_$k53P6B-~LzXI<2#y*4_Ra_1LuDS$_vHe#)QE&7kr|9^!Lt9Oo&s}-{N!LG5*MGWlulRrJv1$F&DL(mMc&4uZq~b*THm!?8|5L}`a&j5p zY`!|`Hyy-V?5s{9-AKk2b)ed_wr z^;hcpPgm|0|EnIG)~C*&uE+l;3-P_@bLBpu_37(J*AK?u@ql|QU-Pfe zZO9wHe;VxhkM*N{^Yi+5PUSna{*Kjuo7QvxnD);G?Ys3a)O+agRf=Cfp!F9f|AYHi z+}Cvdk5s-{@rUcNY5hl1{NVl-_a$Bbq)PiXtv@NnPaS`Y&Thsxo3GCJaqgTa51c>h zWyxQo^{MMezKMHvE@5JxD&MU5C+M+hed_!x4*yT8l>fa?*JIQA)b*Fg-*R#p-)z2SjKBFW%lKRPyp!{* z()yb9!{?Xsw|TeX#VwC5`7^CguYbk=<_8Py+q6Et{uST$x#h_vf2Q>{{SVe3*OmKL z?%7Z31EBR@{9fK;c#p<~pI6PfaX{n~OOR|*&ZrFgUAE3J!D`_Bz8QM}eY9Qm)ho*%|f8K3+!zPaM7H~#vMk$>%1c!T0U zIiU5m^562O>#tJW8*7~U=lD6$`qcHKxJz}N-a7~;{{wyM`cd3Vbe((#^1)f2GEGkM0}(j;Qax zG+NK+_rQP28}GTcJSu;YH)wt8`KP!S=sLXz5?ozBtmpH0l>bGY(~*C@{)qgW)^q&8 zzpf|mtQYtZ{UiUT_3i!qFaES*IKO^J|H!{-{ioN6ultX@^Vw5S{V(}nG_6nduj{>T z;YajXd2eJrm*>apx4wQM?~6aJ>mc)g(U7EkW z>i;4ho~oa-G$8Tue9B*%zrA19`)_-6ow)fK8vpxOXnj-u{!-dM_}=uLfq(UXaUY`f zP2cH_ulHQ>IU3(OO!2G6*Yk6XFXI1Y16rS3Bfj>Zd;eP3>)Z({e(zF=4_eRP-&>VG zT_66%^T^+T*1uQ(7b^ZJ#hX3xaDQ`eQ1IKeon0>r>ay(7&!fPw`I~Fz!o_bN&bGU-948^Z10k4#&S~ zeJ%g>{8|1C@hZSj{wL2F(0VtX^+UXwa%xd{KQv^cj#{Ms2e8p{L`~j_Bl>Dz6 zU%oG6eDPeyAJF<`y?BjxJ@Mk@#1Clw`V>F*{}ILEf4hi()A~nx@$##FoBU696Td?1 zb7!XbRrjy)Sf}{ERm8t(J+I%f{|6agaq=GiP3!sdlU3u(zxuAo|3=2wW7GPnJ^#92 z)-V3KfBXln!xX>Dzn*6t{Ih?^f6zLd5x8gE*kv3@7FC=UPZAN-rv^Z7Tr z|M|0t*SW=eA)3EJ)s@g;n!l3&TEF?;2X$`gcKuWRTbB1i>u`z(?ytXf0;3o3WZ$~ko~XuVVaB479E z`W=efDQe6{>-qdh>p$|QF@y3F`7^EO`Ck>U7}dY&74e$4XAnQ2^-lf6H}x;5eT#qUU(kA|{)K;?6Tz(_b8cGC=f|r2$*<0d$p5(_ z>({j2IX}Yp^~CGn<-`wYy;J|f_eT`7L;tqxAO212o%18|uKEY5f8^h!{*~u@`&ZYn zPVujEJN%p0^ZH%2e-)#1GW@e|@NZi0oS%_*)t}%-k^Gz1bNw03AN4Q%bN}Q&s62!Y z)BUgVujd(OhyJl|@E^1eXT>K^ysXg#mrv47Snlx{89Iqze3fO z&|#XtlK)!&_`V(WkM|v^drQA$T8C@I*ZRlz2dRI-d&Q6Iv1vWefAY`w1*vn8x<@@W zt@r9*#BtBWlLO*S>z(?ybd6%})<39yyY%q^t#|5QUIamD)|Jt|VztVcI{^6TC7yj=T@n31ZSN|gKR}rtgYyU?6P3xWd zhi~d%Q2Q4D)W4whPW=o2Iwyi#Mfs=x1+C}vV^#j-TjxaN|6GyvYg+G|AL09Y;x(@J zZTL2=cj{mG);ST}F5=&`-Z?)a@2YcR)-jw|_Mr>lFVwx5K|_J+I$Y`&V%f zGLFdp!M|y}bACqNReypT8DIG~t>^kPnm_7X_~-svKSAXobeQgcm47|YIQV}^#DCB_ zoDsi^cwI-{$iHblpMPWjtW%w%)IILM(RyCLWB;sE#%JF!zG=O?esw+b#Q2=QjBi?> zF@My*h~H7;P3tq(FZD0{vv2TkTF>X-=>Dm5%pY}+`72ai2_2^SEBUYWkJp>jzj)oK z`nUKR#Rsj!HR5ai*%Z|SjVJR-g&QR9{Oh&Qcw z>fhp9bia2i4r<>n{?>rjJM}N}bsys^ZYSdpXg!}FY5hmuG|$277+?2qTF>*pDteDPeyAJBT|{0QII6R&Z#Z^OT7y;J|fx6X;+b`k%k z_0IVbc~_l-)IIWVQvb^Hz5T24Sf}{cxgGvZ>v{dI+P{j^IT`-hKlnGTch1kqyXsGH zBjYRoruAHZM)OCV3;*0d>nEr@gbvgFukx?w8He@5zQKRcI-C)|i+Ei}-pIdcJ)eJL z|EyE3Kk6R$-)KFr-?4wzDdV$$7~izsUB9}Xd18FdU&c4B&zL{zU&QaI@uu||>zDc$ z{@FM9H?8OMZ*>3EIp&YL$NUwlu7nQL{H6T!cTcEa!F$DD(__z(}{zON@< z<7(f9f75!WeuZ!C^Wb(7|EBfM{*Sz$Nxb&`ZsJ!+{VLD*_OHfco#J2TZumE?=k>d4 z|0+)BT=-}I;NP^~IsYQ>svp6PjIaEg)^q(B%^!6t{B!@TpP=#(I!yP!%DtY7L^_-EhX-?X03ztR0urK8wEKG(0&-w&HV zPjNq{IPLr8zc3XSI!yCF`ukxqzG4}7`A^I`{<)*^i~suik9E8BLmD3*Dr)^UTF>AA z9en>t*S}2Hvu@y=`2GQ{KO_0i`TO56{vzu{)jP3uc({FFcb{ucQQDu4X_F!C6*-pL<- zH;g<%^2gr~Gp+aX$KMSjPmsLv_rpx&X)&Z?7ECdM|&PugDYgM*gl?q4nG?Yd|0#d`-7xYOB!8S|ruAO_-lFTt6I9-K{oZK3mp{!{Gp+aXcZ9AdPmuhvj!o;m{As=- zPh#Zlxhu5Z&ELkFKQZ$5f)z&o;`vVg4%~mvANz$oLGs3VU|R3wkH5b~{({OIe?N@; z1+91T$KMSjPmuia_rpx3Z@6$s6m~wBE~~<}32Vypg}FR%pGOzq4xo#K_y*Rv7t<=cli~@NJ*=ZCcO% zbN<*bWPx%|x%lIBH{hRW~=fUK)JfHlh@!R{}uThNF zPrUzaDu3nqHR9Xnw~Es`HvA;bA(3auROoT{rmIpOXOF1;``IAA3g^+tuJ-vJg&idQ` zN?oUQ7Sy`if1@6o);sI(AjVJm^SK#R{`ej``3ow4<@xFPYwufKSk_Ivf2DbB?_;6o z{0)A8OYfEG_XhR*S@HXOg}VQDqMPyj@coB@e_cntdOg%Q+w|V+3ry?5aeS00`=4TW=eiSO3GO6$`<|EY0zRO;-Ec+>jS&wq6NOLf0@ zS85N;v5!sbcTbx?T~EI5tK2ERTaQia`Tg^f|6%@aQ5<=^PXEZCX+6LHxhh^YV>9s@ z_aWj}Xk8r6->Up8{z%1fANPy+ue2_9;uWKwiFurR2Jr)0pZfWau9ffQ^D0jl<$u|< zp5K2R`@cwW^1r-Ql>bKS`Tg@%`BThg`bYlH)j#rYTA%v)UPdH$1s{{9|y4pR5le`1B!d-X5k z?x^v~d&Ha8JN0kt^CLuJ&#Cue9E)fB2@(h5!3S{8w7<)xXI9Rm97;_HX3hwBD(I_@@2^ zwQuoH{R>*})W7hrb0WA^lz-}9(0V>UR^?B=bxuV7&lSnPX}xoPgzxK#*SOlZ;oG#{ zsej>H=R|P3h=0?1=lqDgpGo{=GSRtD{>{0ni=F+e@mQz$*SQ`3P3w96uG+tf(>WRb z*+2LK}2FBZ=3z+&}9lXgxT*|5g6=Jmatr*f;nOS`YT) zcM-4a$Q$`Lt>^P^wEiZnQ|^O(qx)~Pp4ac#KkJn7**A=DTJNr3UC%r*KIbpvo7QK{ zAN4QdId_RStPqOr;rx~S*ZMdA{-|%0 zdA>KGy0=c>IVrRr9LLxCw@x{x{sr$9uhV1GdY=E}f1T!-ItQtL)ML|nul_~c9W`Eg zk9gC1r~a+GO!s@Y;-L2Jy6XnC-l>0)ulpEZaXT4*KrW%?-%i3X}wqfBL7zruX)q{jr^O|JM|CW)W4wiE&i#0 zLF=9R7ydPNP<0Rg)W4whe15FTpL}Z#NB++hS-+k;X>v_guAFyw3G_42w@wxlw zo7VIBH(Gzxzqk+fjqacN7qp(&@7O=zDc${@FkHH?8OMZ*>3jXA`e;OZAWWD^y(xJvf}dlK)!&c)iK{pYgg;^^d6+ay5GAM2X7Mfc}%1APW_8~-N*Qf+sXI?TF>W4TK|zZ&2vy|FY;$v&-1@3 zUi($`FZ^r&hW|?Iz50i5>Rk9&-3$Mf)_e6Y=ItutHE-Itk$=;Ar~cua`WMu`#Xt2g zXuVVa!oT)@aI2{NQ~!e2^ZBtVfAX!pANfC5yhe{r>z(r>d|ywz#?`(J-=_6W{R`hZ zCxY8W{F~N0=SSpSbq-Sh$iGSbtIrSj&#L>^c&tz(s6@~-+5RQ-$mo7Ow^k2vaI_~-udAG97E-v289dY*Cc&%VKb(0Z^Rzl(TXN8ZT4 zX+58RtMaewS*P3w`$p@p(RyCLWB;sE#%JF!zG=O?esw+b#Q1mB@lES9=8yUp@tnK( zH?7ZDztq3*&%VLGX+58Rqx+vfn|PhOs(;L1q5eDc;Bfv@{wFWee%Cw&?-j4mW7B$` zzcl{jEdBfqiW8|@e4c1p@4bGDxI1dR@)q%?^-leoyh!(Zx8mSUqCQVQUunHpzwk|+3jeBG;lI*) zuYN`TuOeQ)wf`djru9z!!Z-CRsC|cj>Q~Tur+$Th?en1O7XGPULF;+{ugaf%YoAB{ z&lSnPX}z=m!}s;XYh3NS@NHV})UWWZeIDE{;@`C1+5eGu)hS5bBL61!t3Kb^zZ#Eq zivL?h@^4zt>vz@u)%6cDj>!JOziGX5{zcwZKY|+>U->t!cj^~$)UWW*{o_AqJvhAo zRsQunlP_vK{q61G7sO>fHm&FH@232% z`zKwmJO!1%^^etK(|RX=>vUF>bEZ|hH5A^EG%kMr-(4-VXa z%HO)b)p-2va;Utm|G@#R_wsk0t|w1Wd0VG5tI>Kde^)Dp{E6gm-Dg&4T^!%Pzki^! zHu5Brzjb%4(0XtEg>U=(-u&nMU8C{H6IA}z{oeyx@8wUmD)I*zUuSV6zRL5%`%n9K zo#rd@#JrKem#)xyH-B3d!#Wcqf2z5r^=|$S+<(p=`-MC~@^|5Y);sx|=iE}Bg38}K z>)5p3S%34IFY*M*-#q7MrS)F^=5JTL@(0P={GJtB@8$0x{HOfQvtN{_pz=4*d0<-a z%IJGz9LV|o7UeP{XnJl zZvNg~^CyzOxj$K96C;1GUSZ^~JU=~u2kt-TkNrZPAbESmfYx*V(*EQ17Cs^V`5uXB zT^#yP;~zwPI{(`DPWb-Gp&Fm>pO}0frF<`CIDYD%`Q8$*pMu2k{X^4w=k?S2*Xa6Z zC=Skvdi~O9z4Q9%AjVJm+@6d$LHRQ z59m5b{B;9be<00&T0iS9(e)214*rgK!+_TF>%TPr2QhxiAMbaQzo7EQ=fLDIXuXra z_P#goe{0>u``;$-hnM%or{<5(O;~?H;`I4R{2XY#v;O8U)OA{CL9M^}>-E^Q-dTSK zF@DNle15Gw`EzXg5%L$b-pOD4-t-H~y5Vzh)=~Q&wREk+srlpg23UVV;`IIdh=u>HnU8i*x)cTuyryiTuJL~Tt#!vb4xfxX6_#S$E9{?(U_4)Dr`}Mouw}M(f@&1*` z`&s4rVf^U#x7I&i=f=17uX6JrDQ;f>AFoR3!}yW^^O4o7Tl~y!)q@>i=1G zzT)5;#J3D+{rnW4_CNXB@a!_~hO5PQ>#=G5*)!s=sqvq$@uu}_Qhd4pf&Wc!Q=I&7 zx=ED(M(b}&@gx76t|;Sgy0whoX#I*5KN^37&alW|tbg6VY5o2E_)X6$@td}b_&2RT zE5(ofKT&a-hfSA@%73HvC-&nve6hqY98%&<>tc8PY}}(b^1oHYf2DPC7(epA@o&rc zn@%s|o7Tl){5by)l<_z0E8{m>&*#r5e&cN=e&hWmzR~(^Y5cMOk10<1-}sQI{5M+v zSU-M2=LPW#FDmhk)(=hbWB;sE<$vQ&QTcDQp4ac#|0QMojqD%%o7OMskH2tC8Gqrd zGJd1=WBTzMS*Q5t{_$^GpRs;7G7kA?-{9Z0p2r{E|HAnteu4ZczR`L<|3>*=VEy9% z5E1{C*2Ura9gojC#sAhazPV6!aTq@ypLx>w3!J+eztQ@v`D2|D&$&yyX?@oE<(y;v zvVX{*X+58Rqx;{mP~tZ|T;fgZ;`sjk{^^aXo2q~G-_$+&Z_|3O{;mHNo!6S@pz7cH z59+aLJ?21+91LALCR1 zg13tDPyGv8&*w*4e~~xMbMSVN{F&DC{EyzoLx{)KPTdguHg zZo?N#JavzF)4Dibf3^R>_r^VnV;;1B!+)i9aTq^ZKh(MKe|j08`iBqez4{kBfimkr~cu4qt1!oLn6LS>z(t1IO<%PIE){U z&pa^?SC{b{tK^f?^& zr0(&)iD|u8|M=cM^)L7a@j5*=t>^hq{uz(@7gYYK!_>c^^-leZxNB;>@*Z)f^-lf6 zH}x;5eT#qUU(kA|{xLrFFL1#TjxaZauNTg_0IW09CZ#-_lP&G_v#Bfimkr~cua`WJjiRQ{-cLF=9KBl3P|iRX1+ z;K6!C9b&+B)b|4YjF)W7g;TJM~nj7yyho>j(QFs_s z4gM>wi^KTw_{&bf;e$NnLIruBUOjq*>OBc8fP zylK5x|9HJgorBap-uE`G_v+vLD|G&8o`Y`?uhC=EdY=E}pYf=FLFJ!1O#KU5@6^AD z)0jc!KjKX5o%)Aw>R<3CQ8CoNp!H7uV_fQA@K#a&seeK1`TR)hFY>0Cpz2=a&$OQB ze-uys3;)|oJnw&of9sw47ru2)1TPoyZ(8r1AH-4TAa##;(|WJ|;al~s_}9J--<8(I z;r<=1AL?BAKfR34>py&0@72G^yUvf`K9TinTJM}6;s3T0Pu(NF(R!!;;hXvwRNV{T zruEMG5qUqf#8dww|EBd${R{uBQ|4i(h=0?1Ucck~UsA@W{)KzDc$`Dfp-ZcOWW{L%eW|6(4R*h@I{hidv2XBSsk&Eu%~-z+%oFo)wW#qMtQ?x#wBD;z(=){#OS5==ZnQ?@`<~#cAKK*LQAA>*6qfqu<|(ah_Vn zU9UaQ_|W>Q@r(aK{oH(n##jC}pD8MTjnO`fCcSugOp;#C7$KP1KH{4uV_ zIoR=8CyalC?pt%-Xg#l=uK$SFeFWF`pV#lby7mH%58o*68qoR$>HhQhTC3}yr#Sdl zy^fz7(E9UIe9qrpy8ax+!*?it!+_S$StH)_f8hSh{rmf0s=e!KzU8ifw6I9;#{jEmpz5HFR>&X*T-qw9)K= z{#K*)Uj7c;f6m`E8jn0d<&EFpYP8z=ZEKiI={oWeSUBLbN<*b@8$0m zx}H2i^2Rzgt@rZBe32(e-mV|edM|%JrR&KPByaB@(0VU_2kt-TkNrZPAbI0FFs*m; z$L~LpzaV*I9h=rW`I}?Dl&2v1Q_miGgw{Lx={#K*)UjCRb@&w;1(g&EUjBYq*OMnm{#eJR^*bTzP59?~AdS|u|1^HY`MU2dKK0M-dnX!~*FEb$ zvBG#AC0(3afBD`FuU~@1f3U_w>z&t6>tCbm4pAI@uK2M5t#@8O9mM!4e|+9ZzJp)W zf0KXH`a9ORe}Df}{R(-aZ`rIffS+Sp@8yrrT{r7rka+!zcxe5yG=5q?>n_oC`WMt$ zuulJY{TH;JU;m}~KZx;D{!+bE-lBgqmB0G@c>UD;wfDVMe_4NAZ<4?I{5Zb8exq+- zodt0JCO!wRB!Bh!aeU1m=QZmrNZecM&wu>HnU8i*x)ViB{ryiTuJL~Tt#!vb4 zxfxX6xZn8PA8P&8=g0T&*Y9VQ{PF%3>xS!1@>k#28pfYJS@^#BN#t*NdC$Yk%e!8# z_s)J`h5L^yx~b=f@dN+*|Agu9{XB9?;l5|`J7oHQe^pw4-bB@DE=nJ!MjEM zzFDL7n^OE>|CjL|*;#p?sJ|!lh-rQ2jQIOY{O%)5y!lAgAGtrpm-`?1-+QCt$%Me14AoZ!F{Q z<#$E#Z(85jAAk4hW&GXemGK*`pWct(b8m^?v#Z26TE92NkNoesOL63XgNXl1>wE6% z$M4==;&*?f#5Y>sp5jOO-@`gp{`cG>D*uhv^ZFh8-%-Zj!~T)~M(aEJr?xW8h3x;?juXQslKE9{Hgtio|pfHSBE+xxQ0t4jP{)B4o@L)YW`+{*We z_&2RjJ-#_uO0J_vpPy;v20`?LTzA{Hwnx_pw1F|CQFK_a7y0_x8$< zl=$7I^{M@buGf9S1{L%fZzbNtKjrdCI)B6uyk8jo~WZ&T5w4T@RX#7W6r}$^zFurMh z#`;x%QN};Aj$dhgdjC=5Sf}{s+{M3Xea8BIlyeUM>>vD_*7Nx{x_|W-5x;Lsi8rnH z`j5$Rs(Y!Mnw8>9J`&@4w`q@#sH-TKDup^dCX%o&F=@ z?l1B59mJXRANBe1`#*mFP5$XW@K4`?|3>Sb{)3-S{}KF(sPXAPg4Xl-o%V0!P5TGZ zcQC$5|52as`+r%vj=m%Oo7Ox1NBGt`9ej_7f75#B{3ee6BdB#B`8Tb1`j5!_5sD-K zIyb|=X}!~bgm0bG!55VA_nOx8`8~=%{YT{gyfQw0NX&!vy#Ge=^dH32cM#WTz0-f- zn?57_ZxG3UrS)F_K^*-@Q0Hdk-?ZN8Kf*Wb6#qIm!@p@guiw%BrT>WgVE@QJ{YTJx zKEFr#qyLEfUoW!$P3xWWJAAWF@qbx~Z?ryR{nCGgfA$UjP3xWWJMzvs$2>e(;v22! z^KW$j^dI40bu;pBTF>iulz;k+@Xx-%f2H+a{}Fk=wTw^S5&1W*=lVbLPyfNsq3
g&ovv2TkTF>iuG(P=DjL*Jd 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≪E?TY9~6 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
#CFgIo6N-548Szn!oygMRoE& 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�r%&pQ+@SM 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¬>`mfq5s{e$}^Zp(6 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%0Dh&w-j0rw)OS==6#EqKY~YzH|t~5 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 U^M_=HYmM_y9?oCXI0r8LKR*xp>;M1& diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/5.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/5.gds deleted file mode 100644 index 42c379e3a367e3b67554f88d1e13719b7a8eeb26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 989738 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 u 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

hBf9RJhYvsS9~SV; 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 Sneny8_>JSwKdE^RoB01*2e*j; diff --git a/openfasoc/generators/gdsfactory-gen/save_gds_by_index/6.gds b/openfasoc/generators/gdsfactory-gen/save_gds_by_index/6.gds deleted file mode 100644 index bf9d80cf1050c5a6d0889dba736bec3a78e6e836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1030698 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%0DH?8OM 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

w@7Y`2*eL52Maa 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

^e1=Ff5GsR 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

^;6RLt^Ze4{~xLTP3x~n^{s#PY4|^( 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

_5Uk^9KK>_1wSJ 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 z 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

HZ1r8*_|*%r(CH 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∓Y+JtF>1>$!hN|2L>k{`azf`SEu^XKYfb- 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

U|fr9Tqo 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 Pa}E9T)$tEwo`dcW&V*ay From 9fb7e33854ee5397b05dd4388e4e4cb7571aa269 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Sat, 12 Aug 2023 22:23:04 -0400 Subject: [PATCH 39/64] gdsfactory v7 --- .../gdsfactory-gen/pygen/pdk/mappedpdk.py | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py index 816a11ee8..8e2f414ab 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py @@ -207,6 +207,7 @@ def get_grule( def is_routable_glayer(cls, glayer: StrictStr): return any(hint in glayer for hint in ["met", "active", "poly"]) + # TODO: implement @classmethod def from_gf_pdk( cls, @@ -222,29 +223,29 @@ def from_gf_pdk( passargs = dict() # pdk args passargs["name"]=gfpdk.name - passargs["cross_sections"]=gfpdk.cross_sections - passargs["cells"]=gfpdk.cells - passargs["symbols"]=gfpdk.symbols - passargs["default_symbol_factory"]=gfpdk.default_symbol_factory - passargs["containers"]=gfpdk.containers - passargs["base_pdk"]=gfpdk.base_pdk - passargs["default_decorator"]=gfpdk.default_decorator + #passargs["cross_sections"]=gfpdk.cross_sections + #passargs["cells"]=gfpdk.cells + #passargs["symbols"]=gfpdk.symbols + #passargs["default_symbol_factory"]=gfpdk.default_symbol_factory + #passargs["containers"]=gfpdk.containers + #passargs["base_pdk"]=gfpdk.base_pdk + #passargs["default_decorator"]=gfpdk.default_decorator passargs["layers"]=gfpdk.layers - passargs["layer_stack"]=gfpdk.layer_stack + #passargs["layer_stack"]=gfpdk.layer_stack #passargs["layer_views"]=gfpdk.layer_views#??? layer view broken??? - passargs["layer_transitions"]=gfpdk.layer_transitions - passargs["sparameters_path"]=gfpdk.sparameters_path - passargs["modes_path"]=gfpdk.modes_path - passargs["interconnect_cml_path"]=gfpdk.interconnect_cml_path - passargs["warn_off_grid_ports"]=gfpdk.warn_off_grid_ports - passargs["constants"]=gfpdk.constants - passargs["materials_index"]=gfpdk.materials_index - passargs["routing_strategies"]=gfpdk.routing_strategies - passargs["circuit_yaml_parser"]=gfpdk.circuit_yaml_parser - passargs["gds_write_settings"]=gfpdk.gds_write_settings - passargs["oasis_settings"]=gfpdk.oasis_settings - passargs["cell_decorator_settings"]=gfpdk.cell_decorator_settings - passargs["bend_points_distance"]=gfpdk.bend_points_distance +# passargs["layer_transitions"]=gfpdk.layer_transitions +# passargs["sparameters_path"]=gfpdk.sparameters_path +# passargs["modes_path"]=gfpdk.modes_path +# passargs["interconnect_cml_path"]=gfpdk.interconnect_cml_path +# passargs["warn_off_grid_ports"]=gfpdk.warn_off_grid_ports +# passargs["constants"]=gfpdk.constants +# passargs["materials_index"]=gfpdk.materials_index +# passargs["routing_strategies"]=gfpdk.routing_strategies +# passargs["circuit_yaml_parser"]=gfpdk.circuit_yaml_parser +# passargs["gds_write_settings"]=gfpdk.gds_write_settings +# passargs["oasis_settings"]=gfpdk.oasis_settings +# passargs["cell_decorator_settings"]=gfpdk.cell_decorator_settings +# passargs["bend_points_distance"]=gfpdk.bend_points_distance # MappedPDK args override existing args passargs.update(kwargs) # create and return MappedPDK From d310c39f65b7748b75ae4a2f97ec3b51dc2bf2cf Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 15 Aug 2023 23:59:06 -0400 Subject: [PATCH 40/64] add readme --- .../common_source_amp.py | 0 .../{pygen => deprecated}/current_mirror.py | 0 .../generators/gdsfactory-gen/pygen/README.md | 156 ++++++++++++++++++ .../pygen/docs/straight_route_def_beh.png | Bin 0 -> 18265 bytes .../gdsfactory-gen/pygen/pdk/mappedpdk.py | 43 +++-- .../pygen/pdk/util/opamp_array_create.py | 10 +- 6 files changed, 190 insertions(+), 19 deletions(-) rename openfasoc/generators/gdsfactory-gen/{pygen => deprecated}/common_source_amp.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => deprecated}/current_mirror.py (100%) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/README.md create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_def_beh.png diff --git a/openfasoc/generators/gdsfactory-gen/pygen/common_source_amp.py b/openfasoc/generators/gdsfactory-gen/deprecated/common_source_amp.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/common_source_amp.py rename to openfasoc/generators/gdsfactory-gen/deprecated/common_source_amp.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/current_mirror.py b/openfasoc/generators/gdsfactory-gen/deprecated/current_mirror.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/current_mirror.py rename to openfasoc/generators/gdsfactory-gen/deprecated/current_mirror.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/README.md b/openfasoc/generators/gdsfactory-gen/pygen/README.md new file mode 100644 index 000000000..140c5b206 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/README.md @@ -0,0 +1,156 @@ +All functions, classes, etc have a help docustring. See python help() for specific questions + +- [Pygen](#pygen) + - [MappedPDK](#mappedpdk) + - [Generic Layers](#generic-layers) + - [Generic Rule Guide](#generic-rule-guide) + - [Creating a MappedPDK](#creating-a-mappedpdk) + - [PDK Agnostic Layout, Basics](#pdk-agnostic-layout-basics) + - [Via Stack Generator](#via-stack-generator) + - [Routing](#routing) + - [PDK Agnostic Hierarchical Cells](#pdk-agnostic-hierarchical-cells) + - [Example 1: via\_array](#example-1-via_array) + - [Example 2: tapring](#example-2-tapring) + - [Example 3: fet](#example-3-fet) + - [Advanced Topics](#advanced-topics) + - [Cells and PDK.activate()](#cells-and-pdkactivate) + - [Important GDSFactory Notes and Pygen Utilities](#important-gdsfactory-notes-and-pygen-utilities) + - [Port Naming Best Practices Guide](#port-naming-best-practices-guide) + - [Snap to 2x grid](#snap-to-2x-grid) + - [Mimcaps Implementation](#mimcaps-implementation) + - [DRC](#drc) + - [LVS, and Labeling Issues](#lvs-and-labeling-issues) + - [Addressing Complicated Requirments with Default Decorators](#addressing-complicated-requirments-with-default-decorators) + + +# Pygen +Pygen is a layout automation tool which generates DRC clean circuit layouts across many technologies. Pygen is implemented as an easy-to-install python package. All required Pygen dependencies are available on pypi and are installed automatically from pypi when downloading OpenFASOC. Pygen (being a generic layout automation tool) does not require an installed pdk (just a MappedPDK description—explained below). Pygen is composed of 2 main parts: the generic pdk framework and the circuit generators. +The generic pdk framework allows for describing any pdk in a standardized format. The “pdk” sub-package within Pygen contains all code for the generic pdk class (known as “MappedPDK”) in addition to sky130 and gf180 MappedPDK objects. Because MappedPDK is a python class, describing a technology with a MappedPDK allows for passing the pdk as a python object. +The PDK generic circuit generator programs (also known as cells) are python functions which take as arguments a MappedPDK object and a set of optional layout parameters to produce a DRC clean layout. For example, an nMOS circuit generator (also known as nMOS cell), would require the user to specify a MappedPDK and, optionally, the transistor length, width, number of fingers, etc. + +## MappedPDK +There are only two absolute requirements for drawing a layout: a set of drawing layers, and a set of rules governing the geometric dimensions between layers. All CMOS technologies must satisfy these two requirements. +### Generic Layers +Almost all CMOS technologies have some version of basically the same layers, some of which are: “active/diffusion”, ”metal contact”, “metal 1”, “via1”, …etc. The layer description format of tuple(integer, integer) is standard. The idea of a generic layer is to map the standard layer names to a specific tuple(integer, integer) depending on the technology. For example, a generic layer present in most technologies is “metal 2”. The sky130 version of “metal 2” is the integer tuple (68, 20). The gf180 version of “metal 2” is the integer tuple (34,0). Importantly, the designer does not use or care about the value of the integer tuple. The designer only cares about the layer it represents, which they can always access in python from the generic name. +MappedPDK provides the designer with all the generic layers necessary, some of which are: “diffusion”, “dnwell”, “nwell”, “pwell”, “p+s/d”, “n+s/d”, “mcon”...etc. MappedPDK guarantees that regardless of which technology is represented ‘under the hood’ and what the value of the tuple(integer, integer), these layers will be accessible by the same names. The designer can access generic layers using the following syntax (for example): +`MappedPDK.get_glayer(“metal 2”)` +This “get_glayer” instance method of the MappedPDK takes the generic layer name and returns the tuple(integer, integer) specific to the technology. A MappedPDK object supports mappings for all design layers necessary. The BEOL generic layers support a metal stack met1-met5. Because metal stacks and some layers are technology dependent, the MappedPDK contains the “MappedPDK.verify_glayers()” method for verifying the presence of layers. For example, if a technology BEOL contains met1-met2, but a cell requires met3, it is possible for the cell generator to verify at runtime that the technology contains met3. + +**BEOL Example Generic Layer Mappings** +| Generic Layer Name | sky130 | gf180 | +| :-: | :-: | :-: | +|mcon| (66,44) | (33,0) | +|met1| (67,20) | (34,0) | +|via1| (67,44) | (35,0) | +|met2| (68,20) | (36,0) | + + +### Generic Rule Guide +Almost all CMOS technologies have some version of basically the same three rules: “min_separation”, “min_enclosure”, and “min_width” (or “width” for via layers). Hundreds of rules arise by prescribing one of these three rules between combinations of layers. For example, there may be a rule which requires a “min_enclosure” between “via1” and “metal 2”. There can also be “self rules” or rules describing a requirement between a layer and itself; most “min_width” rules are self rules. An example of a “self rule” between “metal 2” and “metal 2” would be the “min_width” rule. +The description of CMOS rules provided in the above paragraph fits very well within a mathematical graph. Layers can be thought of as vertices in the graph. Rules describe relationships between layers; rules can be thought of as edges in the graph. A “self rule” can be thought of as a “self edge” in the graph (an edge connecting a vertex to itself). This graph can be described mathematically as an undirected graph. +**figure here of example rule graph** +To greatly simplify the rule graph, context dependent rules (sometimes referred to as lambda rules) are eliminated by taking the worst case value for each rule. This allows the designer to lookup rules without providing any additional context of surrounding layer geometry (usually required for dependent rules). +Rule lookups are performed using the following syntax (for example, rules between metal2 and via1): +`MappedPDK.get_grule(“metal 2”, “via 1”)` +The MappedPDK.get_grule method returns a python dictionary containing all rules between the two layers provided (all edges between the two vertices). The keys are one of the three rule names “min_enclosure”, “min_separation”, or “min_width” / “width” (depending on the context). Furthermore, as an undirected graph, an equivalent lookup for this dictionary is the following syntax: +`MappedPDK.get_grule(“via 1”, “metal 2”)` +For self edges, the following simplified syntax is available: +`MappedPDK.get_grule(“metal 2”, “metal 2”)` or `MappedPDK.get_grule(“metal 2”)` +### Creating a MappedPDK +To create a MappedPDK for an arbitrary technology, the generic layer mapping and the rule deck must be provided. MappedPDK stores generic layers as a python dictionary; the keys are generic layer names and the values are tuple(int, int) layers. Keys must be one of the generic layers listed in the class variable MappedPDK.valid_glayers; this class variable is an attribute which belongs to the MappedPDK type rather than an individual instance of MappedPDK so it should not be modified. +It is up to the programmer to decide which technology layer should be used for each generic layer. For example, the Skywater 130nm technology provides a layer called “local interconnect” which is a Titanium Nitride layer used for local routing. Local interconnect has similar (on order of magnitude) conductivity to the metal layers. The pygen provided sky130 MappedPDK object maps: the generic “metal 1” to the sky130 local interconnect layer, the generic “metal contact” to the sky130 local interconnect contact layer, and the generic “via 1” to the sky130 metal contact layer. Progressing up the BEOL, the sky130 MappedPDK generic metals are actually 1 metal ahead of the real layers that are being used; for example, the generic “metal 2” is actually the sky130 metal 1 layer. +Because there are less than 20 generic layers, MappedPDK requires the programmer to manually define the generic layer python map and pass it to the constructor. However, the generic rules are much more numerous. Pygen provides a utility tool to assist in creating the MappedPDK rule deck. There is a spreadsheet to rule representation conversion program which assists with this. + +## PDK Agnostic Layout, Basics +The python layout generators (known as “cell factories”, but sometimes referred to as “cells” or "components" or "component factories") are built on the MappedPDK framework. All cell factories should have the `@cell` decorator which can be imported with +`from gdsfactory.cell import cell` +The MappedPDK.get_glayer and MappedPDK.get_grule methods enable the construction of DRC clean layouts programmatically. However, it is the responsibility of the Cell factory programmer to ensure that the proper rules and layer checks are executed. **The quality of the programmer is the quality of the cell.** +### Via Stack Generator +The only stand alone cell (cell factory which does not call other cell factories) in the pygen package is the via stack. Cell factories generally follow a similar programming procedure, so via stack provides a good introduction to the cell factory structure. +Like all cells, via stack takes as the first argument a MappedPDK object. There are two other required arguments which specify the generic layers to create the via stack between; the order in which these “glayers” (another name for generic layers) are provided does not matter. There are also several optional arguments providing more specific layout control. To explain this cell, the following function call will be assumed: +`via_stack(GF180_MappedPDK, “active”, “metal 3”)` OR `via_stack(GF180_MappedPDK, “metal 3”, “active”)` +Most cells start by running layer error checking. The via stack must verify that the provided MappedPDK contains both glayers provided and both glayers provided can be routed between. For example, it is usually not possible to route from “nwell” without an “n+s/d” implant, so if one of the layers provided is “nwell”, via stack raises an exception. Additionally, via stack must verify that all layers in between the provided glayers are available in the pdk. In this case, the required glayers are: “active”, “metal contact”, “metal 1”, “via 1”, “metal 2”, via 2”, and “metal 3”. For the passed MappedPDK (GF180), all required glayers are present, but in the case that a glayer is not present, via stack raises an exception. +layer error checking is done with [`pdk.has_required_glayers(glayers_list)`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py#L142). +The via stack then loops through these layers, placing them one at a time. To legally size and place each layer, via stack must consider “min_enclosure” and “width” rules for vias and metals. For example, to lay the “active” layer, the “metal contact” “width” and the “metal contact” to “active” “min_enclosure” rules must be considered. To lay the “metal 1” layer, the “min_enclosure” and “width” rules of both the via above and the via below “metal 1” must be considered. The programmer of the generic cells must consider all relevant rules to produce a legal layout. Rules are accessed in cell code using the `MappedPDK.get_grule` method. +### Routing +Routing utilities are required to create complicated hierarchical designs. At the backend of routing is the gdsfactory “Port” object. Fundamentally, ports describe a polygon edge. Ports include center, width, and orientation of the edge, along with other attributes and utility methods. The pygen routing functions operate to create paths between ports. +As described with the via stack example above, the checks and sizings necessary for legal layout are executed in the cell generator. Pygen routing functions do not need to understand cell context; for this reason, routing functions are called “dumb routes”. There are three “dumb route” utilities: straight route, L route, and C route. Dumb routes are simple, but contain optional arguments which allow for precise control over created paths. The default path behavior is easy to predict and will generally make the most reasonable decisions if no direction is provided. +For example, Straight route creates a straight path directly between two ports. If the two provided ports are not collinear or have different orientations, the function will by default route from the first port to the imaginary line stretching perpendicularly from the second port. By default, the route will begin on the same layer as the first port and will lay a via stack if necessary at the second port. If two ports are parallel, Straight route will raise an exception. + +**Straight Route Default Behavoir:** +![straight route default behavoir](docs/straight_route_def_beh.png) + +L route and C route also create simple paths. L route creates an L shaped route (two straight paths perpendicular) and C route creates a C shaped route (two parallel paths connected by a straight path). +### PDK Agnostic Hierarchical Cells +All cells other than the via stack contain hierarchy. Combining hierarchy and careful routing allows for clean layouts while increasing complexity. +#### Example 1: [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py#L180) +The most basic hierarchical cell is the [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py#L180). Via array is composed of via stacks and has a similar interface to the via stack generator, but additionally accepts a size argument. The array spacing computation is another example of the programmers role in creating DRC clean layout. After error checking, the via array program creates the via stack single element that will be copied to create the array. Then, the generator loops through each layer and uses the gdsfactory component.extract method to get the dimension of that layer in the via stack; The min spacing for that layer is `pdk.get_grule(layer)["min_separation"] + 2*layer_dim`. After looping through the entire array, The maximum seperation is the correct spacing to use. +#### Example 2: [tapring](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/guardring.py) +tapring produces a substrate / well tap rectanglular ring that legally enclose a rectangular shape. `gdsfactory.component.rectangular_ring` is used along with pygen [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py#L180). The ring is always of minimum width and legalizing the ring is easy because via_array does most of the work. Special care is taken at the corners to ensure min spacing between adjacent metal layers is not below min_separation. Although not currently implemented, error checking for this ring should check the size is not too small (separation between edges is not legal). +Generators should be made as generic as possible. In this case, tapring can produce either a p-tap or n-tap ring. Glayers are just strings and they can be passed to functions as arguments. Also, you glayer variables can be passed directly to `pdk.get_grule(glayer_var)`. +#### Example 3: [fet](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/fet.py) +The most important component factory in pygen is the [multiplier](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/fet.py#L61) because it handles the difficult task of creating legal transistors. By passing the source/drain layer (either "p+s/d" or "n+s/d") multiplier code is reused to create nmos and pmos transistors. arrays of multipliers can be created to allow for transistors with several multipliers. read the help docustring for all functions in [fet.py](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/fet.py) + +## Advanced Topics +The following topics are only neccessary if you want to code with pygen, but are not neccessary for a basic understanding of pygen. +### Cells and PDK.activate() +All cell factories should be decorated with the `@cell` decorator which can be imported from gdsfactory with `from gdsfactory.cell import cell`. You must also call pdk.activate() for cells to correctly work. This is related to caching, gds/oasis write settings, default decorators, etc. +### Important GDSFactory Notes and Pygen Utilities +The GDSFactory API is extremely versatile and there are many useful features. It takes some experience to learn about all features and identify the most useful tools from GDSFactory. GDSFactory serves as the backend GDS manipulation library and as an object oriented tool kit with several useful classes including: Components, Component References, and Ports. There are also common shapes as Components in GDSFactory such as rectangles, circles, rectangular_rings, etc. To automate common tasks that do not fit into GDSFactory, Pygen includes many utility functions. The most important of these functions are also addressed here. +- Components are the GDSFactory implementation of GDS cells. Components contain references to other components (Component Reference). Important methods are included below. + - Component.name: get or set the name of a Component + - Component.flatten(): flattens all references in the components + - Component.remove_layers(): removes some layers from the component and return the modified component + - Component.extract(): extract some layers from a component and return the modified component + - Component.ports: dictionary of ports in the component + - Component.add_ports(): add ports to the component + - Component.add_padding(): add a layer surrounding the component + - Component booleans: see the gdsfactory documentation for how to run boolean operations of components. + - Component.write_gds(): write the gds to disk + - Component.bbox: return bounding box of the component (xmin,ymin),(xmax,ymax). Pygen has an evaluate_bbox function which return the x and y dimensions of the bbox + - insertion operator: `ref = Component << Component_to_add` + - Component.add(): add an one of several types to a Component. (more flexible than << operator) + - Component.ref()/.ref_center(): return a reference to a component + +It is not possible to move Components in GDSFactory. GDSFactory has a Component cache, so moving a component may invalidate the cache, but there are situations where you want to move a component; For these situations, use the pygen [move](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L146), [movex](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L185), [movey](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L195) functions. + +- Component references are pointers to components. They have many of the same methods as Components with some additions. + - ComponentReference.parent: the Component which this component reference points to + - ComponentReference.movex, movey, move: you can move ComponentReferences + - ComponentReference.get_ports_list(): get a list of ports in the component. +Ports are edge descriptions. + +To add a ComponentReference to a Component, you cannot use the insertion operator. Use the Component.add() method. + +- A port describes a single edge of a polygon. The most useful port attributes are **width, center tuple(x,y), orientation (degrees), and layer of the edge**. + - For example, the rectangle cell factory provided in gdsfactory.components.rectangle returns a Component type with the following port names: e1, e2, e3, e4. + - e1=West, e2=North, e3=East, e4=South. The default naming scheme of ports in GDSFactory is not descriptive + - use pygen [rename_ports_by_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L65), [rename_ports_by_list](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L89) functions and see below for port naming best practices guide + - pygen [get_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L205): returns the letter (N,E,S,W) or degrees of orientation of port. by default returns the one you do not have. see help. + - pygen [assert_is_manhattan](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L240): assert that a port or list or ports have orientation N, E, S, or W + - pygen [assert_ports_perpindicular](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L251): assert two ports are perpindicular + - pygen [set_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L262): return new port which is copy of old port but with new orientation + - pygen [set_port_width](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L283): return a new port which is a copy of the old one, but with new width + +A very important utility is [align_comp_to_port](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L300): pass a component or componentReference and a port, and align the component to any edge of the port. + +### Port Naming Best Practices Guide +As previously pointed out, the default naming of ports in GDSFactory is not descriptive. By default gdsfactory.components.rectangle returns ports e1 (West port), e2 (North port), e3 (East port), e4 (South port). Additionally, complicated hiearchies can result in thousands of ports, so organizing ports is a neccessity. The below best practices guide should be used to organize ports +- Ports use the "\_" syntax. Think of this like a directory tree for files. Each time you introduce a new level of hiearchy, you should add a prefix + "\_" describing the cell. + - For example, adding a via_array to the edge of a tapring, you should call +`tapring.add_ports(via_array.get_ports_list(),prefix="topviaarray_")` + - The port rename functions look for the "\_" syntax. You can NOT use the port rename functions without this syntax. +- The last 2 characters of a port name should "\_" followed by the orientation (N, E, S, or W) + - you can easily achieve this by calling pygen [`rename_ports_by_orientation`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L42) before returning a component (just the names end with "\_" before calling this function) +- **USE PORTS**: be sure to correctly add and label ports to components you make because you do not know when they will be used in other cells. +### Snap to 2x grid +All rules (when creating a MappedPDK) and all user provided float arguments must be snapped to 2*grid size. This is because it is possible to center a component. Centering a component which has a dimension on grid may result in off grid polygons. You can snap floating point values to grid easily by calling `pdk.snap_to_2x_grid()` +### Mimcaps Implementation +Although many technolgies have 2 or more mimcap options, there is currently only 1 mimcap option supported. When creating a mapped pdk, you specify the cap metal layer as a generic layer, but you specify the metal above and metal below the cap met as part of the DRC rule set for `pdk.get_grule("capmet")`. You can access the metal above capmet with `pdk.get_grule(capmet)["capmettop"]`. +### DRC +If the system has klayout installed and you provide a klayout lydrc script for your MappedPDK, you can run DRC from python by calling pdk.drc(Component or GDS). The return value is a boolean (legal or not legal) and a lyrdb (xml format) file is written describing each DRC error. This file can be opened graphically in klayout with the following syntax `klayout layout.gds -m drc.lyrdb` +### LVS, and Labeling Issues +There are no glayers for labeling or pins, all cells are generated without any labels. You can easily add pins to your component manually after pygen write the gds, or by using ports, you can write a function for adding labels and pins. See [sky130_nist_tapeout example function](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py#L97). +### Addressing Complicated Requirments with Default Decorators +A python decorator is a function (the decorator) is a function which is called on another function. It can be used to enhance the features of a function. With GDSFactory Pdk (and MappedPDK objects) you can define a default decorator which runs on any cell factory (cell factories must be decorated with the `@cell` decorator). The default decorator you define runs in addition to the `@cell` decorator. The defined default_decorator should accept as argument a Component and return a Component. +This should be used when dealing with PDK specfic requirments that do not fit into the MappedPDK framework. For example, sky130 has a NPC (nitride poly cut) layer which **must** be used wherever licon (local interconnect contact) is laid over poly. It does not make sense to modify MappedPDK to add a generic NPC layer AND modify all cell factories; sky130 is unqiue in this requirment, so modifying MappedPDK/all cell factories would make pygen less generic. Instead, we define a default_decorator [`sky130_add_npc(Component) -> Component`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py). This function uses booleans to add npc anywhere licon is laid over poly (it also joins NPC polygons if they are closer than the NPC min separation rule). Layers and rules in this technology specific function are hard coded because this decorator will only run for sky130 is the active pdk (this is one reason why you must be sure that pdk is activated). \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_def_beh.png b/openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_def_beh.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba6bf35fc8379ad0fa7059a1afddde6e4995089 GIT binary patch literal 18265 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 kfS-Ne>-QhCf10PgCmssI20 literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py index 8e2f414ab..4f2431a7b 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py @@ -42,19 +42,19 @@ class MappedPDK(Pdk): "capmet", ) - glayers: dict[StrictStr, StrictStr] + glayers: dict[StrictStr, Union[StrictStr, tuple[int,int]]] # friendly way to implement a graph grules: dict[StrictStr, dict[StrictStr, Optional[dict[StrictStr, Any]]]] klayout_lydrc_file: Optional[Path] = None @validator("glayers") - def glayers_check_keys(cls, glayers_obj: dict[StrictStr, StrictStr]): + def glayers_check_keys(cls, glayers_obj: dict[StrictStr, Union[StrictStr, tuple[int,int]]]): """force people to pick glayers from a finite set of string layers that you define checks glayers to ensure valid keys,type. Glayers must be passed as dict[str,str] if someone tries to pass a glayers dict that has a bad key, throw an error""" for glayer, mapped_layer in glayers_obj.items(): - if (not isinstance(glayer, str)) or (not isinstance(mapped_layer, str)): - raise TypeError("glayers should be passed as dict[str, str]") + if (not isinstance(glayer, str)) or (not isinstance(mapped_layer, Union[str, tuple])): + raise TypeError("glayers should be passed as dict[str, Union[StrictStr, tuple[int,int]]]") if glayer not in cls.valid_glayers: raise ValueError( "glayers keys must be one of generic layers listed in class variable valid_glayers" @@ -147,7 +147,11 @@ def has_required_glayers(self, layers_required: list[str]): raise ValueError( f"{layer!r} not in self.glayers {list(self.glayers.keys())}" ) - self.validate_layers([self.glayers[layer]]) + if isinstance(self.glayers[layer], str): + self.validate_layers([self.glayers[layer]]) + elif not isinstance(self.glayers[layer], tuple): + raise TypeError("glayer mapped value should be str or tuple[int,int]") + @validate_arguments def layer_to_glayer(self, layer: tuple[int, int]) -> str: @@ -156,23 +160,32 @@ def layer_to_glayer(self, layer: tuple[int, int]) -> str: takes layer as a tuple(int,int)""" # lambda for finding last matching key in dict from val find_last = lambda val, d: [x for x, y in d.items() if y == val].pop() - # find glayer verfying presence along the way - pdk_real_layers = self.layers.values() - if layer in pdk_real_layers: - layer_name = find_last(layer, self.layers) - if layer_name in self.glayers.values(): - glayer_name = find_last(layer_name, self.glayers) + if layer in self.glayers.values(): + return find_last(layer) + elif self.layers is not None: + # find glayer verfying presence along the way + pdk_real_layers = self.layers.values() + if layer in pdk_real_layers: + layer_name = find_last(layer, self.layers) + if layer_name in self.glayers.values(): + glayer_name = find_last(layer_name, self.glayers) + else: + raise ValueError("layer does not correspond to a glayer") else: - raise ValueError("layer does not correspond to a glayer") + raise ValueError("layer is not a layer present in the pdk") + return glayer_name else: - raise ValueError("layer is not a layer present in the pdk") - return glayer_name + raise ValueError("layer might not be a layer present in the pdk") # TODO: implement LayerSpec type @validate_arguments def get_glayer(self, layer: str) -> Layer: """Returns the pdk layer from the generic layer name""" - return self.get_layer(self.glayers[layer]) + direct_mapping = self.glayers[layer] + if isinstance(direct_mapping, tuple): + return direct_mapping + else: + return self.get_layer(direct_mapping) @validate_arguments def get_grule( diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py index 199a0979d..ad687b3cb 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py @@ -5,7 +5,7 @@ import math from gdsfactory.pdk import Pdk from pathlib import Path - +from typing import Union def get_files_with_extension(directory, extension): file_list = [] @@ -15,7 +15,7 @@ def get_files_with_extension(directory, extension): return file_list -def write_opamp_matrix(opamps_dir: Union[str,Path]="./"): +def write_opamp_matrix(opamps_dir: Union[str,Path]="./", xspace=400,yspace=300): """Use the write_opamp_matrix function to create a matrix of many different opamps reads the different opamps from all gds files in opamps_dir """ @@ -28,9 +28,11 @@ def write_opamp_matrix(opamps_dir: Union[str,Path]="./"): opamp_comp_list = list() for i,filev in enumerate(opamp_files_list): + if "big_gds_here" in str(filev): + continue tempcomp = import_gds(filev) tempcomp.name = "opamp"+str(i) - opamp_comp_list.append() + opamp_comp_list.append(tempcomp) col_len = round(math.sqrt(len(opamp_comp_list))) col_index = 0 @@ -40,7 +42,7 @@ def write_opamp_matrix(opamps_dir: Union[str,Path]="./"): if opamp_v is None: continue opref = big_comp << opamp_v - opref.movex(col_index * 200).movey(row_index*200) + opref.movex(col_index * xspace).movey(row_index*yspace) col_index += 1 if not col_index % col_len: col_index=0 From 266a8a9a06749892b1a82d393c4a55ea636b6c24 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Wed, 16 Aug 2023 16:26:53 -0400 Subject: [PATCH 41/64] port utils --- .../gdsfactory-gen/pygen/L_route.py | 5 +- .../gdsfactory-gen/pygen/c_route.py | 5 +- .../gdsfactory-gen/pygen/diff_pair.py | 11 +- .../generators/gdsfactory-gen/pygen/fet.py | 3 +- .../gdsfactory-gen/pygen/guardring.py | 3 +- .../generators/gdsfactory-gen/pygen/mimcap.py | 3 +- .../generators/gdsfactory-gen/pygen/opamp.py | 34 +- .../pygen/pdk/util/comp_utils.py | 255 ++++++++++ .../pygen/pdk/util/custom_comp_utils.py | 481 ------------------ .../pygen/pdk/util/port_utils.py | 266 ++++++++++ .../gdsfactory-gen/pygen/straight_route.py | 7 +- .../gdsfactory-gen/pygen/via_gen.py | 3 +- .../gdsfactory-gen/sky130_nist_tapeout.py | 11 +- 13 files changed, 571 insertions(+), 516 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py delete mode 100644 openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/L_route.py b/openfasoc/generators/gdsfactory-gen/pygen/L_route.py index 04c4062b4..11f8b2031 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/L_route.py @@ -5,7 +5,8 @@ from typing import Optional, Union from .via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from .pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port, rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_is_manhattan, assert_ports_perpindicular, to_decimal, to_float, prec_ref_center +from .pdk.util.comp_utils import evaluate_bbox, align_comp_to_port, to_decimal, to_float, prec_ref_center +from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_port_manhattan, assert_ports_perpindicular from decimal import Decimal @@ -46,7 +47,7 @@ def L_route( ****via offset can also be specfied as a tuple(bool,bool): movex? if viaoffset[0] and movey? if viaoffset[1] """ # error checking, TODO: validate layers - assert_is_manhattan([edge1,edge2]) + assert_port_manhattan([edge1,edge2]) assert_ports_perpindicular(edge1,edge2) pdk.activate() Lroute = Component() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py index d2b780f80..874ec3f37 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/c_route.py @@ -7,7 +7,8 @@ from .via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from .pdk.util.custom_comp_utils import evaluate_bbox, add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_orientation, get_orientation +from .pdk.util.comp_utils import evaluate_bbox +from .pdk.util.port_utils import add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_port_orientation, get_orientation from pydantic import validate_arguments @@ -190,7 +191,7 @@ def c_route( orta = get_orientation(port_to_add.orientation) #orta = "S" if orta=="N" else ("N" if orta=="S" else orta) #orta = "E" if orta=="W" else ("W" if orta=="E" else orta) - route_ports[i] = set_orientation(port_to_add, orta) + route_ports[i] = set_port_orientation(port_to_add, orta) croute.add_ports(route_ports,prefix="con_") return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index 260a295a9..ded1e91cc 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -11,7 +11,8 @@ from gdsfactory.routing.route_quad import route_quad from gdsfactory.routing.route_sharp import route_sharp from .c_route import c_route -from .pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, movex, movey, get_orientation, set_orientation, evaluate_bbox, align_comp_to_port +from .pdk.util.comp_utils import movex, movey, evaluate_bbox, align_comp_to_port +from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, get_orientation, set_port_orientation from .via_gen import via_stack from .pdk.util.snap_to_grid import component_snap_to_grid @@ -84,8 +85,8 @@ def diff_pair( drain_br_viatm.movey(0-bottom_extension - metal_space - width_drain_route/2 - viam2m3.ymax) diffpair << route_quad(drain_br_viatm.ports["top_met_N"], drain_br_via.ports["top_met_S"], layer=pdk.get_glayer("met3")) diffpair << route_quad(drain_bl_viatm.ports["top_met_N"], drain_bl_via.ports["top_met_S"], layer=pdk.get_glayer("met3")) - floating_port_drain_bottom_L = set_orientation(movey(drain_bl_via.ports["bottom_met_W"],0-bottom_extension), get_orientation("E")) - floating_port_drain_bottom_R = set_orientation(movey(drain_br_via.ports["bottom_met_E"],0-bottom_extension - metal_space - width_drain_route), get_orientation("W")) + floating_port_drain_bottom_L = set_port_orientation(movey(drain_bl_via.ports["bottom_met_W"],0-bottom_extension), get_orientation("E")) + floating_port_drain_bottom_R = set_port_orientation(movey(drain_br_via.ports["bottom_met_E"],0-bottom_extension - metal_space - width_drain_route), get_orientation("W")) drain_routeTR_BL = diffpair << c_route(pdk, floating_port_drain_bottom_L, b_topr.ports["multiplier_0_drain_E"],extension=dextension, width1=width_drain_route,width2=width_drain_route) drain_routeTL_BR = diffpair << c_route(pdk, floating_port_drain_bottom_R, a_topl.ports["multiplier_0_drain_W"],extension=dextension, width1=width_drain_route,width2=width_drain_route) # cross gate route top with c_route. bar_minus ABOVE bar_plus @@ -100,8 +101,8 @@ def diff_pair( bar_minus = (diffpair << bar_comp).movey(diffpair.ymax +bar_comp.ymax + plus_minus_seperation) MINUSgate_routeE = diffpair << c_route(pdk, b_topr.ports["multiplier_0_gate_E"], bar_minus.ports["e3"], extension=get_right_extension(bar_minus)) # lay MINUSgate_routeW and PLUSgate_routeE - MINUSgate_routeW = diffpair << c_route(pdk, set_orientation(b_botl.ports["multiplier_0_gate_E"],"W"), bar_minus.ports["e1"], extension=get_left_extension(bar_minus)) - PLUSgate_routeE = diffpair << c_route(pdk, set_orientation(a_botr.ports["multiplier_0_gate_W"],"E"), bar_plus.ports["e3"], extension=get_right_extension(bar_plus)) + MINUSgate_routeW = diffpair << c_route(pdk, set_port_orientation(b_botl.ports["multiplier_0_gate_E"],"W"), bar_minus.ports["e1"], extension=get_left_extension(bar_minus)) + PLUSgate_routeE = diffpair << c_route(pdk, set_port_orientation(a_botr.ports["multiplier_0_gate_W"],"E"), bar_plus.ports["e3"], extension=get_right_extension(bar_plus)) # correct pwell place, add ports, flatten, and return diffpair.add_ports(a_topl.get_ports_list(),prefix="tl_") diffpair.add_ports(b_topr.get_ports_list(),prefix="tr_") diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py index d85bda56a..92f7e0d79 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -7,7 +7,8 @@ from .via_gen import via_array, via_stack from .guardring import tapring from pydantic import validate_arguments -from .pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, to_float, to_decimal, prec_array, prec_center, prec_ref_center, movey, align_comp_to_port +from .pdk.util.comp_utils import evaluate_bbox, to_float, to_decimal, prec_array, prec_center, prec_ref_center, movey, align_comp_to_port +from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports from .c_route import c_route from .pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal diff --git a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py index 3fca1cb2b..b8aae1c33 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py @@ -5,7 +5,8 @@ from gdsfactory.components.rectangular_ring import rectangular_ring from .via_gen import via_array, via_stack from typing import Optional -from .pdk.util.custom_comp_utils import print_ports, to_decimal, to_float, evaluate_bbox +from .pdk.util.comp_utils import to_decimal, to_float, evaluate_bbox +from .pdk.util.port_utils import print_ports from .pdk.util.snap_to_grid import component_snap_to_grid from .L_route import L_route diff --git a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py index 3e52dff87..4b1b651bb 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py @@ -4,7 +4,8 @@ from .pdk.mappedpdk import MappedPDK from typing import Optional from .via_gen import via_array -from .pdk.util.custom_comp_utils import rename_ports_by_orientation, add_ports_perimeter, prec_array, print_ports, to_decimal, to_float +from .pdk.util.comp_utils import prec_array, to_decimal, to_float +from .pdk.util.port_utils import rename_ports_by_orientation, add_ports_perimeter, print_ports from pydantic import validate_arguments from .straight_route import straight_route from decimal import ROUND_UP, Decimal diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 0e8eef07b..ec809d610 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -1,20 +1,21 @@ from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from . pdk.mappedpdk import MappedPDK +from .pdk.mappedpdk import MappedPDK from typing import Optional -from . fet import nmos, pmos, multiplier -from . diff_pair import diff_pair -from . guardring import tapring -from . mimcap import mimcap_array, mimcap -from . L_route import L_route -from . c_route import c_route -from . via_gen import via_stack, via_array +from .fet import nmos, pmos, multiplier +from .diff_pair import diff_pair +from .guardring import tapring +from .mimcap import mimcap_array, mimcap +from .L_route import L_route +from .c_route import c_route +from .via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad -from . pdk.util.custom_comp_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, evaluate_bbox, prec_ref_center, movex, movey, set_orientation, to_decimal, to_float, move, align_comp_to_port +from .pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port +from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation from sys import exit -from . straight_route import straight_route -from . pdk.util.snap_to_grid import component_snap_to_grid +from .straight_route import straight_route +from .pdk.util.snap_to_grid import component_snap_to_grid from pydantic import validate_arguments @@ -33,7 +34,7 @@ def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) - opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) return opamp_top @@ -219,14 +220,15 @@ def opamp( # connect source of B to drain of 2R pcomps_route_B_source_extension = pmos_comps.xmax-max(LRsourcesPorts[-1].center[0],ptop_AB.ports["R_source_E"].center[0])+_max_metal_seperation_ps mimcap_connection_ref = pmos_comps << c_route(pdk, ptop_AB.ports["R_source_E"], LRdrainsPorts[-1],extension=pcomps_route_B_source_extension,viaoffset=(True,False)) - bottom_pcompB_floating_port = set_orientation(movey(movex(pbottom_AB.ports["L_source_E"].copy(),5*_max_metal_seperation_ps), destination=Aextra_top_connection.ports["e1"].center[1]+Aextra_top_connection.ports["e1"].width+_max_metal_seperation_ps),"S") + bottom_pcompB_floating_port = set_port_orientation(movey(movex(pbottom_AB.ports["L_source_E"].copy(),5*_max_metal_seperation_ps), destination=Aextra_top_connection.ports["e1"].center[1]+Aextra_top_connection.ports["e1"].width+_max_metal_seperation_ps),"S") pmos_bsource_2Rdrain_v = pmos_comps << L_route(pdk,pbottom_AB.ports["L_source_E"],bottom_pcompB_floating_port,vglayer="met3") - pmos_comps << c_route(pdk, LRdrainsPorts[-1], set_orientation(bottom_pcompB_floating_port,"E"),extension=pcomps_route_B_source_extension,viaoffset=(True,False)) + pmos_comps << c_route(pdk, LRdrainsPorts[-1], set_port_orientation(bottom_pcompB_floating_port,"E"),extension=pcomps_route_B_source_extension,viaoffset=(True,False)) pmos_bsource_2Rdrain_v_center = via_stack(pdk,"met2","met3",fulltop=True) pmos_comps.add(align_comp_to_port(pmos_bsource_2Rdrain_v_center, bottom_pcompB_floating_port,('r','t'))) # connect drain of B to each other directly over where the diffpair top left drain will be pmos_bdrain_diffpair_v = pmos_comps << via_stack(pdk, "met2","met5",fullbottom=True) - align_comp_to_port(pmos_bdrain_diffpair_v, movex(pbottom_AB.ports["L_gate_S"].copy(),destination=opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0])).movey(0-_max_metal_seperation_ps) + pmos_bdrain_diffpair_v = align_comp_to_port(pmos_bdrain_diffpair_v, movex(pbottom_AB.ports["L_gate_S"].copy(),destination=opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0])) + pmos_bdrain_diffpair_v.movey(0-_max_metal_seperation_ps) pcomps_route_B_drain_extension = pmos_comps.xmax-ptop_AB.ports["R_drain_E"].center[0]+_max_metal_seperation_ps pmos_comps << c_route(pdk, ptop_AB.ports["R_drain_E"], pmos_bdrain_diffpair_v.ports["bottom_met_E"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) pmos_comps << c_route(pdk, pbottom_AB.ports["L_drain_W"], pmos_bdrain_diffpair_v.ports["bottom_met_W"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) @@ -303,7 +305,7 @@ def opamp( # out pin output = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met5"),centered=True) output.movex(opamp_top.xmax).movey(opamp_top.ymin+output.ymax) - opamp_top << L_route(pdk, output.ports["e2"], set_orientation(n_to_p_output_route.ports["con_S"],"E")) + opamp_top << L_route(pdk, output.ports["e2"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E")) # route + and - pins plus_pin = opamp_top << rectangle(size=(5,2),layer=pdk.get_glayer("met4"),centered=True) plus_pin.movex(opamp_top.xmin).movey(_max_metal_seperation_ps + plus_pin.ymax + halfmultn_drain_routeref.ports["con_W"].center[1] + halfmultn_drain_routeref.ports["con_W"].width/2) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py new file mode 100644 index 000000000..ad6571b79 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py @@ -0,0 +1,255 @@ +from pydantic import validate_arguments +from gdsfactory.snap import snap_to_grid +from gdsfactory.typings import Component, ComponentReference +from gdsfactory.components.rectangle import rectangle +from gdsfactory.port import Port +from typing import Callable, Union, Optional,Iterable +from decimal import Decimal +from gdsfactory.functions import transformed +from gdsfactory.functions import move as __gf_move + + +@validate_arguments +def evaluate_bbox(custom_comp: Union[Component, ComponentReference], return_decimal: Optional[bool]=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: + """returns the length and height of a component like object""" + compbbox = custom_comp.bbox + width = abs(Decimal(str(compbbox[1][0])) - Decimal(str(compbbox[0][0]))) + height = abs(Decimal(str(compbbox[1][1])) - Decimal(str(compbbox[0][1]))) + if return_decimal: + return (width,height) + return (float(width),float(height)) + + +@validate_arguments +def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: tuple[float,float] = (0,0), destination: Optional[tuple[Optional[float],Optional[float]]]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: + """moves custom_comp + moves by offset[0]=x offset, offset[1]=y offset + destination (x,y) if not none overrides offset option + layer if specfied will move based on a layer (only relevant for destination option) + returns the modified custom_comp + """ + if layer and isinstance(custom_comp, Component): + custom_comp_ext = custom_comp.extract(layers=[layer,]) + elif layer and isinstance(custom_comp, ComponentReference): + raise NotImplementedError("layer not implemented for comp ref") + elif layer and isinstance(custom_comp,Port): + raise TypeError("move:layer option for Port does not exist") + else: + custom_comp_ext = custom_comp + if destination is not None: + xoffset = destination[0] - custom_comp_ext.center[0] if destination[0] is not None else 0 + yoffset = destination[1] - custom_comp_ext.center[1] if destination[1] is not None else 0 + if isinstance(custom_comp, Port): + if destination is None: + custom_comp = custom_comp.move_copy(offsetxy) + else: + custom_comp = custom_comp.move_copy((xoffset,yoffset)) + elif isinstance(custom_comp, ComponentReference): + if destination is None: + custom_comp.movex(offsetxy[0]).movey(offsetxy[1]) + else: + custom_comp.movex(xoffset).movey(yoffset) + elif isinstance(custom_comp, Component): + ref = custom_comp.copy().ref() + if destination is None: + ref.movex(offsetxy[0]).movey(offsetxy[1]) + else: + ref.movex(xoffset).movey(yoffset) + custom_comp = transformed(ref).copy() + return custom_comp + + +@validate_arguments +def movex(custom_comp: Union[Port, ComponentReference, Component], offsetx: Optional[float] = 0, destination: Optional[float]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: + """moves custom_comp by offsetx in the x direction + returns the modified custom_comp + """ + if destination is not None: + destination = (destination, None) + return move(custom_comp, (offsetx,0),destination,layer) + + +@validate_arguments +def movey(custom_comp: Union[Port, ComponentReference, Component], offsety: Optional[float] = 0, destination: Optional[float]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: + """moves custom_comp by offsety in the y direction + returns the modified custom_comp + """ + if destination is not None: + destination = (None, destination) + return move(custom_comp, (0,offsety),destination,layer) + + +@validate_arguments +def align_comp_to_port( + custom_comp: Union[Component,ComponentReference], + align_to: Port, + alignment: Optional[tuple[Optional[str],Optional[str]]] = None, + layer: Optional[tuple[int,int]] = None, + rtr_comp_ref = True +) -> Union[Component,ComponentReference]: + """Returns component/componentReference of component/componentReference aligned to port as specifed + by default returns a componentReference + for componentReference, the componentReference is modified (mutable), but for component, a copy of component is returned + args: + custom_comp = component to align properly + align_to = Port to align to + alignment = tuple(str,str) = (xalign,yalign). You can individually specify x/y algin=None and that means do nothing for that dim + ***NOTE, if left None, function will align component to outside and center of port (based on port orientation), specify (None,None) for real no align (do not move at all) + ****xalign = either l/left or r/right or c/center or None. component will be flush to right or left side of port or centered + ****yalgin = either t/top or b/bottom or c/center or None. top or bottom edge or center of component will align with port top/bottom/center + layer = extract this layer from the component and aligns to this layer. + rtr_comp_ref = will return a component reference if set true, else return component + """ + # find center and bbox + if isinstance(custom_comp, ComponentReference): + comp_type = transformed(custom_comp) + else: + comp_type = custom_comp + if layer: + comp_type = comp_type.extract([layer]) + cbbox = comp_type.bbox + ccenter = comp_type.center + # setup + xdim = abs(cbbox[1][0] - cbbox[0][0]) + ydim = abs(cbbox[1][1] - cbbox[0][1]) + width = align_to.width + is_EW = bool(round(align_to.orientation + 90) % 180) # not EW == NS + # error checks and decide orientation if None + if alignment is None: + if round(align_to.orientation) == 0:# facing east + xalign = "r" + yalign = "c" + elif round(align_to.orientation) == 180:# facing west + xalign = "l" + yalign = "c" + elif round(align_to.orientation) == 270:# facing south + xalign = "c" + yalign = "b" + elif round(align_to.orientation) == 90:#facing north + xalign = "c" + yalign = "t" + else: + raise ValueError("port must be vertical or horizontal") + else: + xalign = (alignment[0] or "none").lower() + yalign = (alignment[1] or "none").lower() + # compute translation x amount for x alignment + x_movcenter = align_to.center[0] - ccenter[0] + x_mov_lr = abs(xdim/2 if is_EW else (width-xdim)/2) + if "none" in xalign: + xmov = 0 + elif "l" in xalign: + xmov = x_movcenter - x_mov_lr + elif "r" in xalign: + xmov = x_movcenter + x_mov_lr + elif "c" in xalign: + xmov = x_movcenter + else: + raise ValueError("please specify valid x alignment of l/r/c/None") + # compute translation y amount for y alignment + y_movcenter = align_to.center[1] - ccenter[1] + y_move_updown = abs((width-ydim)/2 if is_EW else ydim/2) + if "none" in yalign: + ymov = 0 + elif "t" in yalign: + ymov = y_movcenter + y_move_updown + elif "b" in yalign: + ymov = y_movcenter - y_move_updown + elif "c" in yalign: + ymov = y_movcenter + else: + raise ValueError("please specify valid y alignment of t/b/c/None") + # make reference type, execute move + if isinstance(custom_comp, Component): + comp_ref = custom_comp.ref() + else: + comp_ref = custom_comp + comp_ref.movex(xmov).movey(ymov) + # make correct type and return + if rtr_comp_ref: + return comp_ref + else: + return transformed(comp_ref) + + +@validate_arguments +def to_decimal(elements: Union[tuple,list,float,int,str]): + """converts all elements of list like object into decimals + or converts single num into decimal""" + if not isinstance(elements,Iterable): + return Decimal(str(elements)) + else: + elements = list(elements) + for i, element in enumerate(elements): + if isinstance(element,Union[int,float]): + elements[i] = Decimal(str(element)) + return elements + +@validate_arguments +def to_float(elements: Union[tuple,list,Decimal,float]): + """converts all elements of list like object into floats and snaps to grid + or converts single decimal into floats""" + if not isinstance(elements,Iterable): + return snap_to_grid(float(elements)) + else: + elements = list(elements) + for i, element in enumerate(elements): + if isinstance(element, Union[float,Decimal]): + elements[i] = snap_to_grid(float(element)) + return elements + +@validate_arguments +def prec_array(custom_comp: Component, rows: int, columns: int, spacing: tuple[Union[float,Decimal],Union[float,Decimal]], absolute_spacing: Optional[bool]=False) -> Component: + """instead of using the component.add_array function, if you are having grid snapping issues try using this function + works the same way as add_array but uses decimals and snaps to grid to mitigate grid snapping issues + args + custom_comp: Component type to make an array from + columns: num cols in the array + rows: num rows in the array + absolute_spacing: the spacing mode of spacing variable + spacing: IF absolute_spacing spacing BETWEEN elements in the array ELSE spacing BETWEEN ORIGINS of elements in the array + ****NOTE do not use negative spacing, instead specify absolute_spacing=True + """ + # make sure to work with decimals + precspacing = list(spacing) + for i in range(2): + if isinstance(spacing[i],Union[int,float]): + precspacing[i] = Decimal(str(spacing[i])) + if not absolute_spacing: + precspacing = [precspacing[i] + evaluate_bbox(custom_comp,True)[i] for i in range(2)] + # create array + precarray = Component() + for colnum in range(columns): + coldisp = colnum * precspacing[0] + for rownum in range(rows): + rowdisp = rownum * precspacing[1] + cref = precarray << custom_comp + cref.movex(to_float(coldisp)).movey(to_float(rowdisp)) + precarray.add_ports(cref.get_ports_list(),prefix=f"row{rownum}_col{colnum}_") + return precarray.flatten() + + +@validate_arguments +def prec_center(custom_comp: Union[Component,ComponentReference], return_decimal: bool=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: + """instead of using component.ref_center() to get the center of a component, + use this function which will return the correct offset to center a component + returns (x,y) corrections + if return_decimal=True, return in Decimal, otherwise return float""" + correctmax = [dim/2 for dim in evaluate_bbox(custom_comp, True)] + currentmax = to_decimal((custom_comp.xmax,custom_comp.ymax)) + correctionxy = [correctmax[i] - currentmax[i] for i in range(2)] + if return_decimal: + return correctionxy + return to_float(correctionxy) + +@validate_arguments +def prec_ref_center(custom_comp: Union[Component,ComponentReference]) -> ComponentReference: + """instead of using component.ref_center() to get a ref to center at origin, + use this function which will return a centered ref + you can then run component.add(prec_ref_center(custom_comp)) to add the reference to your component + returns component reference + """ + compref = custom_comp if isinstance(custom_comp, ComponentReference) else custom_comp.ref() + xcor, ycor = prec_center(compref, False) + return compref.movex(xcor).movey(ycor) + diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py deleted file mode 100644 index 1094fb587..000000000 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py +++ /dev/null @@ -1,481 +0,0 @@ -from pydantic import validate_arguments -from gdsfactory.snap import snap_to_grid -from gdsfactory.typings import Component, ComponentReference -from gdsfactory.components.rectangle import rectangle -from gdsfactory.port import Port -from typing import Callable, Union, Optional,Iterable -from decimal import Decimal -from gdsfactory.functions import transformed - -@validate_arguments -def rename_component_ports(custom_comp: Component, rename_function: Callable[[str, Port], str]) -> Component: - """uses rename_function(str, Port) -> str to decide which ports to rename. - rename_function accepts the current port name (string) and current port (Port) then returns the new port name - rename_function can return new name = current port name, in which case the name will not change - rename_function should raise error if custom requirments for rename are not met - if you want to pass additional args to rename_function, implement a functor - custom_comp is the components to modify. the modified component is returned - """ - names_to_modify = list() - # find ports and get new names - for pname, pobj in custom_comp.ports.items(): - # error checking - if not pname == pobj.name: - raise ValueError("component may have an invalid ports dict") - - new_name = rename_function(pname, pobj) - - names_to_modify.append((pname,new_name)) - # modify names - for namepair in names_to_modify: - if namepair[0] in custom_comp.ports.keys(): - portobj = custom_comp.ports.pop(namepair[0]) - portobj.name = namepair[1] - custom_comp.ports[namepair[1]] = portobj - else: - raise KeyError("name "+str(namepair[0])+" not in component ports") - # returns modified component/component ref - return custom_comp - - -@validate_arguments -def rename_ports_by_orientation__call(old_name: str, pobj: Port) -> str: - """internal implementation of port orientation rename""" - if not "_" in old_name: - raise ValueError("portname must contain underscore \"_\" " + old_name) - # get new suffix (port orientation) - new_suffix = None - angle = pobj.orientation % 360 if pobj.orientation is not None else 0 - angle = round(angle) - if angle <= 45 or angle >= 315: - new_suffix = "E" - elif angle <= 135 and angle >= 45: - new_suffix = "N" - elif angle <= 225 and angle >= 135: - new_suffix = "W" - else: - new_suffix = "S" - # construct new name - old_str_split = old_name.rsplit("_", 1) - old_str_split[1] = new_suffix - new_name = "_".join(old_str_split) - return new_name - -@validate_arguments -def rename_ports_by_orientation(custom_comp: Component) -> Component: - """replaces the last part of the port name - (after the last underscore) with a direction - direction is one of N,E,S,W - returns the modified component - """ - return rename_component_ports(custom_comp, rename_ports_by_orientation__call) - - -class rename_ports_by_list__call: - def __init__(self, replace_list: list[tuple[str,str]] = []): - self.replace_list = dict(replace_list) - self.replace_history = dict.fromkeys(self.replace_list.keys()) - for keyword in self.replace_history: - self.replace_history[keyword] = 0 - @validate_arguments - def __call__(self, old_name: str, pobj: Port) -> str: - for keyword, newname in self.replace_list.items(): - if keyword in old_name: - self.replace_history[keyword] += 1 - return newname + str(self.replace_history[keyword]) - return old_name - -@validate_arguments -def rename_ports_by_list(custom_comp: Component, replace_list: list[tuple[str,str]]) -> Component: - """replace_list is a list of tuple(string, string) - if a port name contains tuple[0], the port will be renamed to tuple[1] - if tuple[1] is None or empty string raise error - when anaylzing a single port, if multiple keywords from the replace_list are found, first match is returned - since we cannot have duplicate port names, different ports that end up with the same name get numbered""" - rename_func = rename_ports_by_list__call(replace_list) - return rename_component_ports(custom_comp, rename_func) - - -@validate_arguments -def add_ports_perimeter(custom_comp: Component, layer: tuple[int, int], prefix: Optional[str] = "_") -> Component: - """adds ports to the outside perimeter of a cell - custom_comp = component to add ports to (returns the modified component) - layer = will extract this layer and take it as the bbox, ports will also be on this layer - prefix = prefix to add to the port names. Adds an underscore by default - """ - if "_" not in prefix: - raise ValueError("you need underscore char in prefix") - compbbox = custom_comp.extract(layers=(layer,)).bbox - width = compbbox[1][0] - compbbox[0][0] - height = compbbox[1][1] - compbbox[0][1] - size = (width, height) - temp = Component() - swref = temp << rectangle(layer=layer,size=size) - swref.move(destination=(custom_comp.bbox[0])) - temp.add_ports(swref.get_ports_list(),prefix=prefix) - temp = rename_ports_by_orientation(temp) - custom_comp.add_ports(temp.get_ports_list()) - return custom_comp - - -@validate_arguments -def print_ports(custom_comp: Union[Component, ComponentReference], names_only: Optional[bool] = True) -> None: - """prints ports in comp in a nice way - custom_comp = component to use - names_only = only print names if True else print name and port - """ - for key,val in custom_comp.ports.items(): - print(key) - if not names_only: - print(val) - print() - - -@validate_arguments -def evaluate_bbox(custom_comp: Union[Component, ComponentReference], return_decimal: Optional[bool]=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: - """returns the length and height of a component like object""" - compbbox = custom_comp.bbox - width = abs(Decimal(str(compbbox[1][0])) - Decimal(str(compbbox[0][0]))) - height = abs(Decimal(str(compbbox[1][1])) - Decimal(str(compbbox[0][1]))) - if return_decimal: - return (width,height) - return (float(width),float(height)) - - -@validate_arguments -def move(custom_comp: Union[Port, ComponentReference, Component], offsetxy: tuple[float,float] = (0,0), destination: Optional[tuple[Optional[float],Optional[float]]]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: - """moves custom_comp - moves by offset[0]=x offset, offset[1]=y offset - destination (x,y) if not none overrides offset option - layer if specfied will move based on a layer (only relevant for destination option) - returns the modified custom_comp - """ - if layer and isinstance(custom_comp, Component): - custom_comp_ext = custom_comp.extract(layers=[layer,]) - elif layer and isinstance(custom_comp, ComponentReference): - raise NotImplementedError("layer not implemented for comp ref") - elif layer and isinstance(custom_comp,Port): - raise TypeError("move:layer option for Port does not exist") - else: - custom_comp_ext = custom_comp - if destination is not None: - xoffset = destination[0] - custom_comp_ext.center[0] if destination[0] is not None else 0 - yoffset = destination[1] - custom_comp_ext.center[1] if destination[1] is not None else 0 - if isinstance(custom_comp, Port): - if destination is None: - custom_comp = custom_comp.move_copy(offsetxy) - else: - custom_comp = custom_comp.move_copy((xoffset,yoffset)) - elif isinstance(custom_comp, ComponentReference): - if destination is None: - custom_comp.movex(offsetxy[0]).movey(offsetxy[1]) - else: - custom_comp.movex(xoffset).movey(yoffset) - elif isinstance(custom_comp, Component): - ref = custom_comp.copy().ref() - if destination is None: - ref.movex(offsetxy[0]).movey(offsetxy[1]) - else: - ref.movex(xoffset).movey(yoffset) - custom_comp = transformed(ref).copy() - return custom_comp - - -@validate_arguments -def movex(custom_comp: Union[Port, ComponentReference, Component], offsetx: Optional[float] = 0, destination: Optional[float]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: - """moves custom_comp by offsetx in the x direction - returns the modified custom_comp - """ - if destination is not None: - destination = (destination, None) - return move(custom_comp, (offsetx,0),destination,layer) - - -@validate_arguments -def movey(custom_comp: Union[Port, ComponentReference, Component], offsety: Optional[float] = 0, destination: Optional[float]=None, layer: Optional[tuple[int,int]]=None) -> Union[Port, ComponentReference, Component]: - """moves custom_comp by offsety in the y direction - returns the modified custom_comp - """ - if destination is not None: - destination = (None, destination) - return move(custom_comp, (0,offsety),destination,layer) - - -@validate_arguments -def get_orientation(orientation: Union[int,float,str], int_only: Optional[bool]=False) -> Union[float,int,str]: - """returns the angle corresponding to port orientation - orientation must contain N/n,E/e,S/s,W/w - e.g. all the follwing are valid: - N/n or N/north,E/e or E/east,S/s or S/south, W/w or W/west - if int_only, will return int regardless of input type, - else will return the opposite type of that given - (i.e. will return str if given int/float and int if given str) - """ - if isinstance(orientation,str): - orientation = orientation.lower() - if "n" in orientation: - return 90 - elif "e" in orientation: - return 0 - elif "w" in orientation: - return 180 - elif "s" in orientation: - return 270 - else: - raise ValueError("orientation must contain N/n,E/e,S/s,W/w") - else:# must be a float/int - orientation = int(orientation) - if int_only: - return orientation - orientation_index = int((orientation % 360) / 90) - orientations = ["E","N","W","S"] - try: - orientation = orientations[orientation_index] - except IndexError as e: - raise ValueError("orientation must be 0,90,180,270 to use this function") - return orientation - - -@validate_arguments -def assert_is_manhattan(edges: Union[list[Port],Port]) -> bool: - """raises assertionerror if port is not vertical or horizontal""" - if isinstance(edges, Port): - edges = [edges] - for edge in edges: - if round(edge.orientation) % 90 != 0: - raise AssertionError("edge is not vertical or horizontal") - return True - - -@validate_arguments -def assert_ports_perpindicular(edge1: Port, edge2: Port) -> bool: - """raises assertionerror if edges are not perindicular""" - or1 = round(edge1.orientation) - or2 = round(edge2.orientation) - angle_difference = abs(round(or1-or2)) - if angle_difference != 90 and angle_difference != 270: - raise AssertionError("edges are not perpindicular") - return True - - -@validate_arguments -def set_orientation(custom_comp: Port, orientation: Union[float, int, str], flip180: Optional[bool]=False) -> Port: - """creates a new port with the desired orientation and returns the new port""" - if isinstance(orientation,str): - orientation = get_orientation(orientation, int_only=True) - if flip180: - orientation = (orientation + 180) % 360 - newport = Port( - name = custom_comp.name, - center = custom_comp.center, - orientation = orientation, - parent = custom_comp.parent, - port_type = custom_comp.port_type, - cross_section = custom_comp.cross_section, - shear_angle = custom_comp.shear_angle, - layer = custom_comp.layer, - width = custom_comp.width, - ) - return newport - - -@validate_arguments -def set_port_width(custom_comp: Port, width: float) -> Port: - """creates a new port with the desired width and returns the new port""" - newport = Port( - name = custom_comp.name, - center = custom_comp.center, - orientation = custom_comp.orientation, - parent = custom_comp.parent, - port_type = custom_comp.port_type, - cross_section = custom_comp.cross_section, - shear_angle = custom_comp.shear_angle, - layer = custom_comp.layer, - width = width, - ) - return newport - - -@validate_arguments -def align_comp_to_port( - custom_comp: Union[Component,ComponentReference], - align_to: Port, - alignment: Optional[tuple[Optional[str],Optional[str]]] = None, - layer: Optional[tuple[int,int]] = None, - rtr_comp_ref = True -) -> Union[Component,ComponentReference]: - """Returns component reference of component aligned to port as specifed - custom_comp = component to align properly - align_to = Port to align to - alignment = tuple(str,str) = (xalign,yalign). You can individually specify x/y algin=None and that means do nothing for that dim - ***NOTE, if left None, function will align component to outside and center of port (based on port orientation), specify (None,None) for real no align - ****xalign = either l/left or r/right or c/center or None. component will be flush to right or left side of port or centered - ****yalgin = either t/top or b/bottom or c/center or None. top or bottom edge or center of component will align with port top/bottom/center - layer = extract this layer from the component and aligns to this layer. ONLY AVIALABLE FOR Component type - rtr_comp_ref = will return a component reference if set true - """ - if isinstance(custom_comp, Component): - try: - custom_comp.is_unlocked() - except Exception: - custom_comp = custom_comp.copy() - elif layer: - raise NotImplementedError("layer option only avialable for Component type") - # error checks and decide orientation if None - if alignment is None: - if round(align_to.orientation) == 0:# facing east - xalign = "r" - yalign = "c" - elif round(align_to.orientation) == 180:# facing west - xalign = "l" - yalign = "c" - elif round(align_to.orientation) == 270:# facing south - xalign = "c" - yalign = "b" - elif round(align_to.orientation) == 90:#facing north - xalign = "c" - yalign = "t" - else: - raise ValueError("port must be vertical or horizontal") - else: - xalign = alignment[0] or "none" - yalign = alignment[1] or "none" - # setup - is_EW = bool(round(align_to.orientation + 90) % 180) - xalign = xalign.lower() - yalign = yalign.lower() - if isinstance(custom_comp, Component): - if layer: - custom_comp_ext = custom_comp.extract(layers=[layer,]) - else: - custom_comp_ext=custom_comp - else: - custom_comp_ext = custom_comp - if xalign!="none": - custom_comp = movex(custom_comp, destination=tuple(align_to.center)[0], layer=layer) - if yalign!="none": - custom_comp = movey(custom_comp, destination=tuple(align_to.center)[1], layer=layer) - width = align_to.width - xdim = evaluate_bbox(custom_comp_ext)[0] - ydim = evaluate_bbox(custom_comp_ext)[1] - #xalign - xmov = 0 - if "l" in xalign: - if not is_EW: - xmov = -1 * abs((width - xdim)/2) - else: - xmov = -1 * abs(xdim/2) - elif "r" in xalign: - if not is_EW: - xmov = abs((width - xdim)/2) - else: - xmov = abs(xdim/2) - elif "c" in xalign or "none" in xalign: - pass - else: - raise ValueError("please specify valid x alignment of l/r/c/None") - # yalign - ymov = 0 - if "t" in yalign: - if not is_EW: - ymov = abs(ydim/2) - else: - ymov = abs((width - ydim)/2) - elif "b" in yalign: - if not is_EW: - ymov = -1 * abs(ydim/2) - else: - ymov = -1 * abs((width - ydim)/2) - elif "c" in yalign or "none" in yalign: - pass - else: - raise ValueError("please specify valid y alignment of t/b/c/None") - # move, make correct type, and return - custom_comp = move(custom_comp,(xmov,ymov)) - ref = None - if isinstance(custom_comp,Component): - ref = custom_comp.ref() - return ref or custom_comp - - -@validate_arguments -def to_decimal(elements: Union[tuple,list,float,int,str]): - """converts all elements of list like object into decimals - or converts single num into decimal""" - if not isinstance(elements,Iterable): - return Decimal(str(elements)) - else: - elements = list(elements) - for i, element in enumerate(elements): - if isinstance(element,Union[int,float]): - elements[i] = Decimal(str(element)) - return elements - -@validate_arguments -def to_float(elements: Union[tuple,list,Decimal,float]): - """converts all elements of list like object into floats and snaps to grid - or converts single decimal into floats""" - if not isinstance(elements,Iterable): - return snap_to_grid(float(elements)) - else: - elements = list(elements) - for i, element in enumerate(elements): - if isinstance(element, Union[float,Decimal]): - elements[i] = snap_to_grid(float(element)) - return elements - -@validate_arguments -def prec_array(custom_comp: Component, rows: int, columns: int, spacing: tuple[Union[float,Decimal],Union[float,Decimal]], absolute_spacing: Optional[bool]=False) -> Component: - """instead of using the component.add_array function, if you are having grid snapping issues try using this function - works the same way as add_array but uses decimals and snaps to grid to mitigate grid snapping issues - args - custom_comp: Component type to make an array from - columns: num cols in the array - rows: num rows in the array - absolute_spacing: the spacing mode of spacing variable - spacing: IF absolute_spacing spacing BETWEEN elements in the array ELSE spacing BETWEEN ORIGINS of elements in the array - ****NOTE do not use negative spacing, instead specify absolute_spacing=True - """ - # make sure to work with decimals - precspacing = list(spacing) - for i in range(2): - if isinstance(spacing[i],Union[int,float]): - precspacing[i] = Decimal(str(spacing[i])) - if not absolute_spacing: - precspacing = [precspacing[i] + evaluate_bbox(custom_comp,True)[i] for i in range(2)] - # create array - precarray = Component() - for colnum in range(columns): - coldisp = colnum * precspacing[0] - for rownum in range(rows): - rowdisp = rownum * precspacing[1] - cref = precarray << custom_comp - cref.movex(to_float(coldisp)).movey(to_float(rowdisp)) - precarray.add_ports(cref.get_ports_list(),prefix=f"row{rownum}_col{colnum}_") - return precarray.flatten() - - -@validate_arguments -def prec_center(custom_comp: Union[Component,ComponentReference], return_decimal: bool=False) -> tuple[Union[float,Decimal],Union[float,Decimal]]: - """instead of using component.ref_center() to get the center of a component, - use this function which will return the correct offset to center a component - returns (x,y) corrections - if return_decimal=True, return in Decimal, otherwise return float""" - correctmax = [dim/2 for dim in evaluate_bbox(custom_comp, True)] - currentmax = to_decimal((custom_comp.xmax,custom_comp.ymax)) - correctionxy = [correctmax[i] - currentmax[i] for i in range(2)] - if return_decimal: - return correctionxy - return to_float(correctionxy) - -@validate_arguments -def prec_ref_center(custom_comp: Union[Component,ComponentReference]) -> ComponentReference: - """instead of using component.ref_center() to get a ref to center at origin, - use this function which will return a centered ref - you can then run component.add(prec_ref_center(custom_comp)) to add the reference to your component - returns component reference - """ - compref = custom_comp if isinstance(custom_comp, ComponentReference) else custom_comp.ref() - xcor, ycor = prec_center(compref, False) - return compref.movex(xcor).movey(ycor) - diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py new file mode 100644 index 000000000..2f5c40f1d --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py @@ -0,0 +1,266 @@ +from pydantic import validate_arguments +from gdsfactory.typings import Component, ComponentReference +from gdsfactory.components.rectangle import rectangle +from gdsfactory.port import Port +from typing import Callable, Union, Optional +from decimal import Decimal + + +@validate_arguments +def rename_component_ports(custom_comp: Component, rename_function: Callable[[str, Port], str]) -> Component: + """uses rename_function(str, Port) -> str to decide which ports to rename. + rename_function accepts the current port name (string) and current port (Port) then returns the new port name + rename_function can return new name = current port name, in which case the name will not change + rename_function should raise error if custom requirments for rename are not met + if you want to pass additional args to rename_function, implement a functor + custom_comp is the components to modify. the modified component is returned + """ + names_to_modify = list() + # find ports and get new names + for pname, pobj in custom_comp.ports.items(): + # error checking + if not pname == pobj.name: + raise ValueError("component may have an invalid ports dict") + + new_name = rename_function(pname, pobj) + + names_to_modify.append((pname,new_name)) + # modify names + for namepair in names_to_modify: + if namepair[0] in custom_comp.ports.keys(): + portobj = custom_comp.ports.pop(namepair[0]) + portobj.name = namepair[1] + custom_comp.ports[namepair[1]] = portobj + else: + raise KeyError("name "+str(namepair[0])+" not in component ports") + # returns modified component/component ref + return custom_comp + + +@validate_arguments +def rename_ports_by_orientation__call(old_name: str, pobj: Port) -> str: + """internal implementation of port orientation rename""" + if not "_" in old_name: + raise ValueError("portname must contain underscore \"_\" " + old_name) + # get new suffix (port orientation) + new_suffix = None + angle = pobj.orientation % 360 if pobj.orientation is not None else 0 + angle = round(angle) + if angle <= 45 or angle >= 315: + new_suffix = "E" + elif angle <= 135 and angle >= 45: + new_suffix = "N" + elif angle <= 225 and angle >= 135: + new_suffix = "W" + else: + new_suffix = "S" + # construct new name + old_str_split = old_name.rsplit("_", 1) + old_str_split[1] = new_suffix + new_name = "_".join(old_str_split) + return new_name + +@validate_arguments +def rename_ports_by_orientation(custom_comp: Component) -> Component: + """replaces the last part of the port name + (after the last underscore) with a direction + direction is one of N,E,S,W + returns the modified component + """ + return rename_component_ports(custom_comp, rename_ports_by_orientation__call) + + +class rename_ports_by_list__call: + def __init__(self, replace_list: list[tuple[str,str]] = []): + self.replace_list = dict(replace_list) + self.replace_history = dict.fromkeys(self.replace_list.keys()) + for keyword in self.replace_history: + self.replace_history[keyword] = 0 + @validate_arguments + def __call__(self, old_name: str, pobj: Port) -> str: + for keyword, newname in self.replace_list.items(): + if keyword in old_name: + self.replace_history[keyword] += 1 + return newname + str(self.replace_history[keyword]) + return old_name + +@validate_arguments +def rename_ports_by_list(custom_comp: Component, replace_list: list[tuple[str,str]]) -> Component: + """replace_list is a list of tuple(string, string) + if a port name contains tuple[0], the port will be renamed to tuple[1] + if tuple[1] is None or empty string raise error + when anaylzing a single port, if multiple keywords from the replace_list are found, first match is returned + since we cannot have duplicate port names, different ports that end up with the same name get numbered""" + rename_func = rename_ports_by_list__call(replace_list) + return rename_component_ports(custom_comp, rename_func) + + +@validate_arguments +def add_ports_perimeter(custom_comp: Component, layer: tuple[int, int], prefix: Optional[str] = "_") -> Component: + """adds ports to the outside perimeter of a cell + custom_comp = component to add ports to (returns the modified component) + layer = will extract this layer and take it as the bbox, ports will also be on this layer + prefix = prefix to add to the port names. Adds an underscore by default + """ + if "_" not in prefix: + raise ValueError("you need underscore char in prefix") + compbbox = custom_comp.extract(layers=(layer,)).bbox + width = compbbox[1][0] - compbbox[0][0] + height = compbbox[1][1] - compbbox[0][1] + size = (width, height) + temp = Component() + swref = temp << rectangle(layer=layer,size=size) + swref.move(destination=(custom_comp.bbox[0])) + temp.add_ports(swref.get_ports_list(),prefix=prefix) + temp = rename_ports_by_orientation(temp) + custom_comp.add_ports(temp.get_ports_list()) + return custom_comp + + +@validate_arguments +def get_orientation(orientation: Union[int,float,str], int_only: Optional[bool]=False) -> Union[float,int,str]: + """returns the angle corresponding to port orientation + orientation must contain N/n,E/e,S/s,W/w + e.g. all the follwing are valid: + N/n or N/north,E/e or E/east,S/s or S/south, W/w or W/west + if int_only, will return int regardless of input type, + else will return the opposite type of that given + (i.e. will return str if given int/float and int if given str) + """ + if isinstance(orientation,str): + orientation = orientation.lower() + if "n" in orientation: + return 90 + elif "e" in orientation: + return 0 + elif "w" in orientation: + return 180 + elif "s" in orientation: + return 270 + else: + raise ValueError("orientation must contain N/n,E/e,S/s,W/w") + else:# must be a float/int + orientation = int(orientation) + if int_only: + return orientation + orientation_index = int((orientation % 360) / 90) + orientations = ["E","N","W","S"] + try: + orientation = orientations[orientation_index] + except IndexError as e: + raise ValueError("orientation must be 0,90,180,270 to use this function") + return orientation + + +@validate_arguments +def assert_port_manhattan(edges: Union[list[Port],Port]) -> bool: + """raises assertionerror if port is not vertical or horizontal""" + if isinstance(edges, Port): + edges = [edges] + for edge in edges: + if round(edge.orientation) % 90 != 0: + raise AssertionError("edge is not vertical or horizontal") + return True + + +@validate_arguments +def assert_ports_perpindicular(edge1: Port, edge2: Port) -> bool: + """raises assertionerror if edges are not perindicular""" + or1 = round(edge1.orientation) + or2 = round(edge2.orientation) + angle_difference = abs(round(or1-or2)) + if angle_difference != 90 and angle_difference != 270: + raise AssertionError("edges are not perpindicular") + return True + + +@validate_arguments +def set_port_orientation(custom_comp: Port, orientation: Union[float, int, str], flip180: Optional[bool]=False) -> Port: + """creates a new port with the desired orientation and returns the new port""" + if isinstance(orientation,str): + orientation = get_orientation(orientation, int_only=True) + if flip180: + orientation = (orientation + 180) % 360 + newport = Port( + name = custom_comp.name, + center = custom_comp.center, + orientation = orientation, + parent = custom_comp.parent, + port_type = custom_comp.port_type, + cross_section = custom_comp.cross_section, + shear_angle = custom_comp.shear_angle, + layer = custom_comp.layer, + width = custom_comp.width, + ) + return newport + + +@validate_arguments +def set_port_width(custom_comp: Port, width: float) -> Port: + """creates a new port with the desired width and returns the new port""" + newport = Port( + name = custom_comp.name, + center = custom_comp.center, + orientation = custom_comp.orientation, + parent = custom_comp.parent, + port_type = custom_comp.port_type, + cross_section = custom_comp.cross_section, + shear_angle = custom_comp.shear_angle, + layer = custom_comp.layer, + width = width, + ) + return newport + + +@validate_arguments +def print_ports(custom_comp: Union[Component, ComponentReference], names_only: Optional[bool] = True) -> None: + """prints ports in comp in a nice way + custom_comp = component to use + names_only = only print names if True else print name and port + """ + for key,val in custom_comp.ports.items(): + print(key) + if not names_only: + print(val) + print() + + + +class PortTree: + """PortTree helps a pygen programmer visualize the ports in a component + _ should represent a level of hiearchy (much like a directory). think of this like psuedo directories + Initialize a PortTree from a Component or ComponentReference + then use PortTree.ls to list all ports/subdirectories in a directory + """ + + @validate_arguments + def __init__(custom_comp: Union[Component, ComponentReference]) -> dict: + """creates the tree structure from the ports where _ represent subdirectories + credit -> chatGPT + """ + file_list = custom_comp.ports.keys() + directory_tree = {} + for file_path in file_list: + path_components = file_path.split('_') + current_dir = directory_tree + for path_component in path_components: + if path_component not in current_dir: + current_dir[path_component] = {} + current_dir = current_dir[path_component] + self.tree = directory_tree + + @validate_arguments + def ls(file_path: str) -> list[str]: + """tries to traverse the tree along the given path and prints all subdirectories in a psuedo directory + if the path given is not found in the tree, raises KeyError + path should not end with _ char + """ + if len(file_path)==0: + return list(self.directory_tree.keys()) + path_components = path.split('_') + current_dir = self.directory_tree + for path_component in path_components: + if path_component not in current_dir: + raise KeyError("Port path was not found") + current_dir = current_dir[path_component] + return list(current_dir.keys()) \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py index 900261dc1..8ffd34447 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py @@ -5,7 +5,8 @@ from typing import Optional from .via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from .pdk.util.custom_comp_utils import evaluate_bbox, align_comp_to_port,assert_is_manhattan, set_orientation +from .pdk.util.comp_utils import evaluate_bbox, align_comp_to_port +from .pdk.util.port_utils import assert_port_manhattan, set_port_orientation @cell @@ -46,9 +47,9 @@ def straight_route( if glayer1 != pdk.layer_to_glayer(edge1.layer): front_via = via_stack(pdk,glayer1,pdk.layer_to_glayer(edge1.layer),fullbottom=fullbottom) glayer2 = glayer2 if glayer2 else pdk.layer_to_glayer(edge2.layer) - assert_is_manhattan([edge1,edge2]) + assert_port_manhattan([edge1,edge2]) if edge1.orientation == edge2.orientation: - edge2 = set_orientation(edge2,edge2.orientation,flip180=True) + edge2 = set_port_orientation(edge2,edge2.orientation,flip180=True) pdk.activate() # find extension length and direction edge1_is_EW = bool(round(edge1.orientation + 90) % 180) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py index be94455a7..e7bb06a87 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py @@ -5,7 +5,8 @@ from .pdk.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from .pdk.util.custom_comp_utils import rename_ports_by_orientation, evaluate_bbox, prec_array, print_ports, to_float, move, prec_ref_center, to_decimal +from .pdk.util.comp_utils import evaluate_bbox, prec_array, to_float, move, prec_ref_center, to_decimal +from .pdk.util.port_utils import rename_ports_by_orientation, print_ports from .pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal from typing import Literal diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index a92709ffe..ff628f7b9 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -4,7 +4,8 @@ from gdsfactory.read.import_gds import import_gds from gdsfactory.components import text_freetype, rectangle -from pygen.pdk.util.custom_comp_utils import prec_array, add_ports_perimeter, movey, print_ports, align_comp_to_port +from pygen.pdk.util.comp_utils import prec_array, movey, align_comp_to_port +from pygen.pdk.util.port_utils import add_ports_perimeter, print_ports from gdsfactory.component import Component from pygen.pdk.mappedpdk import MappedPDK from pygen.opamp import opamp @@ -803,6 +804,7 @@ def extract_stats( gen_opamp_parser.add_argument("--mim_cap_size", nargs=2, type=int, default=[12, 12], help="mim_cap_size (default: 12 12)") gen_opamp_parser.add_argument("--mim_cap_rows", type=int, default=3, help="mim_cap_rows (default: 3)") gen_opamp_parser.add_argument("--rmult", type=int, default=2, help="rmult (default: 2)") + gen_opamp_parser.add_argument("--add_pads",action="store_true" , help="add pads (gen_opamp mode only)") gen_opamp_parser.add_argument("--output_gds", help="Filename for outputing opamp (gen_opamp mode only)") gen_opamp_parser.add_argument("--temp", type=float, default=float(27), help="Simulation temperature") @@ -844,8 +846,11 @@ def extract_stats( mim_cap_rows=mim_cap_rows, rmult=rmult, ) - opamp_comp_labels = sky130_add_opamp_labels(opamp_comp) - opamp_comp_final = sky130_opamp_add_pads(opamp_comp_labels) + if args.add_pads: + opamp_comp_labels = sky130_add_opamp_labels(opamp_comp) + opamp_comp_final = sky130_opamp_add_pads(opamp_comp_labels) + else: + opamp_comp_final = opamp_comp opamp_comp_final.show() if args.output_gds: opamp_comp_final.write_gds(args.output_gds) From 481977a119f83b4b0d521c3a5ae49269312b8bc3 Mon Sep 17 00:00:00 2001 From: Ryan Wans Date: Wed, 16 Aug 2023 21:00:24 +0000 Subject: [PATCH 42/64] fix port tree issue, add lvt layer --- .../pygen/pdk/util/port_utils.py | 12 +++---- .../gdsfactory-gen/sky130_nist_tapeout.py | 34 +++++++++++++++++++ 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py index 2f5c40f1d..be410a59e 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py @@ -234,7 +234,7 @@ class PortTree: """ @validate_arguments - def __init__(custom_comp: Union[Component, ComponentReference]) -> dict: + def __init__(self, custom_comp: Union[Component, ComponentReference]) -> dict: """creates the tree structure from the ports where _ represent subdirectories credit -> chatGPT """ @@ -250,15 +250,15 @@ def __init__(custom_comp: Union[Component, ComponentReference]) -> dict: self.tree = directory_tree @validate_arguments - def ls(file_path: str) -> list[str]: + def ls(self, file_path: Optional[str] = None) -> list[str]: """tries to traverse the tree along the given path and prints all subdirectories in a psuedo directory if the path given is not found in the tree, raises KeyError path should not end with _ char """ - if len(file_path)==0: - return list(self.directory_tree.keys()) - path_components = path.split('_') - current_dir = self.directory_tree + if file_path is None or len(file_path)==0: + return list(self.tree.keys()) + path_components = file_path.split('_') + current_dir = self.tree for path_component in path_components: if path_component not in current_dir: raise KeyError("Port path was not found") diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index ff628f7b9..0884bfead 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -141,6 +141,39 @@ def sky130_add_opamp_labels(opamp_in: Component) -> Component: opamp_in.add(compref) return opamp_in.flatten() +def sky130_add_lvt_layer(opamp_in: Component) -> Component: + opamp_in.unlock() + + # define layers + lvt_layer = (125,44) + + # define geometry + SW_S_edge = opamp_in.ports["pcomps_halfp_l_multiplier_0_plusdoped_S"] + SW_W_edge = opamp_in.ports["pcomps_halfp_l_multiplier_0_plusdoped_W"] + NE_N_edge = opamp_in.ports["pcomps_halfp_r_multiplier_2_plusdoped_N"] + NE_E_edge = opamp_in.ports["pcomps_halfp_r_multiplier_2_plusdoped_E"] + SW_S_center = SW_S_edge.center + SW_W_center = SW_W_edge.center + NE_N_center = NE_N_edge.center + NE_E_center = NE_E_edge.center + SW_corner = [SW_W_center[0], SW_S_center[1]] + NE_corner = [NE_E_center[0], NE_N_center[1]] + middle_top_y = opamp_in.ports["pcomps_ptopAB_L_plusdoped_N"].center[1] + middle_bottom_y = opamp_in.ports["pcomps_pbottomAB_R_plusdoped_S"].center[1] + max_y = max(middle_top_y, NE_corner[1]) + min_y = min(middle_bottom_y, SW_corner[1]) + abs_center = (SW_corner[0] + (NE_corner[0] - SW_corner[0])/2, min_y + (max_y - min_y)/2) + + # draw lvt rectangle + LVT_rectangle = rectangle(layer=lvt_layer, size=(abs(NE_corner[0] - SW_corner[0]), abs(max_y - min_y)), centered=True) + LVT_rectangle_ref = opamp_in << LVT_rectangle + + # align lvt rectangle to the plusdoped_N region + LVT_rectangle_ref.move(origin=(0, 0), destination=abs_center) + # opamp_in.write_gds("opamp_with_lvt_layer.gds") + + return opamp_in + # ====Run Training==== @@ -846,6 +879,7 @@ def extract_stats( mim_cap_rows=mim_cap_rows, rmult=rmult, ) + opamp_comp = sky130_add_lvt_layer(opamp_comp) if args.add_pads: opamp_comp_labels = sky130_add_opamp_labels(opamp_comp) opamp_comp_final = sky130_opamp_add_pads(opamp_comp_labels) From 9efa9904dc4cf4bd47deea4d5c11492448911762 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Sat, 19 Aug 2023 10:14:49 -0400 Subject: [PATCH 43/64] two transistor auto place --- .../gdsfactory-gen/opamp_perf_eval.sp | 21 +- .../pygen/common/place2transistors.py | 51 +++ .../gdsfactory-gen/pygen/diff_pair.py | 14 +- .../generators/gdsfactory-gen/pygen/fet.py | 16 +- .../gdsfactory-gen/pygen/guardring.py | 12 +- .../generators/gdsfactory-gen/pygen/mimcap.py | 10 +- .../generators/gdsfactory-gen/pygen/opamp.py | 57 +-- .../pygen/pdk/sky130_mapped/sky130_add_npc.py | 36 ++ .../pygen/pdk/util/port_utils.py | 23 +- .../pygen/{ => routing}/L_route.py | 10 +- .../pygen/{ => routing}/c_route.py | 10 +- .../pygen/{ => routing}/straight_route.py | 10 +- .../gdsfactory-gen/pygen/via_gen.py | 8 +- .../sky130A/cryo_models/nshort.spice | 420 ++++++++++++++++++ .../sky130A/cryo_models/nshortlvth.spice | 420 ++++++++++++++++++ .../sky130A/cryo_models/pmos.spice | 419 +++++++++++++++++ .../gdsfactory-gen/sky130_nist_tapeout.py | 108 +++-- 17 files changed, 1521 insertions(+), 124 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/common/place2transistors.py rename openfasoc/generators/gdsfactory-gen/pygen/{ => routing}/L_route.py (91%) rename openfasoc/generators/gdsfactory-gen/pygen/{ => routing}/c_route.py (96%) rename openfasoc/generators/gdsfactory-gen/pygen/{ => routing}/straight_route.py (91%) create mode 100644 openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshort.spice create mode 100644 openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshortlvth.spice create mode 100644 openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/pmos.spice diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp index 7fbeac14e..31ab97617 100644 --- a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp @@ -23,19 +23,24 @@ Vbias1 bias1 GND {b1} Vindc net1 GND 1 .save i(vindc) -** Import SKY130 libs (this should be replaced with a path relative to some env variable) -** Ali -** .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt -** .include /usr/local/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +** Import SKY130 libs (this should be replaced with a path relative to some env variable) +* the ones with double * will not be used. The one with only 1 * will be used ** Ryan -* .lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt -* .include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +** .lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt +**@@stp .include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice -** Actual +** GCP machine .lib /usr/bin/miniconda3/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt -.include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice +*@@stp .include /usr/bin/miniconda3/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + + +** Import cryo libs (these are stored in the sky130A folder) +*@@cryo .include ./sky130A/cryo_models/nshort.spice +*@@cryo .include ./sky130A/cryo_models/nshortlvth.spice +*@@cryo .include ./sky130A/cryo_models/pmos.spice + ** Import opamp subcircuit .include opamp_pex.spice diff --git a/openfasoc/generators/gdsfactory-gen/pygen/common/place2transistors.py b/openfasoc/generators/gdsfactory-gen/pygen/common/place2transistors.py new file mode 100644 index 000000000..634c220a3 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/common/place2transistors.py @@ -0,0 +1,51 @@ +from pygen.pdk.mappedpdk import MappedPDK +from pydantic import validate_arguments +from gdsfactory.component import Component +from typing import Callable +from pygen.fet import nmos, pmos +from pygen.pdk.util.comp_utils import evaluate_bbox + +@validate_arguments +def two_transistor_place(pdk: MappedPDK, pattern: str, deviceA: tuple[Callable, dict], deviceB: tuple[Callable, dict]) -> Component: + """Place two transitors according to the patter provided + args: + pdk = MappedPDK to use + pattern = placement pattern. This string must contain only white space, the char a, the char b. + **** any other chars result in error. White space indicates a new row in the place + **** all rows must have same number of cols + deviceA/deviceB = tuple(function to call, kwargs for function) kwargs must include pdk + """ + toplvlcomp = Component("2tranplace") + # create the transistors + tranA = deviceA[0](**deviceA[1]) + tranA_dims = evaluate_bbox(tranA) + tranB = deviceB[0](**deviceB[1]) + tranB_dims = evaluate_bbox(tranB) + # parse pattern into a matrix + pattern = pattern.lower().split() + parsed_pattern = list() + for i, row in enumerate(pattern): + parsed_pattern.append(list()) + if i==0: + num_cols = len(row) + elif len(row)!=num_cols: + raise ValueError("all rows should have same number of devices") + for char in row: + if char=="a": + parsed_pattern[i].append(tranA) + elif char=="b": + parsed_pattern[i].append(tranB) + else: + raise ValueError("pattern should only contain a,b, or whitespace") + # run place (center, then right, then left, ...) + extra_sep = 2*pdk.util_max_metal_seperation() + yspace = extra_sep + max(tranA_dims[1], tranB_dims[1]) + xspace = extra_sep + max(tranA_dims[0], tranB_dims[0]) + for i, row in enumerate(parsed_pattern): + for j, tran in enumerate(row): + tranref = toplvlcomp << tran + ymov = i * yspace + xmov = j * xspace * (-1**(j%2)) + tranref.movex(xmov).movey(ymov) + toplvlcomp.add_ports(tranref.get_ports_list(), prefix=f"place{i}_{j}_") + return toplvlcomp diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index ded1e91cc..05841c2fb 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -5,16 +5,16 @@ from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from .fet import nmos, pmos -from .pdk.mappedpdk import MappedPDK +from pygen.fet import nmos, pmos +from pygen.pdk.mappedpdk import MappedPDK from typing import Optional from gdsfactory.routing.route_quad import route_quad from gdsfactory.routing.route_sharp import route_sharp -from .c_route import c_route -from .pdk.util.comp_utils import movex, movey, evaluate_bbox, align_comp_to_port -from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, get_orientation, set_port_orientation -from .via_gen import via_stack -from .pdk.util.snap_to_grid import component_snap_to_grid +from pygen.routing.c_route import c_route +from pygen.pdk.util.comp_utils import movex, movey, evaluate_bbox, align_comp_to_port +from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, get_orientation, set_port_orientation +from pygen.via_gen import via_stack +from pygen.pdk.util.snap_to_grid import component_snap_to_grid @cell diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py index 92f7e0d79..6be25901e 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -2,17 +2,17 @@ from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from typing import Optional, Union -from .via_gen import via_array, via_stack -from .guardring import tapring +from pygen.via_gen import via_array, via_stack +from pygen.guardring import tapring from pydantic import validate_arguments -from .pdk.util.comp_utils import evaluate_bbox, to_float, to_decimal, prec_array, prec_center, prec_ref_center, movey, align_comp_to_port -from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports -from .c_route import c_route -from .pdk.util.snap_to_grid import component_snap_to_grid +from pygen.pdk.util.comp_utils import evaluate_bbox, to_float, to_decimal, prec_array, prec_center, prec_ref_center, movey, align_comp_to_port +from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports +from pygen.routing.c_route import c_route +from pygen.pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal -from .straight_route import straight_route +from pygen.routing.straight_route import straight_route @validate_arguments diff --git a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py index b8aae1c33..c73c2c97a 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/guardring.py @@ -1,14 +1,14 @@ -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from gdsfactory.components.rectangular_ring import rectangular_ring -from .via_gen import via_array, via_stack +from pygen.via_gen import via_array, via_stack from typing import Optional -from .pdk.util.comp_utils import to_decimal, to_float, evaluate_bbox -from .pdk.util.port_utils import print_ports -from .pdk.util.snap_to_grid import component_snap_to_grid -from .L_route import L_route +from pygen.pdk.util.comp_utils import to_decimal, to_float, evaluate_bbox +from pygen.pdk.util.port_utils import print_ports +from pygen.pdk.util.snap_to_grid import component_snap_to_grid +from pygen.routing.L_route import L_route @cell diff --git a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py index 4b1b651bb..ede466175 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py @@ -1,13 +1,13 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from typing import Optional -from .via_gen import via_array -from .pdk.util.comp_utils import prec_array, to_decimal, to_float -from .pdk.util.port_utils import rename_ports_by_orientation, add_ports_perimeter, print_ports +from pygen.via_gen import via_array +from pygen.pdk.util.comp_utils import prec_array, to_decimal, to_float +from pygen.pdk.util.port_utils import rename_ports_by_orientation, add_ports_perimeter, print_ports from pydantic import validate_arguments -from .straight_route import straight_route +from pygen.routing.straight_route import straight_route from decimal import ROUND_UP, Decimal diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index ec809d610..0a461f65f 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -1,21 +1,21 @@ from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from typing import Optional -from .fet import nmos, pmos, multiplier -from .diff_pair import diff_pair -from .guardring import tapring -from .mimcap import mimcap_array, mimcap -from .L_route import L_route -from .c_route import c_route -from .via_gen import via_stack, via_array +from pygen.fet import nmos, pmos, multiplier +from pygen.diff_pair import diff_pair +from pygen.guardring import tapring +from pygen.mimcap import mimcap_array, mimcap +from pygen.routing.L_route import L_route +from pygen.routing.c_route import c_route +from pygen.via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad -from .pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port -from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation +from pygen.pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port +from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation from sys import exit -from .straight_route import straight_route -from .pdk.util.snap_to_grid import component_snap_to_grid +from pygen.routing.straight_route import straight_route +from pygen.pdk.util.snap_to_grid import component_snap_to_grid from pydantic import validate_arguments @@ -378,21 +378,22 @@ def opamp( rmult = 2 ).show() - -#[0.7,1,0.02] -#bias_points = list() -#for bias1_point in bias1_points: -# for bias2_point in bias2_points: -# run design -# bias_points.append(bias_point) -#best_bias = max(bias_points) -#0.8 -#0.78,0.82,0.005 -""" -for row in range(4): - for col in range(8): - ref = mycomp << opamps[8*row+col] - ref.movex(150*col).movey(150*row) -""" +def benchmark(pdk: MappedPDK, save_file: Optional[str]="./opamp_runtime_second.txt") -> float: + """get runtime of opamp in seconds (note running this with sky130 results in longer runtime due to addition of NPC)""" + import time + start = time.time() + opamp(pdk) + end = time.time() + elapsed_time = end - start + print(elapsed_time) + if save_file: + from pathlib import Path + save_file = Path(save_file).resolve() + try: + with open(save_file,"w") as resultfile: + resultfile.write(str(elapsed_time)) + except Exception: + print("benchmark was not able to write to savefile") + return elapsed_time diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py index 04d411181..be1a7a327 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py @@ -3,6 +3,42 @@ from gdsfactory.geometry.boolean import boolean +# slightly slower version +#def sky130_add_npc(comp: Component) -> Component: +# licon_comp = comp.extract(layers=[(66,44)]) +# poly_comp = comp.extract(layers=[(66,20)]) +# if len(licon_comp.get_polygons()) < 2 and len(poly_comp.get_polygons()) < 2: +# return comp +# liconANDpoly = boolean(licon_comp, poly_comp, layer=(1,2), operation="and") +# licon_polygons = liconANDpoly.get_polygons(as_array=False) +# # iterate through all licon and create extra space top right / extra space bottom left +# npc_toprightextra = Component() +# npc_bottomleftextra = Component() +# for licon_polygon in licon_polygons: +# bbox = licon_polygon.bounding_box() +# licon_polygonxmin = bbox[0][0] +# licon_polygonymin = bbox[0][1] +# licon_polygonxmax = bbox[1][0] +# licon_polygonymax = bbox[1][1] +# padding_points_toprightextra = [ +# [licon_polygonxmin - 0.1, licon_polygonymin - 0.1], +# [licon_polygonxmax + 0.37, licon_polygonymin - 0.1], +# [licon_polygonxmax + 0.37, licon_polygonymax + 0.37], +# [licon_polygonxmin - 0.1, licon_polygonymax + 0.37], +# ] +# padding_points_bottomleftextra = [ +# [licon_polygonxmin - 0.37, licon_polygonymin - 0.37], +# [licon_polygonxmax + 0.1, licon_polygonymin - 0.37], +# [licon_polygonxmax + 0.1, licon_polygonymax + 0.1], +# [licon_polygonxmin - 0.37, licon_polygonymax + 0.1], +# ] +# npc_toprightextra._add(Polygon(padding_points_toprightextra, layer=(1,3))) +# npc_bottomleftextra._add(Polygon(padding_points_bottomleftextra, layer=(1,3))) +# # the npc layer (correctly merged is the combination of both this layers AND) +# NPCcomp = boolean(npc_toprightextra, npc_bottomleftextra, layer=(95,20), operation="and") +# comp.add(NPCcomp.get_polygons(as_array=False)) +# return comp + def sky130_add_npc(comp: Component) -> Component: """To keep with the generic generator structure, we do NOT add nitride poly cut layer in the generic generators (npc is specfic to sky130). diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py index be410a59e..c2b3f3411 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py @@ -4,6 +4,8 @@ from gdsfactory.port import Port from typing import Callable, Union, Optional from decimal import Decimal +from pathlib import Path +import pickle @validate_arguments @@ -234,7 +236,7 @@ class PortTree: """ @validate_arguments - def __init__(self, custom_comp: Union[Component, ComponentReference]) -> dict: + def __init__(self, custom_comp: Union[Component, ComponentReference]): """creates the tree structure from the ports where _ represent subdirectories credit -> chatGPT """ @@ -263,4 +265,21 @@ def ls(self, file_path: Optional[str] = None) -> list[str]: if path_component not in current_dir: raise KeyError("Port path was not found") current_dir = current_dir[path_component] - return list(current_dir.keys()) \ No newline at end of file + return list(current_dir.keys()) + + @validate_arguments + def save_to_disk(self, savedir: Union[Path, str]="./"): + savedir = Path(savedir).resolve() + savedir.mkdir(exist_ok=True,parents=True) + if not savedir.is_dir(): + raise ValueError("no dir named" + str(savedir)) + with open(savedir / "porttree.pkl", 'wb') as outfile: + pickle.dump(self, outfile) + + @classmethod + def read_from_disk(cls, pklfile: Union[Path, str]): + pklfile = Path(pklfile).resolve() + if not pklfile.is_file(): + raise ValueError("no file named" + str(pklfile)) + with open(str(pklfile), 'rb') as infile: + return pickle.load(infile) \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/L_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py similarity index 91% rename from openfasoc/generators/gdsfactory-gen/pygen/L_route.py rename to openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py index 11f8b2031..a7eb55c20 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py @@ -1,12 +1,12 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from typing import Optional, Union -from .via_gen import via_stack, via_array +from pygen.via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from .pdk.util.comp_utils import evaluate_bbox, align_comp_to_port, to_decimal, to_float, prec_ref_center -from .pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_port_manhattan, assert_ports_perpindicular +from pygen.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port, to_decimal, to_float, prec_ref_center +from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_port_manhattan, assert_ports_perpindicular from decimal import Decimal @@ -107,7 +107,7 @@ def L_route( if __name__ == "__main__": - from .pdk.util.standard_main import pdk + from pygen.pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met1"),size=(1,1)).ref() routebetweentop.movey(-4).movex(7) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py similarity index 96% rename from openfasoc/generators/gdsfactory-gen/pygen/c_route.py rename to openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py index 874ec3f37..0b5fdb941 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py @@ -1,14 +1,14 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from typing import Optional, Union from math import isclose -from .via_gen import via_stack +from pygen.via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from .pdk.util.comp_utils import evaluate_bbox -from .pdk.util.port_utils import add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_port_orientation, get_orientation +from pygen.pdk.util.comp_utils import evaluate_bbox +from pygen.pdk.util.port_utils import add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_port_orientation, get_orientation from pydantic import validate_arguments @@ -196,7 +196,7 @@ def c_route( return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) if __name__ == "__main__": - from .pdk.util.standard_main import pdk + from pygen.pdk.util.standard_main import pdk routebetweentop = copy(rectangle(layer=pdk.get_glayer("met1"))).ref() routebetweentop.movey(10) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py similarity index 91% rename from openfasoc/generators/gdsfactory-gen/pygen/straight_route.py rename to openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py index 8ffd34447..99a2ad24e 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py @@ -1,12 +1,12 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from typing import Optional -from .via_gen import via_stack, via_array +from pygen.via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from .pdk.util.comp_utils import evaluate_bbox, align_comp_to_port -from .pdk.util.port_utils import assert_port_manhattan, set_port_orientation +from pygen.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port +from pygen.pdk.util.port_utils import assert_port_manhattan, set_port_orientation @cell @@ -82,7 +82,7 @@ def straight_route( if __name__ == "__main__": - from .pdk.util.standard_main import pdk + from pygen.pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met3"),size=(1,1)).ref() routebetweentop.movex(20).movey(-3) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py index e7bb06a87..829ad3ea7 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py @@ -2,12 +2,12 @@ from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from pydantic import validate_arguments -from .pdk.mappedpdk import MappedPDK +from pygen.pdk.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from .pdk.util.comp_utils import evaluate_bbox, prec_array, to_float, move, prec_ref_center, to_decimal -from .pdk.util.port_utils import rename_ports_by_orientation, print_ports -from .pdk.util.snap_to_grid import component_snap_to_grid +from pygen.pdk.util.comp_utils import evaluate_bbox, prec_array, to_float, move, prec_ref_center, to_decimal +from pygen.pdk.util.port_utils import rename_ports_by_orientation, print_ports +from pygen.pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal from typing import Literal diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshort.spice b/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshort.spice new file mode 100644 index 000000000..c9febdad0 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshort.spice @@ -0,0 +1,420 @@ +* +* 4k spice models for n-channel thin oxide mosfets (std VTH). +* +* +* this scaled model was extracted by coolcad electroncis llc, +* akin akturk, akin.akturk@coolcadelectronics.com +* +* measurements used in model extraction correspond to the +* following W (um)/L (um) devices: +*'nshort; w=1.68; l=0.15; m=1'; +*'nshort; w=7.0; l=8.0; m=1'; +*'nshort; w=7.0; l=0.15; m=1'; +*'nshort; w=0.42; l=8.0; m=1'; +*'nshort; w=0.42; l=0.15; m=1'; +* +* to use the models, please set the circuit temperature +* to -269 in celcius. for standard spice, this can be done +* by adding the following line to netlist: .options temp=-269 +* +* +* +* +.MODEL nshort NMOS ++ LEVEL = 54 ++ VERSION = 4.6.5 ++ BINUNIT = 2 ++ PARAMCHK = 1 ++ MOBMOD = 1 ++ MTRLMOD = 0 ++ RDSMOD = 0 ++ IGCMOD = 0 ++ IGBMOD = 0 ++ CVCHARGEMOD = 0 ++ CAPMOD = 2 ++ RGATEMOD = 0 ++ RBODYMOD = 0 ++ TRNQSMOD = 0 ++ ACNQSMOD = 0 ++ FNOIMOD = 1 ++ TNOIMOD = 0 ++ DIOMOD = 1 ++ TEMPMOD = 0 ++ PERMOD = 1 ++ GEOMOD = 0 ++ WPEMOD = 0 ++ EPSROX = 3.9 ++ TOXE = 4.0840E-009 ++ EOT = 4.0840E-009 ++ TOXP = 4.0840E-009 ++ TOXM = 4.0840E-009 ++ DTOX = 0 ++ XJ = 1.5E-007 ++ NDEP = 1.7E+017 ++ NGATE = 1E+022 ++ NSD = 1E+020 ++ XT = 1.55E-007 ++ RSH = 0 ++ RSHG = 0.1 ++ VTH0 = 0.665 ++ WVTH0 = -0.02E-7 ++ LVTH0 = 0.22E-7 ++ PVTH0 = 0.08E-14 ++ VDDEOT = 1.5 ++ LEFFEOT = 1 ++ WEFFEOT = 10 ++ TEMPEOT = 300.1 ++ PHIN = 0 ++ EASUB = 4.05 ++ EPSRSUB = 11.7 ++ NI0SUB = 1.45E+010 ++ BG0SUB = 1.16 ++ TBGASUB = 0.000702 ++ TBGBSUB = 1108 ++ ADOS = 1 ++ BDOS = 1 ++ VFB = -1 ++ K1 = 0.4 ++ K2 = 0.01 ++ LK2 = 0.01E-6 ++ PK2 = 0.008E-13 ++ K3 = 15 ++ K3B = 0 ++ WK1 = -0.0225E-6 ++ LK1 = -0.045E-6 ++ PK1 = -0.5E-15 ++ W0 = 9.222E-007 ++ LPE0 = 1.899E-008 ++ LPEB = 6.702E-008 ++ VBM = -3 ++ DVT0 = 0.001 ++ DVT1 = 0.1135 ++ DVT2 = -2.864 ++ DVTP0 = 5.919E-009 ++ DVTP1 = 2.966 ++ DVT0W = -10.37 ++ DVT1W = 5.3E+006 ++ DVT2W = -0.032 ++ U0 = 0.25 ++ LU0 = -0.036E-6 ++ WU0 = -0.02E-6 ++ PU0 = 0.01E-12 ++ UA = -1.986E-009 ++ LUA = -5E-0117 ++ UB = 0.47E-017 ++ WUB = -2E-025 ++ LUB = -5E-025 ++ PUB = 12E-032 ++ UC = -0.07076 ++ UD = 3.228 ++ UCS = 1.67 ++ UP = 0.3928 ++ LP = 1.39E-005 ++ EU = 1.6 ++ VSAT = 1.8e+004 ++ WVSAT = -1.8E-3 ++ LVSAT = 20E-3 ++ PVSAT = 1.5e-9 ++ A0 = 2.2 ++ AGS = 1.4 ++ B0 = 0 ++ B1 = 0 ++ KETA = -0.02134 ++ A1 = 0 ++ A2 = 0.8779 ++ WINT = -3.6E-008 ++ LINT = -2.4E-008 ++ DWG = 6.974E-009 ++ LDWG = -5E-015 ++ DWB = 0 ++ VOFF = -0.1 ++ VOFFL = 15E-009 ++ MINV = -7 ++ LMINV = -15e-7 ++ NFACTOR = 2 ++ ETA0 = 2.686 ++ ETAB = -1.412 ++ DSUB = 0.6654 ++ CIT = 0 ++ CDSC = 4.441E-016 ++ CDSCB = -6.337E-006 ++ CDSCD = 0 ++ PCLM = 0.5 ++ LPCLM = 0.7E-6 ++ WPCLM = -0.1E-6 ++ PDIBLC1 = 0.001E-10 ++ PDIBLC2 = 1E-006 ++ PDIBLCB = 0 ++ DROUT = 0.56 ++ PSCBE1 = 1.5E+008 ++ PSCBE2 = 0.15E-006 ++ PVAG = 5 ++ DELTA = 0.01 ++ FPROUT = 0 ++ PDITS = 0.01 ++ PDITSL = 1.392E+006 ++ PDITSD = 1 ++ LAMBDA = 0 ++ VTL = 2E+005 ++ LC = 0 ++ XN = 4 ++ PHIG = 4.05 ++ EPSRGATE = 11.7 ++ RDSW = 0.0 ++ RDSWMIN = 5.0 ++ RDW = 100 ++ RDWMIN = 0 ++ RSW = 100 ++ RSWMIN = 0 ++ PRWG = 0.4 ++ PRWB = -0.1169 ++ WR = 8.882E-016 ++ ALPHA0 = 1E-005 ++ ALPHA1 = 0 ++ BETA0 = 15 ++ AGIDL = 1E-015 ++ BGIDL = 2.3E+009 ++ CGIDL = 0.5 ++ EGIDL = 0.8 ++ AGISL = 0 ++ BGISL = 2.3E+009 ++ CGISL = 0.5 ++ EGISL = 0.8 ++ AIGBACC = 0.43 ++ BIGBACC = 0.054 ++ CIGBACC = 0.075 ++ NIGBACC = 1 ++ AIGBINV = 0.35 ++ BIGBINV = 0.03 ++ CIGBINV = 0.006 ++ EIGBINV = 1.1 ++ NIGBINV = 3 ++ AIGC = 0.54 ++ BIGC = 0.054 ++ CIGC = 0.075 ++ AIGSD = 0.43 ++ BIGSD = 0.054 ++ CIGSD = 0.075 ++ DLCIG = 1.051E-008 ++ AIGS = 0.0136 ++ BIGS = 0.00171 ++ CIGS = 0.075 ++ AIGD = 0.0136 ++ BIGD = 0.00171 ++ CIGD = 0.075 ++ DLCIGD = 0 ++ NIGC = 1 ++ POXEDGE = 1 ++ PIGCD = 1 ++ NTOX = 1 ++ TOXREF = 4.0840E-009 ++ VFBSDOFF = 0 ++ XPART = 0 ++ CGSO = 3E-011 ++ CGDO = 3E-011 ++ CGBO = 0 ++ CGSL = 1.343E-010 ++ CGDL = 1.343E-010 ++ CKAPPAS = 0.6 ++ CKAPPAD = 0.6 ++ CF = 2.977E-010 ++ CLC = 1E-007 ++ CLE = 0.6 ++ DLC = 1.051E-008 ++ DWC = 0 ++ VFBCV = -1 ++ NOFF = 2 ++ VOFFCV = 0.051 ++ VOFFCVL = 0 ++ MINVCV = 0 ++ ACDE = 1 ++ MOIN = 15 ++ XRCRG1 = 12 ++ XRCRG2 = 1 ++ RBPB = 50 ++ RBPD = 50 ++ RBPS = 15 ++ RBDB = 50 ++ RBSB = 50 ++ GBMIN = 1E-012 ++ RBPS0 = 50 ++ RBPSL = 0 ++ RBPSW = 0 ++ RBPSNF = 0 ++ RBPD0 = 50 ++ RBPDL = 0 ++ RBPDW = 0 ++ RBPDNF = 0 ++ RBPBX0 = 100 ++ RBPBXL = 0 ++ RBPBXW = 0 ++ RBPBXNF = 0 ++ RBPBY0 = 100 ++ RBPBYL = 0 ++ RBPBYW = 0 ++ RBPBYNF = 0 ++ RBSBX0 = 100 ++ RBSBY0 = 100 ++ RBDBX0 = 100 ++ RBDBY0 = 100 ++ RBSDBXL = 0 ++ RBSDBXW = 0 ++ RBSDBXNF = 0 ++ RBSDBYL = 0 ++ RBSDBYW = 0 ++ RBSDBYNF = 0 ++ NOIA = 6.25E+041 ++ NOIB = 3.125E+026 ++ NOIC = 8.75 ++ EM = 4.1E+007 ++ AF = 1 ++ EF = 1 ++ KF = 0 ++ LINTNOI = 0 ++ NTNOI = 1 ++ TNOIA = 1.5 ++ TNOIB = 3.5 ++ RNOIA = 0.577 ++ RNOIB = 0.5164 ++ DMCG = 0 ++ DMCI = 0 ++ DMDG = 0 ++ DMCGT = 0 ++ DWJ = 0 ++ XGW = 0 ++ XGL = 0 ++ XL = 0 ++ XW = 5E-8 ++ NGCON = 1 ++ IJTHSREV = 0.0044 ++ IJTHSFWD = 0.0044 ++ XJBVS = 1 ++ BVS = 10 ++ JSS = 1.487E-8 ++ JSWS = 1E-18 ++ JSWGS = 0 ++ JTSS = 0 ++ JTSSWS = 0 ++ JTSSWGS = 0 ++ JTWEFF = 0 ++ NJS = 15 ++ NJTS = 20 ++ NJTSSW = 20 ++ NJTSSWG = 20 ++ XTSS = 0.02 ++ XTSSWS = 0.02 ++ XTSSWGS = 0.02 ++ VTSS = 10 ++ VTSSWS = 10 ++ VTSSWGS = 10 ++ TNJTS = 0 ++ TNJTSSW = 0 ++ TNJTSSWG = 0 ++ CJS = 0.001283 ++ MJS = 0.3296 ++ MJSWS = 0.33 ++ CJSWS = 3.5E-011 ++ CJSWGS = 3.5E-011 ++ MJSWGS = 0.33 ++ PBS = 0.9641 ++ PBSWS = 1 ++ PBSWGS = 1 ++ IJTHDREV = 0.0044 ++ IJTHDFWD = 0.0044 ++ XJBVD = 1 ++ BVD = 10 ++ JSD = 1.487E-8 ++ JSWD = 1E-18 ++ JSWGD = 0 ++ JTSD = 0 ++ JTSSWD = 0 ++ JTSSWGD = 0 ++ NJD = 15 ++ NJTSD = 20 ++ NJTSSWD = 20 ++ NJTSSWGD = 20 ++ XTSD = 0.02 ++ XTSSWD = 0.02 ++ XTSSWGD = 0.02 ++ VTSD = 10 ++ VTSSWD = 10 ++ VTSSWGD = 10 ++ TNJTSD = 0 ++ TNJTSSWD = 0 ++ TNJTSSWGD = 0 ++ CJD = 0.001283 ++ MJD = 0.3296 ++ MJSWD = 0.33 ++ CJSWD = 3.5E-011 ++ CJSWGD = 3.5E-011 ++ MJSWGD = 0.33 ++ PBD = 0.9641 ++ PBSWD = 1 ++ PBSWGD = 1 ++ TNOM = -253 ++ UTE = 0 ++ UCSTE = -0.004775 ++ KT1 = 0 ++ KT1L = 0 ++ KT2 = 0 ++ UA1 = 0 ++ UB1 = 0 ++ UC1 = 0 ++ UD1 = 0 ++ AT = 0 ++ PRT = 0 ++ XTIS = 3 ++ XTID = 3 ++ TPB = 0 ++ TPBSW = 0 ++ TPBSWG = 0 ++ TCJ = 0 ++ TCJSW = 0 ++ TCJSWG = 0 ++ TVOFF = 0 ++ TVFBSDOFF = 0 ++ SAREF = 0 ++ SBREF = 0 ++ WLOD = 2E-006 ++ KU0 = 4E-006 ++ KVSAT = 0.0 ++ TKU0 = 0 ++ LKU0 = 1E-006 ++ WKU0 = 1E-006 ++ PKU0 = 0 ++ LLODKU0 = 1.1 ++ WLODKU0 = 1.1 ++ KVTH0 = -2E-008 ++ LKVTH0 = 1.1E-006 ++ WKVTH0 = 1.1E-006 ++ PKVTH0 = 0 ++ LLODVTH = 1 ++ WLODVTH = 1 ++ STK2 = 0 ++ LODK2 = 1 ++ STETA0 = 0 ++ LODETA0 = 1 ++ WEB = 0 ++ WEC = 0 ++ KVTH0WE = 0 ++ K2WE = 0 ++ KU0WE = 0 ++ SCREF = 1E-006 ++ WL = 1E-014 ++ WLN = 1.056 ++ WW = 10.807E-015 ++ WWN = 1.03 ++ WWL = -1.419E-021 ++ LL = -1.609E-015 ++ LLN = 0.9 ++ LW = -7.92E-015 ++ LWN = 1.012 ++ LWL = 6.569E-021 ++ LLC = 0 ++ LWC = 0 ++ LWLC = 0 ++ WLC = 0 ++ WWC = 0 ++ WWLC = 0 +* +* diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshortlvth.spice b/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshortlvth.spice new file mode 100644 index 000000000..d201c7890 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshortlvth.spice @@ -0,0 +1,420 @@ +* +* 4k spice models for n-channel thin oxide mosfets (low VTH). +* +* +* this scaled model was extracted by coolcad electroncis llc, +* akin akturk, akin.akturk@coolcadelectronics.com +* +* measurements used in model extraction correspond to the +* following W (um)/L (um) devices: +*'nlowvt; w=7.0; l=8.0; m=1'; +*'nlowvt; w=7.0; l=0.15; m=1'; +*'nlowvt; w=0.42; l=1.0; m=1'; +*'nlowvt; w=0.42; l=0.15; m=1'; +*'nlowvt; w=0.84; l=0.15; m=1';* +* to use the models, please set the circuit temperature +* to -269 in celcius. for standard spice, this can be done +* by adding the following line to netlist: .options temp=-269 +* +* +* +* +.MODEL nshortlvth NMOS ++ LEVEL = 54 ++ VERSION = 4.6.5 ++ BINUNIT = 2 ++ PARAMCHK = 1 ++ MOBMOD = 1 ++ MTRLMOD = 0 ++ RDSMOD = 0 ++ IGCMOD = 0 ++ IGBMOD = 0 ++ CVCHARGEMOD = 0 ++ CAPMOD = 2 ++ RGATEMOD = 0 ++ RBODYMOD = 0 ++ TRNQSMOD = 0 ++ ACNQSMOD = 0 ++ FNOIMOD = 1 ++ TNOIMOD = 0 ++ DIOMOD = 1 ++ TEMPMOD = 0 ++ PERMOD = 1 ++ GEOMOD = 0 ++ WPEMOD = 0 ++ EPSROX = 3.9 ++ TOXE = 4.0840E-009 ++ EOT = 4.0840E-009 ++ TOXP = 4.0840E-009 ++ TOXM = 4.0840E-009 ++ DTOX = 0 ++ XJ = 1.5E-007 ++ NDEP = 1.7E+017 ++ NGATE = 1E+022 ++ NSD = 1E+020 ++ XT = 1.55E-007 ++ RSH = 0 ++ RSHG = 0.1 ++ VTH0 = 0.585 ++ WVTH0 = -0.02E-7 ++ LVTH0 = 0.27E-7 ++ PVTH0 = 0.08E-14 ++ VDDEOT = 1.5 ++ LEFFEOT = 1 ++ WEFFEOT = 10 ++ TEMPEOT = 300.1 ++ PHIN = 0 ++ EASUB = 4.05 ++ EPSRSUB = 11.7 ++ NI0SUB = 1.45E+010 ++ BG0SUB = 1.16 ++ TBGASUB = 0.000702 ++ TBGBSUB = 1108 ++ ADOS = 1 ++ BDOS = 1 ++ VFB = -1 ++ K1 = 0.35 ++ K2 = 0.01 ++ LK2 = 0.01E-6 ++ K3 = 15 ++ K3B = 0 ++ WK1 = -0.0225E-6 ++ LK1 = -0.045E-6 ++ PK1 = -0.5E-15 ++ W0 = 9.222E-007 ++ LPE0 = 1.899E-008 ++ LPEB = 6.702E-008 ++ VBM = -3 ++ DVT0 = 0.001 ++ DVT1 = 0.1135 ++ DVT2 = -2.864 ++ DVTP0 = 5.919E-009 ++ DVTP1 = 2.966 ++ DVT0W = -10.37 ++ DVT1W = 5.3E+006 ++ DVT2W = -0.032 ++ U0 = 0.65 ++ LU0 = -0.05E-6 ++ WU0 = -0.02E-6 ++ PU0 = 0.01E-12 ++ UA = -3.5E-009 ++ LUA = -5E-0117 ++ UB = 1.4E-017 ++ WUB = -2E-025 ++ LUB = -5E-025 ++ PUB = 12E-032 ++ UC = -0.07076 ++ UD = 3.228 ++ UCS = 1.67 ++ UP = 0.3928 ++ LP = 2E-005 ++ EU = 1.6 ++ VSAT = 3.2e+004 ++ WVSAT = 8E-3 ++ LVSAT = 20E-3 ++ PVSAT = -1.5e-9 ++ A0 = 2.2 ++ AGS = 1.4 ++ B0 = 0 ++ B1 = 0 ++ KETA = -0.02134 ++ A1 = 0 ++ A2 = 0.8779 ++ WINT = -5E-008 ++ LINT = -2.0E-008 ++ DWG = 6.974E-009 ++ LDWG = -5E-015 ++ DWB = 0 ++ VOFF = -0.05 ++ VOFFL = -11E-009 ++ MINV = -8 ++ LMINV = -15e-7 ++ WMINV = -10e-7 ++ NFACTOR = 5 ++ ETA0 = 2.686 ++ ETAB = -1.412 ++ DSUB = 0.6654 ++ CIT = 0 ++ CDSC = 4.441E-016 ++ CDSCB = -6.337E-006 ++ CDSCD = 0 ++ PCLM = 0.5 ++ LPCLM = 0.3E-6 ++ WPCLM = -0.1E-6 ++ PDIBLC1 = 0.001E-10 ++ PDIBLC2 = 1E-006 ++ PDIBLCB = 0 ++ DROUT = 0.56 ++ PSCBE1 = 1.5E+008 ++ PSCBE2 = 0.05E-006 ++ PVAG = 5 ++ DELTA = 0.002 ++ WDELTA = 2E-8 ++ FPROUT = 0 ++ PDITS = 0.01 ++ PDITSL = 1.392E+006 ++ PDITSD = 1 ++ LAMBDA = 0 ++ VTL = 2E+005 ++ LC = 0 ++ XN = 4 ++ PHIG = 4.05 ++ EPSRGATE = 11.7 ++ RDSW = 0.0 ++ RDSWMIN = 11.0 ++ RDW = 100 ++ RDWMIN = 0 ++ RSW = 100 ++ RSWMIN = 0 ++ PRWG = 0.4 ++ PRWB = -0.1169 ++ WR = 8.882E-016 ++ ALPHA0 = 1E-005 ++ ALPHA1 = 0 ++ BETA0 = 15 ++ AGIDL = 1E-015 ++ BGIDL = 2.3E+009 ++ CGIDL = 0.5 ++ EGIDL = 0.8 ++ AGISL = 0 ++ BGISL = 2.3E+009 ++ CGISL = 0.5 ++ EGISL = 0.8 ++ AIGBACC = 0.43 ++ BIGBACC = 0.054 ++ CIGBACC = 0.075 ++ NIGBACC = 1 ++ AIGBINV = 0.35 ++ BIGBINV = 0.03 ++ CIGBINV = 0.006 ++ EIGBINV = 1.1 ++ NIGBINV = 3 ++ AIGC = 0.54 ++ BIGC = 0.054 ++ CIGC = 0.075 ++ AIGSD = 0.43 ++ BIGSD = 0.054 ++ CIGSD = 0.075 ++ DLCIG = 1.051E-008 ++ AIGS = 0.0136 ++ BIGS = 0.00171 ++ CIGS = 0.075 ++ AIGD = 0.0136 ++ BIGD = 0.00171 ++ CIGD = 0.075 ++ DLCIGD = 0 ++ NIGC = 1 ++ POXEDGE = 1 ++ PIGCD = 1 ++ NTOX = 1 ++ TOXREF = 4.0840E-009 ++ VFBSDOFF = 0 ++ XPART = 0 ++ CGSO = 3E-011 ++ CGDO = 3E-011 ++ CGBO = 0 ++ CGSL = 1.343E-010 ++ CGDL = 1.343E-010 ++ CKAPPAS = 0.6 ++ CKAPPAD = 0.6 ++ CF = 2.977E-010 ++ CLC = 1E-007 ++ CLE = 0.6 ++ DLC = 1.051E-008 ++ DWC = 0 ++ VFBCV = -1 ++ NOFF = 2 ++ VOFFCV = 0.051 ++ VOFFCVL = 0 ++ MINVCV = 0 ++ ACDE = 1 ++ MOIN = 15 ++ XRCRG1 = 12 ++ XRCRG2 = 1 ++ RBPB = 50 ++ RBPD = 50 ++ RBPS = 15 ++ RBDB = 50 ++ RBSB = 50 ++ GBMIN = 1E-012 ++ RBPS0 = 50 ++ RBPSL = 0 ++ RBPSW = 0 ++ RBPSNF = 0 ++ RBPD0 = 50 ++ RBPDL = 0 ++ RBPDW = 0 ++ RBPDNF = 0 ++ RBPBX0 = 100 ++ RBPBXL = 0 ++ RBPBXW = 0 ++ RBPBXNF = 0 ++ RBPBY0 = 100 ++ RBPBYL = 0 ++ RBPBYW = 0 ++ RBPBYNF = 0 ++ RBSBX0 = 100 ++ RBSBY0 = 100 ++ RBDBX0 = 100 ++ RBDBY0 = 100 ++ RBSDBXL = 0 ++ RBSDBXW = 0 ++ RBSDBXNF = 0 ++ RBSDBYL = 0 ++ RBSDBYW = 0 ++ RBSDBYNF = 0 ++ NOIA = 6.25E+041 ++ NOIB = 3.125E+026 ++ NOIC = 8.75 ++ EM = 4.1E+007 ++ AF = 1 ++ EF = 1 ++ KF = 0 ++ LINTNOI = 0 ++ NTNOI = 1 ++ TNOIA = 1.5 ++ TNOIB = 3.5 ++ RNOIA = 0.577 ++ RNOIB = 0.5164 ++ DMCG = 0 ++ DMCI = 0 ++ DMDG = 0 ++ DMCGT = 0 ++ DWJ = 0 ++ XGW = 0 ++ XGL = 0 ++ XL = 0 ++ XW = 5E-8 ++ NGCON = 1 ++ IJTHSREV = 0.0044 ++ IJTHSFWD = 0.0044 ++ XJBVS = 1 ++ BVS = 10 ++ JSS = 1.487E-8 ++ JSWS = 1E-18 ++ JSWGS = 0 ++ JTSS = 0 ++ JTSSWS = 0 ++ JTSSWGS = 0 ++ JTWEFF = 0 ++ NJS = 15 ++ NJTS = 20 ++ NJTSSW = 20 ++ NJTSSWG = 20 ++ XTSS = 0.02 ++ XTSSWS = 0.02 ++ XTSSWGS = 0.02 ++ VTSS = 10 ++ VTSSWS = 10 ++ VTSSWGS = 10 ++ TNJTS = 0 ++ TNJTSSW = 0 ++ TNJTSSWG = 0 ++ CJS = 0.001283 ++ MJS = 0.3296 ++ MJSWS = 0.33 ++ CJSWS = 3.5E-011 ++ CJSWGS = 3.5E-011 ++ MJSWGS = 0.33 ++ PBS = 0.9641 ++ PBSWS = 1 ++ PBSWGS = 1 ++ IJTHDREV = 0.0044 ++ IJTHDFWD = 0.0044 ++ XJBVD = 1 ++ BVD = 10 ++ JSD = 1.487E-8 ++ JSWD = 1E-18 ++ JSWGD = 0 ++ JTSD = 0 ++ JTSSWD = 0 ++ JTSSWGD = 0 ++ NJD = 15 ++ NJTSD = 20 ++ NJTSSWD = 20 ++ NJTSSWGD = 20 ++ XTSD = 0.02 ++ XTSSWD = 0.02 ++ XTSSWGD = 0.02 ++ VTSD = 10 ++ VTSSWD = 10 ++ VTSSWGD = 10 ++ TNJTSD = 0 ++ TNJTSSWD = 0 ++ TNJTSSWGD = 0 ++ CJD = 0.001283 ++ MJD = 0.3296 ++ MJSWD = 0.33 ++ CJSWD = 3.5E-011 ++ CJSWGD = 3.5E-011 ++ MJSWGD = 0.33 ++ PBD = 0.9641 ++ PBSWD = 1 ++ PBSWGD = 1 ++ TNOM = -253 ++ UTE = 0 ++ UCSTE = -0.004775 ++ KT1 = 0 ++ KT1L = 0 ++ KT2 = 0 ++ UA1 = 0 ++ UB1 = 0 ++ UC1 = 0 ++ UD1 = 0 ++ AT = 0 ++ PRT = 0 ++ XTIS = 3 ++ XTID = 3 ++ TPB = 0 ++ TPBSW = 0 ++ TPBSWG = 0 ++ TCJ = 0 ++ TCJSW = 0 ++ TCJSWG = 0 ++ TVOFF = 0 ++ TVFBSDOFF = 0 ++ SAREF = 0 ++ SBREF = 0 ++ WLOD = 2E-006 ++ KU0 = 4E-006 ++ KVSAT = 0.0 ++ TKU0 = 0 ++ LKU0 = 1E-006 ++ WKU0 = 1E-006 ++ PKU0 = 0 ++ LLODKU0 = 1.1 ++ WLODKU0 = 1.1 ++ KVTH0 = -2E-008 ++ LKVTH0 = 1.1E-006 ++ WKVTH0 = 1.1E-006 ++ PKVTH0 = 0 ++ LLODVTH = 1 ++ WLODVTH = 1 ++ STK2 = 0 ++ LODK2 = 1 ++ STETA0 = 0 ++ LODETA0 = 1 ++ WEB = 0 ++ WEC = 0 ++ KVTH0WE = 0 ++ K2WE = 0 ++ KU0WE = 0 ++ SCREF = 1E-006 ++ WL = 1E-014 ++ WLN = 1.056 ++ WW = 10.807E-015 ++ WWN = 1.03 ++ WWL = -1.419E-021 ++ LL = -1.609E-015 ++ LLN = 0.9 ++ LW = -7.92E-015 ++ LWN = 1.012 ++ LWL = 6.569E-021 ++ LLC = 0 ++ LWC = 0 ++ LWLC = 0 ++ WLC = 0 ++ WWC = 0 ++ WWLC = 0 +* +* diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/pmos.spice b/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/pmos.spice new file mode 100644 index 000000000..fe1cb7786 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/pmos.spice @@ -0,0 +1,419 @@ +* +* 4k spice models for p-channel thin oxide mosfets (low VTH). +* +* +* this scaled model was extracted by coolcad electroncis llc, +* akin akturk, akin.akturk@coolcadelectronics.com +* +* measurements used in model extraction correspond to the +* following W (um)/L (um) devices: +*'plowvt; w=3.0; l=1.0; m=1'; +*'plowvt; w=7.0; l=8.0; m=1'; +*'plowvt; w=7.0; l=0.35; m=1'; +*'plowvt; w=0.42; l=8.0; m=1'; +*'plowvt; w=0.42; l=0.35; m=1'; +* +* to use the models, please set the circuit temperature +* to -269 in celcius. for standard spice, this can be done +* by adding the following line to netlist: .options temp=-269 +* +* +* +* +.MODEL pshort PMOS ++ LEVEL = 54 ++ VERSION = 4.6.5 ++ BINUNIT = 2 ++ PARAMCHK = 1 ++ MOBMOD = 1 ++ MTRLMOD = 0 ++ RDSMOD = 0 ++ IGCMOD = 0 ++ IGBMOD = 0 ++ CVCHARGEMOD = 0 ++ CAPMOD = 2 ++ RGATEMOD = 0 ++ RBODYMOD = 0 ++ TRNQSMOD = 0 ++ ACNQSMOD = 0 ++ FNOIMOD = 1 ++ TNOIMOD = 0 ++ DIOMOD = 1 ++ TEMPMOD = 0 ++ PERMOD = 1 ++ GEOMOD = 0 ++ WPEMOD = 0 ++ EPSROX = 3.9 ++ TOXE = 4.0349E-009 ++ EOT = 4.0349E-009 ++ TOXP = 4.0349E-009 ++ TOXM = 4.0349E-009 ++ DTOX = 0 ++ XJ = 1.5E-007 ++ NDEP = 4.0E+017 ++ NGATE = 1E+022 ++ NSD = 1E+020 ++ XT = 1.55E-007 ++ RSH = 0 ++ RSHG = 0.1 ++ VTH0 = -1.17 ++ LVTH0 = 0.13e-7 ++ WVTH0 = -0.23e-7 ++ PVTH0 = 20e-16 ++ VDDEOT = -1.5 ++ LEFFEOT = 1 ++ WEFFEOT = 10 ++ TEMPEOT = 300.1 ++ PHIN = 0 ++ EASUB = 4.05 ++ EPSRSUB = 11.7 ++ NI0SUB = 1.45E+010 ++ BG0SUB = 1.16 ++ TBGASUB = 0.000702 ++ TBGBSUB = 1108 ++ ADOS = 1 ++ BDOS = 1 ++ VFB = -1 ++ K1 = 0.618 ++ K2 = 0.039145 ++ K3 = -14.37 ++ K3B = -4.92 ++ WK1 = -4E-8 ++ LK1 = -4E-8 ++ PK1 = 8E-15 ++ W0 = 4.104E-007 ++ LPE0 = 7.535E-016 ++ LPEB = 2.387E-011 ++ VBM = -0.5 ++ DVT0 = 0.007 ++ DVT1 = 0.01 ++ DVT2 = -0.05872 ++ DVTP0 = 0 ++ DVTP1 = 0.001 ++ DVT0W = -100 ++ DVT1W = 5.3E+006 ++ DVT2W = -0.032 ++ U0 = 0.17 ++ LU0 = -6E-9 ++ PU0 = 0E-17 ++ WU0 = 0E-9 ++ UA = -3.272E-010 ++ UB = 2.2E-018 ++ WUB = -3E-026 ++ UC = 0.1 ++ UD = 1.762E+017 ++ UCS = 1 ++ UP = -0.004472 ++ LP = 1E-008 ++ EU = 1.67 ++ VSAT = 25E+004 ++ WVSAT = 3.0 ++ LVSAT = -10E-12 ++ PVSAT = 1E-2 ++ A0 = 0.5 ++ AGS = 0.5529 ++ B0 = 0 ++ B1 = 0 ++ KETA = -0.06744 ++ A1 = 0.07557 ++ A2 = 0.376 ++ WINT = 7E-008 ++ LINT = 1.5E-008 ++ DWG = -1E-008 ++ DWB = -1E-008 ++ VOFF = -0.09 ++ VOFFL = -0.4E-7 ++ MINV = -9 ++ WMINV = 0.39e-6 ++ LMINV = 0.0e-6 ++ PMINV = -0.7e-13 ++ NFACTOR = 4 ++ ETA0 = 12E-005 ++ ETAB = 0.687 ++ DSUB = 0.9 ++ CIT = 0 ++ CDSC = 4.441E-016 ++ CDSCB = -0.001393 ++ CDSCD = 0 ++ PCLM = 0.839 ++ LPCLM = 6E-7 ++ PDIBLC1 = 2 ++ PDIBLC2 = 0.001192 ++ PDIBLCB = 0 ++ DROUT = 0.4 ++ PSCBE1 = 9.24E+008 ++ PSCBE2 = 0.001 ++ PVAG = 1 ++ DELTA = 0.07 ++ PDELTA = -5E-15 ++ FPROUT = 0 ++ PDITS = 0.1 ++ PDITSL = 6.754E+006 ++ PDITSD = 1 ++ LAMBDA = 0 ++ VTL = 3.7E+004 ++ WVTL = 1E-2 ++ LC = 0.2 ++ XN = 10 ++ PHIG = 4.05 ++ EPSRGATE = 11.7 ++ RDSW = 3000 ++ LRDSW = 4e-5 ++ WRDSW = 0e-5 ++ RDSWMIN = 00 ++ RDW = 100 ++ RDWMIN = 0 ++ RSW = 100 ++ RSWMIN = 0 ++ PRWG = 8.421E-005 ++ PRWB = -0.814 ++ WR = 1.21 ++ ALPHA0 = 1E-005 ++ ALPHA1 = 0 ++ BETA0 = 15 ++ AGIDL = 1E-015 ++ BGIDL = 2.3E+009 ++ CGIDL = 0.5 ++ EGIDL = 0.8 ++ AGISL = 0 ++ BGISL = 2.3E+009 ++ CGISL = 0.5 ++ EGISL = 0.8 ++ AIGBACC = 0.43 ++ BIGBACC = 0.054 ++ CIGBACC = 0.075 ++ NIGBACC = 1 ++ AIGBINV = 0.35 ++ BIGBINV = 0.03 ++ CIGBINV = 0.006 ++ EIGBINV = 1.1 ++ NIGBINV = 3 ++ AIGC = 0.54 ++ BIGC = 0.054 ++ CIGC = 0.075 ++ AIGSD = 0.43 ++ BIGSD = 0.054 ++ CIGSD = 0.075 ++ DLCIG = 1.124E-008 ++ AIGS = 0.0136 ++ BIGS = 0.00171 ++ CIGS = 0.075 ++ AIGD = 0.0136 ++ BIGD = 0.00171 ++ CIGD = 0.075 ++ DLCIGD = 0 ++ NIGC = 1 ++ POXEDGE = 1 ++ PIGCD = 1 ++ NTOX = 1 ++ TOXREF = 4.0349E-009 ++ VFBSDOFF = 0 ++ XPART = 0 ++ CGSO = 3.161E-011 ++ CGDO = 3.161E-011 ++ CGBO = 0 ++ CGSL = 1.121E-010 ++ CGDL = 1.121E-010 ++ CKAPPAS = 0.6 ++ CKAPPAD = 0.6 ++ CF = 2.854E-010 ++ CLC = 1E-007 ++ CLE = 0.6 ++ DLC = 1.124E-008 ++ DWC = 0 ++ VFBCV = -1 ++ NOFF = 2 ++ VOFFCV = -0.2538 ++ VOFFCVL = 0 ++ MINVCV = 0 ++ ACDE = 1 ++ MOIN = 15 ++ XRCRG1 = 12 ++ XRCRG2 = 1 ++ RBPB = 50 ++ RBPD = 50 ++ RBPS = 15 ++ RBDB = 50 ++ RBSB = 50 ++ GBMIN = 1E-012 ++ RBPS0 = 50 ++ RBPSL = 0 ++ RBPSW = 0 ++ RBPSNF = 0 ++ RBPD0 = 50 ++ RBPDL = 0 ++ RBPDW = 0 ++ RBPDNF = 0 ++ RBPBX0 = 100 ++ RBPBXL = 0 ++ RBPBXW = 0 ++ RBPBXNF = 0 ++ RBPBY0 = 100 ++ RBPBYL = 0 ++ RBPBYW = 0 ++ RBPBYNF = 0 ++ RBSBX0 = 100 ++ RBSBY0 = 100 ++ RBDBX0 = 100 ++ RBDBY0 = 100 ++ RBSDBXL = 0 ++ RBSDBXW = 0 ++ RBSDBXNF = 0 ++ RBSDBYL = 0 ++ RBSDBYW = 0 ++ RBSDBYNF = 0 ++ NOIA = 6.25E+041 ++ NOIB = 3.125E+026 ++ NOIC = 8.75 ++ EM = 4.1E+007 ++ AF = 1 ++ EF = 1 ++ KF = 0 ++ LINTNOI = 0 ++ NTNOI = 1 ++ TNOIA = 1.5 ++ TNOIB = 3.5 ++ RNOIA = 0.577 ++ RNOIB = 0.5164 ++ DMCG = 0 ++ DMCI = 0 ++ DMDG = 0 ++ DMCGT = 0 ++ DWJ = 0 ++ XGW = 0 ++ XGL = 0 ++ XL = 0 ++ XW = 0 ++ NGCON = 1 ++ IJTHSREV = 0.1 ++ IJTHSFWD = 0.1 ++ XJBVS = 1 ++ BVS = 10 ++ JSS = 0.0001 ++ JSWS = 0 ++ JSWGS = 0 ++ JTSS = 0 ++ JTSSWS = 0 ++ JTSSWGS = 0 ++ JTWEFF = 0 ++ NJS = 15 ++ NJTS = 20 ++ NJTSSW = 20 ++ NJTSSWG = 20 ++ XTSS = 0.02 ++ XTSSWS = 0.02 ++ XTSSWGS = 0.02 ++ VTSS = 10 ++ VTSSWS = 10 ++ VTSSWGS = 10 ++ TNJTS = 0 ++ TNJTSSW = 0 ++ TNJTSSWG = 0 ++ CJS = 0.0005 ++ MJS = 0.5 ++ MJSWS = 0.33 ++ CJSWS = 5E-010 ++ CJSWGS = 5E-010 ++ MJSWGS = 0.33 ++ PBS = 1 ++ PBSWS = 1 ++ PBSWGS = 1 ++ IJTHDREV = 4.878E-003 ++ IJTHDFWD = 4.878E-003 ++ XJBVD = 1 ++ BVD = 10 ++ JSD = 1.004E-014 ++ JSWD = 2.467E-018 ++ JSWGD = 0 ++ JTSD = 0 ++ JTSSWD = 0 ++ JTSSWGD = 0 ++ NJD = 15 ++ NJTSD = 20 ++ NJTSSWD = 20 ++ NJTSSWGD = 20 ++ XTSD = 0.02 ++ XTSSWD = 0.02 ++ XTSSWGD = 0.02 ++ VTSD = 10 ++ VTSSWD = 10 ++ VTSSWGD = 10 ++ TNJTSD = 0 ++ TNJTSSWD = 0 ++ TNJTSSWGD = 0 ++ CJD = 0.0009368 ++ MJD = 0.3545 ++ MJSWD = 0.3141 ++ CJSWD = 7.65E-011 ++ CJSWGD = 5E-010 ++ MJSWGD = 0.33 ++ PBD = 0.9594 ++ PBSWD = 0.9109 ++ PBSWGD = 1 ++ TNOM = -253 ++ UTE = 0 ++ UCSTE = -0.004775 ++ KT1 = -0.11 ++ KT1L = 0 ++ KT2 = 0.022 ++ UA1 = 1E-009 ++ UB1 = -1E-018 ++ UC1 = -0.056 ++ UD1 = 0 ++ AT = 3.3E+004 ++ PRT = 0 ++ XTIS = 3 ++ XTID = 3 ++ TPB = 0 ++ TPBSW = 0 ++ TPBSWG = 0 ++ TCJ = 0 ++ TCJSW = 0 ++ TCJSWG = 0 ++ TVOFF = 0 ++ TVFBSDOFF = 0 ++ SAREF = 0 ++ SBREF = 0 ++ WLOD = 2E-006 ++ KU0 = 4E-006 ++ KVSAT = 0.2 ++ TKU0 = 0 ++ LKU0 = 1E-006 ++ WKU0 = 1E-006 ++ PKU0 = 0 ++ LLODKU0 = 1.1 ++ WLODKU0 = 1.1 ++ KVTH0 = -2E-008 ++ LKVTH0 = 1.1E-006 ++ WKVTH0 = 1.1E-006 ++ PKVTH0 = 0 ++ LLODVTH = 1 ++ WLODVTH = 1 ++ STK2 = 0 ++ LODK2 = 1 ++ STETA0 = 0 ++ LODETA0 = 1 ++ WEB = 0 ++ WEC = 0 ++ KVTH0WE = 0 ++ K2WE = 0 ++ KU0WE = 0 ++ SCREF = 1E-006 ++ WL = 7.641E-015 ++ WLN = 0.9975 ++ WW = -1E-014 ++ WWN = 1.012 ++ WWL = -1.218E-021 ++ LL = -3.165E-015 ++ LLN = 1 ++ LW = -4.827E-015 ++ LWN = 1 ++ LWL = 1.182E-021 ++ LLC = 0 ++ LWC = 0 ++ LWLC = 0 ++ WLC = 0 ++ WWC = 0 ++ WWLC = 0 +* +* diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py index 0884bfead..30e8f25c6 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py @@ -16,7 +16,7 @@ import numpy as np from subprocess import Popen from pathlib import Path -from typing import Union, Optional +from typing import Union, Optional, Literal from tempfile import TemporaryDirectory from shutil import copyfile, copytree from multiprocessing import Pool @@ -31,6 +31,8 @@ from sklearn.metrics import silhouette_score import argparse from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk +from itertools import count, repeat +from pydantic import validate_arguments # ====Build Opamp==== @@ -304,8 +306,6 @@ def get_small_parameter_list(test_mode = False) -> np.array: index = index + 1 return short_list - - def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: Union[str,Path]): acabspath = Path(acpath).resolve() dcabspath = Path(dcpath).resolve() @@ -344,7 +344,7 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: return_dict[key] = val_flt return return_dict -def standardize_netlist_subckt_def(netlist: Union[str,Path], sim_temperature: Optional[float] = float(27)): +def process_netlist_subckt(netlist: Union[str,Path], sim_model: Literal["normal model", "cryo model"]): netlist = Path(netlist).resolve() if not netlist.is_file(): raise ValueError("netlist must be file") @@ -353,22 +353,36 @@ def standardize_netlist_subckt_def(netlist: Union[str,Path], sim_temperature: Op with open(netlist, "r") as spice_net: subckt_lines = spice_net.readlines() for i,line in enumerate(subckt_lines): + line = line.lstrip().lower() + if len(line) and line[0]=="M": + line[0]="X" if all([hint in line for hint in hints]): subckt_lines[i] = ".subckt opamp minus plus vbias1 vbias2 output vdd gnd\n" - if "floating" in line.lower(): + if "floating" in line: subckt_lines[i] = "\n" with open(netlist, "w") as spice_net: spice_net.writelines(subckt_lines) -def __run_single_brtfrc(index, parameters_ele, output_dir: Optional[Union[str,Path]] = None): +def process_spice_testbench(testbench: Union[str,Path], temperature_info: tuple[int,str]=(25,"normal model")): + testbench = Path(testbench).resolve() + if not testbench.is_file(): + raise ValueError("testbench must be file") + with open(testbench, "r") as spice_file: + spicetb = spice_file.read() + spicetb = spicetb.replace('{@@TEMP}', str(int(temperature_info[0]))) + if temperature_info[1] == "cryo model": + spicetb = spicetb.replace("*@@cryo ","") + else: + spicetb = spicetb.replace("*@@stp ","") + with open(testbench, "w") as spice_file: + spice_file.write(spicetb) + +def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_info: tuple[int,str]=(25,"normal model"), output_dir: Optional[Union[str,Path]] = None): # generate layout - global pdk - global save_gds_dir - global SIM_TEMP destination_gds_copy = save_gds_dir / (str(index)+".gds") sky130pdk = pdk params = opamp_parameters_de_serializer(parameters_ele) - opamp_v = sky130_add_opamp_labels(opamp(sky130pdk, **params)) + opamp_v = sky130_add_opamp_labels(sky130_add_lvt_layer(opamp(sky130pdk, **params))) opamp_v.name = "opamp" area = float(opamp_v.area()) # use temp dir @@ -381,29 +395,25 @@ def __run_single_brtfrc(index, parameters_ele, output_dir: Optional[Union[str,Pa copytree("sky130A",str(tmpdirname)+"/sky130A") # extract layout Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() - print("Running simulation at temperature: " + str(SIM_TEMP) + "C") - spice_lines = list() - with open(str(tmpdirname)+"/opamp_perf_eval.sp", "r") as spice_file: - spice_lines = spice_file.readlines() - print("BEFORE REPL: " + spice_lines[5]) - spice_lines[5] = spice_lines[5].replace('{@@TEMP}', str(int(SIM_TEMP))) - print("AFTER REPL: " + spice_lines[5]) - with open(str(tmpdirname)+"/opamp_perf_eval.sp", "w") as spice_file: - spice_file.writelines(spice_lines) - standardize_netlist_subckt_def(str(tmpdirname)+"/opamp_pex.spice", SIM_TEMP) + print("Running simulation at temperature: " + str(temperature_info[0]) + "C") + process_spice_testbench(str(tmpdirname)+"/opamp_perf_eval.sp",temperature_info=temperature_info) + process_netlist_subckt(str(tmpdirname)+"/opamp_pex.spice", temperature_info[1]) # run sim and store result + import pdb; pdb.set_trace() Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() result_dict = get_sim_results(str(tmpdirname)+"/result_ac.txt", str(tmpdirname)+"/result_power.txt", str(tmpdirname)+"/result_noise.txt") result_dict["area"] = area results = opamp_results_serializer(**result_dict) - if output_dir: + if output_dir: output_dir = Path(output_dir).resolve() + output_dir.mkdir(parents=True, exist_ok=True) if not output_dir.is_dir(): raise ValueError("Output directory must be a directory") copytree(str(tmpdirname), str(output_dir)+"/test_output", dirs_exist_ok=True) return results -def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array) -> np.array: + +def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array, temperature_info: tuple[int,str]=(25,"normal model")) -> np.array: """runs the brute force testing of parameters by 1-constructing the opamp layout specfied by parameters 2-extracting the netlist for the opamp @@ -419,34 +429,45 @@ def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np. # initialize empty results array results = None # run layout, extraction, sim - global save_gds_dir save_gds_dir = Path('./save_gds_by_index').resolve() save_gds_dir.mkdir(parents=True) with Pool(120) as cores: - results = np.array(cores.starmap(__run_single_brtfrc, enumerate(parameter_list)),np.float64) + results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info))),np.float64) # undo pdk modification sky130pdk.default_decorator = add_npc_decorator return results - -def get_training_data(test_mode=True,): +# data gathering main function +@validate_arguments +def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25,"normal model")) -> None: + if temperature_info[1] != "normal model" and temperature_info[1] != "cryo model": + raise ValueError("model must be one of \"normal model\" or \"cryo model\"") params = get_small_parameter_list(test_mode) - results = brute_force_full_layout_and_PEXsim(pdk, params) + results = brute_force_full_layout_and_PEXsim(pdk, params, temperature_info) np.save("training_params.npy",params) np.save("training_results.npy",results) -#util function for pure simulation -def single_build_and_simulation(parameters: np.array, output_dir: Optional[Union[str,Path]] = None) -> np.array: + +#util function for pure simulation. sky130 is imported automatically +def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: Optional[Union[str,Path]] = None) -> np.array: """Builds, extract, and simulates a single opamp saves opamp gds in current directory with name 12345678987654321.gds """ - global pdk - global save_gds_dir - pdk = pdk + from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk + # process temperature info + temperature_info = [temp, None] + if temperature_info[0] > -20: + temperature_info[1] = "normal model" + elif temperature_info[0]!=-269: + raise ValueError("simulation temperature should be exactly -269C for cryo sim. Below -20C there are no good models for simulation") + else: + temperature_info[1] = "cryo model" + temperature_info = tuple(temperature_info) + # run single build save_gds_dir = Path('./').resolve() index = 12345678987654321 - return __run_single_brtfrc(index, parameters, output_dir) + return __run_single_brtfrc(pdk, index, parameters, temperature_info=temperature_info, save_gds_dir=save_gds_dir, output_dir=output_dir) #======stats======= @@ -827,6 +848,7 @@ def extract_stats( # Subparser for get_training_data mode get_training_data_parser = subparsers.add_parser("get_training_data", help="Run the get_training_data function.") get_training_data_parser.add_argument("-t", "--test-mode", action="store_true", help="Set test_mode to True (default: False)") + get_training_data_parser.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") # Subparser for gen_opamp mode gen_opamp_parser = subparsers.add_parser("gen_opamp", help="Run the gen_opamp function.") @@ -839,18 +861,23 @@ def extract_stats( gen_opamp_parser.add_argument("--rmult", type=int, default=2, help="rmult (default: 2)") gen_opamp_parser.add_argument("--add_pads",action="store_true" , help="add pads (gen_opamp mode only)") gen_opamp_parser.add_argument("--output_gds", help="Filename for outputing opamp (gen_opamp mode only)") - gen_opamp_parser.add_argument("--temp", type=float, default=float(27), help="Simulation temperature") # Testing test = subparsers.add_parser("test", help="Test mode") test.add_argument("--output_dir", type=Path, default="./", help="Directory for output GDS file") - test.add_argument("--temp", type=float, default=float(27), help="Simulation temperature") + test.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") args = parser.parse_args() - # Simulation Temperature - global SIM_TEMP - SIM_TEMP = args.temp + # Simulation Temperature information + temperature_info = [args.temp, None] + if temperature_info[0] > -20: + temperature_info[1] = "normal model" + elif temperature_info[0]!=-269: + raise ValueError("simulation temperature should be exactly -269C for cryo sim. Below -20C there are no good models for simulation") + else: + temperature_info[1] = "cryo model" + temperature_info = tuple(temperature_info) if args.mode=="extract_stats": # Call the extract_stats function with the specified file paths or defaults @@ -858,10 +885,9 @@ def extract_stats( elif args.mode=="get_training_data": # Call the get_training_data function with test_mode flag - get_training_data(test_mode=args.test_mode) + get_training_data(test_mode=args.test_mode, temperature_info=temperature_info) elif args.mode=="gen_opamp": - from pygen.pdk.sky130_mapped.sky130_mapped import sky130_mapped_pdk as pdk # Call the opamp function with the parsed arguments diffpair_params = tuple(args.diffpair_params) diffpair_bias = tuple(args.diffpair_bias) @@ -899,4 +925,4 @@ def extract_stats( "mim_cap_rows": 3, "rmult": 2 } - single_build_and_simulation(opamp_parameters_serializer(**params), args.output_dir) + single_build_and_simulation(opamp_parameters_serializer(**params), temperature_info[0], args.output_dir) From a3712e5d839ddf268d31d031bde22a508d23ad47 Mon Sep 17 00:00:00 2001 From: L Lakshmanan Date: Tue, 22 Aug 2023 07:15:36 +0530 Subject: [PATCH 44/64] gdsfactory-gen: Added fix for overlaps in the straight route via placements Via placements in the straight route code led to a few buggy overlaps in layouts. Orientation of the vias is now taken as input from the programmer or is according to the orientation of the port by default. Added relative import fixes for op-amp and straight route standalone testing as well. Tested locally on op-amp gen. Signed-off-by: L Lakshmanan --- .../generators/gdsfactory-gen/pygen/opamp.py | 5 ++- .../pygen/routing/straight_route.py | 35 ++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 0a461f65f..17f468311 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -1,3 +1,6 @@ +if __name__ == "__main__": + import sys + sys.path.append("../") from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle @@ -334,7 +337,7 @@ def opamp( if __name__ == "__main__": - from . pdk.util.standard_main import pdk + from pdk.util.standard_main import pdk iterate=False # TO TRY: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py index 99a2ad24e..fae1e7b20 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py @@ -1,3 +1,6 @@ +if __name__ == "__main__": + import sys + sys.path.append("../../") from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port @@ -17,6 +20,8 @@ def straight_route( glayer1: Optional[str] = None, width: Optional[float] = None, glayer2: Optional[str] = None, + via1_alignment: Optional[tuple[str, str]] = None, + via2_alignment: Optional[tuple[str, str]] = None, fullbottom: Optional[bool] = False ) -> Component: """extends a route from edge1 until perpindicular with edge2, then places a via @@ -39,6 +44,9 @@ def straight_route( ****If not edge1.layer, a via will be placed glayer2 = defaults to edge2.layer, end layer of the via width = defaults to edge1.width + via1_alignment = alignment of the via on edge1 + via2_alignment = alignment of the via on edge2 + ****defaults to an orientation that is aligned to the orientation of the port. """ #TODO: error checking width = width if width else edge1.width @@ -72,12 +80,29 @@ def straight_route( out_via = via_stack(pdk,glayer1,glayer2,fullbottom=fullbottom) # place route and via straightroute = Component() + edges = [edge1,edge2] + for i, edge in enumerate(edges): + temp = via1_alignment if i == 0 else via2_alignment + if temp is None: + if round(edge.orientation) == 0:# facing east + temp = ("l", "c") + elif round(edge.orientation) == 180:# facing west + temp = ("r", "c") + elif round(edge.orientation) == 270:# facing south + temp = ("c", "t") + elif round(edge.orientation) == 90:#facing north + temp = ("c", "b") + else: + raise ValueError("port must be vertical or horizontal") + via1_alignment = temp if i == 0 else via1_alignment + via2_alignment = temp if i == 1 else via2_alignment + route_ref = align_comp_to_port(route,edge1,alignment=alignment) straightroute.add_ports(route_ref.get_ports_list(),prefix="route_") straightroute.add(route_ref) - straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],alignment=("c","c"))) + straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],layer=pdk.get_glayer(glayer1),alignment=via1_alignment)) if front_via is not None: - straightroute.add(align_comp_to_port(front_via,edge1,alignment=("c","c"))) + straightroute.add(align_comp_to_port(front_via,edge1,layer=pdk.get_glayer(glayer2),alignment=via2_alignment)) return straightroute.flatten() @@ -85,10 +110,10 @@ def straight_route( from pygen.pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met3"),size=(1,1)).ref() - routebetweentop.movex(20).movey(-3) + routebetweentop.movex(20) routebetweenbottom = rectangle(layer=pdk.get_glayer("met1"), size=(1, 1)) - mycomp = straight_route(pdk,routebetweentop.ports["e3"],routebetweenbottom.ports["e1"]) + mycomp = straight_route(pdk,routebetweentop.ports["e1"],routebetweenbottom.ports["e3"]) mycomp.unlock() mycomp.add(routebetweentop) mycomp << routebetweenbottom - mycomp.flatten().show() + mycomp.show() From f3d441e3e9e0b44327fb731726a7bbc7373191b3 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Thu, 24 Aug 2023 15:01:32 -0400 Subject: [PATCH 45/64] merge routing updates --- .../gdsfactory-gen/pygen/diff_pair.py | 12 ++-- .../generators/gdsfactory-gen/pygen/opamp.py | 61 +++++++++--------- .../pygen/pdk/sky130_mapped/grules.py | 2 +- .../pygen/pdk/util/port_utils.py | 43 ++++++++++-- .../pygen/pdk/util/print_rules.py | 25 +++++++ .../gdsfactory-gen/requirements.txt | 2 + .../{ => tapeout_and_RL}/extract.bash | 0 .../{ => tapeout_and_RL}/opamp_perf_eval.sp | 0 .../sky130A/cryo_models/nshort.spice | 0 .../sky130A/cryo_models/nshortlvth.spice | 0 .../sky130A/cryo_models/pmos.spice | 0 .../sky130A/sky130A.magicrc | 0 .../sky130A/sky130A_setup.tcl | 0 .../{ => tapeout_and_RL}/sky130_mpw5_pad.gds | Bin .../{ => tapeout_and_RL}/sky130_nano_pad.gds | Bin .../sky130_nist_tapeout.py | 46 +++++++------ 16 files changed, 129 insertions(+), 62 deletions(-) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/extract.bash (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/opamp_perf_eval.sp (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130A/cryo_models/nshort.spice (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130A/cryo_models/nshortlvth.spice (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130A/cryo_models/pmos.spice (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130A/sky130A.magicrc (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130A/sky130A_setup.tcl (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130_mpw5_pad.gds (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130_nano_pad.gds (100%) rename openfasoc/generators/gdsfactory-gen/{ => tapeout_and_RL}/sky130_nist_tapeout.py (94%) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index 05841c2fb..8b5193dc3 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -1,7 +1,3 @@ -# 1- create single transistor component -# 2- create a 4 array of them with top transistors mirrored along xaxis such that gate routes are facing out -# separation in the middle should be max of - from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle @@ -20,11 +16,11 @@ @cell def diff_pair( pdk: MappedPDK, - width: Optional[float] = 3, - fingers: Optional[int] = 4, + width: float = 3, + fingers: int = 4, length: Optional[float] = None, - n_or_p_fet: Optional[bool] = True, - plus_minus_seperation: Optional[float] = 0, + n_or_p_fet: bool = True, + plus_minus_seperation: float = 0, rmult: int = 1 ) -> Component: """create a diffpair with 2 transistors placed in two rows with common centroid place. Sources are shorted diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 17f468311..38533ac62 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -1,6 +1,3 @@ -if __name__ == "__main__": - import sys - sys.path.append("../") from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle @@ -41,28 +38,8 @@ def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap return opamp_top -@cell -def opamp( - pdk: MappedPDK, - diffpair_params: Optional[tuple[float, float, int]] = (6, 1, 4), - diffpair_bias: Optional[tuple[float, float, int]] = (6, 2, 4), - houtput_bias: Optional[tuple[float, float, int, int]] = (6, 2, 8, 3), - pamp_hparams: Optional[tuple[float, float, int, int]] = (7, 1, 10, 3), - mim_cap_size=(12, 12), - mim_cap_rows=3, - rmult: int = 2 -) -> Component: - """create an opamp, args: - pdk=pdk to use - diffpair_params = diffpair (width,length,fingers) - diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) - houtput_bias = west current mirror (width,length,fingers,mults), two halves - pamp_hparams = pmos top component amp (width,length,fingers,mults) - mim_cap_size = width,length of individual mim_cap - """ - _max_metal_seperation_ps = pdk.util_max_metal_seperation() - opamp_top = Component() - # place nmos components +@validate_arguments +def __create_diff_pair_and_bias(pdk: MappedPDK, diffpair_params: tuple[float, float, int], diffpair_bias: tuple[float, float, int], rmult: int) -> Component: # create and center diffpair diffpair_i_ = Component("temp diffpair and current source") center_diffpair_comp = diff_pair( @@ -91,11 +68,37 @@ def opamp( tailcurrent_ref = diffpair_i_ << tailcurrent_comp tailcurrent_ref.movey( -0.5 * (center_diffpair_comp.ymax - center_diffpair_comp.ymin) - - abs(tailcurrent_ref.ymax) - _max_metal_seperation_ps + - abs(tailcurrent_ref.ymax) - pdk.util_max_metal_seperation() ) diffpair_i_.add_ports(tailcurrent_ref.get_ports_list()) - # add diff pair and tailcurrent_comp to opamp - diffpair_i_ref = prec_ref_center(diffpair_i_) + return diffpair_i_ + + +@cell +def opamp( + pdk: MappedPDK, + diffpair_params: tuple[float, float, int] = (6, 1, 4), + diffpair_bias: tuple[float, float, int] = (6, 2, 4), + houtput_bias: tuple[float, float, int, int] = (6, 2, 8, 3), + pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), + mim_cap_size=(12, 12), + mim_cap_rows=3, + rmult: int = 2 +) -> Component: + """create an opamp, args: + pdk=pdk to use + diffpair_params = diffpair (width,length,fingers) + diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) + houtput_bias = west current mirror (width,length,fingers,mults), two halves + pamp_hparams = pmos top component amp (width,length,fingers,mults) + mim_cap_size = width,length of individual mim_cap + """ + _max_metal_seperation_ps = pdk.util_max_metal_seperation() + opamp_top = Component() + # place nmos components + diffpair_and_bias = __create_diff_pair_and_bias(pdk, diffpair_params, diffpair_bias, rmult) + # add diff pair and bias block to opamp + diffpair_i_ref = prec_ref_center(diffpair_and_bias) opamp_top.add(diffpair_i_ref) opamp_top.add_ports(diffpair_i_ref.get_ports_list(),prefix="centerNcomps_") # create and position current mirror symetrically @@ -337,7 +340,7 @@ def opamp( if __name__ == "__main__": - from pdk.util.standard_main import pdk + from . pdk.util.standard_main import pdk iterate=False # TO TRY: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py index 452fffc69..474801604 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py @@ -44,7 +44,7 @@ grulesobj["pwell"]["capmet"] = {} grulesobj["nwell"]["dnwell"] = {} grulesobj["nwell"]["pwell"] = {} -grulesobj["nwell"]["nwell"] = {"min_width": 0.84, "min_sepeartion": 1.27} +grulesobj["nwell"]["nwell"] = {"min_width": 0.84, "min_separation": 1.27} grulesobj["nwell"]["p+s/d"] = {} grulesobj["nwell"]["n+s/d"] = {} grulesobj["nwell"]["active_diff"] = {} diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py index c2b3f3411..c007bc5b4 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py @@ -6,6 +6,7 @@ from decimal import Decimal from pathlib import Path import pickle +from PrettyPrint import PrettyPrintTree @validate_arguments @@ -230,13 +231,18 @@ def print_ports(custom_comp: Union[Component, ComponentReference], names_only: O class PortTree: """PortTree helps a pygen programmer visualize the ports in a component - _ should represent a level of hiearchy (much like a directory). think of this like psuedo directories + \"_\" should represent a level of hiearchy (much like a directory). think of this like psuedo directories Initialize a PortTree from a Component or ComponentReference - then use PortTree.ls to list all ports/subdirectories in a directory + then use self.ls to list all ports/subdirectories in a directory + you can use self.print to prettyprint a port tree (uses pypi prettyprinttree package) + + You should not need to access the internal dictionary for the tree, but if you do: + PortTree internally uses tuple[str, dict] = name:children as the node type + since the PortTree is not a node type (PortTree is not a real tree class), the root node is: (self.name, self.tree) """ @validate_arguments - def __init__(self, custom_comp: Union[Component, ComponentReference]): + def __init__(self, custom_comp: Union[Component, ComponentReference], name: Optional[str]=None): """creates the tree structure from the ports where _ represent subdirectories credit -> chatGPT """ @@ -250,12 +256,13 @@ def __init__(self, custom_comp: Union[Component, ComponentReference]): current_dir[path_component] = {} current_dir = current_dir[path_component] self.tree = directory_tree + self.name = name if name else custom_comp.name @validate_arguments def ls(self, file_path: Optional[str] = None) -> list[str]: """tries to traverse the tree along the given path and prints all subdirectories in a psuedo directory if the path given is not found in the tree, raises KeyError - path should not end with _ char + path should not end with \"_\" char """ if file_path is None or len(file_path)==0: return list(self.tree.keys()) @@ -282,4 +289,30 @@ def read_from_disk(cls, pklfile: Union[Path, str]): if not pklfile.is_file(): raise ValueError("no file named" + str(pklfile)) with open(str(pklfile), 'rb') as infile: - return pickle.load(infile) \ No newline at end of file + return pickle.load(infile) + + def get_children(self, node: tuple[str, dict]) -> list[tuple[str, dict]]: + """access children of internal tree node (node might be a PortTree)""" + node_dict = node[1] if isinstance(node, tuple) else self.tree + return node_dict.items() + + + def get_val(self, node: tuple[str, dict]) -> str: + """returns value of a node, (node might be a PortTree)""" + return node[0] if isinstance(node, tuple) else self.name + + def print(self, savetofile: bool=True, depth: Optional[int]=None, **kwargs): + """prints output to terminal directly using prettyprinttree pypi package + args: + depth = max depth to print. this is a kwarg but since it so common, it should be specfied from depth arg + kwargs -> kwargs are prettyprint options passed directly to prettyprint + """ + depth = int(depth) if depth is not None or depth>0 else -1 + savetofile_opts = {} + if savetofile: + savetofile_opts = {"return_instead_of_print":savetofile, "color":None, "border":True} + pt = PrettyPrintTree(self.get_children, self.get_val, max_depth=depth, **savetofile_opts, **kwargs) + rtrstr = pt(self) + if rtrstr: + with open("outputtree.txt","w") as outputfile: + outputfile.write(rtrstr) \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py index 2962423e7..e63812200 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py @@ -9,6 +9,7 @@ import csv from pathlib import Path +from pydantic import validate_arguments def split_rule(rule: str) -> tuple: @@ -83,6 +84,30 @@ def create_ruledeck_python_dictionary_definition(csvtoread: Path): return output +@validate_arguments +def visualize_ruleset(ruleset: dict): + """use networkx to print a visual of the ruleset graph + nodes are glayers (strings) + edges are rules (tuple[name:value]) + """ + import pygraphviz as pgv + ruleGraph = pgv.AGraph(strict=False, directed=False, multigraph=True) + ruleGraph.add_nodes_from(ruleset.keys()) + for glayer1 in ruleset.keys(): + for glayer2 in ruleset[glayer1].keys(): + for rule, value in ruleset[glayer1][glayer2].items(): + color="black" + if "min_separ" in rule: + color="red" + elif "min_enclos" in rule: + color = "blue" + elif "width" in rule: + color = "orange" + #ruleGraph.add_edge(glayer1,glayer2,label=value,color=color,key=rule) + ruleGraph.add_edge(glayer1,glayer2,color=color,key=rule) + ruleGraph.draw("test.png",format="png",prog="dot") + + if __name__ == "__main__": from argparse import ArgumentParser diff --git a/openfasoc/generators/gdsfactory-gen/requirements.txt b/openfasoc/generators/gdsfactory-gen/requirements.txt index 626ebfb21..bb51dafa8 100644 --- a/openfasoc/generators/gdsfactory-gen/requirements.txt +++ b/openfasoc/generators/gdsfactory-gen/requirements.txt @@ -4,3 +4,5 @@ scikit-learn matplotlib scipy seaborn +prettyprinttree +pygraphviz \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/extract.bash b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash similarity index 100% rename from openfasoc/generators/gdsfactory-gen/extract.bash rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash diff --git a/openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp similarity index 100% rename from openfasoc/generators/gdsfactory-gen/opamp_perf_eval.sp rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshort.spice b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/cryo_models/nshort.spice similarity index 100% rename from openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshort.spice rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/cryo_models/nshort.spice diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshortlvth.spice b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/cryo_models/nshortlvth.spice similarity index 100% rename from openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/nshortlvth.spice rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/cryo_models/nshortlvth.spice diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/pmos.spice b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/cryo_models/pmos.spice similarity index 100% rename from openfasoc/generators/gdsfactory-gen/sky130A/cryo_models/pmos.spice rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/cryo_models/pmos.spice diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/sky130A.magicrc b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/sky130A.magicrc similarity index 100% rename from openfasoc/generators/gdsfactory-gen/sky130A/sky130A.magicrc rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/sky130A.magicrc diff --git a/openfasoc/generators/gdsfactory-gen/sky130A/sky130A_setup.tcl b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/sky130A_setup.tcl similarity index 100% rename from openfasoc/generators/gdsfactory-gen/sky130A/sky130A_setup.tcl rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130A/sky130A_setup.tcl diff --git a/openfasoc/generators/gdsfactory-gen/sky130_mpw5_pad.gds b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_mpw5_pad.gds similarity index 100% rename from openfasoc/generators/gdsfactory-gen/sky130_mpw5_pad.gds rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_mpw5_pad.gds diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nano_pad.gds b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nano_pad.gds similarity index 100% rename from openfasoc/generators/gdsfactory-gen/sky130_nano_pad.gds rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nano_pad.gds diff --git a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py similarity index 94% rename from openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 30e8f25c6..318fb8e7b 100644 --- a/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -1,6 +1,6 @@ import sys # path to pygen -sys.path.append('./pygen') +sys.path.append('../') from gdsfactory.read.import_gds import import_gds from gdsfactory.components import text_freetype, rectangle @@ -9,8 +9,8 @@ from gdsfactory.component import Component from pygen.pdk.mappedpdk import MappedPDK from pygen.opamp import opamp -from pygen.L_route import L_route -from pygen.straight_route import straight_route +from pygen.routing.L_route import L_route +from pygen.routing.straight_route import straight_route from pygen.via_gen import via_array from gdsfactory.cell import cell, clear_cache import numpy as np @@ -344,7 +344,7 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: return_dict[key] = val_flt return return_dict -def process_netlist_subckt(netlist: Union[str,Path], sim_model: Literal["normal model", "cryo model"]): +def process_netlist_subckt(netlist: Union[str,Path], sim_model: Literal["normal model", "cryo model"], cload: float=0.0, noparasitics: bool=False): netlist = Path(netlist).resolve() if not netlist.is_file(): raise ValueError("netlist must be file") @@ -354,12 +354,12 @@ def process_netlist_subckt(netlist: Union[str,Path], sim_model: Literal["normal subckt_lines = spice_net.readlines() for i,line in enumerate(subckt_lines): line = line.lstrip().lower() - if len(line) and line[0]=="M": + if "cryo" in sim_model and len(line) and line[0]=="M": line[0]="X" if all([hint in line for hint in hints]): - subckt_lines[i] = ".subckt opamp minus plus vbias1 vbias2 output vdd gnd\n" - if "floating" in line: - subckt_lines[i] = "\n" + subckt_lines[i] = ".subckt opamp minus plus vbias1 vbias2 output vdd gnd\nCload output gnd " + str(cload) +"p\n" + if "floating" in line or (noparasitics and len(line) and line[0]=="C"): + subckt_lines[i] = "* "+ subckt_lines[i] with open(netlist, "w") as spice_net: spice_net.writelines(subckt_lines) @@ -377,7 +377,7 @@ def process_spice_testbench(testbench: Union[str,Path], temperature_info: tuple[ with open(testbench, "w") as spice_file: spice_file.write(spicetb) -def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_info: tuple[int,str]=(25,"normal model"), output_dir: Optional[Union[str,Path]] = None): +def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, output_dir: Optional[Union[str,Path]] = None): # generate layout destination_gds_copy = save_gds_dir / (str(index)+".gds") sky130pdk = pdk @@ -397,9 +397,8 @@ def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_in Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() print("Running simulation at temperature: " + str(temperature_info[0]) + "C") process_spice_testbench(str(tmpdirname)+"/opamp_perf_eval.sp",temperature_info=temperature_info) - process_netlist_subckt(str(tmpdirname)+"/opamp_pex.spice", temperature_info[1]) + process_netlist_subckt(str(tmpdirname)+"/opamp_pex.spice", temperature_info[1], cload=cload, noparasitics=noparasitics) # run sim and store result - import pdb; pdb.set_trace() Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() result_dict = get_sim_results(str(tmpdirname)+"/result_ac.txt", str(tmpdirname)+"/result_power.txt", str(tmpdirname)+"/result_noise.txt") result_dict["area"] = area @@ -413,7 +412,7 @@ def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_in return results -def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array, temperature_info: tuple[int,str]=(25,"normal model")) -> np.array: +def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False) -> np.array: """runs the brute force testing of parameters by 1-constructing the opamp layout specfied by parameters 2-extracting the netlist for the opamp @@ -432,27 +431,28 @@ def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np. save_gds_dir = Path('./save_gds_by_index').resolve() save_gds_dir.mkdir(parents=True) with Pool(120) as cores: - results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info))),np.float64) + results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics))),np.float64) # undo pdk modification sky130pdk.default_decorator = add_npc_decorator return results # data gathering main function @validate_arguments -def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25,"normal model")) -> None: +def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False) -> None: if temperature_info[1] != "normal model" and temperature_info[1] != "cryo model": raise ValueError("model must be one of \"normal model\" or \"cryo model\"") params = get_small_parameter_list(test_mode) - results = brute_force_full_layout_and_PEXsim(pdk, params, temperature_info) + results = brute_force_full_layout_and_PEXsim(pdk, params, temperature_info, cload=cload, noparasitics=noparasitics) np.save("training_params.npy",params) np.save("training_results.npy",results) #util function for pure simulation. sky130 is imported automatically -def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: Optional[Union[str,Path]] = None) -> np.array: +def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: Optional[Union[str,Path]] = None, cload: float=0.0, noparasitics: bool=False) -> np.array: """Builds, extract, and simulates a single opamp saves opamp gds in current directory with name 12345678987654321.gds + returns -987.654321 for all values IF phase margin < 45 """ from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk # process temperature info @@ -467,7 +467,11 @@ def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: # run single build save_gds_dir = Path('./').resolve() index = 12345678987654321 - return __run_single_brtfrc(pdk, index, parameters, temperature_info=temperature_info, save_gds_dir=save_gds_dir, output_dir=output_dir) + results = __run_single_brtfrc(pdk, index, parameters, temperature_info=temperature_info, save_gds_dir=save_gds_dir, output_dir=output_dir, cload=cload, noparasitics=noparasitics) + if results["phaseMargin"] < 45: + for key in results: + results[key] = -987.654321 + return results #======stats======= @@ -849,6 +853,8 @@ def extract_stats( get_training_data_parser = subparsers.add_parser("get_training_data", help="Run the get_training_data function.") get_training_data_parser.add_argument("-t", "--test-mode", action="store_true", help="Set test_mode to True (default: False)") get_training_data_parser.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") + get_training_data_parser.add_argument("--cload", type=float, default=float(0), help="run simulation with load capacitance units=pico Farads") + get_training_data_parser.add_argument("--noparasitics",action="store_true",help="specify that parasitics should be removed when simulating") # Subparser for gen_opamp mode gen_opamp_parser = subparsers.add_parser("gen_opamp", help="Run the gen_opamp function.") @@ -866,6 +872,8 @@ def extract_stats( test = subparsers.add_parser("test", help="Test mode") test.add_argument("--output_dir", type=Path, default="./", help="Directory for output GDS file") test.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") + test.add_argument("--cload", type=float, default=float(0), help="run simulation with load capacitance units=pico Farads") + test.add_argument("--noparasitics",action="store_true",help="specify that parasitics should be removed when simulating") args = parser.parse_args() @@ -885,7 +893,7 @@ def extract_stats( elif args.mode=="get_training_data": # Call the get_training_data function with test_mode flag - get_training_data(test_mode=args.test_mode, temperature_info=temperature_info) + get_training_data(test_mode=args.test_mode, temperature_info=temperature_info, cload=args.cload, noparasitics=args.noparasitics) elif args.mode=="gen_opamp": # Call the opamp function with the parsed arguments @@ -925,4 +933,4 @@ def extract_stats( "mim_cap_rows": 3, "rmult": 2 } - single_build_and_simulation(opamp_parameters_serializer(**params), temperature_info[0], args.output_dir) + single_build_and_simulation(opamp_parameters_serializer(**params), temperature_info[0], args.output_dir, cload=args.cload, noparasitics=args.noparasitics) From af09ba831e8eb8c65182da63a4a45b3c616cae8e Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 25 Aug 2023 16:15:07 -0400 Subject: [PATCH 46/64] opamp bug fixes and readME updates --- .../generators/gdsfactory-gen/pygen/README.md | 30 +- .../pygen/docs/PortTreeExample.png | Bin 0 -> 36694 bytes .../generators/gdsfactory-gen/pygen/opamp.py | 320 ++++++++++-------- .../pygen/pdk/util/comp_utils.py | 34 +- .../gdsfactory-gen/pygen/via_gen.py | 4 +- 5 files changed, 240 insertions(+), 148 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/PortTreeExample.png diff --git a/openfasoc/generators/gdsfactory-gen/pygen/README.md b/openfasoc/generators/gdsfactory-gen/pygen/README.md index 140c5b206..3665a0b88 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/README.md +++ b/openfasoc/generators/gdsfactory-gen/pygen/README.md @@ -16,6 +16,7 @@ All functions, classes, etc have a help docustring. See python help() for specif - [Cells and PDK.activate()](#cells-and-pdkactivate) - [Important GDSFactory Notes and Pygen Utilities](#important-gdsfactory-notes-and-pygen-utilities) - [Port Naming Best Practices Guide](#port-naming-best-practices-guide) + - [PortTree](#porttree) - [Snap to 2x grid](#snap-to-2x-grid) - [Mimcaps Implementation](#mimcaps-implementation) - [DRC](#drc) @@ -112,7 +113,7 @@ The GDSFactory API is extremely versatile and there are many useful features. It - Component.add(): add an one of several types to a Component. (more flexible than << operator) - Component.ref()/.ref_center(): return a reference to a component -It is not possible to move Components in GDSFactory. GDSFactory has a Component cache, so moving a component may invalidate the cache, but there are situations where you want to move a component; For these situations, use the pygen [move](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L146), [movex](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L185), [movey](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L195) functions. +It is not possible to move Components in GDSFactory. GDSFactory has a Component cache, so moving a component may invalidate the cache, but there are situations where you want to move a component; For these situations, use the pygen [move](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L24), [movex](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L63), [movey](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L73) functions. - Component references are pointers to components. They have many of the same methods as Components with some additions. - ComponentReference.parent: the Component which this component reference points to @@ -125,14 +126,14 @@ To add a ComponentReference to a Component, you cannot use the insertion operato - A port describes a single edge of a polygon. The most useful port attributes are **width, center tuple(x,y), orientation (degrees), and layer of the edge**. - For example, the rectangle cell factory provided in gdsfactory.components.rectangle returns a Component type with the following port names: e1, e2, e3, e4. - e1=West, e2=North, e3=East, e4=South. The default naming scheme of ports in GDSFactory is not descriptive - - use pygen [rename_ports_by_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L65), [rename_ports_by_list](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L89) functions and see below for port naming best practices guide - - pygen [get_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L205): returns the letter (N,E,S,W) or degrees of orientation of port. by default returns the one you do not have. see help. - - pygen [assert_is_manhattan](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L240): assert that a port or list or ports have orientation N, E, S, or W - - pygen [assert_ports_perpindicular](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L251): assert two ports are perpindicular - - pygen [set_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L262): return new port which is copy of old port but with new orientation - - pygen [set_port_width](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L283): return a new port which is a copy of the old one, but with new width + - use pygen [rename_ports_by_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L67), [rename_ports_by_list](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L91) functions and see below for port naming best practices guide + - pygen [get_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L124): returns the letter (N,E,S,W) or degrees of orientation of port. by default returns the one you do not have. see help. + - pygen [assert_port_manhattan](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L159): assert that a port or list or ports have orientation N, E, S, or W + - pygen [assert_ports_perpindicular](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L181): assert two ports are perpindicular + - pygen [set_port_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L181): return new port which is copy of old port but with new orientation + - pygen [set_port_width](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L202): return a new port which is a copy of the old one, but with new width -A very important utility is [align_comp_to_port](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L300): pass a component or componentReference and a port, and align the component to any edge of the port. +A very important utility is [align_comp_to_port](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L83): pass a component or componentReference and a port, and align the component to any edge of the port. ### Port Naming Best Practices Guide As previously pointed out, the default naming of ports in GDSFactory is not descriptive. By default gdsfactory.components.rectangle returns ports e1 (West port), e2 (North port), e3 (East port), e4 (South port). Additionally, complicated hiearchies can result in thousands of ports, so organizing ports is a neccessity. The below best practices guide should be used to organize ports @@ -141,16 +142,23 @@ As previously pointed out, the default naming of ports in GDSFactory is not desc `tapring.add_ports(via_array.get_ports_list(),prefix="topviaarray_")` - The port rename functions look for the "\_" syntax. You can NOT use the port rename functions without this syntax. - The last 2 characters of a port name should "\_" followed by the orientation (N, E, S, or W) - - you can easily achieve this by calling pygen [`rename_ports_by_orientation`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/custom_comp_utils.py#L42) before returning a component (just the names end with "\_" before calling this function) + - you can easily achieve this by calling pygen [`rename_ports_by_orientation`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L67) before returning a component (just the names end with "\_" before calling this function) - **USE PORTS**: be sure to correctly add and label ports to components you make because you do not know when they will be used in other cells. + +#### PortTree +The [PortTree](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L232) class is designed to assist in finding ports and understanding port structure. Initialize a PortTree by calling [`PortTree(Component or ComponentReference)`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L245). The PortTree will internally construct a directory tree structure from the Component's ports. You can use [`PortTree.print()`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L304) to print this whole structure for a nice figure explaining a Component's ports. See the example print output from a via_stack component below: + +**PortTree of a via_stack:** +![PortTree example](docs/PortTreeExample.png) + ### Snap to 2x grid -All rules (when creating a MappedPDK) and all user provided float arguments must be snapped to 2*grid size. This is because it is possible to center a component. Centering a component which has a dimension on grid may result in off grid polygons. You can snap floating point values to grid easily by calling `pdk.snap_to_2x_grid()` +All rules (when creating a MappedPDK) and all user provided float arguments must be snapped to 2*grid size. This is because it is possible to center a component. Centering a component which has a dimension on grid may result in off grid polygons. You can snap floating point values to grid easily by calling `pdk.snap_to_2x_grid()`. You should also take care to snap to 2xgrid whenever you see it is neccessary while writing generator code. For example, most generators which take a size(xdim: float, ydim: float) argument should snap to 2xgrid. ### Mimcaps Implementation Although many technolgies have 2 or more mimcap options, there is currently only 1 mimcap option supported. When creating a mapped pdk, you specify the cap metal layer as a generic layer, but you specify the metal above and metal below the cap met as part of the DRC rule set for `pdk.get_grule("capmet")`. You can access the metal above capmet with `pdk.get_grule(capmet)["capmettop"]`. ### DRC If the system has klayout installed and you provide a klayout lydrc script for your MappedPDK, you can run DRC from python by calling pdk.drc(Component or GDS). The return value is a boolean (legal or not legal) and a lyrdb (xml format) file is written describing each DRC error. This file can be opened graphically in klayout with the following syntax `klayout layout.gds -m drc.lyrdb` ### LVS, and Labeling Issues -There are no glayers for labeling or pins, all cells are generated without any labels. You can easily add pins to your component manually after pygen write the gds, or by using ports, you can write a function for adding labels and pins. See [sky130_nist_tapeout example function](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/sky130_nist_tapeout.py#L97). +There are no glayers for labeling or pins, all cells are generated without any labels. You can easily add pins to your component manually after pygen write the gds, or by using ports, you can write a function for adding labels and pins. See [sky130_nist_tapeout example function](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py#L97). ### Addressing Complicated Requirments with Default Decorators A python decorator is a function (the decorator) is a function which is called on another function. It can be used to enhance the features of a function. With GDSFactory Pdk (and MappedPDK objects) you can define a default decorator which runs on any cell factory (cell factories must be decorated with the `@cell` decorator). The default decorator you define runs in addition to the `@cell` decorator. The defined default_decorator should accept as argument a Component and return a Component. This should be used when dealing with PDK specfic requirments that do not fit into the MappedPDK framework. For example, sky130 has a NPC (nitride poly cut) layer which **must** be used wherever licon (local interconnect contact) is laid over poly. It does not make sense to modify MappedPDK to add a generic NPC layer AND modify all cell factories; sky130 is unqiue in this requirment, so modifying MappedPDK/all cell factories would make pygen less generic. Instead, we define a default_decorator [`sky130_add_npc(Component) -> Component`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py). This function uses booleans to add npc anywhere licon is laid over poly (it also joins NPC polygons if they are closer than the NPC min separation rule). Layers and rules in this technology specific function are hard coded because this decorator will only run for sky130 is the active pdk (this is one reason why you must be sure that pdk is activated). \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/PortTreeExample.png b/openfasoc/generators/gdsfactory-gen/pygen/docs/PortTreeExample.png new file mode 100644 index 0000000000000000000000000000000000000000..865c77a3a1242d6d60df180f2073d0b0bf055f76 GIT binary patch literal 36694 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 z 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 literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 38533ac62..b84e5cdfb 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -1,8 +1,9 @@ from gdsfactory.cell import cell, clear_cache from gdsfactory.component import Component, copy +from gdsfactory.component_reference import ComponentReference from gdsfactory.components.rectangle import rectangle from pygen.pdk.mappedpdk import MappedPDK -from typing import Optional +from typing import Optional, Union from pygen.fet import nmos, pmos, multiplier from pygen.diff_pair import diff_pair from pygen.guardring import tapring @@ -11,7 +12,7 @@ from pygen.routing.c_route import c_route from pygen.via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad -from pygen.pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port +from pygen.pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port, get_padding_points_cc from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation from sys import exit from pygen.routing.straight_route import straight_route @@ -21,25 +22,9 @@ -@validate_arguments -def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap_rows, ymin: float, n_to_p_output_route) -> Component: - mim_cap_size = pdk.snap_to_2xgrid(mim_cap_size, return_type="float") - max_metalsep = pdk.util_max_metal_seperation() - mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) - displace_fact = max(max_metalsep,pdk.get_grule("capmet")["min_separation"]) - mimcaps_ref.movex(opamp_top.xmax + displace_fact + mim_cap_size[0]/2) - mimcaps_ref.movey(ymin + mim_cap_size[1]/2) - # connect mimcap to gnd - port1 = opamp_top.ports["pcomps_mimcap_connection_con_N"] - port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] - cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) - opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) - opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) - return opamp_top - @validate_arguments -def __create_diff_pair_and_bias(pdk: MappedPDK, diffpair_params: tuple[float, float, int], diffpair_bias: tuple[float, float, int], rmult: int) -> Component: +def __add_diff_pair_and_bias(pdk: MappedPDK, opamp_top: Component, diffpair_params: tuple[float, float, int], diffpair_bias: tuple[float, float, int], rmult: int) -> Component: # create and center diffpair diffpair_i_ = Component("temp diffpair and current source") center_diffpair_comp = diff_pair( @@ -71,46 +56,22 @@ def __create_diff_pair_and_bias(pdk: MappedPDK, diffpair_params: tuple[float, fl - abs(tailcurrent_ref.ymax) - pdk.util_max_metal_seperation() ) diffpair_i_.add_ports(tailcurrent_ref.get_ports_list()) - return diffpair_i_ - - -@cell -def opamp( - pdk: MappedPDK, - diffpair_params: tuple[float, float, int] = (6, 1, 4), - diffpair_bias: tuple[float, float, int] = (6, 2, 4), - houtput_bias: tuple[float, float, int, int] = (6, 2, 8, 3), - pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), - mim_cap_size=(12, 12), - mim_cap_rows=3, - rmult: int = 2 -) -> Component: - """create an opamp, args: - pdk=pdk to use - diffpair_params = diffpair (width,length,fingers) - diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) - houtput_bias = west current mirror (width,length,fingers,mults), two halves - pamp_hparams = pmos top component amp (width,length,fingers,mults) - mim_cap_size = width,length of individual mim_cap - """ - _max_metal_seperation_ps = pdk.util_max_metal_seperation() - opamp_top = Component() - # place nmos components - diffpair_and_bias = __create_diff_pair_and_bias(pdk, diffpair_params, diffpair_bias, rmult) - # add diff pair and bias block to opamp - diffpair_i_ref = prec_ref_center(diffpair_and_bias) + diffpair_i_ref = prec_ref_center(diffpair_i_) opamp_top.add(diffpair_i_ref) opamp_top.add_ports(diffpair_i_ref.get_ports_list(),prefix="centerNcomps_") - # create and position current mirror symetrically + return opamp_top + +@validate_arguments +def __add_common_source_nbias_transistors(pdk: MappedPDK, opamp_top: Component, half_common_source_nbias: tuple[float, float, int, int], rmult: int) -> Component: + # create each half of the nmos bias transistor for the common source stage and place them x_dim_center = opamp_top.xmax - src_gnd_port = [None,None] for i, dummy in enumerate([(False, True), (True, False)]): halfMultn = nmos( pdk, - width=houtput_bias[0], - length=houtput_bias[1], - fingers=houtput_bias[2], - multipliers=houtput_bias[3], + width=half_common_source_nbias[0], + length=half_common_source_nbias[1], + fingers=half_common_source_nbias[2], + multipliers=half_common_source_nbias[3], with_tie=True, with_dnwell=False, with_substrate_tap=False, @@ -120,23 +81,23 @@ def opamp( ) halfMultn_ref = opamp_top << halfMultn direction = (-1) ** i - halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax + _max_metal_seperation_ps)) + halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax + pdk.util_max_metal_seperation())) opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="nfet_Isrc_"+str(i)+"_") - opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) - # add ground pin - gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) - gndpin.movey(opamp_top.ymin-_max_metal_seperation_ps-gndpin.ymax) + return opamp_top + +@validate_arguments +def __route_bottom_ncomps_except_drain_nbias(pdk: MappedPDK, opamp_top: Component, gndpin: Union[Component,ComponentReference], halfmultn_num_mults: int) -> tuple: # route tailcurrent_comp opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_W"],gndpin.ports["e1"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) # route to gnd the sources of halfMultn _cref = opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"].center[1]),fullbottom=True) # connect gates and drains of halfMultn - halfMultn_left_gate_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(houtput_bias[3]-2)+"_gate_con_N"] - halfMultn_right_gate_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(houtput_bias[3]-2)+"_gate_con_N"] + halfMultn_left_gate_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] + halfMultn_right_gate_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] halfmultn_gate_routeref = opamp_top << c_route(pdk, halfMultn_left_gate_port, halfMultn_right_gate_port, extension=abs(opamp_top.ymax-halfMultn_left_gate_port.center[1])+1,fullbottom=True, viaoffset=(False,False)) - halfMultn_left_drain_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(houtput_bias[3]-2)+"_drain_con_N"] - halfMultn_right_drain_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(houtput_bias[3]-2)+"_drain_con_N"] + halfMultn_left_drain_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] + halfMultn_right_drain_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] halfmultn_drain_routeref = opamp_top << c_route(pdk, halfMultn_left_drain_port, halfMultn_right_drain_port, extension=abs(opamp_top.ymax-halfMultn_left_drain_port.center[1])+1,fullbottom=True) # route to gnd the guardring of halfMultn opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_0_tie_S_top_met_S"],movey(gndpin.ports["e1"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) @@ -144,20 +105,24 @@ def opamp( # route source of diffpair to drain of tailcurrent_comp opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeW_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_W"]) opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeE_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_E"]) - # place pmos components - pmos_comps = Component("pmos_section_top") - # center and position - shared_gate_comps = Component("pmos_shared_gates") - #TODO: report as bug - clear_cache() + return opamp_top, halfmultn_drain_routeref, halfmultn_gate_routeref, _cref + + + +@validate_arguments +def __create_sharedgatecomps(pdk: MappedPDK, rmult: int) -> tuple: + # add diffpair current mirror loads (this is a pmos current mirror split into 2 for better matching/compensation) + shared_gate_comps = Component("shared gate components") + # create the 2*2 multiplier transistors (placed twice later) + twomultpcomps = Component("2 multiplier shared gate comps") pcompR = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(False, True),rmult=rmult) pcompL = multiplier(pdk, "p+s/d", width=6, length=1, fingers=6, dummy=(True, False),rmult=rmult) - pcomp_AB_spacing = max(2*_max_metal_seperation_ps + 6*pdk.get_grule("met4")["min_width"],pdk.get_grule("p+s/d")["min_separation"]) - _prefL = (shared_gate_comps << pcompL).movex(-1 * pcompL.xmax - pcomp_AB_spacing/2) - _prefR = (shared_gate_comps << pcompR).movex(-1 * pcompR.xmin + pcomp_AB_spacing/2) - shared_gate_comps.add_ports(_prefL.get_ports_list(),prefix="L_") - shared_gate_comps.add_ports(_prefR.get_ports_list(),prefix="R_") - shared_gate_comps << route_quad(_prefL.ports["gate_W"], _prefR.ports["gate_E"], layer=pdk.get_glayer("met2")) + pcomp_AB_spacing = max(2*pdk.util_max_metal_seperation() + 6*pdk.get_grule("met4")["min_width"],pdk.get_grule("p+s/d")["min_separation"]) + _prefL = (twomultpcomps << pcompL).movex(-1 * pcompL.xmax - pcomp_AB_spacing/2) + _prefR = (twomultpcomps << pcompR).movex(-1 * pcompR.xmin + pcomp_AB_spacing/2) + twomultpcomps.add_ports(_prefL.get_ports_list(),prefix="L_") + twomultpcomps.add_ports(_prefR.get_ports_list(),prefix="R_") + twomultpcomps << route_quad(_prefL.ports["gate_W"], _prefR.ports["gate_E"], layer=pdk.get_glayer("met2")) # center relative_dim_comp = multiplier( pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False, rmult=rmult @@ -185,61 +150,69 @@ def opamp( extra_t = single_dim else: pcenterfourunits = relative_dim_comp - pref_ = (pmos_comps << pcenterfourunits).movex(to_float(i * single_dim + extra_t)) + pref_ = (shared_gate_comps << pcenterfourunits).movex(to_float(i * single_dim + extra_t)) LRplusdopedPorts += [pref_.ports["plusdoped_W"] , pref_.ports["plusdoped_E"]] LRgatePorts += [pref_.ports["gate_W"],pref_.ports["gate_E"]] LRdrainsPorts += [pref_.ports["source_W"],pref_.ports["source_E"]] LRsourcesPorts += [pref_.ports["drain_W"],pref_.ports["drain_E"]] + # combine the two multiplier top and bottom with the 4 multiplier center row + ytranslation_pcenter = 2 * pcenterfourunits.ymax + 5*pdk.util_max_metal_seperation() + ptop_AB = (shared_gate_comps << twomultpcomps).movey(ytranslation_pcenter) + pbottom_AB = (shared_gate_comps << twomultpcomps).movey(-1 * ytranslation_pcenter) + return shared_gate_comps, ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts + +def __route_sharedgatecomps(pdk: MappedPDK, shared_gate_comps, via_location, ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts) -> Component: + _max_metal_seperation_ps = pdk.util_max_metal_seperation() # connect p+s/d layer of the transistors - pmos_comps << route_quad(LRplusdopedPorts[0],LRplusdopedPorts[-1],layer=pdk.get_glayer("p+s/d")) + shared_gate_comps << route_quad(LRplusdopedPorts[0],LRplusdopedPorts[-1],layer=pdk.get_glayer("p+s/d")) # connect drain of the left 2 and right 2, short sources of all 4 - pmos_comps << route_quad(LRdrainsPorts[0],LRdrainsPorts[3],layer=LRdrainsPorts[0].layer) - pmos_comps << route_quad(LRdrainsPorts[4],LRdrainsPorts[7],layer=LRdrainsPorts[0].layer) - pmos_comps << route_quad(LRsourcesPorts[0],LRsourcesPorts[-1],layer=LRsourcesPorts[0].layer) - pcomps_2L_2R_sourcevia = pmos_comps << via_stack(pdk,pdk.layer_to_glayer(LRsourcesPorts[0].layer), "met4") + shared_gate_comps << route_quad(LRdrainsPorts[0],LRdrainsPorts[3],layer=LRdrainsPorts[0].layer) + shared_gate_comps << route_quad(LRdrainsPorts[4],LRdrainsPorts[7],layer=LRdrainsPorts[0].layer) + shared_gate_comps << route_quad(LRsourcesPorts[0],LRsourcesPorts[-1],layer=LRsourcesPorts[0].layer) + pcomps_2L_2R_sourcevia = shared_gate_comps << via_stack(pdk,pdk.layer_to_glayer(LRsourcesPorts[0].layer), "met4") pcomps_2L_2R_sourcevia.movey(evaluate_bbox(pcomps_2L_2R_sourcevia.parent.extract(layers=[LRsourcesPorts[0].layer,]))[1]/2 + LRsourcesPorts[0].center[1]) - pmos_comps.add_ports(pcomps_2L_2R_sourcevia.get_ports_list(),prefix="2L2Rsrcvia_") + shared_gate_comps.add_ports(pcomps_2L_2R_sourcevia.get_ports_list(),prefix="2L2Rsrcvia_") # short all the gates - pmos_comps << route_quad(LRgatePorts[0],LRgatePorts[-1],layer=pdk.get_glayer("met2")) - ytranslation_pcenter = 2 * pcenterfourunits.ymax + 5*_max_metal_seperation_ps - ptop_AB = (pmos_comps << shared_gate_comps).movey(ytranslation_pcenter) - pbottom_AB = (pmos_comps << shared_gate_comps).movey(-1 * ytranslation_pcenter) - pmos_comps.add_ports(ptop_AB.get_ports_list(),prefix="ptopAB_") - pmos_comps.add_ports(pbottom_AB.get_ports_list(),prefix="pbottomAB_") - # short all gates of pmos_comps - pcenter_gate_route_extension = pmos_comps.xmax - min(ptop_AB.ports["R_gate_E"].center[0], LRgatePorts[-1].center[0]) - pdk.get_grule("active_diff")["min_width"] - pcenter_l_croute = pmos_comps << c_route(pdk, ptop_AB.ports["L_gate_W"], pbottom_AB.ports["L_gate_W"],extension=pcenter_gate_route_extension) - pcenter_r_croute = pmos_comps << c_route(pdk, ptop_AB.ports["R_gate_E"], pbottom_AB.ports["R_gate_E"],extension=pcenter_gate_route_extension) - pmos_comps << straight_route(pdk, LRgatePorts[0], pcenter_l_croute.ports["con_N"]) - pmos_comps << straight_route(pdk, LRgatePorts[-1], pcenter_r_croute.ports["con_N"]) + shared_gate_comps << route_quad(LRgatePorts[0],LRgatePorts[-1],layer=pdk.get_glayer("met2")) + shared_gate_comps.add_ports(ptop_AB.get_ports_list(),prefix="ptopAB_") + shared_gate_comps.add_ports(pbottom_AB.get_ports_list(),prefix="pbottomAB_") + # short all gates of shared_gate_comps + pcenter_gate_route_extension = shared_gate_comps.xmax - min(ptop_AB.ports["R_gate_E"].center[0], LRgatePorts[-1].center[0]) - pdk.get_grule("active_diff")["min_width"] + pcenter_l_croute = shared_gate_comps << c_route(pdk, ptop_AB.ports["L_gate_W"], pbottom_AB.ports["L_gate_W"],extension=pcenter_gate_route_extension) + pcenter_r_croute = shared_gate_comps << c_route(pdk, ptop_AB.ports["R_gate_E"], pbottom_AB.ports["R_gate_E"],extension=pcenter_gate_route_extension) + shared_gate_comps << straight_route(pdk, LRgatePorts[0], pcenter_l_croute.ports["con_N"]) + shared_gate_comps << straight_route(pdk, LRgatePorts[-1], pcenter_r_croute.ports["con_N"]) # connect drain of A to the shorted gates - pmos_comps << L_route(pdk,ptop_AB.ports["L_source_W"],pcenter_l_croute.ports["con_N"]) - pmos_comps << straight_route(pdk,pbottom_AB.ports["R_source_E"],pcenter_r_croute.ports["con_N"]) + shared_gate_comps << L_route(pdk,ptop_AB.ports["L_source_W"],pcenter_l_croute.ports["con_N"]) + shared_gate_comps << straight_route(pdk,pbottom_AB.ports["R_source_E"],pcenter_r_croute.ports["con_N"]) # connect source of A to the drain of 2L - pcomps_route_A_drain_extension = pmos_comps.xmax-max(ptop_AB.ports["R_drain_E"].center[0], LRdrainsPorts[-1].center[0])+_max_metal_seperation_ps - pcomps_route_A_drain = pmos_comps << c_route(pdk, ptop_AB.ports["L_drain_W"], LRdrainsPorts[0], extension=pcomps_route_A_drain_extension) + pcomps_route_A_drain_extension = shared_gate_comps.xmax-max(ptop_AB.ports["R_drain_E"].center[0], LRdrainsPorts[-1].center[0])+_max_metal_seperation_ps + pcomps_route_A_drain = shared_gate_comps << c_route(pdk, ptop_AB.ports["L_drain_W"], LRdrainsPorts[0], extension=pcomps_route_A_drain_extension) row_rectangle_routing = rectangle(layer=ptop_AB.ports["L_drain_W"].layer,size=(pbottom_AB.ports["R_source_N"].width,pbottom_AB.ports["R_source_W"].width)).copy() Aextra_top_connection = align_comp_to_port(row_rectangle_routing, pbottom_AB.ports["R_source_N"], ('c','t')).movey(row_rectangle_routing.ymax + _max_metal_seperation_ps) - pmos_comps.add(Aextra_top_connection) - pmos_comps << straight_route(pdk,Aextra_top_connection.ports["e4"],pbottom_AB.ports["R_drain_N"]) - pmos_comps << L_route(pdk,pcomps_route_A_drain.ports["con_S"], Aextra_top_connection.ports["e1"],viaoffset=(False,True)) + shared_gate_comps.add(Aextra_top_connection) + shared_gate_comps << straight_route(pdk,Aextra_top_connection.ports["e4"],pbottom_AB.ports["R_drain_N"]) + shared_gate_comps << L_route(pdk,pcomps_route_A_drain.ports["con_S"], Aextra_top_connection.ports["e1"],viaoffset=(False,True)) # connect source of B to drain of 2R - pcomps_route_B_source_extension = pmos_comps.xmax-max(LRsourcesPorts[-1].center[0],ptop_AB.ports["R_source_E"].center[0])+_max_metal_seperation_ps - mimcap_connection_ref = pmos_comps << c_route(pdk, ptop_AB.ports["R_source_E"], LRdrainsPorts[-1],extension=pcomps_route_B_source_extension,viaoffset=(True,False)) + pcomps_route_B_source_extension = shared_gate_comps.xmax-max(LRsourcesPorts[-1].center[0],ptop_AB.ports["R_source_E"].center[0])+_max_metal_seperation_ps + mimcap_connection_ref = shared_gate_comps << c_route(pdk, ptop_AB.ports["R_source_E"], LRdrainsPorts[-1],extension=pcomps_route_B_source_extension,viaoffset=(True,False)) bottom_pcompB_floating_port = set_port_orientation(movey(movex(pbottom_AB.ports["L_source_E"].copy(),5*_max_metal_seperation_ps), destination=Aextra_top_connection.ports["e1"].center[1]+Aextra_top_connection.ports["e1"].width+_max_metal_seperation_ps),"S") - pmos_bsource_2Rdrain_v = pmos_comps << L_route(pdk,pbottom_AB.ports["L_source_E"],bottom_pcompB_floating_port,vglayer="met3") - pmos_comps << c_route(pdk, LRdrainsPorts[-1], set_port_orientation(bottom_pcompB_floating_port,"E"),extension=pcomps_route_B_source_extension,viaoffset=(True,False)) + pmos_bsource_2Rdrain_v = shared_gate_comps << L_route(pdk,pbottom_AB.ports["L_source_E"],bottom_pcompB_floating_port,vglayer="met3") + shared_gate_comps << c_route(pdk, LRdrainsPorts[-1], set_port_orientation(bottom_pcompB_floating_port,"E"),extension=pcomps_route_B_source_extension,viaoffset=(True,False)) pmos_bsource_2Rdrain_v_center = via_stack(pdk,"met2","met3",fulltop=True) - pmos_comps.add(align_comp_to_port(pmos_bsource_2Rdrain_v_center, bottom_pcompB_floating_port,('r','t'))) + shared_gate_comps.add(align_comp_to_port(pmos_bsource_2Rdrain_v_center, bottom_pcompB_floating_port,('r','t'))) # connect drain of B to each other directly over where the diffpair top left drain will be - pmos_bdrain_diffpair_v = pmos_comps << via_stack(pdk, "met2","met5",fullbottom=True) - pmos_bdrain_diffpair_v = align_comp_to_port(pmos_bdrain_diffpair_v, movex(pbottom_AB.ports["L_gate_S"].copy(),destination=opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0])) + pmos_bdrain_diffpair_v = shared_gate_comps << via_stack(pdk, "met2","met5",fullbottom=True) + pmos_bdrain_diffpair_v = align_comp_to_port(pmos_bdrain_diffpair_v, movex(pbottom_AB.ports["L_gate_S"].copy(),destination=via_location)) pmos_bdrain_diffpair_v.movey(0-_max_metal_seperation_ps) - pcomps_route_B_drain_extension = pmos_comps.xmax-ptop_AB.ports["R_drain_E"].center[0]+_max_metal_seperation_ps - pmos_comps << c_route(pdk, ptop_AB.ports["R_drain_E"], pmos_bdrain_diffpair_v.ports["bottom_met_E"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) - pmos_comps << c_route(pdk, pbottom_AB.ports["L_drain_W"], pmos_bdrain_diffpair_v.ports["bottom_met_W"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) - pmos_comps.add_ports(pmos_bdrain_diffpair_v.get_ports_list(),prefix="minusvia_") - # pcore to output + pcomps_route_B_drain_extension = shared_gate_comps.xmax-ptop_AB.ports["R_drain_E"].center[0]+_max_metal_seperation_ps + shared_gate_comps << c_route(pdk, ptop_AB.ports["R_drain_E"], pmos_bdrain_diffpair_v.ports["bottom_met_E"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) + shared_gate_comps << c_route(pdk, pbottom_AB.ports["L_drain_W"], pmos_bdrain_diffpair_v.ports["bottom_met_W"],extension=pcomps_route_B_drain_extension +_max_metal_seperation_ps) + shared_gate_comps.add_ports(pmos_bdrain_diffpair_v.get_ports_list(),prefix="minusvia_") + shared_gate_comps.add_ports(mimcap_connection_ref.get_ports_list(),prefix="mimcap_connection_") + return shared_gate_comps + +def __add_common_source_Pamp_and_finish_pcomps(pdk: MappedPDK, pmos_comps: Component, pamp_hparams, rmult) -> Component: x_dim_center = max(abs(pmos_comps.xmax),abs(pmos_comps.xmin)) for direction in [-1, 1]: halfMultp = pmos( @@ -254,25 +227,30 @@ def opamp( sd_route_left=bool(direction-1), rmult=rmult ) - halfMultp halfMultp_ref = pmos_comps << halfMultp halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax+1)) label = "l_" if direction==-1 else "r_" pmos_comps.add_ports(halfMultp_ref.get_ports_list(),prefix="halfp_"+label) - # finish place central - ydim_ncomps = opamp_top.ymax - # TODO: use remove layers and make padding only around transistors (ignore the bottom routes) - pmos_comps.add_padding( - layers=[pdk.get_glayer("nwell")], - default=pdk.get_grule("nwell", "active_tap")["min_enclosure"], - ) + # add npadding and add ports + nwellbbox = pmos_comps.extract(layers=[pdk.get_glayer("poly"),pdk.get_glayer("active_diff"),pdk.get_glayer("active_tap"), pdk.get_glayer("nwell"),pdk.get_glayer("dnwell")]).bbox + nwellspacing = pdk.get_grule("nwell", "active_tap")["min_enclosure"] + nwell_points = get_padding_points_cc(nwellbbox, default=nwellspacing, pdk_for_snap2xgrid=pdk) + pmos_comps.add_polygon(nwell_points, layer=pdk.get_glayer("nwell")) tapcenter_rect = [(evaluate_bbox(pmos_comps)[0] + 1), (evaluate_bbox(pmos_comps)[1] + 1)] - topptap = pmos_comps << tapring(pdk, tapcenter_rect, "p+s/d") + topptap = tapring(pdk, tapcenter_rect, "p+s/d").ref_center(position=pmos_comps.center) + pmos_comps.add(topptap) pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") - pmos_comps.add_ports(mimcap_connection_ref.get_ports_list(),prefix="mimcap_connection_") - pmos_comps_ref = opamp_top << pmos_comps - pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) - opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") + return pmos_comps + + +@validate_arguments +def __create_and_route_pins(pdk: MappedPDK, + opamp_top: Component, + pmos_comps_ref: ComponentReference, + halfmultn_drain_routeref: ComponentReference, + halfmultn_gate_routeref: ComponentReference +) -> tuple: + _max_metal_seperation_ps = pdk.util_max_metal_seperation() # route halfmultp source, drain, and gate together, place vdd pin in the middle halfmultp_Lsrcport = opamp_top.ports["pcomps_halfp_l_multiplier_0_source_con_N"] halfmultp_Rsrcport = opamp_top.ports["pcomps_halfp_r_multiplier_0_source_con_N"] @@ -325,17 +303,91 @@ def opamp( # route minus transistor drain to output outputvia_diff_pcomps = opamp_top << via_stack(pdk,"met5","met4") outputvia_diff_pcomps.movex(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0]).movey(ptop_halfmultp_gate_route.ports["con_E"].center[1]) + # add pin ports + opamp_top.add_ports(vddpin.get_ports_list(), prefix="pin_vdd_") + opamp_top.add_ports(vbias1.get_ports_list(), prefix="pin_vbias1") + opamp_top.add_ports(vbias2.get_ports_list(), prefix="pin_vbias2_") + opamp_top.add_ports(plus_pin.get_ports_list(), prefix="pin_plus_") + opamp_top.add_ports(minus_pin.get_ports_list(), prefix="pin_minus_") + opamp_top.add_ports(output.get_ports_list(), prefix="pin_output_") + return opamp_top, n_to_p_output_route + + + +@validate_arguments +def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap_rows, ymin: float, n_to_p_output_route) -> Component: + mim_cap_size = pdk.snap_to_2xgrid(mim_cap_size, return_type="float") + max_metalsep = pdk.util_max_metal_seperation() + mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) + displace_fact = max(max_metalsep,pdk.get_grule("capmet")["min_separation"]) + mimcaps_ref.movex(pdk.snap_to_2xgrid(opamp_top.xmax + displace_fact + mim_cap_size[0]/2)) + mimcaps_ref.movey(pdk.snap_to_2xgrid(ymin + mim_cap_size[1]/2)) + # connect mimcap to gnd + port1 = opamp_top.ports["pcomps_mimcap_connection_con_N"] + port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] + cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) + opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) + opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + return opamp_top + + + + +@cell +def opamp( + pdk: MappedPDK, + diffpair_params: tuple[float, float, int] = (6, 1, 4), + diffpair_bias: tuple[float, float, int] = (6, 2, 4), + half_common_source_nbias: tuple[float, float, int, int] = (6, 2, 8, 3), + pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), + mim_cap_size=(12, 12), + mim_cap_rows=3, + rmult: int = 2 +) -> Component: + """create an opamp, args: + pdk=pdk to use + diffpair_params = diffpair (width,length,fingers) + diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) + half_common_source_nbias = west current mirror (width,length,fingers,mults), two halves + pamp_hparams = pmos top component amp (width,length,fingers,mults) + mim_cap_size = width,length of individual mim_cap + """ + _max_metal_seperation_ps = pdk.util_max_metal_seperation() + opamp_top = Component() + # place nmos components + clear_cache() + diffpair_and_bias = __add_diff_pair_and_bias(pdk, opamp_top, diffpair_params, diffpair_bias, rmult) + # create and position each half of the nmos bias transistor for the common source stage symetrically + clear_cache() + opamp_top = __add_common_source_nbias_transistors(pdk, opamp_top, half_common_source_nbias, rmult) + opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) + # add ground pin + gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) + gndpin.movey(opamp_top.ymin-pdk.util_max_metal_seperation()-gndpin.ymax) + # route bottom ncomps except drain of nbias (still need to place common source pmos amp) + clear_cache() + opamp_top, halfmultn_drain_routeref, halfmultn_gate_routeref, _cref = __route_bottom_ncomps_except_drain_nbias(pdk, opamp_top, gndpin, half_common_source_nbias[3]) + opamp_top.add_ports(gndpin.get_ports_list(), prefix="pin_gnd_") + # place pmos components + #TODO: report as bug + clear_cache() + pmos_comps, ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts = __create_sharedgatecomps(pdk, rmult) + clear_cache() + pmos_comps = __route_sharedgatecomps(pdk, pmos_comps, opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0], ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts) + clear_cache() + pmos_comps = __add_common_source_Pamp_and_finish_pcomps(pdk, pmos_comps, pamp_hparams, rmult) + ydim_ncomps = opamp_top.ymax + pmos_comps_ref = opamp_top << pmos_comps + pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) + opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") + # create pins and route + clear_cache() + opamp_top, n_to_p_output_route = __create_and_route_pins(pdk, opamp_top, pmos_comps_ref, halfmultn_drain_routeref, halfmultn_gate_routeref) # place mimcaps and route + clear_cache() opamp_top = __add_mimcap_arr(pdk, opamp_top, mim_cap_size, mim_cap_rows, pmos_comps_ref.ymin, n_to_p_output_route) # return opamp_top.add_ports(_cref.get_ports_list(), prefix="gnd_route_") - opamp_top.add_ports(gndpin.get_ports_list(), prefix="gnd_pin_") - opamp_top.add_ports(vddpin.get_ports_list(), prefix="vdd_pin_") - opamp_top.add_ports(vbias1.get_ports_list(), prefix="vbias1_pin_") - opamp_top.add_ports(vbias2.get_ports_list(), prefix="vbias2_pin_") - opamp_top.add_ports(plus_pin.get_ports_list(), prefix="plus_pin_") - opamp_top.add_ports(minus_pin.get_ports_list(), prefix="minus_pin_") - opamp_top.add_ports(output.get_ports_list(), prefix="output_pin_") return rename_ports_by_orientation(component_snap_to_grid(opamp_top)) @@ -347,7 +399,7 @@ def opamp( #pdk = pdk to use #diffpair_params = diffpair (width,length,fingers) #diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) - #houtput_bias = west current mirror (width,length,fingers,mults), two halves + #half_common_source_nbias = west current mirror (width,length,fingers,mults), two halves #pamp_hparams = pmos top component amp (width,length,fingers,mults) #mim_cap_size = width,length of individual mim_cap if iterate: # 486 versions @@ -377,7 +429,7 @@ def opamp( pdk, diffpair_params = (6, 1, 4), diffpair_bias = (6, 2, 4), - houtput_bias = (6, 2, 8, 3), + half_common_source_nbias = (6, 2, 8, 3), pamp_hparams = (7, 1, 10, 3), mim_cap_size = (12, 12), mim_cap_rows = 3, diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py index ad6571b79..abac60554 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py @@ -3,10 +3,11 @@ from gdsfactory.typings import Component, ComponentReference from gdsfactory.components.rectangle import rectangle from gdsfactory.port import Port -from typing import Callable, Union, Optional,Iterable +from typing import Callable, Union, Optional, Iterable from decimal import Decimal from gdsfactory.functions import transformed from gdsfactory.functions import move as __gf_move +from pygen.pdk.mappedpdk import MappedPDK @validate_arguments @@ -253,3 +254,34 @@ def prec_ref_center(custom_comp: Union[Component,ComponentReference]) -> Compone xcor, ycor = prec_center(compref, False) return compref.movex(xcor).movey(ycor) + + +def get_padding_points_cc( + custom_comp: Union[ComponentReference, Component, list], + default: float = 50.0, + top: Optional[float]=None, + bottom: Optional[float]=None, + right: Optional[float]=None, + left: Optional[float]=None, + pdk_for_snap2xgrid: Optional[MappedPDK]=None +) -> list: + """works like gdsfactory.add_padding.get_padding_points, but also accepts componentReference or bbox + additionally, if you optionally pass a pdk it will snap to 2x grid (else just operates like get_padding_points)""" + if isinstance(custom_comp, ComponentReference) or isinstance(custom_comp, Component): + bbox = custom_comp.bbox + else: + bbox = custom_comp + top = top if top is not None else default + bottom = bottom if bottom is not None else default + right = right if right is not None else default + left = left if left is not None else default + ppoints = [ + [bbox[0][0] - left, bbox[0][1] - bottom], + [bbox[1][0] + right, bbox[0][1] - bottom], + [bbox[1][0] + right, bbox[1][1] + top], + [bbox[0][0] - left, bbox[1][1] + top], + ] + if pdk_for_snap2xgrid is not None: + for i, ppoint in enumerate(ppoints): + ppoints[i] = pdk_for_snap2xgrid.snap_to_2xgrid(ppoint) + return ppoints \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py index 829ad3ea7..bc54c56c3 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py @@ -67,7 +67,7 @@ def __get_layer_dim(pdk: MappedPDK, glayer: str, mode: Literal["both","above","b @validate_arguments def __get_viastack_minseperation(pdk: MappedPDK, viastack: Component, ordered_layer_info) -> tuple[float,float]: - """internal use: return abosolute via seperation and top_enclosure (top via to top met enclosure)""" + """internal use: return absolute via separation and top_enclosure (top via to top met enclosure)""" get_sep = lambda _pdk, rule, _lay_, comp : (rule+2*comp.extract(layers=[_pdk.get_glayer(_lay_)]).xmax) level1, level2 = ordered_layer_info[0] glayer1, glayer2 = ordered_layer_info[1] @@ -86,7 +86,7 @@ def __get_viastack_minseperation(pdk: MappedPDK, viastack: Component, ordered_la top_enclosure = pdk.get_grule(glayer2,via_glayer)["min_enclosure"] via_spacing = pdk.snap_to_2xgrid(max(via_spacing),return_type="float") top_enclosure = pdk.snap_to_2xgrid(top_enclosure,return_type="float") - return via_spacing, 2*top_enclosure + return pdk.snap_to_2xgrid([via_spacing, 2*top_enclosure], return_type="float") @cell From d96351f53500150c0f03bd7b34f17ee7aab2c4cd Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Sun, 27 Aug 2023 01:20:03 -0400 Subject: [PATCH 47/64] opamp current biasing --- .../common/two_transistor_interdigitized.py | 149 ++++++++++++ ...transistors.py => two_transistor_place.py} | 0 .../gdsfactory-gen/pygen/diff_pair.py | 34 +-- .../generators/gdsfactory-gen/pygen/fet.py | 17 +- .../generators/gdsfactory-gen/pygen/opamp.py | 224 +++++++++++++----- .../pygen/pdk/util/port_utils.py | 18 +- .../gdsfactory-gen/pygen/routing/L_route.py | 6 +- .../gdsfactory-gen/pygen/routing/c_route.py | 2 +- .../pygen/routing/straight_route.py | 8 +- 9 files changed, 363 insertions(+), 95 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py rename openfasoc/generators/gdsfactory-gen/pygen/common/{place2transistors.py => two_transistor_place.py} (100%) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py b/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py new file mode 100644 index 000000000..3f654ec2f --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py @@ -0,0 +1,149 @@ +from pygen.pdk.mappedpdk import MappedPDK +from pydantic import validate_arguments +from gdsfactory.component import Component +from pygen.fet import nmos, pmos, multiplier +from pygen.pdk.util.comp_utils import evaluate_bbox +from typing import Literal, Union +from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list +from pygen.routing.straight_route import straight_route +from gdsfactory.functions import transformed +from pygen.guardring import tapring +from pygen.pdk.util.port_utils import add_ports_perimeter + + +@validate_arguments +def two_transistor_interdigitized(pdk: MappedPDK, + numcols: int, + deviceA_and_B: Literal["nfet", "pfet"], + dummy: Union[bool, tuple[bool, bool]] = True, + **kwargs +) -> Component: + """place two transistors in a single row with interdigitized placement + Currently only supports two of the same transistor (same devices) + Place follows an ABABAB... pattern + args: + pdk = MappedPDK to use + numcols = a single col is actually one col for both transistors (so AB). 2 cols = ABAB ... so on + deviceA_and_B = the device to place for both transistors (either nfet or pfet) + dummy = place dummy at the edges of the interdigitized place (true by default). you can specify tuple to place only on one side + kwargs = key word arguments for device. + ****NOTE: These are the same as pygen.fet.multiplier arguments EXCLUDING dummy, sd_route_extension, and pdk options + """ + if isinstance(dummy, bool): + dummy = (dummy, dummy) + # override kwargs for needed options + kwargs["sd_route_extension"] = 0 + kwargs["gate_route_extension"] = 0 + kwargs["sdlayer"] = "n+s/d" if deviceA_and_B == "nfet" else "p+s/d" + kwargs["pdk"] = pdk + # create devices dummy l/r and A/B (change extension options) + kwargs["dummy"] = (True,False) if dummy[0] else False + lefttmost_devA = multiplier(**kwargs) + kwargs["dummy"] = False + center_devA = multiplier(**kwargs) + devB_sd_extension = pdk.util_max_metal_seperation() + abs(center_devA.ports["drain_N"].center[1]-center_devA.ports["diff_N"].center[1]) + devB_gate_extension = pdk.util_max_metal_seperation() + abs(center_devA.ports["row0_col0_gate_S"].center[1]-center_devA.ports["gate_S"].center[1]) + kwargs["sd_route_extension"] = devB_sd_extension + kwargs["gate_route_extension"] = devB_gate_extension + center_devB = multiplier(**kwargs) + kwargs["dummy"] = (False,True) if dummy[1] else False + rightmost_devB = multiplier(**kwargs) + # place devices + idplace = Component() + dims = evaluate_bbox(center_devA) + refs = list() + for i in range(2*numcols): + if i==0: + refs.append(idplace << lefttmost_devA) + elif i==((2*numcols)-1): + refs.append(idplace << rightmost_devB) + elif i%2: # is odd (so device B) + refs.append(idplace << center_devB) + else: # not i%2 == i is even (so device A) + refs.append(idplace << center_devA) + refs[-1].movex(i*(dims[0]+pdk.get_grule("active_diff")["min_separation"])) + devletter = "B" if i%2 else "A" + prefix=devletter+"_"+str(int(i/2))+"_" + idplace.add_ports(refs[-1].get_ports_list(), prefix=prefix) + # merge s/d layer for all transistors + idplace << straight_route(pdk, refs[0].ports["plusdoped_W"],refs[-1].ports["plusdoped_E"]) + # create s/d/gate connections extending over entire row + A_src = idplace << rename_ports_by_orientation(rename_ports_by_list(straight_route(pdk, refs[0].ports["source_W"], refs[-1].ports["source_E"]), [("route_","_")])) + B_src = idplace << rename_ports_by_orientation(rename_ports_by_list(straight_route(pdk, refs[-1].ports["source_E"], refs[0].ports["source_W"]), [("route_","_")])) + A_drain = idplace << rename_ports_by_orientation(rename_ports_by_list(straight_route(pdk, refs[0].ports["drain_W"], refs[-1].ports["drain_E"]), [("route_","_")])) + B_drain = idplace << rename_ports_by_orientation(rename_ports_by_list(straight_route(pdk, refs[-1].ports["drain_E"], refs[0].ports["drain_W"]), [("route_","_")])) + A_gate = idplace << rename_ports_by_orientation(rename_ports_by_list(straight_route(pdk, refs[0].ports["gate_W"], refs[-1].ports["gate_E"]), [("route_","_")])) + B_gate = idplace << rename_ports_by_orientation(rename_ports_by_list(straight_route(pdk, refs[-1].ports["gate_E"], refs[0].ports["gate_W"]), [("route_","_")])) + # add route ports and return + prefixes = ["A_source","B_source","A_drain","B_drain","A_gate","B_gate"] + for i, ref in enumerate([A_src, B_src, A_drain, B_drain, A_gate, B_gate]): + idplace.add_ports(ref.get_ports_list(),prefix=prefixes[i]) + idplace = transformed(idplace.ref_center()) + idplace.unlock() + return idplace + + +@validate_arguments +def two_nfet_interdigitized(pdk: MappedPDK, + numcols: int, + dummy: Union[bool, tuple[bool, bool]] = True, + with_substrate_tap: bool = True, + with_tie: bool = True, + **kwargs +) -> Component: + """Currently only supports two of the same nfet instances. does NOT support multipliers (currently) + Place follows an ABABAB... pattern + args: + pdk = MappedPDK to use + numcols = a single col is actually one col for both nfets (so AB). 2 cols = ABAB ... so on + dummy = place dummy at the edges of the interdigitized place (true by default). you can specify tuple to place only on one side + kwargs = key word arguments for multiplier. + ****NOTE: These are the same as pygen.fet.multiplier arguments EXCLUDING dummy, sd_route_extension, and pdk options + """ + base_multiplier = two_transistor_interdigitized(pdk, numcols, "nfet", dummy, **kwargs) + # tie + if with_tie: + tap_separation = max( + pdk.get_grule("met2")["min_separation"], + pdk.get_grule("met1")["min_separation"], + pdk.get_grule("active_diff", "active_tap")["min_separation"], + ) + tap_separation += pdk.get_grule("p+s/d", "active_tap")["min_enclosure"] + tap_encloses = ( + 2 * (tap_separation + base_multiplier.xmax), + 2 * (tap_separation + base_multiplier.ymax), + ) + tiering_ref = base_multiplier << tapring( + pdk, + enclosed_rectangle=tap_encloses, + sdlayer="p+s/d", + horizontal_glayer="met2", + vertical_glayer="met1", + ) + base_multiplier.add_ports(tiering_ref.get_ports_list(), prefix="welltie_") + # add pwell + base_multiplier.add_padding( + layers=(pdk.get_glayer("pwell"),), + default=pdk.get_grule("pwell", "active_tap")["min_enclosure"], + ) + # add substrate tap + base_multiplier = add_ports_perimeter(base_multiplier,layer=pdk.get_glayer("pwell"),prefix="well_") + # add substrate tap if with_substrate_tap + if with_substrate_tap: + substrate_tap_separation = pdk.get_grule("dnwell", "active_tap")[ + "min_separation" + ] + substrate_tap_encloses = ( + 2 * (substrate_tap_separation + base_multiplier.xmax), + 2 * (substrate_tap_separation + base_multiplier.ymax), + ) + ringtoadd = tapring( + pdk, + enclosed_rectangle=substrate_tap_encloses, + sdlayer="p+s/d", + horizontal_glayer="met2", + vertical_glayer="met1", + ) + tapring_ref = base_multiplier << ringtoadd + base_multiplier.add_ports(tapring_ref.get_ports_list(),prefix="substratetap_") + return base_multiplier diff --git a/openfasoc/generators/gdsfactory-gen/pygen/common/place2transistors.py b/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_place.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/common/place2transistors.py rename to openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_place.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py index 8b5193dc3..bcf12d68c 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py @@ -3,7 +3,7 @@ from gdsfactory.components.rectangle import rectangle from pygen.fet import nmos, pmos from pygen.pdk.mappedpdk import MappedPDK -from typing import Optional +from typing import Optional, Union from gdsfactory.routing.route_quad import route_quad from gdsfactory.routing.route_sharp import route_sharp from pygen.routing.c_route import c_route @@ -21,7 +21,8 @@ def diff_pair( length: Optional[float] = None, n_or_p_fet: bool = True, plus_minus_seperation: float = 0, - rmult: int = 1 + rmult: int = 1, + dummy: Union[bool, tuple[bool, bool]] = True ) -> Component: """create a diffpair with 2 transistors placed in two rows with common centroid place. Sources are shorted width = width of the transistors @@ -35,29 +36,32 @@ def diff_pair( diffpair = Component() # create transistors well = None + if isinstance(dummy, bool): + dummy = (dummy, dummy) if n_or_p_fet: - fet = nmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,with_dnwell=False,with_substrate_tap=False,rmult=rmult) - #print_ports(fet) - min_spacing_x = pdk.get_grule("n+s/d")["min_separation"] - 2*(fet.xmax - fet.ports["multiplier_0_plusdoped_E"].center[0]) + fetL = nmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=(dummy[0], False),with_dnwell=False,with_substrate_tap=False,rmult=rmult) + fetR = nmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=(False,dummy[1]),with_dnwell=False,with_substrate_tap=False,rmult=rmult) + min_spacing_x = pdk.get_grule("n+s/d")["min_separation"] - 2*(fetL.xmax - fetL.ports["multiplier_0_plusdoped_E"].center[0]) well = "pwell" else: - fet = pmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=False,dnwell=False,with_substrate_tap=False,rmult=rmult) - min_spacing_x = pdk.get_grule("p+s/d")["min_separation"] - 2*(fet.xmax - fet.ports["multiplier_0_plusdoped_E"].center[0]) + fetL = pmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=(dummy[0], False),dnwell=False,with_substrate_tap=False,rmult=rmult) + fetR = pmos(pdk, width=width, fingers=fingers,length=length,multipliers=1,with_tie=False,with_dummy=(False,dummy[1]),dnwell=False,with_substrate_tap=False,rmult=rmult) + min_spacing_x = pdk.get_grule("p+s/d")["min_separation"] - 2*(fetL.xmax - fetL.ports["multiplier_0_plusdoped_E"].center[0]) well = "nwell" # place transistors viam2m3 = via_stack(pdk,"met2","met3",centered=True) metal_min_dim = max(pdk.get_grule("met2")["min_width"],pdk.get_grule("met3")["min_width"]) metal_space = max(pdk.get_grule("met2")["min_separation"],pdk.get_grule("met3")["min_separation"],metal_min_dim) - gate_route_os = evaluate_bbox(viam2m3)[0] - fet.ports["multiplier_0_gate_W"].width + metal_space + gate_route_os = evaluate_bbox(viam2m3)[0] - fetL.ports["multiplier_0_gate_W"].width + metal_space min_spacing_y = metal_space + 2*gate_route_os - min_spacing_y = min_spacing_y - 2*abs(fet.ports["well_S"].center[1] - fet.ports["multiplier_0_gate_S"].center[1]) + min_spacing_y = min_spacing_y - 2*abs(fetL.ports["well_S"].center[1] - fetL.ports["multiplier_0_gate_S"].center[1]) # TODO: fix spacing where you see +-0.5 - a_topl = (diffpair << fet).movey(fet.ymax+min_spacing_y/2+0.5).movex(0-fet.xmax-min_spacing_x/2) - b_topr = (diffpair << fet).movey(fet.ymax+min_spacing_y/2+0.5).movex(fet.xmax+min_spacing_x/2) - a_botr = (diffpair << fet) - a_botr.mirror_y().movey(0-0.5-fet.ymax-min_spacing_y/2).movex(fet.xmax+min_spacing_x/2) - b_botl = (diffpair << fet) - b_botl.mirror_y().movey(0-0.5-fet.ymax-min_spacing_y/2).movex(0-fet.xmax-min_spacing_x/2) + a_topl = (diffpair << fetL).movey(fetL.ymax+min_spacing_y/2+0.5).movex(0-fetL.xmax-min_spacing_x/2) + b_topr = (diffpair << fetR).movey(fetR.ymax+min_spacing_y/2+0.5).movex(fetL.xmax+min_spacing_x/2) + a_botr = (diffpair << fetR) + a_botr.mirror_y().movey(0-0.5-fetL.ymax-min_spacing_y/2).movex(fetL.xmax+min_spacing_x/2) + b_botl = (diffpair << fetL) + b_botl.mirror_y().movey(0-0.5-fetR.ymax-min_spacing_y/2).movex(0-fetL.xmax-min_spacing_x/2) # route sources (short sources) diffpair << route_quad(a_topl.ports["multiplier_0_source_E"], b_topr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) diffpair << route_quad(b_botl.ports["multiplier_0_source_E"], a_botr.ports["multiplier_0_source_W"], layer=pdk.get_glayer("met2")) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py index 6be25901e..58324e761 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -50,11 +50,12 @@ def __gen_fingers_macro(pdk: MappedPDK, rmult: int, fingers: int, length: float, multiplier = rename_ports_by_orientation(centered_farray) diff_extra_enc = 2 * pdk.get_grule("mcon", "active_diff")["min_enclosure"] diff_dims =(diff_extra_enc + evaluate_bbox(multiplier)[0], width) - multiplier << rectangle(size=diff_dims,layer=pdk.get_glayer("active_diff"),centered=True) + diff = multiplier << rectangle(size=diff_dims,layer=pdk.get_glayer("active_diff"),centered=True) sd_diff_ovhg = pdk.get_grule(sdlayer, "active_diff")["min_enclosure"] sdlayer_dims = [dim + sd_diff_ovhg for dim in diff_dims] sdlayer_ref = multiplier << rectangle(size=sdlayer_dims, layer=pdk.get_glayer(sdlayer),centered=True) multiplier.add_ports(sdlayer_ref.get_ports_list(),prefix="plusdoped_") + multiplier.add_ports(diff.get_ports_list(),prefix="diff_") return component_snap_to_grid(rename_ports_by_orientation(multiplier)) @@ -73,7 +74,9 @@ def multiplier( rmult: Optional[int]=None, sd_rmult: int = 1, gate_rmult: int=1, - interfinger_rmult: int=1 + interfinger_rmult: int=1, + sd_route_extension: float = 0, + gate_route_extension: float = 0, ) -> Component: """Generic poly/sd vias generator args: @@ -89,12 +92,16 @@ def multiplier( sd_rmult = multiplies thickness of sd metal (int only) gate_rmult = multiplies gate by adding rows to the gate via array (int only) interfinger_rmult = multiplies thickness of source/drain routes between the gates (int only) + sd_route_extension = float, how far extra to extend the source/drain connections (default=0) + gate_route_extension = float, how far extra to extend the gate connection (default=0) - ports (one port for each edge), source is below drain: + ports (one port for each edge), + ****NOTE: source is below drain: gate_... all edges (top met route of gate connection) source_...all edges (top met route of source connections) drain_...all edges (top met route of drain connections) plusdoped_...all edges (area of p+s/d or n+s/d layer) + diff_...all edges (diffusion region) rowx_coly_...all ports associated with finger array include gate_... and array_ (array includes all ports of the viastacks in the array) leftsd_...all ports associated with the left most via array """ @@ -137,7 +144,7 @@ def multiplier( big_extension = sdroute_minsep + sdmet_hieght/2 + sdmet_hieght sdvia_extension = big_extension if finger % 2 else sdmet_hieght/2 sdvia_ref = align_comp_to_port(sdvia,diff_top_port,alignment=('c','t')) - multiplier.add(sdvia_ref.movey(sdvia_extension)) + multiplier.add(sdvia_ref.movey(pdk.snap_to_2xgrid(sdvia_extension + sd_route_extension))) multiplier << straight_route(pdk, diff_top_port, sdvia_ref.ports["bottom_met_N"]) sdvia_ports += [sdvia_ref.ports["top_met_W"], sdvia_ref.ports["top_met_E"]] # get the next port (break before this if last iteration because port D.N.E. and num gates=fingers) @@ -147,7 +154,7 @@ def multiplier( # route gates gate_S_port = multiplier.ports[f"row0_col{finger}_gate_S"] metal_seperation = pdk.util_max_metal_seperation() - psuedo_Ngateroute = movey(gate_S_port.copy(),0-metal_seperation) + psuedo_Ngateroute = movey(gate_S_port.copy(),0-metal_seperation-gate_route_extension) multiplier << straight_route(pdk,gate_S_port,psuedo_Ngateroute) # place route met: gate gate_width = gate_S_port.center[0] - multiplier.ports["row0_col0_gate_S"].center[0] + gate_S_port.width diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index b84e5cdfb..a39490df7 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -13,12 +13,11 @@ from pygen.via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad from pygen.pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port, get_padding_points_cc -from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation -from sys import exit +from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation, rename_component_ports from pygen.routing.straight_route import straight_route from pygen.pdk.util.snap_to_grid import component_snap_to_grid from pydantic import validate_arguments - +from pygen.common.two_transistor_interdigitized import two_nfet_interdigitized @@ -37,28 +36,36 @@ def __add_diff_pair_and_bias(pdk: MappedPDK, opamp_top: Component, diffpair_para diffpair_i_.add(prec_ref_center(center_diffpair_comp)) diffpair_i_.add_ports(center_diffpair_comp.get_ports_list()) # create and position tail current source - tailcurrent_comp = nmos( + cmirror = two_nfet_interdigitized( pdk, width=diffpair_bias[0], length=diffpair_bias[1], - fingers=diffpair_bias[2], - multipliers=1, + numcols=diffpair_bias[2], with_tie=False, - with_dnwell=False, with_substrate_tap=False, gate_route_topmet="met3", sd_route_topmet="met3", rmult=rmult ) - tailcurrent_ref = diffpair_i_ << tailcurrent_comp + # cmirror routing + metal_sep = pdk.util_max_metal_seperation() + gate_short = cmirror << c_route(pdk, cmirror.ports["A_gate_E"],cmirror.ports["B_gate_E"],extension=3*metal_sep,viaoffset=None) + cmirror << L_route(pdk, gate_short.ports["con_N"],cmirror.ports["A_drain_E"],viaoffset=False,fullbottom=False) + srcshort = cmirror << c_route(pdk, cmirror.ports["A_source_W"],cmirror.ports["B_source_W"],extension=metal_sep,viaoffset=False) + cmirror.add_ports(srcshort.get_ports_list(),prefix="purposegndports") + # add cmirror + tailcurrent_ref = diffpair_i_ << cmirror tailcurrent_ref.movey( -0.5 * (center_diffpair_comp.ymax - center_diffpair_comp.ymin) - - abs(tailcurrent_ref.ymax) - pdk.util_max_metal_seperation() + - abs(tailcurrent_ref.ymax) - metal_sep ) - diffpair_i_.add_ports(tailcurrent_ref.get_ports_list()) + purposegndPort = tailcurrent_ref.ports["purposegndportscon_S"].copy() + purposegndPort.name = "ibias_purposegndport" + diffpair_i_.add_ports([purposegndPort]) + diffpair_i_.add_ports(tailcurrent_ref.get_ports_list(), prefix="ibias_") diffpair_i_ref = prec_ref_center(diffpair_i_) opamp_top.add(diffpair_i_ref) - opamp_top.add_ports(diffpair_i_ref.get_ports_list(),prefix="centerNcomps_") + opamp_top.add_ports(diffpair_i_ref.get_ports_list(),prefix="diffpair_") return opamp_top @validate_arguments @@ -82,29 +89,30 @@ def __add_common_source_nbias_transistors(pdk: MappedPDK, opamp_top: Component, halfMultn_ref = opamp_top << halfMultn direction = (-1) ** i halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax + pdk.util_max_metal_seperation())) - opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="nfet_Isrc_"+str(i)+"_") + side = "R" if i==0 else "L" + opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="commonsource_Nbias_"+side+"_") return opamp_top @validate_arguments def __route_bottom_ncomps_except_drain_nbias(pdk: MappedPDK, opamp_top: Component, gndpin: Union[Component,ComponentReference], halfmultn_num_mults: int) -> tuple: # route tailcurrent_comp - opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_W"],gndpin.ports["e1"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) - opamp_top << c_route(pdk, opamp_top.ports["centerNcomps_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) + opamp_top << L_route(pdk, opamp_top.ports["diffpair_ibias_purposegndport"],gndpin.ports["e1"])#width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) + #opamp_top << c_route(pdk, opamp_top.ports["diffpair_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) # route to gnd the sources of halfMultn - _cref = opamp_top << c_route(pdk, opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"], opamp_top.ports["nfet_Isrc_1_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["nfet_Isrc_0_multiplier_0_source_con_S"].center[1]),fullbottom=True) + _cref = opamp_top << c_route(pdk, opamp_top.ports["commonsource_Nbias_R_multiplier_0_source_con_S"], opamp_top.ports["commonsource_Nbias_L_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["commonsource_Nbias_R_multiplier_0_source_con_S"].center[1]),fullbottom=True) # connect gates and drains of halfMultn - halfMultn_left_gate_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] - halfMultn_right_gate_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] + halfMultn_left_gate_port = opamp_top.ports["commonsource_Nbias_R_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] + halfMultn_right_gate_port = opamp_top.ports["commonsource_Nbias_L_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] halfmultn_gate_routeref = opamp_top << c_route(pdk, halfMultn_left_gate_port, halfMultn_right_gate_port, extension=abs(opamp_top.ymax-halfMultn_left_gate_port.center[1])+1,fullbottom=True, viaoffset=(False,False)) - halfMultn_left_drain_port = opamp_top.ports["nfet_Isrc_0_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] - halfMultn_right_drain_port = opamp_top.ports["nfet_Isrc_1_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] + halfMultn_left_drain_port = opamp_top.ports["commonsource_Nbias_R_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] + halfMultn_right_drain_port = opamp_top.ports["commonsource_Nbias_L_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] halfmultn_drain_routeref = opamp_top << c_route(pdk, halfMultn_left_drain_port, halfMultn_right_drain_port, extension=abs(opamp_top.ymax-halfMultn_left_drain_port.center[1])+1,fullbottom=True) # route to gnd the guardring of halfMultn - opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_0_tie_S_top_met_S"],movey(gndpin.ports["e1"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) - opamp_top << straight_route(pdk,opamp_top.ports["nfet_Isrc_1_tie_S_top_met_S"],movey(gndpin.ports["e3"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) - # route source of diffpair to drain of tailcurrent_comp - opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeW_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_W"]) - opamp_top << L_route(pdk,opamp_top.ports["centerNcomps_source_routeE_con_N"],opamp_top.ports["centerNcomps_multiplier_0_drain_E"]) + opamp_top << straight_route(pdk,opamp_top.ports["commonsource_Nbias_R_tie_S_top_met_S"],movey(gndpin.ports["e1"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) + opamp_top << straight_route(pdk,opamp_top.ports["commonsource_Nbias_L_tie_S_top_met_S"],movey(gndpin.ports["e3"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) + # route source of diffpair to drain of cmirror + opamp_top << L_route(pdk,opamp_top.ports["diffpair_source_routeW_con_N"],opamp_top.ports["diffpair_ibias_B_drain_W"]) + opamp_top << L_route(pdk,opamp_top.ports["diffpair_source_routeE_con_N"],opamp_top.ports["diffpair_ibias_B_drain_E"]) return opamp_top, halfmultn_drain_routeref, halfmultn_gate_routeref, _cref @@ -229,8 +237,9 @@ def __add_common_source_Pamp_and_finish_pcomps(pdk: MappedPDK, pmos_comps: Compo ) halfMultp_ref = pmos_comps << halfMultp halfMultp_ref.movex(direction * abs(x_dim_center + halfMultp_ref.xmax+1)) - label = "l_" if direction==-1 else "r_" - pmos_comps.add_ports(halfMultp_ref.get_ports_list(),prefix="halfp_"+label) + label = "L_" if direction==-1 else "R_" + # this special marker is used to rename these ports in the opamp to commonsource_Pamp_ + pmos_comps.add_ports(halfMultp_ref.get_ports_list(),prefix="halfpspecialmarker_"+label) # add npadding and add ports nwellbbox = pmos_comps.extract(layers=[pdk.get_glayer("poly"),pdk.get_glayer("active_diff"),pdk.get_glayer("active_tap"), pdk.get_glayer("nwell"),pdk.get_glayer("dnwell")]).bbox nwellspacing = pdk.get_grule("nwell", "active_tap")["min_enclosure"] @@ -243,8 +252,10 @@ def __add_common_source_Pamp_and_finish_pcomps(pdk: MappedPDK, pmos_comps: Compo return pmos_comps + @validate_arguments -def __create_and_route_pins(pdk: MappedPDK, +def __create_and_route_pins( + pdk: MappedPDK, opamp_top: Component, pmos_comps_ref: ComponentReference, halfmultn_drain_routeref: ComponentReference, @@ -252,8 +263,8 @@ def __create_and_route_pins(pdk: MappedPDK, ) -> tuple: _max_metal_seperation_ps = pdk.util_max_metal_seperation() # route halfmultp source, drain, and gate together, place vdd pin in the middle - halfmultp_Lsrcport = opamp_top.ports["pcomps_halfp_l_multiplier_0_source_con_N"] - halfmultp_Rsrcport = opamp_top.ports["pcomps_halfp_r_multiplier_0_source_con_N"] + halfmultp_Lsrcport = opamp_top.ports["commonsource_Pamp_L_multiplier_0_source_con_N"] + halfmultp_Rsrcport = opamp_top.ports["commonsource_Pamp_R_multiplier_0_source_con_N"] opamp_top << c_route(pdk, halfmultp_Lsrcport, halfmultp_Rsrcport, extension=opamp_top.ymax-halfmultp_Lsrcport.center[1], fullbottom=True,viaoffset=(False,False)) # place vdd pin vddpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) @@ -261,11 +272,11 @@ def __create_and_route_pins(pdk: MappedPDK, # route vdd to source of 2L/2R opamp_top << straight_route(pdk, opamp_top.ports["pcomps_2L2Rsrcvia_top_met_N"], vddpin.ports["e4"]) # drain route above vdd pin - halfmultp_Ldrainport = opamp_top.ports["pcomps_halfp_l_multiplier_0_drain_con_N"] - halfmultp_Rdrainport = opamp_top.ports["pcomps_halfp_r_multiplier_0_drain_con_N"] + halfmultp_Ldrainport = opamp_top.ports["commonsource_Pamp_L_multiplier_0_drain_con_N"] + halfmultp_Rdrainport = opamp_top.ports["commonsource_Pamp_R_multiplier_0_drain_con_N"] halfmultp_drain_routeref = opamp_top << c_route(pdk, halfmultp_Ldrainport, halfmultp_Rdrainport, extension=opamp_top.ymax-halfmultp_Ldrainport.center[1]+pdk.get_grule("met5")["min_separation"], fullbottom=True) - halfmultp_Lgateport = opamp_top.ports["pcomps_halfp_l_multiplier_0_gate_con_S"] - halfmultp_Rgateport = opamp_top.ports["pcomps_halfp_r_multiplier_0_gate_con_S"] + halfmultp_Lgateport = opamp_top.ports["commonsource_Pamp_L_multiplier_0_gate_con_S"] + halfmultp_Rgateport = opamp_top.ports["commonsource_Pamp_R_multiplier_0_gate_con_S"] ptop_halfmultp_gate_route = opamp_top << c_route(pdk, halfmultp_Lgateport, halfmultp_Rgateport, extension=abs(pmos_comps_ref.ymin-halfmultp_Lgateport.center[1])+pdk.get_grule("met5")["min_separation"],fullbottom=True,viaoffset=(False,False)) # halfmultn to halfmultp drain to drain route extensionL = min(halfmultn_drain_routeref.ports["con_W"].center[0],halfmultp_drain_routeref.ports["con_W"].center[0]) @@ -273,65 +284,142 @@ def __create_and_route_pins(pdk: MappedPDK, opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_W"], halfmultp_drain_routeref.ports["con_W"],extension=abs(opamp_top.xmin-extensionL)+2,cwidth=2) n_to_p_output_route = opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_E"], halfmultp_drain_routeref.ports["con_E"],extension=abs(opamp_top.xmax-extensionR)+2,cwidth=2) # top nwell taps to vdd, top p substrate taps to gnd - opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_bl_top_met_S"], opamp_top.ports["nfet_Isrc_1_tie_N_top_met_W"],hwidth=2) - opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_br_top_met_S"], opamp_top.ports["nfet_Isrc_0_tie_N_top_met_E"],hwidth=2) - L_toptapn_route = opamp_top.ports["pcomps_halfp_l_tie_N_top_met_N"] - R_toptapn_route = opamp_top.ports["pcomps_halfp_r_tie_N_top_met_N"] + opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_bl_top_met_S"], opamp_top.ports["commonsource_Nbias_L_tie_N_top_met_W"],hwidth=2) + opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_br_top_met_S"], opamp_top.ports["commonsource_Nbias_R_tie_N_top_met_E"],hwidth=2) + L_toptapn_route = opamp_top.ports["commonsource_Pamp_L_tie_N_top_met_N"] + R_toptapn_route = opamp_top.ports["commonsource_Pamp_R_tie_N_top_met_N"] opamp_top << straight_route(pdk, movex(vddpin.ports["e4"],destination=L_toptapn_route.center[0]), L_toptapn_route, glayer1="met3") opamp_top << straight_route(pdk, movex(vddpin.ports["e4"],destination=R_toptapn_route.center[0]), R_toptapn_route, glayer1="met3") # vbias1 and vbias2 pins vbias1 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) vbias1.movey(opamp_top.ymin - _max_metal_seperation_ps - vbias1.ymax) - opamp_top << straight_route(pdk, vbias1.ports["e2"], opamp_top.ports["centerNcomps_multiplier_0_gate_S"],width=1,fullbottom=False) + opamp_top << straight_route(pdk, vbias1.ports["e2"], opamp_top.ports["diffpair_ibias_B_gate_S"],width=1,fullbottom=False) vbias2 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) vbias2.movex(opamp_top.xmin-2).movey(opamp_top.ymin+vbias2.ymax) opamp_top << L_route(pdk, halfmultn_gate_routeref.ports["con_W"], vbias2.ports["e2"],hwidth=2) # out pin - output = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met5"),centered=True) - output.movex(opamp_top.xmax).movey(opamp_top.ymin+output.ymax) - opamp_top << L_route(pdk, output.ports["e2"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E")) + #output = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met5"),centered=True) + #output.movex(opamp_top.xmax).movey(opamp_top.ymin+output.ymax) + #opamp_top << L_route(pdk, output.ports["e2"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E")) # route + and - pins plus_pin = opamp_top << rectangle(size=(5,2),layer=pdk.get_glayer("met4"),centered=True) plus_pin.movex(opamp_top.xmin).movey(_max_metal_seperation_ps + plus_pin.ymax + halfmultn_drain_routeref.ports["con_W"].center[1] + halfmultn_drain_routeref.ports["con_W"].width/2) - route_to_pluspin = opamp_top << L_route(pdk, opamp_top.ports["centerNcomps_MINUSgateroute_W_con_N"], plus_pin.ports["e3"]) + route_to_pluspin = opamp_top << L_route(pdk, opamp_top.ports["diffpair_MINUSgateroute_W_con_N"], plus_pin.ports["e3"]) minus_pin = opamp_top << rectangle(size=(5,2),layer=pdk.get_glayer("met4"),centered=True) minus_pin.movex(opamp_top.xmin + minus_pin.xmax).movey(_max_metal_seperation_ps + plus_pin.ymax + minus_pin.ymax) - opamp_top << L_route(pdk, opamp_top.ports["centerNcomps_PLUSgateroute_E_con_N"], minus_pin.ports["e3"]) + opamp_top << L_route(pdk, opamp_top.ports["diffpair_PLUSgateroute_E_con_N"], minus_pin.ports["e3"]) # route top center components to diffpair - opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tr_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) - opamp_top << straight_route(pdk,movey(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_minusvia_top_met_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) + opamp_top << straight_route(pdk,movey(opamp_top.ports["diffpair_tr_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) + opamp_top << straight_route(pdk,movey(opamp_top.ports["diffpair_tl_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_minusvia_top_met_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) # route minus transistor drain to output outputvia_diff_pcomps = opamp_top << via_stack(pdk,"met5","met4") - outputvia_diff_pcomps.movex(opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0]).movey(ptop_halfmultp_gate_route.ports["con_E"].center[1]) + outputvia_diff_pcomps.movex(opamp_top.ports["diffpair_tl_multiplier_0_drain_N"].center[0]).movey(ptop_halfmultp_gate_route.ports["con_E"].center[1]) # add pin ports opamp_top.add_ports(vddpin.get_ports_list(), prefix="pin_vdd_") - opamp_top.add_ports(vbias1.get_ports_list(), prefix="pin_vbias1") + opamp_top.add_ports(vbias1.get_ports_list(), prefix="pin_vbias1_") opamp_top.add_ports(vbias2.get_ports_list(), prefix="pin_vbias2_") opamp_top.add_ports(plus_pin.get_ports_list(), prefix="pin_plus_") opamp_top.add_ports(minus_pin.get_ports_list(), prefix="pin_minus_") - opamp_top.add_ports(output.get_ports_list(), prefix="pin_output_") + #opamp_top.add_ports(output.get_ports_list(), prefix="pin_output_") return opamp_top, n_to_p_output_route @validate_arguments def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap_rows, ymin: float, n_to_p_output_route) -> Component: - mim_cap_size = pdk.snap_to_2xgrid(mim_cap_size, return_type="float") - max_metalsep = pdk.util_max_metal_seperation() - mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) - displace_fact = max(max_metalsep,pdk.get_grule("capmet")["min_separation"]) - mimcaps_ref.movex(pdk.snap_to_2xgrid(opamp_top.xmax + displace_fact + mim_cap_size[0]/2)) - mimcaps_ref.movey(pdk.snap_to_2xgrid(ymin + mim_cap_size[1]/2)) - # connect mimcap to gnd - port1 = opamp_top.ports["pcomps_mimcap_connection_con_N"] - port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] - cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) - opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) - opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) - return opamp_top + mim_cap_size = pdk.snap_to_2xgrid(mim_cap_size, return_type="float") + max_metalsep = pdk.util_max_metal_seperation() + mimcaps_ref = opamp_top << mimcap_array(pdk,mim_cap_rows,2,size=mim_cap_size,rmult=6) + displace_fact = max(max_metalsep,pdk.get_grule("capmet")["min_separation"]) + mimcaps_ref.movex(pdk.snap_to_2xgrid(opamp_top.xmax + displace_fact + mim_cap_size[0]/2)) + mimcaps_ref.movey(pdk.snap_to_2xgrid(ymin + mim_cap_size[1]/2)) + # connect mimcap to gnd + port1 = opamp_top.ports["pcomps_mimcap_connection_con_N"] + port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] + cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) + opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) + opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + opamp_top.add_ports(mimcaps_ref.get_ports_list(),prefix="mimcap_") + return opamp_top + +@validate_arguments +def __add_output_stage( + pdk: MappedPDK, + opamp_top: Component, + amplifierParams: tuple[float, float, int], + biasParams: list, + rmult: int, + n_to_p_output_route: Union[Component, ComponentReference] +) -> Component: + '''add output stage to opamp_top, args: + pdk = pdk to use + opamp_top = component to add output stage to + amplifierParams = [width,length,fingers,mults] for amplifying FET + biasParams = [width,length,fingers,mults] for bias FET + ''' + # Instantiate output amplifier + amp_fet_ref = opamp_top << nmos( + pdk, + width=amplifierParams[0], + length=amplifierParams[1], + fingers=amplifierParams[2], + multipliers=1, + sd_route_topmet="met3", + gate_route_topmet="met3", + rmult=rmult, + with_dnwell=False + ) + # Instantiate bias FET + cmirror_ibias = opamp_top << two_nfet_interdigitized( + pdk, + numcols=biasParams[2], + width=biasParams[0], + length=biasParams[1], + fingers=1, + gate_route_topmet="met3", + sd_route_topmet="met3", + rmult=rmult + ) + metal_sep = pdk.util_max_metal_seperation() + # Locate output stage relative position + # x-coordinate: Center of SW capacitor in array + # y-coordinate: Top of NMOS blocks + x_cord = opamp_top.ports["mimcap_row0_col0_bottom_met_S"].center[0] + y_cord = opamp_top.ports["commonsource_Nbias_R_tie_tr_top_met_N"].center[1] + dims = evaluate_bbox(amp_fet_ref) + center = [x_cord + dims[0]/2, y_cord - dims[1]/2] + amp_fet_ref.move(center) + amp_fet_ref.movey(pdk.get_grule("active_tap", "p+s/d")["min_enclosure"]) + dims = evaluate_bbox(cmirror_ibias) + cmirror_ibias.movex(amp_fet_ref.xmin + dims[0]/2) + cmirror_ibias.movey(amp_fet_ref.ymin - dims[1]/2 - metal_sep) + # route input of output_stage to output of previous stage + opamp_top << L_route(pdk, n_to_p_output_route.ports["con_S"], amp_fet_ref.ports["multiplier_0_gate_W"]) + # route drain of amplifier to vdd + opamp_top << L_route(pdk, opamp_top.ports["commonsource_Pamp_R_tie_bl_top_met_W"], amp_fet_ref.ports["multiplier_0_drain_N"],hwidth=2) + # route drain of cmirror to source of amplifier + opamp_top << c_route(pdk, cmirror_ibias.ports["B_drain_E"],amp_fet_ref.ports["multiplier_0_source_E"],extension=metal_sep) + # route cmirror: A gate, B gate and A drain together. Then A source and B source to ground + gate_short = opamp_top << c_route(pdk, cmirror_ibias.ports["A_gate_E"],cmirror_ibias.ports["B_gate_E"],extension=3*metal_sep,viaoffset=None) + opamp_top << L_route(pdk, gate_short.ports["con_N"],cmirror_ibias.ports["A_drain_E"],viaoffset=False,fullbottom=False) + srcshort = opamp_top << c_route(pdk, cmirror_ibias.ports["A_source_W"],cmirror_ibias.ports["B_source_W"],extension=metal_sep) + opamp_top << straight_route(pdk, srcshort.ports["con_N"], cmirror_ibias.ports["welltie_N_top_met_S"]) + # Route all tap rings together and ground them + opamp_top << straight_route(pdk, amp_fet_ref.ports["tie_N_top_met_N"],amp_fet_ref.ports["guardring_N_top_met_S"],width=2) + opamp_top << straight_route(pdk, cmirror_ibias.ports["welltie_N_top_met_N"],cmirror_ibias.ports["substratetap_N_top_met_S"],width=2) + opamp_top << straight_route(pdk, amp_fet_ref.ports["guardring_bl_top_met_S"],cmirror_ibias.ports["substratetap_tr_top_met_N"]) + opamp_top << straight_route(pdk, amp_fet_ref.ports["guardring_tl_top_met_W"], opamp_top.ports["commonsource_Nbias_R_tie_tr_top_met_E"]) + # add ports and return + psuedo_out_port = movex(cmirror_ibias.ports["A_gate_E"].copy(),6*metal_sep) + output_pin = opamp_top << straight_route(pdk, cmirror_ibias.ports["A_gate_E"], psuedo_out_port) + opamp_top.add_ports(amp_fet_ref.get_ports_list(),prefix="outputstage_amp_") + opamp_top.add_ports(cmirror_ibias.get_ports_list(),prefix="outputstage_bias_") + opamp_top.add_ports(output_pin.get_ports_list(),prefix="pin_output_") + return opamp_top + @cell def opamp( @@ -340,6 +428,7 @@ def opamp( diffpair_bias: tuple[float, float, int] = (6, 2, 4), half_common_source_nbias: tuple[float, float, int, int] = (6, 2, 8, 3), pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), + output_stage_amp_params: tuple[float, float, int] = (5, 1, 16), mim_cap_size=(12, 12), mim_cap_rows=3, rmult: int = 2 @@ -350,7 +439,10 @@ def opamp( diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) half_common_source_nbias = west current mirror (width,length,fingers,mults), two halves pamp_hparams = pmos top component amp (width,length,fingers,mults) + output_stage_amp_params = output amplifier transistor params (width, length, fingers) mim_cap_size = width,length of individual mim_cap + mim_cap_rows = number of rows in the mimcap array (always 2 cols) + rmult = routing multiplier (larger = wider routes) """ _max_metal_seperation_ps = pdk.util_max_metal_seperation() opamp_top = Component() @@ -373,19 +465,23 @@ def opamp( clear_cache() pmos_comps, ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts = __create_sharedgatecomps(pdk, rmult) clear_cache() - pmos_comps = __route_sharedgatecomps(pdk, pmos_comps, opamp_top.ports["centerNcomps_tl_multiplier_0_drain_N"].center[0], ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts) + pmos_comps = __route_sharedgatecomps(pdk, pmos_comps, opamp_top.ports["diffpair_tl_multiplier_0_drain_N"].center[0], ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts) clear_cache() pmos_comps = __add_common_source_Pamp_and_finish_pcomps(pdk, pmos_comps, pamp_hparams, rmult) ydim_ncomps = opamp_top.ymax pmos_comps_ref = opamp_top << pmos_comps pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") + rename_func = lambda name_, port_ : name_.replace("pcomps_halfpspecialmarker","commonsource_Pamp") if name_.startswith("pcomps_halfpspecialmarker") else name_ + opamp_top = rename_component_ports(opamp_top, rename_function=rename_func) # create pins and route clear_cache() opamp_top, n_to_p_output_route = __create_and_route_pins(pdk, opamp_top, pmos_comps_ref, halfmultn_drain_routeref, halfmultn_gate_routeref) # place mimcaps and route clear_cache() opamp_top = __add_mimcap_arr(pdk, opamp_top, mim_cap_size, mim_cap_rows, pmos_comps_ref.ymin, n_to_p_output_route) + # add output amplfier stage + opamp_top = __add_output_stage(pdk, opamp_top, output_stage_amp_params, [6,2,4], rmult, n_to_p_output_route) # return opamp_top.add_ports(_cref.get_ports_list(), prefix="gnd_route_") return rename_ports_by_orientation(component_snap_to_grid(opamp_top)) @@ -395,7 +491,7 @@ def opamp( from . pdk.util.standard_main import pdk iterate=False -# TO TRY: + # TO TRY: #pdk = pdk to use #diffpair_params = diffpair (width,length,fingers) #diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) @@ -438,7 +534,7 @@ def opamp( -def benchmark(pdk: MappedPDK, save_file: Optional[str]="./opamp_runtime_second.txt") -> float: +def benchmark(pdk: MappedPDK, save_file: Optional[str]="./oPamp_Runtime_second.txt") -> float: """get runtime of opamp in seconds (note running this with sky130 results in longer runtime due to addition of NPC)""" import time start = time.time() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py index c007bc5b4..97dda3bb7 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py @@ -301,17 +301,23 @@ def get_val(self, node: tuple[str, dict]) -> str: """returns value of a node, (node might be a PortTree)""" return node[0] if isinstance(node, tuple) else self.name - def print(self, savetofile: bool=True, depth: Optional[int]=None, **kwargs): + def print(self, savetofile: bool=True, default_opts: bool=True, depth: Optional[int]=None, **kwargs): """prints output to terminal directly using prettyprinttree pypi package args: depth = max depth to print. this is a kwarg but since it so common, it should be specfied from depth arg - kwargs -> kwargs are prettyprint options passed directly to prettyprint + savetofile = saves print output to a txt file rather than printing to terminal (easier to view, but without nice formatting) + default_opts = bool=True results in using pygen recommended default print arguments + kwargs -> kwargs are prettyprint options passed directly to prettyprint. + ****NOTE: kwargs override all other options """ - depth = int(depth) if depth is not None or depth>0 else -1 - savetofile_opts = {} + depth = int(depth) if (depth is not None and depth>0) else -1 + extra_kwargs = {} + if default_opts: + extra_kwargs.update({"default_orientation": True}) if savetofile: - savetofile_opts = {"return_instead_of_print":savetofile, "color":None, "border":True} - pt = PrettyPrintTree(self.get_children, self.get_val, max_depth=depth, **savetofile_opts, **kwargs) + extra_kwargs.update({"return_instead_of_print":savetofile, "color":None, "border":True, "default_orientation": True}) + extra_kwargs.update(kwargs) + pt = PrettyPrintTree(self.get_children, self.get_val, max_depth=depth, **extra_kwargs) rtrstr = pt(self) if rtrstr: with open("outputtree.txt","w") as outputfile: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py index a7eb55c20..d3e1666c4 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py @@ -19,7 +19,8 @@ def L_route( hwidth: Optional[float] = None, hglayer: Optional[str] = None, vglayer: Optional[str] = None, - viaoffset: Optional[Union[tuple[bool,bool],bool]]=True + viaoffset: Optional[Union[tuple[bool,bool],bool]]=True, + fullbottom: bool = True ) -> Component: """creates a L shaped route between two Ports. @@ -45,6 +46,7 @@ def L_route( vglayer = glayer for horizontal route. Defaults to the layer of the edge oriented E/W viaoffset = push the via away from both edges so that inside corner aligns with via corner ****via offset can also be specfied as a tuple(bool,bool): movex? if viaoffset[0] and movey? if viaoffset[1] + fullbottom = fullbottom option for via """ # error checking, TODO: validate layers assert_port_manhattan([edge1,edge2]) @@ -83,7 +85,7 @@ def L_route( vconnect_ref = align_comp_to_port(vconnect, hport, halign) Lroute.add(vconnect_ref) # create and place via (decide between via stack and via array) - hv_via = via_stack(pdk, hglayer, vglayer,fullbottom=True,fulltop=True) + hv_via = via_stack(pdk, hglayer, vglayer,fullbottom=fullbottom,fulltop=True) hv_via_dims = evaluate_bbox(hv_via,True) use_stack = hv_via_dims[0] > hwidth or hv_via_dims[1] > vwidth if not use_stack: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py index 0b5fdb941..837f24e67 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py @@ -54,7 +54,7 @@ def c_route( - True offsets via towards the other via - False offsets via away from the other via - None means center (no offset) - ***NOTE: viaoffset pushes both vias towards each other slightly + ****NOTE: viaoffset pushes both vias towards each other slightly """ # error checking and figure out args if round(edge1.orientation) % 90 or round(edge2.orientation) % 90: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py index fae1e7b20..17fc668e3 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py @@ -47,6 +47,9 @@ def straight_route( via1_alignment = alignment of the via on edge1 via2_alignment = alignment of the via on edge2 ****defaults to an orientation that is aligned to the orientation of the port. + + Ports: + route_...all edges of the rectangle path """ #TODO: error checking width = width if width else edge1.width @@ -77,7 +80,7 @@ def straight_route( size = (width,abs(extension)) # create route and via route = rectangle(layer=pdk.get_glayer(glayer1),size=size,centered=True) - out_via = via_stack(pdk,glayer1,glayer2,fullbottom=fullbottom) + out_via = via_stack(pdk,glayer1,glayer2,fullbottom=fullbottom) if glayer1 != glayer2 else None # place route and via straightroute = Component() edges = [edge1,edge2] @@ -100,7 +103,8 @@ def straight_route( route_ref = align_comp_to_port(route,edge1,alignment=alignment) straightroute.add_ports(route_ref.get_ports_list(),prefix="route_") straightroute.add(route_ref) - straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],layer=pdk.get_glayer(glayer1),alignment=via1_alignment)) + if out_via is not None: + straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],layer=pdk.get_glayer(glayer2),alignment=via1_alignment)) if front_via is not None: straightroute.add(align_comp_to_port(front_via,edge1,layer=pdk.get_glayer(glayer2),alignment=via2_alignment)) return straightroute.flatten() From c139e65a3bb654fa579ebd7c38a4843436f261ee Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 28 Aug 2023 02:02:25 -0400 Subject: [PATCH 48/64] opamp current biasing fixes --- .../generators/gdsfactory-gen/pygen/opamp.py | 110 ++++++++++++------ .../pygen/routing/straight_route.py | 12 +- 2 files changed, 83 insertions(+), 39 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index a39490df7..fea34ac38 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -72,8 +72,8 @@ def __add_diff_pair_and_bias(pdk: MappedPDK, opamp_top: Component, diffpair_para def __add_common_source_nbias_transistors(pdk: MappedPDK, opamp_top: Component, half_common_source_nbias: tuple[float, float, int, int], rmult: int) -> Component: # create each half of the nmos bias transistor for the common source stage and place them x_dim_center = opamp_top.xmax - for i, dummy in enumerate([(False, True), (True, False)]): - halfMultn = nmos( + for i in range(2): + cmirror_output = nmos( pdk, width=half_common_source_nbias[0], length=half_common_source_nbias[1], @@ -82,35 +82,77 @@ def __add_common_source_nbias_transistors(pdk: MappedPDK, opamp_top: Component, with_tie=True, with_dnwell=False, with_substrate_tap=False, - with_dummy=dummy, + with_dummy=True, sd_route_left = bool(i), rmult=rmult ) - halfMultn_ref = opamp_top << halfMultn + cmirrorref = nmos( + pdk, + width=half_common_source_nbias[0], + length=half_common_source_nbias[1], + fingers=half_common_source_nbias[2], + multipliers=1, + with_tie=True, + with_dnwell=False, + with_substrate_tap=False, + with_dummy=True, + sd_route_left = bool(i), + rmult=rmult + ) + cmirrorref_ref = cmirrorref.ref_center() + cmirrorout_ref = cmirror_output.ref_center() + # xtranslation direction = (-1) ** i - halfMultn_ref.movex(direction * abs(x_dim_center + halfMultn_ref.xmax + pdk.util_max_metal_seperation())) + xtranslationO = direction * abs(x_dim_center + cmirrorout_ref.xmax + pdk.util_max_metal_seperation()) + xtranslationR = direction * abs(x_dim_center + cmirrorref_ref.xmax + pdk.util_max_metal_seperation()) + xtranslationO, xtranslationR = pdk.snap_to_2xgrid([xtranslationO, xtranslationR]) + cmirrorout_ref.movex(xtranslationO) + cmirrorref_ref.movex(xtranslationR) + # ytranslation + cmirrorout_ref.movey(opamp_top.ports["diffpair_bl_multiplier_0_gate_S"].center[1]) + cmirrorref_ref.movey(cmirrorout_ref.ymin - evaluate_bbox(cmirrorref_ref)[1]/2 - pdk.util_max_metal_seperation()) + # add ports + opamp_top.add(cmirrorref_ref) + opamp_top.add(cmirrorout_ref) side = "R" if i==0 else "L" - opamp_top.add_ports(halfMultn_ref.get_ports_list(), prefix="commonsource_Nbias_"+side+"_") + opamp_top.add_ports(cmirrorout_ref.get_ports_list(), prefix="commonsource_cmirror_output_"+side+"_") + opamp_top.add_ports(cmirrorref_ref.get_ports_list(), prefix="commonsource_cmirror_ref_"+side+"_") + opamp_top << straight_route(pdk, opamp_top.ports["commonsource_cmirror_output_"+side+"_tie_S_top_met_S"], opamp_top.ports["commonsource_cmirror_ref_"+side+"_tie_N_top_met_N"],width=2) return opamp_top @validate_arguments def __route_bottom_ncomps_except_drain_nbias(pdk: MappedPDK, opamp_top: Component, gndpin: Union[Component,ComponentReference], halfmultn_num_mults: int) -> tuple: - # route tailcurrent_comp - opamp_top << L_route(pdk, opamp_top.ports["diffpair_ibias_purposegndport"],gndpin.ports["e1"])#width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) - #opamp_top << c_route(pdk, opamp_top.ports["diffpair_multiplier_0_source_E"],gndpin.ports["e3"],width2=3,cglayer="met5",fullbottom=True,cwidth=3*pdk.get_grule("met5")["min_width"]) - # route to gnd the sources of halfMultn - _cref = opamp_top << c_route(pdk, opamp_top.ports["commonsource_Nbias_R_multiplier_0_source_con_S"], opamp_top.ports["commonsource_Nbias_L_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["commonsource_Nbias_R_multiplier_0_source_con_S"].center[1]),fullbottom=True) - # connect gates and drains of halfMultn - halfMultn_left_gate_port = opamp_top.ports["commonsource_Nbias_R_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] - halfMultn_right_gate_port = opamp_top.ports["commonsource_Nbias_L_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] + # route diff pair cmirror + opamp_top << L_route(pdk, opamp_top.ports["diffpair_ibias_purposegndport"],gndpin.ports["e1"]) + # common source + # route to gnd the sources of cmirror + _cref = opamp_top << c_route(pdk, opamp_top.ports["commonsource_cmirror_output_R_multiplier_0_source_con_S"], opamp_top.ports["commonsource_cmirror_output_L_multiplier_0_source_con_S"], extension=abs(gndpin.ports["e2"].center[1]-opamp_top.ports["commonsource_cmirror_output_R_multiplier_0_source_con_S"].center[1]),fullbottom=True) + opamp_top << straight_route(pdk, opamp_top.ports["commonsource_cmirror_ref_R_multiplier_0_source_E"],_cref.ports["con_E"],glayer2="met3",via2_alignment=('c','c')) + opamp_top << straight_route(pdk, opamp_top.ports["commonsource_cmirror_ref_L_multiplier_0_source_W"],_cref.ports["con_W"],glayer2="met3",via2_alignment=('c','c')) + # connect cmirror ref drain to cmirror output gate, then short cmirror ref drain and gate + Ldrainport = opamp_top.ports["commonsource_cmirror_ref_L_multiplier_0_drain_W"] + Lgateport = opamp_top.ports["commonsource_cmirror_output_L_multiplier_0_gate_W"] + Rdrainport = opamp_top.ports["commonsource_cmirror_ref_R_multiplier_0_drain_E"] + Rgateport = opamp_top.ports["commonsource_cmirror_output_R_multiplier_0_gate_E"] + extension = max(abs(opamp_top.xmin-Ldrainport.center[0]),abs(opamp_top.xmin-Lgateport.center[0])) + 2*pdk.util_max_metal_seperation() + draintogate_L = opamp_top << c_route(pdk, Ldrainport, Lgateport, extension=extension, width2=Lgateport.width) + draintogate_R = opamp_top << c_route(pdk, Rdrainport, Rgateport, extension=extension, width2=Rgateport.width) + Lcmirrorrefgate = opamp_top.ports["commonsource_cmirror_ref_L_multiplier_0_gate_W"] + Rcmirrorrefgate = opamp_top.ports["commonsource_cmirror_ref_R_multiplier_0_gate_E"] + opamp_top << L_route(pdk, Lcmirrorrefgate, draintogate_L.ports["con_S"]) + opamp_top << L_route(pdk, Rcmirrorrefgate, draintogate_R.ports["con_S"]) + # connect gates and drains of cmirror output + halfMultn_left_gate_port = opamp_top.ports["commonsource_cmirror_output_R_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] + halfMultn_right_gate_port = opamp_top.ports["commonsource_cmirror_output_L_multiplier_"+str(halfmultn_num_mults-2)+"_gate_con_N"] halfmultn_gate_routeref = opamp_top << c_route(pdk, halfMultn_left_gate_port, halfMultn_right_gate_port, extension=abs(opamp_top.ymax-halfMultn_left_gate_port.center[1])+1,fullbottom=True, viaoffset=(False,False)) - halfMultn_left_drain_port = opamp_top.ports["commonsource_Nbias_R_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] - halfMultn_right_drain_port = opamp_top.ports["commonsource_Nbias_L_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] + halfMultn_left_drain_port = opamp_top.ports["commonsource_cmirror_output_R_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] + halfMultn_right_drain_port = opamp_top.ports["commonsource_cmirror_output_L_multiplier_"+str(halfmultn_num_mults-2)+"_drain_con_N"] halfmultn_drain_routeref = opamp_top << c_route(pdk, halfMultn_left_drain_port, halfMultn_right_drain_port, extension=abs(opamp_top.ymax-halfMultn_left_drain_port.center[1])+1,fullbottom=True) - # route to gnd the guardring of halfMultn - opamp_top << straight_route(pdk,opamp_top.ports["commonsource_Nbias_R_tie_S_top_met_S"],movey(gndpin.ports["e1"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) - opamp_top << straight_route(pdk,opamp_top.ports["commonsource_Nbias_L_tie_S_top_met_S"],movey(gndpin.ports["e3"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) - # route source of diffpair to drain of cmirror + # route to gnd the guardring of cmirror output + opamp_top << straight_route(pdk,opamp_top.ports["commonsource_cmirror_ref_R_tie_S_top_met_S"],movey(gndpin.ports["e1"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) + opamp_top << straight_route(pdk,opamp_top.ports["commonsource_cmirror_ref_L_tie_S_top_met_S"],movey(gndpin.ports["e3"],evaluate_bbox(gndpin)[1]/4),width=2,glayer1="met3",fullbottom=True) + # diffpair + # route source of diffpair to drain of diffpair cmirror opamp_top << L_route(pdk,opamp_top.ports["diffpair_source_routeW_con_N"],opamp_top.ports["diffpair_ibias_B_drain_W"]) opamp_top << L_route(pdk,opamp_top.ports["diffpair_source_routeE_con_N"],opamp_top.ports["diffpair_ibias_B_drain_E"]) return opamp_top, halfmultn_drain_routeref, halfmultn_gate_routeref, _cref @@ -284,19 +326,19 @@ def __create_and_route_pins( opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_W"], halfmultp_drain_routeref.ports["con_W"],extension=abs(opamp_top.xmin-extensionL)+2,cwidth=2) n_to_p_output_route = opamp_top << c_route(pdk, halfmultn_drain_routeref.ports["con_E"], halfmultp_drain_routeref.ports["con_E"],extension=abs(opamp_top.xmax-extensionR)+2,cwidth=2) # top nwell taps to vdd, top p substrate taps to gnd - opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_bl_top_met_S"], opamp_top.ports["commonsource_Nbias_L_tie_N_top_met_W"],hwidth=2) - opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_br_top_met_S"], opamp_top.ports["commonsource_Nbias_R_tie_N_top_met_E"],hwidth=2) + opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_bl_top_met_S"], opamp_top.ports["commonsource_cmirror_output_L_tie_N_top_met_W"],hwidth=2) + opamp_top << L_route(pdk, opamp_top.ports["pcomps_top_ptap_br_top_met_S"], opamp_top.ports["commonsource_cmirror_output_R_tie_N_top_met_E"],hwidth=2) L_toptapn_route = opamp_top.ports["commonsource_Pamp_L_tie_N_top_met_N"] R_toptapn_route = opamp_top.ports["commonsource_Pamp_R_tie_N_top_met_N"] opamp_top << straight_route(pdk, movex(vddpin.ports["e4"],destination=L_toptapn_route.center[0]), L_toptapn_route, glayer1="met3") opamp_top << straight_route(pdk, movex(vddpin.ports["e4"],destination=R_toptapn_route.center[0]), R_toptapn_route, glayer1="met3") - # vbias1 and vbias2 pins + # bias pins for first two stages vbias1 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) vbias1.movey(opamp_top.ymin - _max_metal_seperation_ps - vbias1.ymax) opamp_top << straight_route(pdk, vbias1.ports["e2"], opamp_top.ports["diffpair_ibias_B_gate_S"],width=1,fullbottom=False) - vbias2 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) - vbias2.movex(opamp_top.xmin-2).movey(opamp_top.ymin+vbias2.ymax) - opamp_top << L_route(pdk, halfmultn_gate_routeref.ports["con_W"], vbias2.ports["e2"],hwidth=2) + vbias2 = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met5"),centered=True) + vbias2.movex(1+opamp_top.xmax+evaluate_bbox(vbias2)[0]+pdk.util_max_metal_seperation()).movey(opamp_top.ymin+vbias2.ymax) + opamp_top << L_route(pdk, halfmultn_gate_routeref.ports["con_E"], vbias2.ports["e2"],hwidth=2) # out pin #output = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met5"),centered=True) #output.movex(opamp_top.xmax).movey(opamp_top.ymin+output.ymax) @@ -309,15 +351,15 @@ def __create_and_route_pins( minus_pin.movex(opamp_top.xmin + minus_pin.xmax).movey(_max_metal_seperation_ps + plus_pin.ymax + minus_pin.ymax) opamp_top << L_route(pdk, opamp_top.ports["diffpair_PLUSgateroute_E_con_N"], minus_pin.ports["e3"]) # route top center components to diffpair - opamp_top << straight_route(pdk,movey(opamp_top.ports["diffpair_tr_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) - opamp_top << straight_route(pdk,movey(opamp_top.ports["diffpair_tl_multiplier_0_drain_N"],0.05), opamp_top.ports["pcomps_minusvia_top_met_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"]) + opamp_top << straight_route(pdk,opamp_top.ports["diffpair_tr_multiplier_0_drain_N"], opamp_top.ports["pcomps_pbottomAB_R_gate_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"],via1_alignment_layer="met2",via1_alignment=('c','c')) + opamp_top << straight_route(pdk,opamp_top.ports["diffpair_tl_multiplier_0_drain_N"], opamp_top.ports["pcomps_minusvia_top_met_S"], glayer1="met5",width=3*pdk.get_grule("met5")["min_width"],via1_alignment_layer="met2",via1_alignment=('c','c')) # route minus transistor drain to output outputvia_diff_pcomps = opamp_top << via_stack(pdk,"met5","met4") outputvia_diff_pcomps.movex(opamp_top.ports["diffpair_tl_multiplier_0_drain_N"].center[0]).movey(ptop_halfmultp_gate_route.ports["con_E"].center[1]) # add pin ports opamp_top.add_ports(vddpin.get_ports_list(), prefix="pin_vdd_") - opamp_top.add_ports(vbias1.get_ports_list(), prefix="pin_vbias1_") - opamp_top.add_ports(vbias2.get_ports_list(), prefix="pin_vbias2_") + opamp_top.add_ports(vbias1.get_ports_list(), prefix="pin_diffpairibias_") + opamp_top.add_ports(vbias2.get_ports_list(), prefix="pin_commonsourceibias_") opamp_top.add_ports(plus_pin.get_ports_list(), prefix="pin_plus_") opamp_top.add_ports(minus_pin.get_ports_list(), prefix="pin_minus_") #opamp_top.add_ports(output.get_ports_list(), prefix="pin_output_") @@ -388,7 +430,7 @@ def __add_output_stage( # x-coordinate: Center of SW capacitor in array # y-coordinate: Top of NMOS blocks x_cord = opamp_top.ports["mimcap_row0_col0_bottom_met_S"].center[0] - y_cord = opamp_top.ports["commonsource_Nbias_R_tie_tr_top_met_N"].center[1] + y_cord = opamp_top.ports["commonsource_cmirror_output_R_tie_tr_top_met_N"].center[1] dims = evaluate_bbox(amp_fet_ref) center = [x_cord + dims[0]/2, y_cord - dims[1]/2] amp_fet_ref.move(center) @@ -406,12 +448,12 @@ def __add_output_stage( gate_short = opamp_top << c_route(pdk, cmirror_ibias.ports["A_gate_E"],cmirror_ibias.ports["B_gate_E"],extension=3*metal_sep,viaoffset=None) opamp_top << L_route(pdk, gate_short.ports["con_N"],cmirror_ibias.ports["A_drain_E"],viaoffset=False,fullbottom=False) srcshort = opamp_top << c_route(pdk, cmirror_ibias.ports["A_source_W"],cmirror_ibias.ports["B_source_W"],extension=metal_sep) - opamp_top << straight_route(pdk, srcshort.ports["con_N"], cmirror_ibias.ports["welltie_N_top_met_S"]) + opamp_top << straight_route(pdk, srcshort.ports["con_N"], cmirror_ibias.ports["welltie_N_top_met_S"],via2_alignment_layer="met2") # Route all tap rings together and ground them opamp_top << straight_route(pdk, amp_fet_ref.ports["tie_N_top_met_N"],amp_fet_ref.ports["guardring_N_top_met_S"],width=2) opamp_top << straight_route(pdk, cmirror_ibias.ports["welltie_N_top_met_N"],cmirror_ibias.ports["substratetap_N_top_met_S"],width=2) opamp_top << straight_route(pdk, amp_fet_ref.ports["guardring_bl_top_met_S"],cmirror_ibias.ports["substratetap_tr_top_met_N"]) - opamp_top << straight_route(pdk, amp_fet_ref.ports["guardring_tl_top_met_W"], opamp_top.ports["commonsource_Nbias_R_tie_tr_top_met_E"]) + opamp_top << straight_route(pdk, amp_fet_ref.ports["guardring_tl_top_met_W"], opamp_top.ports["commonsource_cmirror_output_R_tie_tr_top_met_E"]) # add ports and return psuedo_out_port = movex(cmirror_ibias.ports["A_gate_E"].copy(),6*metal_sep) output_pin = opamp_top << straight_route(pdk, cmirror_ibias.ports["A_gate_E"], psuedo_out_port) @@ -426,7 +468,7 @@ def opamp( pdk: MappedPDK, diffpair_params: tuple[float, float, int] = (6, 1, 4), diffpair_bias: tuple[float, float, int] = (6, 2, 4), - half_common_source_nbias: tuple[float, float, int, int] = (6, 2, 8, 3), + half_common_source_nbias: tuple[float, float, int, int] = (6, 2, 8, 2), pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), output_stage_amp_params: tuple[float, float, int] = (5, 1, 16), mim_cap_size=(12, 12), diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py index 17fc668e3..ced58706b 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py @@ -21,7 +21,9 @@ def straight_route( width: Optional[float] = None, glayer2: Optional[str] = None, via1_alignment: Optional[tuple[str, str]] = None, + via1_alignment_layer: Optional[str] = None, via2_alignment: Optional[tuple[str, str]] = None, + via2_alignment_layer: Optional[str] = None, fullbottom: Optional[bool] = False ) -> Component: """extends a route from edge1 until perpindicular with edge2, then places a via @@ -83,8 +85,7 @@ def straight_route( out_via = via_stack(pdk,glayer1,glayer2,fullbottom=fullbottom) if glayer1 != glayer2 else None # place route and via straightroute = Component() - edges = [edge1,edge2] - for i, edge in enumerate(edges): + for i, edge in enumerate([edge1,edge2]): temp = via1_alignment if i == 0 else via2_alignment if temp is None: if round(edge.orientation) == 0:# facing east @@ -99,14 +100,15 @@ def straight_route( raise ValueError("port must be vertical or horizontal") via1_alignment = temp if i == 0 else via1_alignment via2_alignment = temp if i == 1 else via2_alignment - route_ref = align_comp_to_port(route,edge1,alignment=alignment) straightroute.add_ports(route_ref.get_ports_list(),prefix="route_") straightroute.add(route_ref) if out_via is not None: - straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],layer=pdk.get_glayer(glayer2),alignment=via1_alignment)) + alignlayer2 = pdk.get_glayer(glayer1) if via2_alignment_layer is None else pdk.get_glayer(via2_alignment_layer) + straightroute.add(align_comp_to_port(out_via,route_ref.ports[viaport_name],layer=alignlayer2,alignment=via2_alignment)) if front_via is not None: - straightroute.add(align_comp_to_port(front_via,edge1,layer=pdk.get_glayer(glayer2),alignment=via2_alignment)) + alignlayer1 = pdk.get_glayer(glayer1) if via1_alignment_layer is None else pdk.get_glayer(via1_alignment_layer) + straightroute.add(align_comp_to_port(front_via,edge1,layer=alignlayer1,alignment=via1_alignment)) return straightroute.flatten() From e1f3b3717e0465c48dcc29ddb977b01c3c30c8be Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 29 Aug 2023 17:09:03 -0400 Subject: [PATCH 49/64] sky130_nist_tapeout updates --- .../gdsfactory-gen/pygen/__init__.py | 1 + .../pygen/docs/L_route_v1_tree.txt | 19 + .../pygen/docs/c_route_v1_tree.txt | 3 + .../pygen/docs/diff_pair_v1_tree.txt | 111 +++++ .../pygen/docs/mimcap_array_v1_tree.txt | 83 ++++ .../pygen/docs/mimcap_v1_tree.txt | 115 +++++ .../pygen/docs/multiplier_v1_tree.txt | 73 +++ .../pygen/docs/nmos_v1_tree.txt | 469 ++++++++++++++++++ .../pygen/docs/opamp_v1_tree.txt | 417 ++++++++++++++++ .../pygen/docs/pmos_v1_tree.txt | 277 +++++++++++ .../pygen/docs/straight_route_v1_tree.txt | 7 + .../pygen/docs/tapring_v1_tree.txt | 183 +++++++ .../pygen/docs/via_stack_v1_tree.txt | 31 ++ .../pygen/docs/viaarray_v1_tree.txt | 39 ++ .../generators/gdsfactory-gen/pygen/opamp.py | 33 +- .../pygen/pdk/util/port_utils.py | 48 +- .../tapeout_and_RL/extract.bash | 3 - .../tapeout_and_RL/sky130_nist_tapeout.py | 203 ++++---- 18 files changed, 2004 insertions(+), 111 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/L_route_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/c_route_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/diff_pair_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_array_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/multiplier_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/nmos_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/pmos_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/tapring_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/via_stack_v1_tree.txt create mode 100644 openfasoc/generators/gdsfactory-gen/pygen/docs/viaarray_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/__init__.py b/openfasoc/generators/gdsfactory-gen/pygen/__init__.py index e69de29bb..8c77e8aff 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/__init__.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/__init__.py @@ -0,0 +1 @@ +__version__ = "1" \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/L_route_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/L_route_v1_tree.txt new file mode 100644 index 000000000..85bb4687b --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/L_route_v1_tree.txt @@ -0,0 +1,19 @@ + ┌[bottom] + ┌[array]─[row0]─[col0]┤ + │ └[top] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[bottom]─[lay]┤ + │ ├[E] +-[L_route]┤ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + └[top]─[met]┤ + ├[E] + │ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/c_route_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/c_route_v1_tree.txt new file mode 100644 index 000000000..3a8676996 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/c_route_v1_tree.txt @@ -0,0 +1,3 @@ + ┌[E] +-[c_route]─[con]┤ + └[W] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/diff_pair_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/diff_pair_v1_tree.txt new file mode 100644 index 000000000..461a75168 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/diff_pair_v1_tree.txt @@ -0,0 +1,111 @@ + ┌[drain] + │ + ├[source] + │ + ├[row0] + │ + ┌[multiplier]─[0]┼[leftsd] + │ │ + │ ├[plusdoped] + ┌[bl]┤ │ + │ │ ├[diff] + │ │ │ + │ │ └[gate] + │ │ + │ │ ┌[W] + │ │ │ + │ └[well]┼[S] + │ │ + │ └[E] + │ + │ ┌[drain] + │ │ + │ ├[source] + │ │ + │ ├[row0] + │ │ + │ ┌[multiplier]─[0]┼[leftsd] + │ │ │ + │ │ ├[plusdoped] + ├[br]┤ │ + │ │ ├[diff] + │ │ │ + │ │ └[gate] + │ │ + │ │ ┌[W] + │ │ │ + │ └[well]┼[S] + │ │ + │ └[E] + │ + │ ┌[gate] + │ │ + │ ├[row0] + │ │ + │ ├[leftsd] + │ │ + │ ┌[multiplier]─[0]┼[plusdoped] + │ │ │ + │ │ ├[diff] + │ │ │ + ├[tl]┤ ├[source] + │ │ │ + │ │ └[drain] + │ │ + │ │ ┌[W] +-[diff_pair]┤ │ │ + │ │ ├[N] + │ └[well]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[gate] + │ │ + │ ├[row0] + │ │ + │ ├[leftsd] + │ │ + │ ┌[multiplier]─[0]┼[plusdoped] + │ │ │ + │ │ ├[diff] + │ │ │ + ├[tr]┤ ├[source] + │ │ │ + │ │ └[drain] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[well]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[N] + │ ┌[W]─[con]┤ + │ │ └[S] + ├[MINUSgateroute]┤ + │ │ ┌[N] + │ └[E]─[con]┤ + │ └[S] + │ + │ ┌[N] + │ ┌[W]─[con]┤ + │ │ └[S] + ├[PLUSgateroute]┤ + │ │ ┌[N] + │ └[E]─[con]┤ + │ └[S] + │ + │ ┌[routeTL]─[BR]─[con] + ├[drain]┤ + │ └[routeTR]─[BL]─[con] + │ + │ ┌[N] + │ ┌[routeW]─[con]┤ + │ │ └[S] + └[source]┤ + │ ┌[N] + └[routeE]─[con]┤ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_array_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_array_v1_tree.txt new file mode 100644 index 000000000..e83209c15 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_array_v1_tree.txt @@ -0,0 +1,83 @@ + ┌[row0] + │ + ├[row1] + │ + ┌[array]┼[row2] + │ │ + ┌[col0]┤ ├[row3] + │ │ │ + │ │ └[row4] + │ │ + │ ├[bottom]─[met] + │ │ + │ └[top]─[met] + │ + │ ┌[row0] + │ │ + │ ├[row1] + │ │ + │ ┌[array]┼[row2] + │ │ │ + ┌[row0]┼[col1]┤ ├[row3] + │ │ │ │ + │ │ │ └[row4] + │ │ │ + │ │ ├[bottom]─[met] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[row0] + │ │ │ + │ │ ├[row1] + │ │ │ + │ │ ┌[array]┼[row2] + │ │ │ │ + │ └[col2]┤ ├[row3] + │ │ │ + │ │ └[row4] + │ │ + │ ├[bottom]─[met] + │ │ + │ └[top]─[met] +-[mimcap_array]┤ + │ ┌[row0] + │ │ + │ ├[row1] + │ │ + │ ┌[array]┼[row2] + │ │ │ + │ ┌[col0]┤ ├[row3] + │ │ │ │ + │ │ │ └[row4] + │ │ │ + │ │ ├[bottom]─[met] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[row0] + │ │ │ + │ │ ├[row1] + │ │ │ + │ │ ┌[array]┼[row2] + │ │ │ │ + └[row1]┼[col1]┤ ├[row3] + │ │ │ + │ │ └[row4] + │ │ + │ ├[bottom]─[met] + │ │ + │ └[top]─[met] + │ + │ ┌[row0] + │ │ + │ ├[row1] + │ │ + │ ┌[array]┼[row2] + │ │ │ + └[col2]┤ ├[row3] + │ │ + │ └[row4] + │ + ├[bottom]─[met] + │ + └[top]─[met] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_v1_tree.txt new file mode 100644 index 000000000..e24668aa9 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_v1_tree.txt @@ -0,0 +1,115 @@ + ┌[W] + │ + ├[N] + ┌[bottom]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[bottom] + │ ┌[col0]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ ├[col1]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ ┌[row0]┼[col2]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col3]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ └[col4]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ │ ┌[col0]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col1]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ ├[row1]┼[col2]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col3]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ └[col4]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ │ ┌[col0]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col1]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] +-[mimcap]┼[array]┼[row2]┼[col2]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col3]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ └[col4]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ │ ┌[col0]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col1]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ ├[row3]┼[col2]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col3]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ └[col4]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ │ ┌[col0]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ │ ├[col1]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[bottom] + │ └[row4]┼[col2]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ ├[col3]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ └[col4]┤ + │ └[top] + │ + │ ┌[W] + │ │ + │ ├[N] + └[top]─[met]┤ + ├[E] + │ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/multiplier_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/multiplier_v1_tree.txt new file mode 100644 index 000000000..d7f5194f2 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/multiplier_v1_tree.txt @@ -0,0 +1,73 @@ + ┌[W] + │ + ├[N] + ┌[gate]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array] + │ ┌[rightsd]┤ + │ │ └[top] + │ │ + │ │ ┌[W] + ├[row0]─[col0]┤ │ + │ │ ├[N] + │ └[gate]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[row0]─[col0] + │ │ + │ ├[row1]─[col0] + │ │ + │ ├[row2]─[col0] + │ │ + │ ┌[array]┼[row3]─[col0] + │ │ │ + │ │ ├[row4]─[col0] + │ │ │ + ├[leftsd]┤ ├[row5]─[col0] + │ │ │ + │ │ └[row6]─[col0] + │ │ + │ │ ┌[W] + │ │ │ +-[multiplier]┤ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[plusdoped]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[diff]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[source]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + └[drain]┤ + ├[E] + │ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/nmos_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/nmos_v1_tree.txt new file mode 100644 index 000000000..702ff14c8 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/nmos_v1_tree.txt @@ -0,0 +1,469 @@ + ┌[W] + │ + ├[N] + │ + ┌[gate]┼[con] + │ │ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[col0] + ├[row0]┤ + │ └[col1] + │ + │ ┌[array] + ├[leftsd]┤ + │ └[top] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[plusdoped]┤ + │ ├[E] + │ │ + │ └[S] + │ + ┌[0]┤ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[diff]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[con] + │ │ │ + │ ├[source]┼[N] + │ │ │ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[con] + │ │ │ + │ └[drain]┼[N] + │ │ + ┌[multiplier]┤ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ │ ┌[gate]┤ + │ │ │ ├[E] + │ │ │ │ + │ │ │ └[S] + │ │ │ + │ │ │ ┌[col0] + │ │ ├[row0]┤ + │ │ │ └[col1] + │ │ │ + │ │ │ ┌[array] + │ │ ├[leftsd]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[W] + │ │ │ │ + │ │ │ ├[N] + │ │ ├[plusdoped]┤ + │ │ │ ├[E] + │ │ │ │ + │ │ │ └[S] + │ └[1]┤ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[diff]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[source]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[drain]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array]─[row0] + │ │ + │ ┌[S]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[bl]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[br]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[row0] + │ │ │ + │ │ ├[row1] + │ │ │ + │ │ ├[row2] + │ │ │ + │ │ ├[row3] + │ │ │ + │ │ ├[row4] + │ │ │ + │ │ ├[row5] + │ │ │ + │ │ ├[row6] + │ │ │ + │ │ ├[row7] + │ │ │ + │ │ ├[row8] + │ │ │ + │ │ ├[row9] + │ │ │ + │ │ ├[row10] + │ │ │ + │ │ ├[row11] + │ │ │ + │ │ ├[row12] + │ │ │ + │ │ ├[row13] + │ │ │ + │ │ ├[row14] + │ │ │ + │ │ ┌[array]┼[row15] + │ │ │ │ + │ ├[E]┤ ├[row16] + │ │ │ │ + │ │ │ ├[row17] + │ │ │ │ + │ │ │ ├[row18] + │ │ │ │ + │ │ │ ├[row19] + │ │ │ │ + │ │ │ ├[row20] + │ │ │ │ + │ │ │ ├[row21] + │ │ │ │ + │ │ │ ├[row22] + │ │ │ │ + │ │ │ ├[row23] + │ │ │ │ + │ │ │ ├[row24] + │ │ │ │ + │ │ │ ├[row25] + │ │ │ │ + │ │ │ ├[row26] + │ │ │ │ + │ │ │ ├[row27] + │ │ │ │ + │ │ │ ├[row28] + │ │ │ │ + │ │ │ ├[row29] + │ │ │ │ + │ │ │ └[row30] + │ │ │ + │ │ ├[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + ├[tie]┤ + │ │ ┌[row0] + │ │ │ + │ │ ├[row1] + │ │ │ + │ │ ├[row2] + │ │ │ + │ │ ├[row3] + │ │ │ + │ │ ├[row4] + │ │ │ + │ │ ├[row5] + │ │ │ + │ │ ├[row6] + │ │ │ + │ │ ├[row7] + │ │ │ + │ │ ├[row8] + │ │ │ + │ │ ├[row9] + │ │ │ + │ │ ├[row10] + │ │ │ + │ │ ├[row11] + │ │ │ + │ │ ├[row12] + │ │ │ + │ │ ├[row13] + │ │ │ + │ │ ├[row14] + │ │ │ + │ │ ┌[array]┼[row15] + │ │ │ │ + │ ├[W]┤ ├[row16] + │ │ │ │ + │ │ │ ├[row17] + │ │ │ │ + │ │ │ ├[row18] + │ │ │ │ + │ │ │ ├[row19] + │ │ │ │ + │ │ │ ├[row20] + │ │ │ │ + │ │ │ ├[row21] + │ │ │ │ + │ │ │ ├[row22] + │ │ │ │ + │ │ │ ├[row23] + │ │ │ │ +-[nmos]┤ │ │ ├[row24] + │ │ │ │ + │ │ │ ├[row25] + │ │ │ │ + │ │ │ ├[row26] + │ │ │ │ + │ │ │ ├[row27] + │ │ │ │ + │ │ │ ├[row28] + │ │ │ │ + │ │ │ ├[row29] + │ │ │ │ + │ │ │ └[row30] + │ │ │ + │ │ ├[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[N]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[tl]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ └[tr]┼[bottom]─[lay] + │ │ + │ └[top]─[met] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[well]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array]─[row0] + │ │ + │ ┌[S]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[bl]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[br]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[row0] + │ │ │ + │ │ ├[row1] + │ │ │ + │ │ ├[row2] + │ │ │ + │ │ ├[row3] + │ │ │ + │ │ ├[row4] + │ │ │ + │ │ ├[row5] + │ │ │ + │ │ ├[row6] + │ │ │ + │ │ ├[row7] + │ │ │ + │ │ ├[row8] + │ │ │ + │ │ ├[row9] + │ │ │ + │ │ ├[row10] + │ │ │ + │ │ ├[row11] + │ │ │ + │ │ ├[row12] + │ │ │ + │ │ ├[row13] + │ │ │ + │ │ ├[row14] + │ │ │ + │ │ ├[row15] + │ │ │ + │ │ ├[row16] + │ │ │ + │ │ ├[row17] + │ │ │ + │ │ ┌[array]┼[row18] + │ │ │ │ + │ ├[E]┤ ├[row19] + │ │ │ │ + │ │ │ ├[row20] + │ │ │ │ + │ │ │ ├[row21] + │ │ │ │ + │ │ │ ├[row22] + │ │ │ │ + │ │ │ ├[row23] + │ │ │ │ + │ │ │ ├[row24] + │ │ │ │ + │ │ │ ├[row25] + │ │ │ │ + │ │ │ ├[row26] + │ │ │ │ + │ │ │ ├[row27] + │ │ │ │ + │ │ │ ├[row28] + │ │ │ │ + │ │ │ ├[row29] + │ │ │ │ + │ │ │ ├[row30] + │ │ │ │ + │ │ │ ├[row31] + │ │ │ │ + │ │ │ ├[row32] + │ │ │ │ + │ │ │ ├[row33] + │ │ │ │ + │ │ │ ├[row34] + │ │ │ │ + │ │ │ ├[row35] + │ │ │ │ + │ │ │ └[row36] + │ │ │ + │ │ ├[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + └[guardring]┤ + │ ┌[row0] + │ │ + │ ├[row1] + │ │ + │ ├[row2] + │ │ + │ ├[row3] + │ │ + │ ├[row4] + │ │ + │ ├[row5] + │ │ + │ ├[row6] + │ │ + │ ├[row7] + │ │ + │ ├[row8] + │ │ + │ ├[row9] + │ │ + │ ├[row10] + │ │ + │ ├[row11] + │ │ + │ ├[row12] + │ │ + │ ├[row13] + │ │ + │ ├[row14] + │ │ + │ ├[row15] + │ │ + │ ├[row16] + │ │ + │ ├[row17] + │ │ + │ ┌[array]┼[row18] + │ │ │ + ├[W]┤ ├[row19] + │ │ │ + │ │ ├[row20] + │ │ │ + │ │ ├[row21] + │ │ │ + │ │ ├[row22] + │ │ │ + │ │ ├[row23] + │ │ │ + │ │ ├[row24] + │ │ │ + │ │ ├[row25] + │ │ │ + │ │ ├[row26] + │ │ │ + │ │ ├[row27] + │ │ │ + │ │ ├[row28] + │ │ │ + │ │ ├[row29] + │ │ │ + │ │ ├[row30] + │ │ │ + │ │ ├[row31] + │ │ │ + │ │ ├[row32] + │ │ │ + │ │ ├[row33] + │ │ │ + │ │ ├[row34] + │ │ │ + │ │ ├[row35] + │ │ │ + │ │ └[row36] + │ │ + │ ├[bottom]─[lay] + │ │ + │ └[top]─[met] + │ + │ ┌[array]─[row0] + │ │ + ├[N]┼[bottom]─[lay] + │ │ + │ └[top]─[met] + │ + │ ┌[array]─[row0] + │ │ + ├[tl]┼[bottom]─[lay] + │ │ + │ └[top]─[met] + │ + │ ┌[array]─[row0] + │ │ + └[tr]┼[bottom]─[lay] + │ + └[top]─[met] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt new file mode 100644 index 000000000..385b69353 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt @@ -0,0 +1,417 @@ + ┌[W] + │ + ├[N] + ┌[diffpairibias]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[commonsourceibias]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[gnd]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[outputibias]┤ + │ ├[E] + │ │ + │ └[S] + ┌[pin]┤ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[output]─[route]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[plus]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[minus]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[vdd]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + ├[gnd]─[route]─[con]┤ + │ └[E] + │ + │ ┌[0] + │ │ + │ ├[1] + │ │ + │ ├[2] + │ │ + │ ┌[B]┼[3] + │ │ │ + │ │ ├[gate] + │ │ │ + │ │ ├[source] + │ │ │ + │ │ └[drain] + │ │ + │ │ ┌[0] + │ │ │ + │ │ ├[1] + │ │ │ + │ │ ├[2] + │ │ │ + │ ┌[ibias]┼[A]┼[3] + │ │ │ │ + │ │ │ ├[gate] + │ │ │ │ + │ │ │ ├[source] + │ │ │ │ + │ │ │ └[drain] + │ │ │ + │ │ │ ┌[W] + │ │ │ │ + │ │ │ ├[N] + │ │ ├[well]┤ + │ │ │ ├[E] + │ │ │ │ + │ │ │ └[S] + │ │ │ + │ │ │ ┌[N] + │ │ ├[purposegndportscon]┤ + │ │ │ └[S] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[multiplier]─[0] + │ │ │ + │ │ │ ┌[W] + │ ├[bl]┤ │ + ├[diffpair]┤ └[well]┼[N] + │ │ │ + │ │ └[E] + │ │ + │ │ ┌[multiplier]─[0] + │ │ │ + │ │ │ ┌[W] + │ ├[br]┤ │ + │ │ └[well]┼[N] + │ │ │ + │ │ └[E] + │ │ + │ │ ┌[multiplier]─[0] + │ │ │ + │ │ │ ┌[W] + │ │ │ │ + │ ├[tl]┤ ├[N] + │ │ └[well]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[multiplier]─[0] + │ │ │ + │ │ │ ┌[W] + │ │ │ │ + │ ├[tr]┤ ├[N] + │ │ └[well]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W]─[con] + │ ├[MINUSgateroute]┤ + │ │ └[E]─[con] + │ │ + │ │ ┌[W]─[con] + │ ├[PLUSgateroute]┤ + │ │ └[E]─[con] + │ │ + │ │ ┌[routeTL]─[BR] + │ ├[drain]┤ + │ │ └[routeTR]─[BL] + │ │ + │ │ ┌[routeW]─[con] + │ └[source]┤ + │ └[routeE]─[con] + │ + │ ┌[R] + │ ┌[ref]┤ + │ │ └[L] + │ ┌[cmirror]┤ + │ │ │ ┌[R] + │ │ └[output]┤ + │ │ └[L] + │ │ + │ │ ┌[tie] + ├[commonsource]┤ │ + │ │ ┌[L]┼[multiplier] + │ │ │ │ + │ │ │ └[well] + │ └[Pamp]┤ + │ │ ┌[tie] + │ │ │ + │ └[R]┼[multiplier] + │ │ + │ └[well] + │ + │ ┌[S] + │ │ + │ ├[bl] + │ │ + │ ├[br] + │ │ + │ ├[E] + │ ┌[substratetap]┤ + │ │ ├[W] + │ │ │ + │ │ ├[N] + │ │ │ + │ │ ├[tl] + │ │ │ + │ │ └[tr] + │ │ + │ │ ┌[S] + │ │ │ + │ │ ├[bl] + │ │ │ + │ │ ├[br] + │ │ │ + │ │ ├[E] + │ ├[welltie]┤ + │ │ ├[W] + │ │ │ +-[opamp]┤ │ ├[N] + │ │ │ + │ │ ├[tl] + │ │ │ + │ │ └[tr] + │ │ + │ │ ┌[0] + │ ┌[bias]┤ │ + │ │ │ ├[1] + │ │ │ │ + │ │ │ ├[2] + │ │ │ │ + │ │ ├[B]┼[3] + │ │ │ │ + │ │ │ ├[gate] + │ │ │ │ + │ │ │ ├[source] + │ │ │ │ + │ │ │ └[drain] + │ │ │ + │ │ │ ┌[0] + │ │ │ │ + │ │ │ ├[1] + │ │ │ │ + │ │ │ ├[2] + │ │ │ │ + │ │ ├[A]┼[3] + │ │ │ │ + ├[outputstage]┤ │ ├[gate] + │ │ │ │ + │ │ │ ├[source] + │ │ │ │ + │ │ │ └[drain] + │ │ │ + │ │ │ ┌[W] + │ │ │ │ + │ │ │ ├[N] + │ │ └[well]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[S] + │ │ │ + │ │ ├[bl] + │ │ │ + │ │ ├[br] + │ │ │ + │ │ ├[E] + │ │ ┌[guardring]┤ + │ │ │ ├[W] + │ │ │ │ + │ │ │ ├[N] + │ │ │ │ + │ │ │ ├[tl] + │ │ │ │ + │ │ │ └[tr] + │ │ │ + │ │ │ ┌[S] + │ │ │ │ + │ │ │ ├[bl] + │ │ │ │ + │ └[amp]┤ ├[br] + │ │ │ + │ │ ├[E] + │ ├[tie]┤ + │ │ ├[W] + │ │ │ + │ │ ├[N] + │ │ │ + │ │ ├[tl] + │ │ │ + │ │ └[tr] + │ │ + │ ├[multiplier]─[0] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[well]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[S] + │ │ + │ ├[bl] + │ │ + │ ├[br] + │ │ + │ ├[E] + │ ┌[top]─[ptap]┤ + │ │ ├[W] + │ │ │ + │ │ ├[N] + │ │ │ + │ │ ├[tl] + │ │ │ + │ │ └[tr] + │ │ + │ │ ┌[layer] + │ │ │ + │ │ ┌[bottom]┼[via] + │ ├[minusvia]┤ │ + │ │ │ └[met] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[gate] + │ │ │ + │ │ ├[row0] + │ │ │ + │ │ ├[leftsd] + │ │ │ + │ │ ┌[L]┼[plusdoped] + │ │ │ │ + │ │ │ ├[diff] + │ │ │ │ + │ │ │ ├[source] + │ │ │ │ + │ │ │ └[drain] + │ ├[pbottomAB]┤ + │ │ │ ┌[gate] + │ │ │ │ + │ │ │ ├[row0] + │ │ │ │ + │ │ │ ├[leftsd] + │ │ │ │ + ├[pcomps]┤ └[R]┼[plusdoped] + │ │ │ + │ │ ├[diff] + │ │ │ + │ │ ├[source] + │ │ │ + │ │ └[drain] + │ │ + │ │ ┌[layer] + │ │ │ + │ │ ┌[bottom]┼[via] + │ ├[2L2Rsrcvia]┤ │ + │ │ │ └[met] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[gate] + │ │ │ + │ │ ├[row0] + │ │ │ + │ │ ├[leftsd] + │ │ │ + │ │ ┌[L]┼[plusdoped] + │ │ │ │ + │ │ │ ├[diff] + │ │ │ │ + │ │ │ ├[source] + │ │ │ │ + │ │ │ └[drain] + │ ├[ptopAB]┤ + │ │ │ ┌[gate] + │ │ │ │ + │ │ │ ├[row0] + │ │ │ │ + │ │ │ ├[leftsd] + │ │ │ │ + │ │ └[R]┼[plusdoped] + │ │ │ + │ │ ├[diff] + │ │ │ + │ │ ├[source] + │ │ │ + │ │ └[drain] + │ │ + │ └[mimcap]─[connection]─[con] + │ + │ ┌[array] + │ │ + │ ┌[col0]┼[bottom] + │ │ │ + │ │ └[top] + │ ┌[row0]┤ + │ │ │ ┌[array] + │ │ │ │ + │ │ └[col1]┼[bottom] + │ │ │ + │ │ └[top] + │ │ + │ │ ┌[array] + │ │ │ + │ │ ┌[col0]┼[bottom] + │ │ │ │ + │ │ │ └[top] + └[mimcap]┼[row1]┤ + │ │ ┌[array] + │ │ │ + │ └[col1]┼[bottom] + │ │ + │ └[top] + │ + │ ┌[array] + │ │ + │ ┌[col0]┼[bottom] + │ │ │ + │ │ └[top] + └[row2]┤ + │ ┌[array] + │ │ + └[col1]┼[bottom] + │ + └[top] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/pmos_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/pmos_v1_tree.txt new file mode 100644 index 000000000..b709d3e44 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/pmos_v1_tree.txt @@ -0,0 +1,277 @@ + ┌[W] + │ + ├[N] + │ + ┌[gate]┼[con] + │ │ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[col0] + ├[row0]┤ + │ └[col1] + │ + │ ┌[array] + ├[leftsd]┤ + │ └[top] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[plusdoped]┤ + │ ├[E] + │ │ + │ └[S] + │ + ┌[0]┤ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[diff]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[con] + │ │ │ + │ ├[source]┼[N] + │ │ │ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[con] + │ │ │ + │ └[drain]┼[N] + │ │ + ┌[multiplier]┤ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ │ ┌[gate]┤ + │ │ │ ├[E] + │ │ │ │ + │ │ │ └[S] + │ │ │ + │ │ │ ┌[col0] + │ │ ├[row0]┤ + │ │ │ └[col1] + │ │ │ + │ │ │ ┌[array] + │ │ ├[leftsd]┤ + │ │ │ └[top] + │ │ │ + │ │ │ ┌[W] + │ │ │ │ + │ │ │ ├[N] + │ │ ├[plusdoped]┤ + │ │ │ ├[E] + │ │ │ │ + │ │ │ └[S] + │ └[1]┤ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[diff]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[source]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[drain]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array]─[row0] + │ │ + │ ┌[S]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[bl]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[br]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[row0] + │ │ │ + │ │ ├[row1] + │ │ │ + │ │ ├[row2] + │ │ │ + │ │ ├[row3] + │ │ │ + │ │ ├[row4] + │ │ │ + │ │ ├[row5] + │ │ │ + │ │ ├[row6] + │ │ │ + │ │ ├[row7] + │ │ │ + │ │ ├[row8] + │ │ │ +-[pmos]┤ │ ├[row9] + │ │ │ + │ │ ├[row10] + │ │ │ + │ │ ├[row11] + │ │ │ + │ │ ├[row12] + │ │ │ + │ │ ├[row13] + │ │ │ + │ │ ├[row14] + │ │ │ + │ │ ┌[array]┼[row15] + │ │ │ │ + │ ├[E]┤ ├[row16] + │ │ │ │ + │ │ │ ├[row17] + │ │ │ │ + │ │ │ ├[row18] + │ │ │ │ + │ │ │ ├[row19] + │ │ │ │ + │ │ │ ├[row20] + │ │ │ │ + │ │ │ ├[row21] + │ │ │ │ + │ │ │ ├[row22] + │ │ │ │ + │ │ │ ├[row23] + │ │ │ │ + │ │ │ ├[row24] + │ │ │ │ + │ │ │ ├[row25] + │ │ │ │ + │ │ │ ├[row26] + │ │ │ │ + │ │ │ ├[row27] + │ │ │ │ + │ │ │ ├[row28] + │ │ │ │ + │ │ │ ├[row29] + │ │ │ │ + │ │ │ └[row30] + │ │ │ + │ │ ├[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + ├[tie]┤ + │ │ ┌[row0] + │ │ │ + │ │ ├[row1] + │ │ │ + │ │ ├[row2] + │ │ │ + │ │ ├[row3] + │ │ │ + │ │ ├[row4] + │ │ │ + │ │ ├[row5] + │ │ │ + │ │ ├[row6] + │ │ │ + │ │ ├[row7] + │ │ │ + │ │ ├[row8] + │ │ │ + │ │ ├[row9] + │ │ │ + │ │ ├[row10] + │ │ │ + │ │ ├[row11] + │ │ │ + │ │ ├[row12] + │ │ │ + │ │ ├[row13] + │ │ │ + │ │ ├[row14] + │ │ │ + │ │ ┌[array]┼[row15] + │ │ │ │ + │ ├[W]┤ ├[row16] + │ │ │ │ + │ │ │ ├[row17] + │ │ │ │ + │ │ │ ├[row18] + │ │ │ │ + │ │ │ ├[row19] + │ │ │ │ + │ │ │ ├[row20] + │ │ │ │ + │ │ │ ├[row21] + │ │ │ │ + │ │ │ ├[row22] + │ │ │ │ + │ │ │ ├[row23] + │ │ │ │ + │ │ │ ├[row24] + │ │ │ │ + │ │ │ ├[row25] + │ │ │ │ + │ │ │ ├[row26] + │ │ │ │ + │ │ │ ├[row27] + │ │ │ │ + │ │ │ ├[row28] + │ │ │ │ + │ │ │ ├[row29] + │ │ │ │ + │ │ │ └[row30] + │ │ │ + │ │ ├[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[N]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ ├[tl]┼[bottom]─[lay] + │ │ │ + │ │ └[top]─[met] + │ │ + │ │ ┌[array]─[row0] + │ │ │ + │ └[tr]┼[bottom]─[lay] + │ │ + │ └[top]─[met] + │ + │ ┌[W] + │ │ + │ ├[N] + └[well]┤ + ├[E] + │ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_v1_tree.txt new file mode 100644 index 000000000..41b1bfe9c --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_v1_tree.txt @@ -0,0 +1,7 @@ + ┌[e1] + │ + ├[e2] +-[straight_route]─[route]┤ + ├[e3] + │ + └[e4] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/tapring_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/tapring_v1_tree.txt new file mode 100644 index 000000000..4d4edd24d --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/tapring_v1_tree.txt @@ -0,0 +1,183 @@ + ┌[col0] + ┌[array]─[row0]┤ + │ └[col1] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[bottom]─[lay]┤ + │ ├[E] + ┌[S]┤ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array]─[row0]─[col0] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[bottom]─[lay]┤ + │ │ ├[E] + │ │ │ + ├[bl]┤ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array]─[row0]─[col0] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[bottom]─[lay]┤ + │ │ ├[E] + │ │ │ + ├[br]┤ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[row0]─[col0] + │ │ + │ ├[row1]─[col0] + │ │ + │ ├[row2]─[col0] + │ │ + │ ├[row3]─[col0] + │ │ + │ ├[row4]─[col0] + │ ┌[array]┤ + │ │ ├[row5]─[col0] + │ │ │ + │ │ ├[row6]─[col0] + │ │ │ + │ │ ├[row7]─[col0] + │ │ │ + │ │ ├[row8]─[col0] + ├[E]┤ │ + │ │ └[row9]─[col0] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[bottom]─[lay]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] +-[tapring]┤ + │ ┌[row0]─[col0] + │ │ + │ ├[row1]─[col0] + │ │ + │ ├[row2]─[col0] + │ │ + │ ├[row3]─[col0] + │ │ + │ ├[row4]─[col0] + │ ┌[array]┤ + │ │ ├[row5]─[col0] + │ │ │ + │ │ ├[row6]─[col0] + │ │ │ + │ │ ├[row7]─[col0] + │ │ │ + │ │ ├[row8]─[col0] + ├[W]┤ │ + │ │ └[row9]─[col0] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[bottom]─[lay]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[col0] + │ ┌[array]─[row0]┤ + │ │ └[col1] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[bottom]─[lay]┤ + │ │ ├[E] + ├[N]┤ │ + │ │ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array]─[row0]─[col0] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[bottom]─[lay]┤ + │ │ ├[E] + │ │ │ + ├[tl]┤ └[S] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[top]─[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[array]─[row0]─[col0] + │ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ ├[bottom]─[lay]┤ + │ │ ├[E] + │ │ │ + └[tr]┤ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + └[top]─[met]┤ + ├[E] + │ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/via_stack_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/via_stack_v1_tree.txt new file mode 100644 index 000000000..81ad8c082 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/via_stack_v1_tree.txt @@ -0,0 +1,31 @@ + ┌[W] + │ + ├[N] + ┌[layer]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + ┌[bottom]┼[via]┤ + │ │ ├[E] + │ │ │ + │ │ └[S] +-[via_stack]┤ │ + │ │ ┌[W] + │ │ │ + │ │ ├[N] + │ └[met]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + └[top]─[met]┤ + ├[E] + │ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/viaarray_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/viaarray_v1_tree.txt new file mode 100644 index 000000000..e9985bfd7 --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/viaarray_v1_tree.txt @@ -0,0 +1,39 @@ + ┌[bottom] + ┌[col0]┤ + │ └[top] + ┌[row0]┤ + │ │ ┌[bottom] + │ └[col1]┤ + │ └[top] + │ + │ ┌[bottom] + │ ┌[col0]┤ + │ │ └[top] + ┌[array]┼[row1]┤ + │ │ │ ┌[bottom] + │ │ └[col1]┤ + │ │ └[top] + │ │ + │ │ ┌[bottom] + │ │ ┌[col0]┤ + │ │ │ └[top] +-[viaarray]┤ └[row2]┤ + │ │ ┌[bottom] + │ └[col1]┤ + │ └[top] + │ + │ ┌[W] + │ │ + │ ├[N] + ├[bottom]─[lay]┤ + │ ├[E] + │ │ + │ └[S] + │ + │ ┌[W] + │ │ + │ ├[N] + └[top]─[met]┤ + ├[E] + │ + └[S] \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index fea34ac38..a205c0114 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -454,12 +454,16 @@ def __add_output_stage( opamp_top << straight_route(pdk, cmirror_ibias.ports["welltie_N_top_met_N"],cmirror_ibias.ports["substratetap_N_top_met_S"],width=2) opamp_top << straight_route(pdk, amp_fet_ref.ports["guardring_bl_top_met_S"],cmirror_ibias.ports["substratetap_tr_top_met_N"]) opamp_top << straight_route(pdk, amp_fet_ref.ports["guardring_tl_top_met_W"], opamp_top.ports["commonsource_cmirror_output_R_tie_tr_top_met_E"]) - # add ports and return - psuedo_out_port = movex(cmirror_ibias.ports["A_gate_E"].copy(),6*metal_sep) - output_pin = opamp_top << straight_route(pdk, cmirror_ibias.ports["A_gate_E"], psuedo_out_port) + # add ports, add bias/output pin, and return + psuedo_out_port = movex(amp_fet_ref.ports["multiplier_0_source_E"].copy(),6*metal_sep) + output_pin = opamp_top << straight_route(pdk, amp_fet_ref.ports["multiplier_0_source_E"], psuedo_out_port) opamp_top.add_ports(amp_fet_ref.get_ports_list(),prefix="outputstage_amp_") opamp_top.add_ports(cmirror_ibias.get_ports_list(),prefix="outputstage_bias_") opamp_top.add_ports(output_pin.get_ports_list(),prefix="pin_output_") + bias_pin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met3"),centered=True) + bias_pin.movex(cmirror_ibias.center[0]).movey(cmirror_ibias.ports["B_gate_S"].center[1]-bias_pin.ymax-5*metal_sep) + opamp_top << straight_route(pdk, bias_pin.ports["e2"], cmirror_ibias.ports["B_gate_S"],width=1) + opamp_top.add_ports(bias_pin.get_ports_list(),prefix="pin_outputibias_") return opamp_top @@ -468,9 +472,10 @@ def opamp( pdk: MappedPDK, diffpair_params: tuple[float, float, int] = (6, 1, 4), diffpair_bias: tuple[float, float, int] = (6, 2, 4), - half_common_source_nbias: tuple[float, float, int, int] = (6, 2, 8, 2), - pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), - output_stage_amp_params: tuple[float, float, int] = (5, 1, 16), + half_common_source_params: tuple[float, float, int, int] = (7, 1, 10, 3), + half_common_source_bias: tuple[float, float, int, int] = (6, 2, 8, 2), + output_stage_params: tuple[float, float, int] = (5, 1, 16), + output_stage_bias: tuple[float, float, int] = (6, 2, 4), mim_cap_size=(12, 12), mim_cap_rows=3, rmult: int = 2 @@ -478,10 +483,12 @@ def opamp( """create an opamp, args: pdk=pdk to use diffpair_params = diffpair (width,length,fingers) - diffpair_bias = bias transistor for diffpair nmos (width,length,fingers) - half_common_source_nbias = west current mirror (width,length,fingers,mults), two halves - pamp_hparams = pmos top component amp (width,length,fingers,mults) + diffpair_bias = bias transistor for diffpair nmos (width,length,fingers). The ref and output of the cmirror are identical + half_common_source_params = pmos top component amp (width,length,fingers,mults) + half_common_source_bias = bottom L/R large nmos current mirror (width,length,fingers,mults). The ref of the cmirror always has 1 multplier. + ****NOTE: change the multiplier option to change the relative sizing of the current mirror ref/output output_stage_amp_params = output amplifier transistor params (width, length, fingers) + output_stage_bias = output amplifier current mirror params (width, length, fingers). The ref and output of the cmirror are identical mim_cap_size = width,length of individual mim_cap mim_cap_rows = number of rows in the mimcap array (always 2 cols) rmult = routing multiplier (larger = wider routes) @@ -493,14 +500,14 @@ def opamp( diffpair_and_bias = __add_diff_pair_and_bias(pdk, opamp_top, diffpair_params, diffpair_bias, rmult) # create and position each half of the nmos bias transistor for the common source stage symetrically clear_cache() - opamp_top = __add_common_source_nbias_transistors(pdk, opamp_top, half_common_source_nbias, rmult) + opamp_top = __add_common_source_nbias_transistors(pdk, opamp_top, half_common_source_bias, rmult) opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) # add ground pin gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) gndpin.movey(opamp_top.ymin-pdk.util_max_metal_seperation()-gndpin.ymax) # route bottom ncomps except drain of nbias (still need to place common source pmos amp) clear_cache() - opamp_top, halfmultn_drain_routeref, halfmultn_gate_routeref, _cref = __route_bottom_ncomps_except_drain_nbias(pdk, opamp_top, gndpin, half_common_source_nbias[3]) + opamp_top, halfmultn_drain_routeref, halfmultn_gate_routeref, _cref = __route_bottom_ncomps_except_drain_nbias(pdk, opamp_top, gndpin, half_common_source_bias[3]) opamp_top.add_ports(gndpin.get_ports_list(), prefix="pin_gnd_") # place pmos components #TODO: report as bug @@ -509,7 +516,7 @@ def opamp( clear_cache() pmos_comps = __route_sharedgatecomps(pdk, pmos_comps, opamp_top.ports["diffpair_tl_multiplier_0_drain_N"].center[0], ptop_AB, pbottom_AB, LRplusdopedPorts, LRgatePorts, LRdrainsPorts, LRsourcesPorts) clear_cache() - pmos_comps = __add_common_source_Pamp_and_finish_pcomps(pdk, pmos_comps, pamp_hparams, rmult) + pmos_comps = __add_common_source_Pamp_and_finish_pcomps(pdk, pmos_comps, half_common_source_params, rmult) ydim_ncomps = opamp_top.ymax pmos_comps_ref = opamp_top << pmos_comps pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) @@ -523,7 +530,7 @@ def opamp( clear_cache() opamp_top = __add_mimcap_arr(pdk, opamp_top, mim_cap_size, mim_cap_rows, pmos_comps_ref.ymin, n_to_p_output_route) # add output amplfier stage - opamp_top = __add_output_stage(pdk, opamp_top, output_stage_amp_params, [6,2,4], rmult, n_to_p_output_route) + opamp_top = __add_output_stage(pdk, opamp_top, output_stage_params, output_stage_bias, rmult, n_to_p_output_route) # return opamp_top.add_ports(_cref.get_ports_list(), prefix="gnd_route_") return rename_ports_by_orientation(component_snap_to_grid(opamp_top)) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py index 97dda3bb7..234239a39 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py @@ -301,7 +301,7 @@ def get_val(self, node: tuple[str, dict]) -> str: """returns value of a node, (node might be a PortTree)""" return node[0] if isinstance(node, tuple) else self.name - def print(self, savetofile: bool=True, default_opts: bool=True, depth: Optional[int]=None, **kwargs): + def print(self, savetofile: bool=True, default_opts: bool=True, depth: Optional[int]=None, outfile_name: Optional[str]=None, **kwargs): """prints output to terminal directly using prettyprinttree pypi package args: depth = max depth to print. this is a kwarg but since it so common, it should be specfied from depth arg @@ -320,5 +320,47 @@ def print(self, savetofile: bool=True, default_opts: bool=True, depth: Optional[ pt = PrettyPrintTree(self.get_children, self.get_val, max_depth=depth, **extra_kwargs) rtrstr = pt(self) if rtrstr: - with open("outputtree.txt","w") as outputfile: - outputfile.write(rtrstr) \ No newline at end of file + outfile_name = "outputtree.txt" if outfile_name is None else outfile_name + with open(outfile_name,"w") as outputfile: + outputfile.write(rtrstr) + + +def print_port_tree_all_cells() -> list: + """print the PortTree for most of the pygen cells and save as a text file. + returns a list of components + """ + from pygen.via_gen import via_stack, via_array + from pygen.opamp import opamp + from pygen.mimcap import mimcap + from pygen.mimcap import mimcap_array + from pygen.guardring import tapring + from pygen.fet import multiplier, nmos, pmos + from pygen.diff_pair import diff_pair + from pygen.routing.straight_route import straight_route + from pygen.routing.c_route import c_route + from pygen.routing.L_route import L_route + from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk + from gdsfactory.port import Port + print("saving via_stack, via_array, opamp, mimcap, mimcap_array, tapring, multiplier, nmos, pmos, diff_pair, straight_route, c_route, L_route Ports to txt files") + celllist = list() + celllist.append(["via_stack",via_stack(pdk, "active_diff","met5")]) + celllist.append(["viaarray", via_array(pdk, "active_diff","met5", num_vias=(2,3))]) + celllist.append(["mimcap",mimcap(pdk)]) + celllist.append(["mimcap_array",mimcap_array(pdk, 2, 3)]) + celllist.append(["tapring",tapring(pdk)]) + celllist.append(["multiplier",multiplier(pdk,"n+s/d")]) + celllist.append(["nmos", nmos(pdk,fingers=2,multipliers=2)]) + celllist.append(["pmos", pmos(pdk,fingers=2,multipliers=2)]) + celllist.append(["diff_pair",diff_pair(pdk)]) + psuedo_porta = Port("bottom",90,(0,0),2,layer=pdk.get_glayer("met2")) + psuedo_portb = Port("top",0,(5,10),2.5,layer=pdk.get_glayer("met5")) + psuedo_porta = Port("right",90,(10,10),2,layer=pdk.get_glayer("met2")) + celllist.append(["straight_route",straight_route(pdk,psuedo_porta,psuedo_portb)]) + celllist.append(["L_route",L_route(pdk, psuedo_porta, psuedo_portb)]) + celllist.append(["c_route",c_route(pdk, psuedo_porta, psuedo_porta,extension=2)]) + celllist.append(["opamp",opamp(pdk)]) + for name, py_cell in celllist: + from pygen import __version__ as pygenvinfo + pygenv = str(pygenvinfo) + PortTree(py_cell,name=name).print(depth=5,outfile_name=name+"_v"+pygenv+"_tree.txt",default_orientation=True) + return celllist diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash index 9c1bbd805..235c44160 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash @@ -1,8 +1,5 @@ #!/bin/bash -# Ali -#export PDK_ROOT=/usr/local/share/pdk/ - # Actual export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 318fb8e7b..9d45277c3 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -11,6 +11,7 @@ from pygen.opamp import opamp from pygen.routing.L_route import L_route from pygen.routing.straight_route import straight_route +from pygen.routing.c_route import c_route from pygen.via_gen import via_array from gdsfactory.cell import cell, clear_cache import numpy as np @@ -41,6 +42,7 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: """adds the MPW-5 pads and nano pads to opamp. Also adds text labels and pin layers so that extraction is nice + this function should not be used with sky130_add_opamp_labels """ opamp_wpads = opamp_in.copy() opamp_wpads = movey(opamp_wpads, destination=0) @@ -52,29 +54,28 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: pad_array_ref = pad_array.ref_center() opamp_wpads.add(pad_array_ref) # add via_array to vdd pin - vddarray = via_array(pdk, "met4","met5",size=(opamp_wpads.ports["vdd_pin_N"].width,opamp_wpads.ports["vdd_pin_E"].width)) + vddarray = via_array(pdk, "met4","met5",size=(opamp_wpads.ports["pin_vdd_N"].width,opamp_wpads.ports["pin_vdd_E"].width)) via_array_ref = opamp_wpads << vddarray - align_comp_to_port(via_array_ref,opamp_wpads.ports["vdd_pin_N"],alignment=('c','b')) + align_comp_to_port(via_array_ref,opamp_wpads.ports["pin_vdd_N"],alignment=('c','b')) # route to the pads - opamp_wpads << L_route(pdk, opamp_wpads.ports["minus_pin_W"],pad_array_ref.ports["row1_col1_pad_S"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["plus_pin_W"],pad_array_ref.ports["row0_col1_pad_N"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias2_pin_E"],pad_array_ref.ports["row0_col2_pad_N"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["vbias1_pin_E"],pad_array_ref.ports["row0_col3_pad_N"],hwidth=3) - opamp_wpads << L_route(pdk, opamp_wpads.ports["gnd_route_con_E"],pad_array_ref.ports["row1_col4_pad_S"],hwidth=3,vglayer="met5") - opamp_wpads << L_route(pdk, opamp_wpads.ports["vdd_pin_N"],pad_array_ref.ports["row1_col2_pad_E"],vwidth=4,vglayer="met5") - opamp_wpads << L_route(pdk, opamp_wpads.ports["output_pin_E"],pad_array_ref.ports["row0_col4_pad_N"],hwidth=3,vglayer="met5") + opamp_wpads << L_route(pdk, opamp_wpads.ports["pin_minus_W"],pad_array_ref.ports["row1_col1_pad_S"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["pin_plus_W"],pad_array_ref.ports["row0_col1_pad_N"],hwidth=3) + opamp_wpads << straight_route(pdk, pad_array_ref.ports["row1_col2_pad_S"],opamp_wpads.ports["pin_vdd_S"], width=4,glayer1="met5") + opamp_wpads << straight_route(pdk, opamp_wpads.ports["pin_diffpairibias_S"],pad_array_ref.ports["row0_col2_pad_N"]) + opamp_wpads << L_route(pdk, opamp_wpads.ports["gnd_route_con_E"],pad_array_ref.ports["row0_col3_pad_N"], vglayer="met4",hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["pin_commonsourceibias_E"],pad_array_ref.ports["row0_col4_pad_N"],hwidth=3) + opamp_wpads << L_route(pdk, opamp_wpads.ports["pin_outputibias_E"],pad_array_ref.ports["row1_col4_pad_S"], hwidth=3) + opamp_wpads << c_route(pdk, opamp_wpads.ports["pin_output_route_E"],pad_array_ref.ports["row1_col3_pad_E"], extension=1, cglayer="met3", cwidth=4) # add pin layer and text labels for LVS text_pin_labels = list() met5pin = rectangle(size=(5,5),layer=(72,16), centered=True) - for name in ["plus","vbias2","vbias1","output","minus","vdd","NC","gnd"]: + for name in ["plus","diffpairibias","gnd","commonsourceibias","minus","vdd","output","outputibias"]: pin_w_label = met5pin.copy() pin_w_label.add_label(text=name,layer=(72,5),magnification=4) text_pin_labels.append(pin_w_label) for row in range(2): for col_u in range(4): col = col_u + 1# left most are for nano pads - if row==1 and col==2+1: - continue port_name = "row"+str(row)+"_col"+str(col)+"_pad_S" pad_array_port = pad_array_ref.ports[port_name] pin_ref = opamp_wpads << text_pin_labels[4*row + col_u] @@ -98,6 +99,9 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: def sky130_add_opamp_labels(opamp_in: Component) -> Component: + """adds opamp labels for extraction, without adding pads + this functions should not be used with sky130_add_opamp_pads + """ opamp_in.unlock() # define layers met2_pin = (69,16) @@ -112,48 +116,51 @@ def sky130_add_opamp_labels(opamp_in: Component) -> Component: # gnd gndlabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() gndlabel.add_label(text="gnd",layer=met3_label) - move_info.append((gndlabel,opamp_in.ports["gnd_pin_N"])) - #vbias1 - vbias1label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() - vbias1label.add_label(text="vbias1",layer=met2_label) - move_info.append((vbias1label,opamp_in.ports["vbias1_pin_N"])) - # vbias2 - vbias2label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() - vbias2label.add_label(text="vbias2",layer=met2_label) - move_info.append((vbias2label,opamp_in.ports["vbias2_pin_N"])) + move_info.append((gndlabel,opamp_in.ports["pin_gnd_N"])) + #diffpairibias + ibias1label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() + ibias1label.add_label(text="diffpairibias",layer=met2_label) + move_info.append((ibias1label,opamp_in.ports["pin_diffpairibias_N"])) + #outputibias + ibias3label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() + ibias3label.add_label(text="outputibias",layer=met2_label) + move_info.append((ibias3label,opamp_in.ports["pin_outputibias_N"])) + # commonsourceibias + ibias2label = rectangle(layer=met4_pin,size=(1,1),centered=True).copy() + ibias2label.add_label(text="commonsourceibias",layer=met4_label) + move_info.append((ibias2label,opamp_in.ports["pin_commonsourceibias_N"])) #minus minuslabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() minuslabel.add_label(text="minus",layer=met3_label) - move_info.append((minuslabel,opamp_in.ports["minus_pin_N"])) + move_info.append((minuslabel,opamp_in.ports["pin_minus_N"])) #-plus pluslabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() pluslabel.add_label(text="plus",layer=met3_label) - move_info.append((pluslabel,opamp_in.ports["plus_pin_N"])) + move_info.append((pluslabel,opamp_in.ports["pin_plus_N"])) #vdd vddlabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() vddlabel.add_label(text="vdd",layer=met3_label) - move_info.append((vddlabel,opamp_in.ports["vdd_pin_N"])) + move_info.append((vddlabel,opamp_in.ports["pin_vdd_N"])) # output - outputlabel = rectangle(layer=met4_pin,size=(1,1),centered=True).copy() - outputlabel.add_label(text="output",layer=met4_label) - move_info.append((outputlabel,opamp_in.ports["output_pin_N"])) + outputlabel = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() + outputlabel.add_label(text="output",layer=met2_label) + move_info.append((outputlabel,opamp_in.ports["pin_output_route_N"])) # move everything to position for comp, prt in move_info: compref = align_comp_to_port(comp, prt, alignment=('c','b')) opamp_in.add(compref) return opamp_in.flatten() + def sky130_add_lvt_layer(opamp_in: Component) -> Component: opamp_in.unlock() - # define layers lvt_layer = (125,44) - - # define geometry - SW_S_edge = opamp_in.ports["pcomps_halfp_l_multiplier_0_plusdoped_S"] - SW_W_edge = opamp_in.ports["pcomps_halfp_l_multiplier_0_plusdoped_W"] - NE_N_edge = opamp_in.ports["pcomps_halfp_r_multiplier_2_plusdoped_N"] - NE_E_edge = opamp_in.ports["pcomps_halfp_r_multiplier_2_plusdoped_E"] + # define geometry over pmos components and add lvt + SW_S_edge = opamp_in.ports["commonsource_Pamp_L_multiplier_0_plusdoped_S"] + SW_W_edge = opamp_in.ports["commonsource_Pamp_L_multiplier_0_plusdoped_W"] + NE_N_edge = opamp_in.ports["commonsource_Pamp_R_multiplier_2_plusdoped_N"] + NE_E_edge = opamp_in.ports["commonsource_Pamp_R_multiplier_2_plusdoped_E"] SW_S_center = SW_S_edge.center SW_W_center = SW_W_edge.center NE_N_center = NE_N_edge.center @@ -165,15 +172,19 @@ def sky130_add_lvt_layer(opamp_in: Component) -> Component: max_y = max(middle_top_y, NE_corner[1]) min_y = min(middle_bottom_y, SW_corner[1]) abs_center = (SW_corner[0] + (NE_corner[0] - SW_corner[0])/2, min_y + (max_y - min_y)/2) - # draw lvt rectangle LVT_rectangle = rectangle(layer=lvt_layer, size=(abs(NE_corner[0] - SW_corner[0]), abs(max_y - min_y)), centered=True) LVT_rectangle_ref = opamp_in << LVT_rectangle - # align lvt rectangle to the plusdoped_N region LVT_rectangle_ref.move(origin=(0, 0), destination=abs_center) - # opamp_in.write_gds("opamp_with_lvt_layer.gds") - + # define geometry over output amplfier and add lvt + outputW = opamp_in.ports["outputstage_amp_multiplier_0_plusdoped_W"] + outputE = opamp_in.ports["outputstage_amp_multiplier_0_plusdoped_E"] + width = abs(outputE.center[0]-outputW.center[0]) + hieght = outputW.width + center = (outputW.center[0] + width/2, outputW.center[1]) + lvtref = opamp_in << rectangle(size=(width,hieght),layer=lvt_layer,centered=True) + lvtref.move(destination=center) return opamp_in @@ -184,19 +195,23 @@ def sky130_add_lvt_layer(opamp_in: Component) -> Component: def opamp_parameters_serializer( diffpair_params: tuple[float, float, int] = (6, 1, 4), - diffpair_bias: tuple[float, float, int] = (6, 2, 4), - houtput_bias: tuple[float, float, int, int] = (6, 2, 8, 3), - pamp_hparams: tuple[float, float, int, int] = (7, 1, 10, 3), - mim_cap_size: tuple[int,int]=(12, 12), - mim_cap_rows: int=3, - rmult: int=2 + diffpair_bias: tuple[float, float, int] = (6, 2, 4), + half_common_source_params: tuple[float, float, int, int] = (7, 1, 10, 3), + half_common_source_bias: tuple[float, float, int, int] = (6, 2, 8, 2), + output_stage_params: tuple[float, float, int] = (5, 1, 16), + output_stage_bias: tuple[float, float, int] = (6, 2, 4), + mim_cap_size=(12, 12), + mim_cap_rows=3, + rmult: int = 2 ) -> np.array: """converts opamp params into the uniform numpy float format""" return np.array( [diffpair_params[0],diffpair_params[1],diffpair_params[2], diffpair_bias[0],diffpair_bias[1],diffpair_bias[2], - houtput_bias[0],houtput_bias[1],houtput_bias[2],houtput_bias[3], - pamp_hparams[0],pamp_hparams[1],pamp_hparams[2],pamp_hparams[3], + half_common_source_params[0],half_common_source_params[1],half_common_source_params[2],half_common_source_params[3], + half_common_source_bias[0],half_common_source_bias[1],half_common_source_bias[2],half_common_source_bias[3], + output_stage_params[0],output_stage_params[1],output_stage_params[2], + output_stage_bias[0],output_stage_bias[1],output_stage_bias[2], mim_cap_size[0],mim_cap_size[1], mim_cap_rows, rmult], @@ -206,19 +221,21 @@ def opamp_parameters_serializer( def opamp_parameters_de_serializer(serialized_params: Optional[np.array]=None) -> dict: """converts uniform numpy float format to opamp kwargs""" if serialized_params is None: - serialized_params = 18*[-987.654321] + serialized_params = 24*[-987.654321] serialized_params[16] = int(-987.654321) serialized_params[17] = int(-987.654321) - if not len(serialized_params) == 18: - raise ValueError("serialized_params should be a length 18 array") + if not len(serialized_params) == 24: + raise ValueError("serialized_params should be a length 24 array") params_dict = dict() params_dict["diffpair_params"] = tuple(serialized_params[0:3]) params_dict["diffpair_bias"] = tuple(serialized_params[3:6]) - params_dict["houtput_bias"] = tuple(serialized_params[6:10]) - params_dict["pamp_hparams"] = tuple(serialized_params[10:14]) - params_dict["mim_cap_size"] = tuple(serialized_params[14:16]) - params_dict["mim_cap_rows"] = int(serialized_params[16]) - params_dict["rmult"] = int(serialized_params[17]) + params_dict["half_common_source_params"] = tuple(serialized_params[6:10]) + params_dict["half_common_source_bias"] = tuple(serialized_params[10:14]) + params_dict["output_stage_params"] = tuple(serialized_params[14:17]) + params_dict["output_stage_bias"] = tuple(serialized_params[17:20]) + params_dict["mim_cap_size"] = tuple(serialized_params[20:22]) + params_dict["mim_cap_rows"] = int(serialized_params[22]) + params_dict["rmult"] = int(serialized_params[23]) return params_dict def opamp_results_serializer( @@ -297,9 +314,9 @@ def get_small_parameter_list(test_mode = False) -> np.array: for rmult in rmults: tup_to_add = opamp_parameters_serializer( diffpair_params=diffpair_v, - houtput_bias=bias2_v, + half_common_source_bias=bias2_v, mim_cap_rows=cap_array_v, - pamp_hparams=pamp_o_v, + half_common_source_params=pamp_o_v, rmult=rmult, ) short_list[index] = tup_to_add @@ -320,20 +337,17 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: RawNoise = NoiseReport.readlines()[0] NoiseColumns = [item for item in RawNoise.split() if item] na = -987.654321 - if ACColumns is None or len(ACColumns)<9: - return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na,"power":na,"noise":na} - if DCColumns is None or len(DCColumns)<2: - return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na,"power":na,"noise":na} - if NoiseColumns is None or len(NoiseColumns)<2: - return {"ugb":na,"biasVoltage1":na,"biasVoltage2":na,"phaseMargin":na,"dcGain":na,"power":na,"noise":na} + noACresults = ACColumns is None or len(ACColumns)<9 + noDCresults = DCColumns is None or len(DCColumns)<2 + nonoiseresults = NoiseColumns is None or len(NoiseColumns)<2 return_dict = { - "ugb": ACColumns[1], - "biasVoltage1": ACColumns[3], - "biasVoltage2": ACColumns[5], - "phaseMargin": ACColumns[7], - "dcGain": ACColumns[9], - "power": DCColumns[1], - "noise": NoiseColumns[1] + "ugb": na if noACresults else ACColumns[1], + "biasVoltage1": na if noACresults else ACColumns[3], + "biasVoltage2": na if noACresults else ACColumns[5], + "phaseMargin": na if noACresults else ACColumns[7], + "dcGain": na if noACresults else ACColumns[9], + "power": na if noDCresults else DCColumns[1], + "noise": na if nonoiseresults else NoiseColumns[1] } for key, val in return_dict.items(): val_flt = na @@ -348,16 +362,21 @@ def process_netlist_subckt(netlist: Union[str,Path], sim_model: Literal["normal netlist = Path(netlist).resolve() if not netlist.is_file(): raise ValueError("netlist must be file") - hints = [".subckt","output","plus","minus","vbias1","vbias2"] + hints = [".subckt","output","plus","minus","vdd","gnd","commonsourceibias","outputibias"] subckt_lines = list() with open(netlist, "r") as spice_net: subckt_lines = spice_net.readlines() for i,line in enumerate(subckt_lines): - line = line.lstrip().lower() + line = line.strip().lower() + if (i+1) Date: Wed, 30 Aug 2023 22:40:10 -0400 Subject: [PATCH 50/64] sky130_nist_tapeout bug fixes and additional options --- .../common/two_transistor_interdigitized.py | 14 ++- .../generators/gdsfactory-gen/pygen/fet.py | 3 +- .../generators/gdsfactory-gen/pygen/opamp.py | 9 +- .../gdsfactory-gen/pygen/pdk/mappedpdk.py | 6 +- .../pygen/pdk/util/comp_utils.py | 6 +- .../pygen/pdk/util/snap_to_grid.py | 2 + .../tapeout_and_RL/opamp_perf_eval.sp | 100 ++++++++++-------- .../tapeout_and_RL/sky130_nist_tapeout.py | 57 ++++++---- 8 files changed, 124 insertions(+), 73 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py b/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py index 3f654ec2f..a317f5182 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py @@ -5,12 +5,16 @@ from pygen.pdk.util.comp_utils import evaluate_bbox from typing import Literal, Union from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list +from pygen.pdk.util.comp_utils import prec_ref_center from pygen.routing.straight_route import straight_route from gdsfactory.functions import transformed from pygen.guardring import tapring from pygen.pdk.util.port_utils import add_ports_perimeter +from gdsfactory.cell import clear_cache +#from pygen.common.two_transistor_interdigitized import two_nfet_interdigitized; from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk; biasParams=[6,2,4]; rmult=2 + @validate_arguments def two_transistor_interdigitized(pdk: MappedPDK, numcols: int, @@ -43,14 +47,15 @@ def two_transistor_interdigitized(pdk: MappedPDK, center_devA = multiplier(**kwargs) devB_sd_extension = pdk.util_max_metal_seperation() + abs(center_devA.ports["drain_N"].center[1]-center_devA.ports["diff_N"].center[1]) devB_gate_extension = pdk.util_max_metal_seperation() + abs(center_devA.ports["row0_col0_gate_S"].center[1]-center_devA.ports["gate_S"].center[1]) - kwargs["sd_route_extension"] = devB_sd_extension - kwargs["gate_route_extension"] = devB_gate_extension + kwargs["sd_route_extension"] = pdk.snap_to_2xgrid(devB_sd_extension) + kwargs["gate_route_extension"] = pdk.snap_to_2xgrid(devB_gate_extension) center_devB = multiplier(**kwargs) kwargs["dummy"] = (False,True) if dummy[1] else False rightmost_devB = multiplier(**kwargs) # place devices idplace = Component() dims = evaluate_bbox(center_devA) + xdisp = pdk.snap_to_2xgrid(dims[0]+pdk.get_grule("active_diff")["min_separation"]) refs = list() for i in range(2*numcols): if i==0: @@ -61,10 +66,11 @@ def two_transistor_interdigitized(pdk: MappedPDK, refs.append(idplace << center_devB) else: # not i%2 == i is even (so device A) refs.append(idplace << center_devA) - refs[-1].movex(i*(dims[0]+pdk.get_grule("active_diff")["min_separation"])) + refs[-1].movex(i*(xdisp)) devletter = "B" if i%2 else "A" prefix=devletter+"_"+str(int(i/2))+"_" idplace.add_ports(refs[-1].get_ports_list(), prefix=prefix) + #issue somehwere before line 89 # merge s/d layer for all transistors idplace << straight_route(pdk, refs[0].ports["plusdoped_W"],refs[-1].ports["plusdoped_E"]) # create s/d/gate connections extending over entire row @@ -78,7 +84,7 @@ def two_transistor_interdigitized(pdk: MappedPDK, prefixes = ["A_source","B_source","A_drain","B_drain","A_gate","B_gate"] for i, ref in enumerate([A_src, B_src, A_drain, B_drain, A_gate, B_gate]): idplace.add_ports(ref.get_ports_list(),prefix=prefixes[i]) - idplace = transformed(idplace.ref_center()) + idplace = transformed(prec_ref_center(idplace)) idplace.unlock() return idplace diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/pygen/fet.py index 58324e761..f9a7814ae 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/fet.py @@ -144,7 +144,7 @@ def multiplier( big_extension = sdroute_minsep + sdmet_hieght/2 + sdmet_hieght sdvia_extension = big_extension if finger % 2 else sdmet_hieght/2 sdvia_ref = align_comp_to_port(sdvia,diff_top_port,alignment=('c','t')) - multiplier.add(sdvia_ref.movey(pdk.snap_to_2xgrid(sdvia_extension + sd_route_extension))) + multiplier.add(sdvia_ref.movey(sdvia_extension + pdk.snap_to_2xgrid(sd_route_extension))) multiplier << straight_route(pdk, diff_top_port, sdvia_ref.ports["bottom_met_N"]) sdvia_ports += [sdvia_ref.ports["top_met_W"], sdvia_ref.ports["top_met_E"]] # get the next port (break before this if last iteration because port D.N.E. and num gates=fingers) @@ -155,6 +155,7 @@ def multiplier( gate_S_port = multiplier.ports[f"row0_col{finger}_gate_S"] metal_seperation = pdk.util_max_metal_seperation() psuedo_Ngateroute = movey(gate_S_port.copy(),0-metal_seperation-gate_route_extension) + psuedo_Ngateroute.y = pdk.snap_to_2xgrid(psuedo_Ngateroute.y) multiplier << straight_route(pdk,gate_S_port,psuedo_Ngateroute) # place route met: gate gate_width = gate_S_port.center[0] - multiplier.ports["row0_col0_gate_S"].center[0] + gate_S_port.width diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index a205c0114..90cea2d04 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -99,8 +99,8 @@ def __add_common_source_nbias_transistors(pdk: MappedPDK, opamp_top: Component, sd_route_left = bool(i), rmult=rmult ) - cmirrorref_ref = cmirrorref.ref_center() - cmirrorout_ref = cmirror_output.ref_center() + cmirrorref_ref = prec_ref_center(cmirrorref) + cmirrorout_ref = prec_ref_center(cmirror_output) # xtranslation direction = (-1) ** i xtranslationO = direction * abs(x_dim_center + cmirrorout_ref.xmax + pdk.util_max_metal_seperation()) @@ -288,7 +288,7 @@ def __add_common_source_Pamp_and_finish_pcomps(pdk: MappedPDK, pmos_comps: Compo nwell_points = get_padding_points_cc(nwellbbox, default=nwellspacing, pdk_for_snap2xgrid=pdk) pmos_comps.add_polygon(nwell_points, layer=pdk.get_glayer("nwell")) tapcenter_rect = [(evaluate_bbox(pmos_comps)[0] + 1), (evaluate_bbox(pmos_comps)[1] + 1)] - topptap = tapring(pdk, tapcenter_rect, "p+s/d").ref_center(position=pmos_comps.center) + topptap = prec_ref_center(tapring(pdk, tapcenter_rect, "p+s/d"),destination=pmos_comps.center) pmos_comps.add(topptap) pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") return pmos_comps @@ -429,7 +429,8 @@ def __add_output_stage( # Locate output stage relative position # x-coordinate: Center of SW capacitor in array # y-coordinate: Top of NMOS blocks - x_cord = opamp_top.ports["mimcap_row0_col0_bottom_met_S"].center[0] + xref_port = opamp_top.ports["mimcap_row0_col0_bottom_met_S"] + x_cord = xref_port.center[0] - xref_port.width/2 y_cord = opamp_top.ports["commonsource_cmirror_output_R_tie_tr_top_met_N"].center[1] dims = evaluate_bbox(amp_fet_ref) center = [x_cord + dims[0]/2, y_cord - dims[1]/2] diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py index 4f2431a7b..04aaba5fe 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py @@ -285,22 +285,24 @@ def util_max_metal_seperation(self, metal_levels: Union[list[int],list[str], str sep_rules = list() for met in metal_levels: sep_rules.append(self.get_grule(met)["min_separation"]) - return max(sep_rules) + return self.snap_to_2xgrid(max(sep_rules)) @validate_arguments - def snap_to_2xgrid(self, dims: Union[list[Union[float,Decimal]], Union[float,Decimal]], return_type: Literal["decimal","float","same"]="float") -> Union[list[Union[float,Decimal]], Union[float,Decimal]]: + def snap_to_2xgrid(self, dims: Union[list[Union[float,Decimal]], Union[float,Decimal]], return_type: Literal["decimal","float","same"]="float", snap4: bool=False) -> Union[list[Union[float,Decimal]], Union[float,Decimal]]: """snap all numbers in dims to double the grid size. This is useful when a generator accepts a size or dimension argument because there is a chance the cell may be centered (resulting in off grid components) args: dims = a list OR single number specifying the dimensions to snap to grid return_type = return a decimal, float, or the same type that was passed to the function + snap4: snap to 4xgrid (Defualt false) """ dims = dims if isinstance(dims, Iterable) else [dims] dimtype_in = type(dims[0]) dims = [Decimal(str(dim)) for dim in dims] # process in decimals grid = 2 * Decimal(str(self.grid_size)) grid = grid if grid else Decimal('0.001') + grid = 2*grid if snap4 else grid # snap dims to grid snapped_dims = list() for dim in dims: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py index abac60554..49b4e25d9 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py @@ -244,14 +244,18 @@ def prec_center(custom_comp: Union[Component,ComponentReference], return_decimal return to_float(correctionxy) @validate_arguments -def prec_ref_center(custom_comp: Union[Component,ComponentReference]) -> ComponentReference: +def prec_ref_center(custom_comp: Union[Component,ComponentReference], destination: Optional[tuple[float,float]]=None) -> ComponentReference: """instead of using component.ref_center() to get a ref to center at origin, use this function which will return a centered ref you can then run component.add(prec_ref_center(custom_comp)) to add the reference to your component + you can optionally specify a destination = tuple(x,y), by default, the destination is 0,0 returns component reference """ compref = custom_comp if isinstance(custom_comp, ComponentReference) else custom_comp.ref() xcor, ycor = prec_center(compref, False) + if destination is not None: + xcor += destination[0] + ycor += destination[1] return compref.movex(xcor).movey(ycor) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py index 571903dea..d5170b71f 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py @@ -16,7 +16,9 @@ def component_snap_to_grid(comp: Component, nm: Optional[int]=None) -> Component NOTE this function will flatten the component nm the grid to snap to, defaults to active pdk grid size""" # flatten the component + name = comp.name comp = comp.flatten() + comp.name = name # figure out nm if nm is None: nm = int(get_grid_size() * 1000) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index 31ab97617..6c7b847a7 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -6,8 +6,9 @@ .temp {@@TEMP} ** Define global parameters for altering -.param b1 = 0.8 -.param b2 = 0.75 +.param bdp = 5u +.param bcs = 5u +.param bo = 5u ** Define netlist Vsupply VDD GND 1.8 @@ -16,10 +17,14 @@ V2 vin net1 AC 0.5 .save i(v2) V3 vip net1 AC -0.5 .save i(v3) -Vbias2 bias2 GND {b2} -.save i(vbias2) -Vbias1 bias1 GND {b1} -.save i(vbias1) + +* bias currents +Ibiasdp biasdpn GND {bdp} +*.save i(vbias2) +Ibiascs biascsn GND {bcs} +*.save i(vbias1) +Ibiaso biason GND {bo} + Vindc net1 GND 1 .save i(vindc) @@ -41,10 +46,9 @@ Vindc net1 GND 1 *@@cryo .include ./sky130A/cryo_models/nshortlvth.spice *@@cryo .include ./sky130A/cryo_models/pmos.spice - ** Import opamp subcircuit .include opamp_pex.spice -XDUT vin vip bias1 bias2 vo VDD GND opamp +XDUT vo VDD vip vin biascsn biason biasdpn GND opamp * parameter sweep ** Run initial analysis .save all @@ -54,53 +58,65 @@ XDUT vin vip bias1 bias2 vo VDD GND opamp ** Set initial values set filetype = ascii let maxUGB = -1 -let maxBv1 = -1 -let maxBv2 = -1 +let maxBics = -1 +let maxBidp = -1 let savedPhaseMargin = -1 let savedDCGain = -1 ** Tune these -let biasVoltageMin = 0.4 -let biasVoltageMax = 1.6 -let biasVoltageStep = 0.1 -let biasVoltage1 = biasVoltageMin -let biasVoltage2 = biasVoltageMin +let biasCurrentMin = 5u +let biasCurrentMax = 100u +let biasCurrentStep = 10u +let biasCurrent_cs = biasCurrentMin +let biasCurrent_dp = biasCurrentMin +let biasCurrent_o = biasCurrentMin +* print loop number so user gets an idea of progress / time remaining +let absolute_counter = 0 ** Sweep bias voltages -while biasVoltage1 le biasVoltageMax +while biasCurrent_cs le biasCurrentMax ** Alter parameters and reset top-level ckt - alterparam b1 = $&biasVoltage1 + alterparam bcs = $&biasCurrent_cs reset - while biasVoltage2 le biasVoltageMax - alterparam b2 = $&biasVoltage2 + while biasCurrent_dp le biasCurrentMax + alterparam bdp = $&biasCurrent_dp reset - ** Run analysis - run - ** Find unity-gain bw point - meas ac ugb_f when vdb(vo)=0 - ** Measure phase margin - let phase = (180/PI)*vp(vo) - meas ac pm find phase when vdb(vo)=0 - ** Measure DC(ish) gain - meas ac dcg find vdb(vo) at=1k - ** Find local maxima - if ( ugb_f ge maxUGB ) - let maxUGB = ugb_f - let maxBv1 = biasVoltage1 - let maxBv2 = biasVoltage2 - let savedPhaseMargin = pm % 360 - let savedDCGain = dcg + while biasCurrent_o le biasCurrentMax + ** Run analysis + run + ** Find unity-gain bw point + meas ac ugb_f when vdb(vo)=0 + ** Measure phase margin + let phase = (180/PI)*vp(vo) + meas ac pm find phase when vdb(vo)=0 + ** Measure DC(ish) gain + meas ac dcg find vdb(vo) at=1k + ** Find local maxima + if ( ugb_f ge maxUGB ) + let maxUGB = ugb_f + let maxBics = biasCurrent_cs + let maxBidp = biasCurrent_dp + let savedPhaseMargin = pm % 360 + let savedDCGain = dcg + end + * print loop number + echo "loop number: $&absolute_counter" + let absolute_counter = absolute_counter + 1 + * increment output bias current + let biasCurrent_o = biasCurrent_o + biasCurrentStep end - let biasVoltage2 = biasVoltage2 + biasVoltageStep + ** Reset biasCurrent_o for next value of biasCurrent_dp + let biasCurrent_o = biasCurrentMin + let biasCurrent_dp = biasCurrent_dp + biasCurrentStep end - ** Reset counter for bv2 loop - let biasVoltage2 = biasVoltageMin - let biasVoltage1 = biasVoltage1 + biasVoltageStep + ** Reset biasCurrent_dp for next value of biasCurrent_cs + let biasCurrent_dp = biasCurrentMin + let biasCurrent_cs = biasCurrent_cs + biasCurrentStep end ** Export global maxima -wrdata result_ac.txt maxUGB maxBv1 maxBv2 savedPhaseMargin savedDCGain +wrdata result_ac.txt maxUGB maxBics maxBidp savedPhaseMargin savedDCGain ** Export power usage of opamp w/ best gain -alterparam b1 = $&maxBv1 -alterparam b2 = $&maxBv2 +alterparam bcs = $&maxBics +alterparam bdp = $&maxBidp reset run meas ac maxDraw max i(vsupply) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 9d45277c3..ec1654d80 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -396,7 +396,7 @@ def process_spice_testbench(testbench: Union[str,Path], temperature_info: tuple[ with open(testbench, "w") as spice_file: spice_file.write(spicetb) -def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, output_dir: Optional[Union[str,Path]] = None): +def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, output_dir: Optional[Union[int,str,Path]] = None): # generate layout destination_gds_copy = save_gds_dir / (str(index)+".gds") sky130pdk = pdk @@ -419,11 +419,18 @@ def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_in process_netlist_subckt(str(tmpdirname)+"/opamp_pex.spice", temperature_info[1], cload=cload, noparasitics=noparasitics) # run sim and store result Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() - result_dict = get_sim_results(str(tmpdirname)+"/result_ac.txt", str(tmpdirname)+"/result_power.txt", str(tmpdirname)+"/result_noise.txt") + ac_file = str(tmpdirname)+"/result_ac.txt" + power_file = str(tmpdirname)+"/result_power.txt" + noise_file = str(tmpdirname)+"/result_noise.txt" + result_dict = get_sim_results(ac_file, power_file, noise_file) result_dict["area"] = area results = opamp_results_serializer(**result_dict) if output_dir: - output_dir = Path(output_dir).resolve() + if isinstance(output_dir, int): + output_dir = save_gds_dir / (str(output_dir)+"_dir") + output_dir = Path(output_dir).resolve() + else: + output_dir = Path(output_dir).resolve() output_dir.mkdir(parents=True, exist_ok=True) if not output_dir.is_dir(): raise ValueError("Output directory must be a directory") @@ -431,12 +438,12 @@ def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_in return results -def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False) -> np.array: +def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, saverawsims: bool=False) -> np.array: """runs the brute force testing of parameters by 1-constructing the opamp layout specfied by parameters 2-extracting the netlist for the opamp 3-running simulations on the opamp - returns the ugb of the opamps + returns the results from opamp simulations as nparray """ if sky130pdk.name != "sky130": raise ValueError("this is for sky130 only") @@ -450,17 +457,22 @@ def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np. save_gds_dir = Path('./save_gds_by_index').resolve() save_gds_dir.mkdir(parents=True) with Pool(120) as cores: - results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics))),np.float64) + if saverawsims: + results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics), count(0))),np.float64) + else: + results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics))),np.float64) # undo pdk modification sky130pdk.default_decorator = add_npc_decorator return results # data gathering main function -@validate_arguments -def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False) -> None: +def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, parameter_array: Optional[np.array]=None) -> None: if temperature_info[1] != "normal model" and temperature_info[1] != "cryo model": raise ValueError("model must be one of \"normal model\" or \"cryo model\"") - params = get_small_parameter_list(test_mode) + if parameter_array is None: + params = get_small_parameter_list(test_mode) + else: + params = parameter_array results = brute_force_full_layout_and_PEXsim(pdk, params, temperature_info, cload=cload, noparasitics=noparasitics) np.save("training_params.npy",params) np.save("training_results.npy",results) @@ -875,6 +887,8 @@ def extract_stats( get_training_data_parser.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") get_training_data_parser.add_argument("--cload", type=float, default=float(0), help="run simulation with load capacitance units=pico Farads") get_training_data_parser.add_argument("--noparasitics",action="store_true",help="specify that parasitics should be removed when simulating") + get_training_data_parser.add_argument("--nparray",default=None,help="overrides the test parameters and takes the ones you provide (file path to .npy file)") + get_training_data_parser.add_argument("--saverawsims",action="store_true",help="specify that the raw simulation directories should be saved (default saved under save_gds_by_index/...)") # Subparser for gen_opamp mode gen_opamp_parser = subparsers.add_parser("gen_opamp", help="Run the gen_opamp function. optional parameters for transistors are width,length,fingers,mults") @@ -900,14 +914,15 @@ def extract_stats( args = parser.parse_args() # Simulation Temperature information - temperature_info = [args.temp, None] - if temperature_info[0] > -20: - temperature_info[1] = "normal model" - elif temperature_info[0]!=-269: - raise ValueError("simulation temperature should be exactly -269C for cryo sim. Below -20C there are no good models for simulation") - else: - temperature_info[1] = "cryo model" - temperature_info = tuple(temperature_info) + if vars(args).get("temp") is not None: + temperature_info = [args.temp, None] + if temperature_info[0] > -20: + temperature_info[1] = "normal model" + elif temperature_info[0]!=-269: + raise ValueError("simulation temperature should be exactly -269C for cryo sim. Below -20C there are no good models for simulation") + else: + temperature_info[1] = "cryo model" + temperature_info = tuple(temperature_info) if args.mode=="extract_stats": # Call the extract_stats function with the specified file paths or defaults @@ -915,7 +930,11 @@ def extract_stats( elif args.mode=="get_training_data": # Call the get_training_data function with test_mode flag - get_training_data(test_mode=args.test_mode, temperature_info=temperature_info, cload=args.cload, noparasitics=args.noparasitics) + if args.nparray is not None: + parameter_array = Path(args.nparray).resolve() + assert(parameter_array.is_file()) + parameter_array = np.load(parameter_array) + get_training_data(test_mode=args.test_mode, temperature_info=temperature_info, cload=args.cload, noparasitics=args.noparasitics, parameter_array=parameter_array, saverawsims=args.saverawsims) elif args.mode=="gen_opamp": # Call the opamp function with the parsed arguments @@ -925,7 +944,7 @@ def extract_stats( half_common_source_bias=tuple(args.half_common_source_bias), half_common_source_params=tuple(args.half_common_source_params), output_stage_params = tuple(args.output_stage_params), - output_stage_bias = tuple(args,output_stage_bias), + output_stage_bias = tuple(args.output_stage_bias), mim_cap_size=tuple(args.mim_cap_size), mim_cap_rows=args.mim_cap_rows, rmult=args.rmult, From e390cdf5269c91e83e284bf7fa088f9a0e3d2659 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Thu, 31 Aug 2023 21:48:18 -0400 Subject: [PATCH 51/64] simulation with current bias --- .../pygen/pdk/util/snap_to_grid.py | 3 +- .../gdsfactory-gen/tapeout_and_RL/README.md | 5 + .../tapeout_and_RL/opamp_perf_eval.sp | 90 +++++++++------- .../tapeout_and_RL/sky130_nist_tapeout.py | 100 ++++++++++-------- 4 files changed, 110 insertions(+), 88 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py index d5170b71f..5f5983c22 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py @@ -32,7 +32,8 @@ def component_snap_to_grid(comp: Component, nm: Optional[int]=None) -> Component save_name = comp.name with TemporaryDirectory() as tmpdirname: tmp_gds_path = Path(comp.write_gds(gdsdir=tmpdirname)).resolve() - comp = import_gds(gdspath=tmp_gds_path).copy() + comp = import_gds(gdspath=tmp_gds_path) + comp.unlock() comp.add_ports(save_ports) comp.name = save_name return comp diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md new file mode 100644 index 000000000..2112b336d --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md @@ -0,0 +1,5 @@ +# sky130 NIST Tapeout Macros +This directory contains the `sky130_nist_tapeout.py` file which is a python program containing all functions and utils neccessary to produce the circuits, simulation info, and statistics used in the sky130 NIST tapeout. +`sky130_nist_tapeout.py` has a command line interface. use the `-h` option to see all args for this program. help output is replicated below + +p diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index 6c7b847a7..17035f34e 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -2,32 +2,29 @@ ** OpenFASOC Team, Ryan Wans 2023 ** IMPORTANT: Temperature setting is added automatically in the reading -** of this file on line 6 as {@@TEMP}. DO NOT OVERRIDE. +** of this file on line 6 as 25. DO NOT OVERRIDE. .temp {@@TEMP} +.save all ** Define global parameters for altering .param bdp = 5u .param bcs = 5u -.param bo = 5u +.param bo = 5u ** Define netlist Vsupply VDD GND 1.8 -.save i(vsupply) +Vindc net1 GND 0.9 V2 vin net1 AC 0.5 -.save i(v2) V3 vip net1 AC -0.5 +.save i(vindc) +.save i(vsupply) +.save i(v2) .save i(v3) * bias currents -Ibiasdp biasdpn GND {bdp} -*.save i(vbias2) -Ibiascs biascsn GND {bcs} -*.save i(vbias1) -Ibiaso biason GND {bo} - -Vindc net1 GND 1 -.save i(vindc) - +Ibiasdp VDD biasdpn {bdp} +Ibiascs VDD biascsn {bcs} +Ibiaso VDD biason {bo} ** Import SKY130 libs (this should be replaced with a path relative to some env variable) * the ones with double * will not be used. The one with only 1 * will be used @@ -60,27 +57,38 @@ set filetype = ascii let maxUGB = -1 let maxBics = -1 let maxBidp = -1 +let maxBio = -1 let savedPhaseMargin = -1 let savedDCGain = -1 -** Tune these -let biasCurrentMin = 5u -let biasCurrentMax = 100u -let biasCurrentStep = 10u -let biasCurrent_cs = biasCurrentMin -let biasCurrent_dp = biasCurrentMin -let biasCurrent_o = biasCurrentMin -* print loop number so user gets an idea of progress / time remaining + +let bias_dp_Min = 30u +let bias_dp_Max = 170u +let bias_dp_Step = 15u +let bias_cs_Min = 80u +let bias_cs_Max = 150u +let bias_cs_Step = 10u +let bias_o_Min = 100u +let bias_o_Max = 500u +let bias_o_Step = 60u +let bias_dp = bias_dp_Min +let bias_cs = bias_cs_Min +let bias_o = bias_o_Min + let absolute_counter = 0 + ** Sweep bias voltages -while biasCurrent_cs le biasCurrentMax - ** Alter parameters and reset top-level ckt - alterparam bcs = $&biasCurrent_cs - reset - while biasCurrent_dp le biasCurrentMax - alterparam bdp = $&biasCurrent_dp - reset - while biasCurrent_o le biasCurrentMax - ** Run analysis +while bias_cs le bias_cs_Max + while bias_dp le bias_dp_Max + while bias_o le bias_o_Max + reset + alter ibiascs = $&bias_cs + alter ibiasdp = $&bias_dp + alter ibiaso = $&bias_o + echo "-- Run # $&absolute_counter -- " + echo "CS: $&bias_cs" + echo "Diff: $&bias_dp" + echo "Out: $&bias_o" + run ** Find unity-gain bw point meas ac ugb_f when vdb(vo)=0 @@ -92,31 +100,31 @@ while biasCurrent_cs le biasCurrentMax ** Find local maxima if ( ugb_f ge maxUGB ) let maxUGB = ugb_f - let maxBics = biasCurrent_cs - let maxBidp = biasCurrent_dp + let maxBics = bias_cs + let maxBidp = bias_dp + let maxBio = bias_o let savedPhaseMargin = pm % 360 let savedDCGain = dcg end - * print loop number - echo "loop number: $&absolute_counter" + let absolute_counter = absolute_counter + 1 - * increment output bias current - let biasCurrent_o = biasCurrent_o + biasCurrentStep + let bias_o = bias_o + bias_o_Step end ** Reset biasCurrent_o for next value of biasCurrent_dp - let biasCurrent_o = biasCurrentMin - let biasCurrent_dp = biasCurrent_dp + biasCurrentStep + let bias_o = bias_o_Min + let bias_dp = bias_dp + bias_dp_Step end ** Reset biasCurrent_dp for next value of biasCurrent_cs - let biasCurrent_dp = biasCurrentMin - let biasCurrent_cs = biasCurrent_cs + biasCurrentStep + let bias_dp = bias_dp_Min + let bias_cs = bias_cs + bias_cs_Step end ** Export global maxima -wrdata result_ac.txt maxUGB maxBics maxBidp savedPhaseMargin savedDCGain +wrdata result_ac.txt maxUGB maxBidp maxBics maxBio savedPhaseMargin savedDCGain ** Export power usage of opamp w/ best gain alterparam bcs = $&maxBics alterparam bdp = $&maxBidp +alterparam bo = $&maxBio reset run meas ac maxDraw max i(vsupply) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index ec1654d80..ecd96c945 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -242,30 +242,32 @@ def opamp_results_serializer( ugb: float = -987.654321, dcGain: float = -987.654321, phaseMargin: float = -987.654321, - biasVoltage1: float = -987.654321, - biasVoltage2: float = -987.654321, + Ibias_diffpair: float = -987.654321, + Ibias_commonsource: float = -987.654321, + Ibias_output: float = -987.654321, area: float = -987.654321, power: float = -987.654321, noise: float = -987.654321 ) -> np.array: - return np.array([ugb, dcGain, phaseMargin, biasVoltage1, biasVoltage2, area, power, noise], dtype=np.float64) + return np.array([ugb, dcGain, phaseMargin, Ibias_diffpair, Ibias_commonsource, Ibias_output, area, power, noise], dtype=np.float64) def opamp_results_de_serializer( results: Optional[np.array]=None ) -> dict: if results is None: - results = 8*[-987.654321] - if not len(results) == 8: - raise ValueError("results should be a length 5 array") + results = 9*[-987.654321] + if not len(results) == 9: + raise ValueError("results should be a length 9 array") results_dict = dict() results_dict["ugb"] = float(results[0]) results_dict["dcGain"] = float(results[1]) results_dict["phaseMargin"] = float(results[2]) - results_dict["biasVoltage1"] = float(results[3]) - results_dict["biasVoltage2"] = float(results[4]) - results_dict["area"] = float(results[5]) - results_dict["power"] = float(results[6]) - results_dict["noise"] = float(results[7]) + results_dict["Ibias_diffpair"] = float(results[3]) + results_dict["Ibias_commonsource"] = float(results[4]) + results_dict["Ibias_output"] = float(results[5]) + results_dict["area"] = float(results[6]) + results_dict["power"] = float(results[7]) + results_dict["noise"] = float(results[8]) return results_dict def get_small_parameter_list(test_mode = False) -> np.array: @@ -342,10 +344,11 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: nonoiseresults = NoiseColumns is None or len(NoiseColumns)<2 return_dict = { "ugb": na if noACresults else ACColumns[1], - "biasVoltage1": na if noACresults else ACColumns[3], - "biasVoltage2": na if noACresults else ACColumns[5], - "phaseMargin": na if noACresults else ACColumns[7], - "dcGain": na if noACresults else ACColumns[9], + "Ibias_diffpair": na if noACresults else ACColumns[3], + "Ibias_commonsource": na if noACresults else ACColumns[5], + "Ibias_output": na if noACresults else ACColumns[7], + "phaseMargin": na if noACresults else ACColumns[9], + "dcGain": na if noACresults else ACColumns[11], "power": na if noDCresults else DCColumns[1], "noise": na if nonoiseresults else NoiseColumns[1] } @@ -406,35 +409,39 @@ def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_in area = float(opamp_v.area()) # use temp dir with TemporaryDirectory() as tmpdirname: - tmp_gds_path = Path(opamp_v.write_gds(gdsdir=tmpdirname)).resolve() - if tmp_gds_path.is_file(): - destination_gds_copy.write_bytes(tmp_gds_path.read_bytes()) - copyfile("extract.bash",str(tmpdirname)+"/extract.bash") - copyfile("opamp_perf_eval.sp",str(tmpdirname)+"/opamp_perf_eval.sp") - copytree("sky130A",str(tmpdirname)+"/sky130A") - # extract layout - Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() - print("Running simulation at temperature: " + str(temperature_info[0]) + "C") - process_spice_testbench(str(tmpdirname)+"/opamp_perf_eval.sp",temperature_info=temperature_info) - process_netlist_subckt(str(tmpdirname)+"/opamp_pex.spice", temperature_info[1], cload=cload, noparasitics=noparasitics) - # run sim and store result - Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() - ac_file = str(tmpdirname)+"/result_ac.txt" - power_file = str(tmpdirname)+"/result_power.txt" - noise_file = str(tmpdirname)+"/result_noise.txt" - result_dict = get_sim_results(ac_file, power_file, noise_file) - result_dict["area"] = area - results = opamp_results_serializer(**result_dict) - if output_dir: - if isinstance(output_dir, int): - output_dir = save_gds_dir / (str(output_dir)+"_dir") - output_dir = Path(output_dir).resolve() - else: - output_dir = Path(output_dir).resolve() - output_dir.mkdir(parents=True, exist_ok=True) - if not output_dir.is_dir(): - raise ValueError("Output directory must be a directory") - copytree(str(tmpdirname), str(output_dir)+"/test_output", dirs_exist_ok=True) + results=None + try: + tmp_gds_path = Path(opamp_v.write_gds(gdsdir=tmpdirname)).resolve() + if tmp_gds_path.is_file(): + destination_gds_copy.write_bytes(tmp_gds_path.read_bytes()) + copyfile("extract.bash",str(tmpdirname)+"/extract.bash") + copyfile("opamp_perf_eval.sp",str(tmpdirname)+"/opamp_perf_eval.sp") + copytree("sky130A",str(tmpdirname)+"/sky130A") + # extract layout + Popen(["bash","extract.bash", tmp_gds_path, opamp_v.name],cwd=tmpdirname).wait() + print("Running simulation at temperature: " + str(temperature_info[0]) + "C") + process_spice_testbench(str(tmpdirname)+"/opamp_perf_eval.sp",temperature_info=temperature_info) + process_netlist_subckt(str(tmpdirname)+"/opamp_pex.spice", temperature_info[1], cload=cload, noparasitics=noparasitics) + # run sim and store result + Popen(["ngspice","-b","opamp_perf_eval.sp"],cwd=tmpdirname).wait() + ac_file = str(tmpdirname)+"/result_ac.txt" + power_file = str(tmpdirname)+"/result_power.txt" + noise_file = str(tmpdirname)+"/result_noise.txt" + result_dict = get_sim_results(ac_file, power_file, noise_file) + result_dict["area"] = area + results = opamp_results_serializer(**result_dict) + if output_dir: + if isinstance(output_dir, int): + output_dir = save_gds_dir / (str(output_dir)+"_dir") + output_dir = Path(output_dir).resolve() + else: + output_dir = Path(output_dir).resolve() + output_dir.mkdir(parents=True, exist_ok=True) + if not output_dir.is_dir(): + raise ValueError("Output directory must be a directory") + copytree(str(tmpdirname), str(output_dir)+"/test_output", dirs_exist_ok=True) + except Exception: + results = opamp_results_serializer() return results @@ -480,7 +487,7 @@ def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25 #util function for pure simulation. sky130 is imported automatically -def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: Optional[Union[str,Path]] = None, cload: float=0.0, noparasitics: bool=False) -> np.array: +def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: Optional[Union[str,Path]] = None, cload: float=0.0, noparasitics: bool=False) -> dict: """Builds, extract, and simulates a single opamp saves opamp gds in current directory with name 12345678987654321.gds returns -987.654321 for all values IF phase margin < 45 @@ -971,4 +978,5 @@ def extract_stats( "mim_cap_rows": 3, "rmult": 2 } - single_build_and_simulation(opamp_parameters_serializer(**params), temperature_info[0], args.output_dir, cload=args.cload, noparasitics=args.noparasitics) + results = single_build_and_simulation(opamp_parameters_serializer(**params), temperature_info[0], args.output_dir, cload=args.cload, noparasitics=args.noparasitics) + print(results) From 65134589d503030d451113bbc958dc56a23f1607 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 1 Sep 2023 01:05:00 -0400 Subject: [PATCH 52/64] update readme --- .../gdsfactory-gen/tapeout_and_RL/README.md | 99 ++++++++++++++++++- .../tapeout_and_RL/sky130_nist_tapeout.py | 19 ++-- 2 files changed, 108 insertions(+), 10 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md index 2112b336d..91ad28849 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md @@ -2,4 +2,101 @@ This directory contains the `sky130_nist_tapeout.py` file which is a python program containing all functions and utils neccessary to produce the circuits, simulation info, and statistics used in the sky130 NIST tapeout. `sky130_nist_tapeout.py` has a command line interface. use the `-h` option to see all args for this program. help output is replicated below -p +## general help +``` +usage: sky130_nist_tapeout.py [-h] {extract_stats,get_training_data,gen_opamp,test} ... + +sky130 nist tapeout sample, RL generation, and statistics utility. + +options: + -h, --help show this help message and exit + +mode: + {extract_stats,get_training_data,gen_opamp,test} + extract_stats Run the extract_stats function. + get_training_data Run the get_training_data function. + gen_opamp Run the gen_opamp function. optional parameters for transistors + are width,length,fingers,mults + test Test mode +``` + +## extract_stats mode +``` +usage: sky130_nist_tapeout.py extract_stats [-h] [-p PARAMS] [-r RESULTS] + +options: + -h, --help show this help message and exit + -p PARAMS, --params PARAMS + File path for params (default: training_params.npy) + -r RESULTS, --results RESULTS + File path for results (default: training_results.npy) +``` + +## gen_opamp mode +``` +usage: sky130_nist_tapeout.py gen_opamp [-h] + [--diffpair_params DIFFPAIR_PARAMS DIFFPAIR_PARAMS DIFFPAIR_PARAMS] + [--diffpair_bias DIFFPAIR_BIAS DIFFPAIR_BIAS DIFFPAIR_BIAS] + [--half_common_source_params HALF_COMMON_SOURCE_PARAMS HALF_COMMON_SOURCE_PARAMS HALF_COMMON_SOURCE_PARAMS HALF_COMMON_SOURCE_PARAMS] + [--half_common_source_bias HALF_COMMON_SOURCE_BIAS HALF_COMMON_SOURCE_BIAS HALF_COMMON_SOURCE_BIAS HALF_COMMON_SOURCE_BIAS] + [--output_stage_params OUTPUT_STAGE_PARAMS OUTPUT_STAGE_PARAMS OUTPUT_STAGE_PARAMS] + [--output_stage_bias OUTPUT_STAGE_BIAS OUTPUT_STAGE_BIAS OUTPUT_STAGE_BIAS] + [--mim_cap_size MIM_CAP_SIZE MIM_CAP_SIZE] + [--mim_cap_rows MIM_CAP_ROWS] [--rmult RMULT] + [--add_pads] [--output_gds OUTPUT_GDS] + +options: + -h, --help show this help message and exit + --diffpair_params DIFFPAIR_PARAMS DIFFPAIR_PARAMS DIFFPAIR_PARAMS + diffpair_params (default: 6 1 4) + --diffpair_bias DIFFPAIR_BIAS DIFFPAIR_BIAS DIFFPAIR_BIAS + diffpair_bias (default: 6 2 4) + --half_common_source_params HALF_COMMON_SOURCE_PARAMS HALF_COMMON_SOURCE_PARAMS HALF_COMMON_SOURCE_PARAMS HALF_COMMON_SOURCE_PARAMS + half_common_source_params (default: 7 1 10 3) + --half_common_source_bias HALF_COMMON_SOURCE_BIAS HALF_COMMON_SOURCE_BIAS HALF_COMMON_SOURCE_BIAS HALF_COMMON_SOURCE_BIAS + half_common_source_bias (default: 6 2 8 3) + --output_stage_params OUTPUT_STAGE_PARAMS OUTPUT_STAGE_PARAMS OUTPUT_STAGE_PARAMS + pamp_hparams (default: 5 1 16) + --output_stage_bias OUTPUT_STAGE_BIAS OUTPUT_STAGE_BIAS OUTPUT_STAGE_BIAS + pamp_hparams (default: 6 2 4) + --mim_cap_size MIM_CAP_SIZE MIM_CAP_SIZE + mim_cap_size (default: 12 12) + --mim_cap_rows MIM_CAP_ROWS + mim_cap_rows (default: 3) + --rmult RMULT rmult (default: 2) + --add_pads add pads (gen_opamp mode only) + --output_gds OUTPUT_GDS + Filename for outputing opamp (gen_opamp mode only) +``` + +## get_training_data mode +``` +usage: sky130_nist_tapeout.py get_training_data [-h] [-t] [--temp TEMP] [--cload CLOAD] + [--noparasitics] [--nparray NPARRAY] + [--saverawsims] + +options: + -h, --help show this help message and exit + -t, --test-mode Set test_mode to True (default: False) + --temp TEMP Simulation temperature + --cload CLOAD run simulation with load capacitance units=pico Farads + --noparasitics specify that parasitics should be removed when simulating + --nparray NPARRAY overrides the test parameters and takes the ones you provide (file + path to .npy file) + --saverawsims specify that the raw simulation directories should be saved + (default saved under save_gds_by_index/...) +``` + +## test mode +``` +usage: sky130_nist_tapeout.py test [-h] [--output_dir OUTPUT_DIR] [--temp TEMP] + [--cload CLOAD] [--noparasitics] + +options: + -h, --help show this help message and exit + --output_dir OUTPUT_DIR + Directory for output GDS file + --temp TEMP Simulation temperature + --cload CLOAD run simulation with load capacitance units=pico Farads + --noparasitics specify that parasitics should be removed when simulating +``` \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index ecd96c945..6ab8bfbe5 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -280,30 +280,31 @@ def get_small_parameter_list(test_mode = False) -> np.array: else: for width in [3,6,9]: for length in [0.3,1, 2]: - for fingers in [2,6]: + for fingers in [2,4,6]: diffpairs.append((width,length,fingers)) # all bias2 (output amp bias) transistors bias2s = list() if test_mode: bias2s.append((6,1,4,3)) else: - for width in [3,6,9]: + for width in [6]: for length in [1]: - for fingers in [2,6]: - bias2s.append((width,length,fingers,3)) + for fingers in [2,4,6]: + for mults in [1,2,3]: + bias2s.append((width,length,fingers,mults)) # all output pmos transistors pamp_hparams = list() if test_mode: pamp_hparams.append((7,1,8,3)) else: - for width in [4,7,10]: - for length in [0.3,1,2]: - for fingers in [6,14]: + for width in [7,4]: + for length in [1,2]: + for fingers in [8,14]: pamp_hparams.append((width,length,fingers,3)) # rows of the cap array to try - cap_arrays = [2,3] + cap_arrays = [1,2,3] # routing mults to try - rmults = [1,2] + rmults = [2] # ****************************************** # create and return the small parameters list short_list_len = len(diffpairs) * len(bias2s) * len(pamp_hparams) * len(cap_arrays) * len(rmults) From eb6064effa280765f148b04a5699a144b4e1605a Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 1 Sep 2023 01:14:05 -0400 Subject: [PATCH 53/64] bug fixes --- .../gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 6ab8bfbe5..daf0919fc 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -279,7 +279,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: diffpairs.append((5,1,4)) else: for width in [3,6,9]: - for length in [0.3,1, 2]: + for length in [1, 2]: for fingers in [2,4,6]: diffpairs.append((width,length,fingers)) # all bias2 (output amp bias) transistors @@ -289,7 +289,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: else: for width in [6]: for length in [1]: - for fingers in [2,4,6]: + for fingers in [4,6]: for mults in [1,2,3]: bias2s.append((width,length,fingers,mults)) # all output pmos transistors From 394d3e468a8109bea55cf391df2658c9e315517a Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 1 Sep 2023 01:49:49 -0400 Subject: [PATCH 54/64] bug fixes --- .../generators/gdsfactory-gen/pygen/opamp.py | 2 +- .../tapeout_and_RL/sky130_nist_tapeout.py | 23 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 90cea2d04..c7887b266 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -288,7 +288,7 @@ def __add_common_source_Pamp_and_finish_pcomps(pdk: MappedPDK, pmos_comps: Compo nwell_points = get_padding_points_cc(nwellbbox, default=nwellspacing, pdk_for_snap2xgrid=pdk) pmos_comps.add_polygon(nwell_points, layer=pdk.get_glayer("nwell")) tapcenter_rect = [(evaluate_bbox(pmos_comps)[0] + 1), (evaluate_bbox(pmos_comps)[1] + 1)] - topptap = prec_ref_center(tapring(pdk, tapcenter_rect, "p+s/d"),destination=pmos_comps.center) + topptap = prec_ref_center(tapring(pdk, tapcenter_rect, "p+s/d"),destination=tuple(pmos_comps.center)) pmos_comps.add(topptap) pmos_comps.add_ports(topptap.get_ports_list(),prefix="top_ptap_") return pmos_comps diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index daf0919fc..4e89ce8bf 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -400,7 +400,9 @@ def process_spice_testbench(testbench: Union[str,Path], temperature_info: tuple[ with open(testbench, "w") as spice_file: spice_file.write(spicetb) -def __run_single_brtfrc(pdk, index, parameters_ele, save_gds_dir, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, output_dir: Optional[Union[int,str,Path]] = None): +def __run_single_brtfrc(index, parameters_ele, save_gds_dir, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, output_dir: Optional[Union[int,str,Path]] = None): + # pass pdk as global var to avoid pickling issues + global pdk # generate layout destination_gds_copy = save_gds_dir / (str(index)+".gds") sky130pdk = pdk @@ -464,24 +466,27 @@ def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np. # run layout, extraction, sim save_gds_dir = Path('./save_gds_by_index').resolve() save_gds_dir.mkdir(parents=True) + # pass pdk as global var to avoid pickling issues + global pdk + pdk = sky130pdk with Pool(120) as cores: if saverawsims: - results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics), count(0))),np.float64) + results = np.array(cores.starmap(__run_single_brtfrc, zip(count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics), count(0))),np.float64) else: - results = np.array(cores.starmap(__run_single_brtfrc, zip(repeat(sky130pdk), count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics))),np.float64) + results = np.array(cores.starmap(__run_single_brtfrc, zip(count(0), parameter_list, repeat(save_gds_dir), repeat(temperature_info), repeat(cload), repeat(noparasitics))),np.float64) # undo pdk modification sky130pdk.default_decorator = add_npc_decorator return results # data gathering main function -def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, parameter_array: Optional[np.array]=None) -> None: +def get_training_data(test_mode: bool=True, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, parameter_array: Optional[np.array]=None, saverawsims=False) -> None: if temperature_info[1] != "normal model" and temperature_info[1] != "cryo model": raise ValueError("model must be one of \"normal model\" or \"cryo model\"") if parameter_array is None: params = get_small_parameter_list(test_mode) else: params = parameter_array - results = brute_force_full_layout_and_PEXsim(pdk, params, temperature_info, cload=cload, noparasitics=noparasitics) + results = brute_force_full_layout_and_PEXsim(pdk, params, temperature_info, cload=cload, noparasitics=noparasitics,saverawsims=saverawsims) np.save("training_params.npy",params) np.save("training_results.npy",results) @@ -493,7 +498,7 @@ def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: saves opamp gds in current directory with name 12345678987654321.gds returns -987.654321 for all values IF phase margin < 45 """ - from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk + from pygen.pdk.sky130_mapped import sky130_mapped_pdk # process temperature info temperature_info = [temp, None] if temperature_info[0] > -20: @@ -506,7 +511,10 @@ def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: # run single build save_gds_dir = Path('./').resolve() index = 12345678987654321 - results = __run_single_brtfrc(pdk, index, parameters, temperature_info=temperature_info, save_gds_dir=save_gds_dir, output_dir=output_dir, cload=cload, noparasitics=noparasitics) + # pass pdk as global var to avoid pickling issues + global pdk + pdk = sky130_mapped_pdk + results = __run_single_brtfrc(index, parameters, temperature_info=temperature_info, save_gds_dir=save_gds_dir, output_dir=output_dir, cload=cload, noparasitics=noparasitics) results = opamp_results_de_serializer(results) if results["phaseMargin"] < 45: for key in results: @@ -938,6 +946,7 @@ def extract_stats( elif args.mode=="get_training_data": # Call the get_training_data function with test_mode flag + parameter_array = None if args.nparray is not None: parameter_array = Path(args.nparray).resolve() assert(parameter_array.is_file()) From 082e46205125e02ebc215d38debfb8aa24c4881d Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Fri, 1 Sep 2023 11:06:22 -0400 Subject: [PATCH 55/64] sky130_nist_tapeout, check opamp --- .../pygen/pdk/util/port_utils.py | 1 - .../tapeout_and_RL/sky130_nist_tapeout.py | 24 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py index 234239a39..2383e62b4 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py @@ -228,7 +228,6 @@ def print_ports(custom_comp: Union[Component, ComponentReference], names_only: O print() - class PortTree: """PortTree helps a pygen programmer visualize the ports in a component \"_\" should represent a level of hiearchy (much like a directory). think of this like psuedo directories diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 4e89ce8bf..137f4fce9 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -407,13 +407,13 @@ def __run_single_brtfrc(index, parameters_ele, save_gds_dir, temperature_info: t destination_gds_copy = save_gds_dir / (str(index)+".gds") sky130pdk = pdk params = opamp_parameters_de_serializer(parameters_ele) - opamp_v = sky130_add_opamp_labels(sky130_add_lvt_layer(opamp(sky130pdk, **params))) - opamp_v.name = "opamp" - area = float(opamp_v.area()) - # use temp dir - with TemporaryDirectory() as tmpdirname: - results=None - try: + try: + opamp_v = sky130_add_opamp_labels(sky130_add_lvt_layer(opamp(sky130pdk, **params))) + opamp_v.name = "opamp" + area = float(opamp_v.area()) + # use temp dir + with TemporaryDirectory() as tmpdirname: + results=None tmp_gds_path = Path(opamp_v.write_gds(gdsdir=tmpdirname)).resolve() if tmp_gds_path.is_file(): destination_gds_copy.write_bytes(tmp_gds_path.read_bytes()) @@ -435,7 +435,7 @@ def __run_single_brtfrc(index, parameters_ele, save_gds_dir, temperature_info: t results = opamp_results_serializer(**result_dict) if output_dir: if isinstance(output_dir, int): - output_dir = save_gds_dir / (str(output_dir)+"_dir") + output_dir = save_gds_dir / ("dir_"+str(output_dir)) output_dir = Path(output_dir).resolve() else: output_dir = Path(output_dir).resolve() @@ -443,9 +443,11 @@ def __run_single_brtfrc(index, parameters_ele, save_gds_dir, temperature_info: t if not output_dir.is_dir(): raise ValueError("Output directory must be a directory") copytree(str(tmpdirname), str(output_dir)+"/test_output", dirs_exist_ok=True) - except Exception: - results = opamp_results_serializer() - return results + except Exception as e_LorA: + results = opamp_results_serializer() + with open('get_training_data_ERRORS.log', 'a') as errlog: + errlog.write("\nopamp run "+str(index)+" with the following params failed: \n"+str(params)) + return results def brute_force_full_layout_and_PEXsim(sky130pdk: MappedPDK, parameter_list: np.array, temperature_info: tuple[int,str]=(25,"normal model"), cload: float=0.0, noparasitics: bool=False, saverawsims: bool=False) -> np.array: From f5809a18025f8411954f978ca5361327fa9b1812 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 4 Sep 2023 00:30:51 -0400 Subject: [PATCH 56/64] sky130_nist_tapeout new mode --- .../pygen/docs/opamp_v1_tree.txt | 13 +++-- .../generators/gdsfactory-gen/pygen/opamp.py | 7 ++- .../pygen/pdk/util/opamp_array_create.py | 41 ++++++++++----- .../tapeout_and_RL/matrix_create.py | 51 +++++++++++++++++++ .../tapeout_and_RL/opamp_perf_eval.sp | 18 +++---- .../tapeout_and_RL/sky130_nist_tapeout.py | 47 +++++++++++++---- 6 files changed, 136 insertions(+), 41 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt index 385b69353..bf471cedc 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt +++ b/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt @@ -160,10 +160,13 @@ │ └[source]┤ │ └[routeE]─[con] │ - │ ┌[R] - │ ┌[ref]┤ - │ │ └[L] - │ ┌[cmirror]┤ + │ + │ ┌[output]-[E] + │ │ + │ │ ┌[R] + │ │ ┌[ref]┤ + │ │ │ └[L] + │ ├[cmirror]┤ │ │ │ ┌[R] │ │ └[output]┤ │ │ └[L] @@ -414,4 +417,4 @@ │ │ └[col1]┼[bottom] │ - └[top] \ No newline at end of file + └[top] diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index c7887b266..8c5c042b4 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -380,8 +380,11 @@ def __add_mimcap_arr(pdk: MappedPDK, opamp_top: Component, mim_cap_size, mim_cap port2 = mimcaps_ref.ports["row"+str(int(mim_cap_rows)-1)+"_col0_bottom_met_N"] cref2_extension = max_metalsep + opamp_top.ymax - max(port1.center[1], port2.center[1]) opamp_top << c_route(pdk,port1,port2, extension=cref2_extension, fullbottom=True) - opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], set_port_orientation(n_to_p_output_route.ports["con_S"],"E"), hwidth=3) + intermediate_output = set_port_orientation(n_to_p_output_route.ports["con_S"],"E") + opamp_top << L_route(pdk, mimcaps_ref.ports["row0_col0_top_met_S"], intermediate_output, hwidth=3) opamp_top.add_ports(mimcaps_ref.get_ports_list(),prefix="mimcap_") + # add the cs output as a port + opamp_top.add_port(name="commonsource_output_E", port=intermediate_output) return opamp_top @@ -520,7 +523,7 @@ def opamp( pmos_comps = __add_common_source_Pamp_and_finish_pcomps(pdk, pmos_comps, half_common_source_params, rmult) ydim_ncomps = opamp_top.ymax pmos_comps_ref = opamp_top << pmos_comps - pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+8)) + pmos_comps_ref.movey(round(ydim_ncomps + pmos_comps_ref.ymax+10)) opamp_top.add_ports(pmos_comps_ref.get_ports_list(),prefix="pcomps_") rename_func = lambda name_, port_ : name_.replace("pcomps_halfpspecialmarker","commonsource_Pamp") if name_.startswith("pcomps_halfpspecialmarker") else name_ opamp_top = rename_component_ports(opamp_top, rename_function=rename_func) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py index ad687b3cb..b8be9dd50 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py @@ -5,7 +5,8 @@ import math from gdsfactory.pdk import Pdk from pathlib import Path -from typing import Union +from typing import Union, Optional +from pydantic import validate_arguments def get_files_with_extension(directory, extension): file_list = [] @@ -15,24 +16,34 @@ def get_files_with_extension(directory, extension): return file_list -def write_opamp_matrix(opamps_dir: Union[str,Path]="./", xspace=400,yspace=300): +@validate_arguments +def write_opamp_matrix(opamps_dir: Union[str,Path,list]="./", xspace: float=400,yspace: float=300, rtr_comp: bool=False, write_name: str="big_gds_here.gds"): """Use the write_opamp_matrix function to create a matrix of many different opamps reads the different opamps from all gds files in opamps_dir + args: + opamps_dir = a file directory where all gds files are treated as opamps (i.e. to add to the matrix) + ****Note: you can specify this as a list Components, in which case, the list is used to make the matrix + xspace = xspacing to use (center to center x distance between adajacent elements in the matrix) + yspace = yspacing to use (center to center y distance between adajacent elements in the matrix) + rtr_comp = if true will not write the component to gds (default = false) + write_name = name/path of gds write file """ pdk_nochache = Pdk(name="nocache") pdk_nochache.cell_decorator_settings.cache=False pdk_nochache.activate() - search_dir = Path(opamps_dir).resolve() - opamp_files_list = get_files_with_extension(str(search_dir),".gds") - opamp_comp_list = list() - - for i,filev in enumerate(opamp_files_list): - if "big_gds_here" in str(filev): - continue - tempcomp = import_gds(filev) - tempcomp.name = "opamp"+str(i) - opamp_comp_list.append(tempcomp) + if isinstance(opamps_dir, list): + opamp_comp_list = opamps_dir + else: + search_dir = Path(opamps_dir).resolve() + opamp_files_list = get_files_with_extension(str(search_dir),".gds") + opamp_comp_list = list() + for i,filev in enumerate(opamp_files_list): + if "big_gds_here" in str(filev) or write_name in str(filev): + continue + tempcomp = import_gds(filev) + tempcomp.name = "opamp"+str(i) + opamp_comp_list.append(tempcomp) col_len = round(math.sqrt(len(opamp_comp_list))) col_index = 0 @@ -47,8 +58,10 @@ def write_opamp_matrix(opamps_dir: Union[str,Path]="./", xspace=400,yspace=300): if not col_index % col_len: col_index=0 row_index += 1 - - big_comp.write_gds("big_gds_here.gds") + if rtr_comp: + return big_comp + else: + big_comp.write_gds(write_name) if __name__=="__main__": write_opamp_matrix() diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py new file mode 100644 index 000000000..759ee814d --- /dev/null +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py @@ -0,0 +1,51 @@ +import numpy as np +import sys +# path to pygen +sys.path.append('../') +from sky130_nist_tapeout import sky130_opamp_add_pads, opamp_parameters_de_serializer, opamp_results_de_serializer +from pygen.opamp import opamp +from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk +from pathlib import Path +from pygen.pdk.util.opamp_array_create import write_opamp_matrix +from multiprocessing import Pool +from gdsfactory.cell import clear_cache +from pygen.pdk.util.snap_to_grid import component_snap_to_grid +from pygen.routing.L_route import L_route +from pygen.pdk.util.port_utils import add_ports_perimeter + +results= np.load("results.npy") +params = np.load("params.npy") + +#low_noise = params[[58,18,42]] +#low_pwr_high_FOM = params[[0,4,2,1]] +#high_BW = params[[10,27,31]] +#high_DCg = params[[59,9,33]] + + +def create_opamps(save_dir_name: str, indices: list): + pdk.cell_decorator_settings.cache=False + comps = list() + for index in indices: + # create opamp + comp = sky130_opamp_add_pads(opamp(pdk, **opamp_parameters_de_serializer(params[index])), flatten=False) + comp = component_snap_to_grid(comp) + comp.name = "opamp_" + str(index) + # append to list + comps.append(comp) + clear_cache() + with open(save_dir_name+".txt","a") as resfile: + strtowrite = "\n-------------------------\nopamp_"+str(index) + strtowrite += "\nparams = " + str(opamp_parameters_de_serializer(params[index])) + strtowrite += "\n\nresults = " + str(opamp_results_de_serializer(results[index])) + strtowrite += "\n\n\n" + resfile.write(strtowrite) + write_opamp_matrix(comps, write_name = save_dir_name + ".gds", xspace=600) + + +listnames = ["low_noise","low_pwr_high_FOM","high_BW","high_DCg"] +listindices = [[58,18,42],[0,4,2,1],[10,27,31],[59,9,33]] + +for name, indices in zip(listnames,listindices): + create_opamps(name, indices) + clear_cache() + diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index 17035f34e..30a0a925c 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -61,15 +61,15 @@ let maxBio = -1 let savedPhaseMargin = -1 let savedDCGain = -1 -let bias_dp_Min = 30u -let bias_dp_Max = 170u -let bias_dp_Step = 15u -let bias_cs_Min = 80u -let bias_cs_Max = 150u -let bias_cs_Step = 10u -let bias_o_Min = 100u -let bias_o_Max = 500u -let bias_o_Step = 60u +let bias_dp_Min = 10u +let bias_dp_Max = 300u +let bias_dp_Step = 12u +let bias_cs_Min = 70u +let bias_cs_Max = 500u +let bias_cs_Step = 16u +let bias_o_Min = 93.5u +let bias_o_Max = 94u +let bias_o_Step = 2u let bias_dp = bias_dp_Min let bias_cs = bias_cs_Min let bias_o = bias_o_Min diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 137f4fce9..2f74bec87 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -4,7 +4,7 @@ from gdsfactory.read.import_gds import import_gds from gdsfactory.components import text_freetype, rectangle -from pygen.pdk.util.comp_utils import prec_array, movey, align_comp_to_port +from pygen.pdk.util.comp_utils import prec_array, movey, align_comp_to_port, prec_ref_center from pygen.pdk.util.port_utils import add_ports_perimeter, print_ports from gdsfactory.component import Component from pygen.pdk.mappedpdk import MappedPDK @@ -33,16 +33,15 @@ import argparse from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk from itertools import count, repeat -from pydantic import validate_arguments # ====Build Opamp==== -def sky130_opamp_add_pads(opamp_in: Component) -> Component: +def sky130_opamp_add_pads(opamp_in: Component, flatten=False) -> Component: """adds the MPW-5 pads and nano pads to opamp. Also adds text labels and pin layers so that extraction is nice - this function should not be used with sky130_add_opamp_labels + this function does not need to be used with sky130_add_opamp_labels """ opamp_wpads = opamp_in.copy() opamp_wpads = movey(opamp_wpads, destination=0) @@ -51,7 +50,7 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: pad.name = "mpw5pad" pad = add_ports_perimeter(pad, pdk.get_glayer("met4"),prefix="pad_") pad_array = prec_array(pad, rows=2, columns=(4+1), spacing=(40,120)) - pad_array_ref = pad_array.ref_center() + pad_array_ref = prec_ref_center(pad_array) opamp_wpads.add(pad_array_ref) # add via_array to vdd pin vddarray = via_array(pdk, "met4","met5",size=(opamp_wpads.ports["pin_vdd_N"].width,opamp_wpads.ports["pin_vdd_E"].width)) @@ -93,14 +92,20 @@ def sky130_opamp_add_pads(opamp_in: Component) -> Component: opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row0_col0_nanopad_S"],pad_array_ref.ports["row0_col0_pad_N"],width=3) opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row0_col1_nanopad_E"],pad_array_ref.ports["row0_col1_pad_N"],width=3) opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row1_col1_nanopad_E"],pad_array_ref.ports["row1_col1_pad_S"],width=3) - #vddnanopad = opamp_wpads << nanopad + # add the extra pad for the CS output + cspadref = comp << pad + cspadref.movex(240).movey(80) + comp << L_route(pdk, cspadref.ports["pad_S"], comp.ports["commonsource_output_E"],hwidth=3, glayer1="met5",glayer2="met5") #opamp_wpads << nanopad - return opamp_wpads.flatten() + if flatten: + return opamp_wpads.flatten() + else: + return opamp_wpads def sky130_add_opamp_labels(opamp_in: Component) -> Component: """adds opamp labels for extraction, without adding pads - this functions should not be used with sky130_add_opamp_pads + this function does not need to be used with sky130_add_opamp_pads """ opamp_in.unlock() # define layers @@ -278,7 +283,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: diffpairs.append((6,1,4)) diffpairs.append((5,1,4)) else: - for width in [3,6,9]: + for width in [6,9]: for length in [1, 2]: for fingers in [2,4,6]: diffpairs.append((width,length,fingers)) @@ -288,7 +293,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: bias2s.append((6,1,4,3)) else: for width in [6]: - for length in [1]: + for length in [1,2]: for fingers in [4,6]: for mults in [1,2,3]: bias2s.append((width,length,fingers,mults)) @@ -302,12 +307,13 @@ def get_small_parameter_list(test_mode = False) -> np.array: for fingers in [8,14]: pamp_hparams.append((width,length,fingers,3)) # rows of the cap array to try - cap_arrays = [1,2,3] + cap_arrays = [1,2] # routing mults to try rmults = [2] # ****************************************** # create and return the small parameters list short_list_len = len(diffpairs) * len(bias2s) * len(pamp_hparams) * len(cap_arrays) * len(rmults) + short_list_len += 2 if test_mode else 0 short_list = np.empty(shape=(short_list_len,len(opamp_parameters_serializer())),dtype=np.float64) index = 0 for diffpair_v in diffpairs: @@ -324,6 +330,10 @@ def get_small_parameter_list(test_mode = False) -> np.array: ) short_list[index] = tup_to_add index = index + 1 + # if test_mode create a failed attempt (to test error handling) + if test_mode: + short_list[index] = opamp_parameters_serializer(mim_cap_rows=-1) + short_list[index+1] = opamp_parameters_serializer(mim_cap_rows=0) return short_list def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: Union[str,Path]): @@ -929,6 +939,18 @@ def extract_stats( test.add_argument("--cload", type=float, default=float(0), help="run simulation with load capacitance units=pico Farads") test.add_argument("--noparasitics",action="store_true",help="specify that parasitics should be removed when simulating") + # Subparser for create_opamp_matrix mode + create_opamp_matrix_parser = subparsers.add_parser("create_opamp_matrix", help="create a matrix of opamps") + create_opamp_matrix_parser.add_argument("-p", "--params", default="training_params.npy", help="File path for params (default: training_params.npy)") + create_opamp_matrix_parser.add_argument("-r", "--results", default="training_results.npy", help="File path for results (default: training_results.npy)") + specfilehelp = "File path for a specfile. The specfile is a txt file where each line represents indices to extract\n" + specfilehelp += "\tthe first word in each line is taken as a name (everything before the first space)" + specfilehelp += "\teverything after the first space should be a list of integer indices. The list should be space seperated (with no chars denoting start or end)" + specfilehelp += "\tonly place a new line at the end of the list. lines are read as a single spec" + specfilehelp += "\tleaving this field empty indicates all opamps should be placed in the array" + create_opamp_matrix_parser.add_argument("--specfile", type=Path, help=specfilehelp) + create_opamp_matrix_parser.add_argument("--opamp_dir",default="./save_gds_by_index",help="optionally point to a path, program looks for \{index\}.gds") + args = parser.parse_args() # Simulation Temperature information @@ -992,3 +1014,6 @@ def extract_stats( } results = single_build_and_simulation(opamp_parameters_serializer(**params), temperature_info[0], args.output_dir, cload=args.cload, noparasitics=args.noparasitics) print(results) + + elif args.mode =="create_opamp_matrix": + raise NotImplementedError("create_opamp_matrix mode is not yet implemented") From 6bb8467b2adb0ab6bad4ea4a6725078cb3f288cd Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 4 Sep 2023 13:17:02 -0400 Subject: [PATCH 57/64] opamp error checks --- .../generators/gdsfactory-gen/pygen/opamp.py | 6 ++- .../tapeout_and_RL/opamp_perf_eval.sp | 26 ++++++--- .../tapeout_and_RL/sky130_nist_tapeout.py | 54 ++++++++++++------- 3 files changed, 61 insertions(+), 25 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py index 8c5c042b4..64a26088b 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/pygen/opamp.py @@ -489,7 +489,7 @@ def opamp( diffpair_params = diffpair (width,length,fingers) diffpair_bias = bias transistor for diffpair nmos (width,length,fingers). The ref and output of the cmirror are identical half_common_source_params = pmos top component amp (width,length,fingers,mults) - half_common_source_bias = bottom L/R large nmos current mirror (width,length,fingers,mults). The ref of the cmirror always has 1 multplier. + half_common_source_bias = bottom L/R large nmos current mirror (width,length,fingers,mults). The ref of the cmirror always has 1 multplier. multiplier must be >=2 ****NOTE: change the multiplier option to change the relative sizing of the current mirror ref/output output_stage_amp_params = output amplifier transistor params (width, length, fingers) output_stage_bias = output amplifier current mirror params (width, length, fingers). The ref and output of the cmirror are identical @@ -497,6 +497,10 @@ def opamp( mim_cap_rows = number of rows in the mimcap array (always 2 cols) rmult = routing multiplier (larger = wider routes) """ + # error checks + if half_common_source_bias[3] < 2: + raise ValueError("half_common_source_bias num multiplier must be >= 2") + # create opamp top component _max_metal_seperation_ps = pdk.util_max_metal_seperation() opamp_top = Component() # place nmos components diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index 30a0a925c..1f9eaa227 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -61,15 +61,21 @@ let maxBio = -1 let savedPhaseMargin = -1 let savedDCGain = -1 +* dp and cs bias log step +let linear_step_until = 100u +let linear_step_default = 20u let bias_dp_Min = 10u -let bias_dp_Max = 300u -let bias_dp_Step = 12u +let bias_dp_Max = 2000u +let bias_dp_logStep = 1.2 let bias_cs_Min = 70u -let bias_cs_Max = 500u -let bias_cs_Step = 16u +let bias_cs_Max = 2000u +let bias_cs_logStep = 1.12 + +* output bias linear step let bias_o_Min = 93.5u let bias_o_Max = 94u let bias_o_Step = 2u + let bias_dp = bias_dp_Min let bias_cs = bias_cs_Min let bias_o = bias_o_Min @@ -112,11 +118,19 @@ while bias_cs le bias_cs_Max end ** Reset biasCurrent_o for next value of biasCurrent_dp let bias_o = bias_o_Min - let bias_dp = bias_dp + bias_dp_Step + if ( linear_step_until ge bias_dp ) + let bias_dp = bias_dp + linear_step_default + else + let bias_dp = bias_dp * bias_dp_logStep + end end ** Reset biasCurrent_dp for next value of biasCurrent_cs let bias_dp = bias_dp_Min - let bias_cs = bias_cs + bias_cs_Step + if ( linear_step_until ge bias_cs ) + let bias_cs = bias_cs + linear_step_default + else + let bias_cs = bias_cs * bias_cs_logStep + end end ** Export global maxima wrdata result_ac.txt maxUGB maxBidp maxBics maxBio savedPhaseMargin savedDCGain diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 2f74bec87..c65b881ed 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -295,7 +295,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: for width in [6]: for length in [1,2]: for fingers in [4,6]: - for mults in [1,2,3]: + for mults in [2,3]: bias2s.append((width,length,fingers,mults)) # all output pmos transistors pamp_hparams = list() @@ -340,15 +340,27 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: acabspath = Path(acpath).resolve() dcabspath = Path(dcpath).resolve() noiseabspath = Path(noisepath).resolve() - with open(acabspath, "r") as ACReport: - RawAC = ACReport.readlines()[0] - ACColumns = [item for item in RawAC.split() if item] - with open(dcabspath, "r") as DCReport: - RawDC = DCReport.readlines()[0] - DCColumns = [item for item in RawDC.split() if item] - with open(noiseabspath, "r") as NoiseReport: - RawNoise = NoiseReport.readlines()[0] - NoiseColumns = [item for item in RawNoise.split() if item] + ACColumns = None + DCColumns = None + NoiseColumns = None + try: + with open(acabspath, "r") as ACReport: + RawAC = ACReport.readlines()[0] + ACColumns = [item for item in RawAC.split() if item] + except Exception: + pass + try: + with open(dcabspath, "r") as DCReport: + RawDC = DCReport.readlines()[0] + DCColumns = [item for item in RawDC.split() if item] + except Exception: + pass + try: + with open(noiseabspath, "r") as NoiseReport: + RawNoise = NoiseReport.readlines()[0] + NoiseColumns = [item for item in RawNoise.split() if item] + except Exception: + pass na = -987.654321 noACresults = ACColumns is None or len(ACColumns)<9 noDCresults = DCColumns is None or len(DCColumns)<2 @@ -443,7 +455,7 @@ def __run_single_brtfrc(index, parameters_ele, save_gds_dir, temperature_info: t result_dict = get_sim_results(ac_file, power_file, noise_file) result_dict["area"] = area results = opamp_results_serializer(**result_dict) - if output_dir: + if output_dir is not None: if isinstance(output_dir, int): output_dir = save_gds_dir / ("dir_"+str(output_dir)) output_dir = Path(output_dir).resolve() @@ -901,6 +913,9 @@ def extract_stats( if __name__ == "__main__": + import time + start_watch = time.time() + parser = argparse.ArgumentParser(description="sky130 nist tapeout sample, RL generation, and statistics utility.") subparsers = parser.add_subparsers(title="mode", required=True, dest="mode") @@ -915,7 +930,7 @@ def extract_stats( get_training_data_parser.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") get_training_data_parser.add_argument("--cload", type=float, default=float(0), help="run simulation with load capacitance units=pico Farads") get_training_data_parser.add_argument("--noparasitics",action="store_true",help="specify that parasitics should be removed when simulating") - get_training_data_parser.add_argument("--nparray",default=None,help="overrides the test parameters and takes the ones you provide (file path to .npy file)") + get_training_data_parser.add_argument("--nparray",default=None,help="overrides the test parameters and takes the ones you provide (file path to .npy file).\n\tMUST HAVE LEN > 1") get_training_data_parser.add_argument("--saverawsims",action="store_true",help="specify that the raw simulation directories should be saved (default saved under save_gds_by_index/...)") # Subparser for gen_opamp mode @@ -943,13 +958,13 @@ def extract_stats( create_opamp_matrix_parser = subparsers.add_parser("create_opamp_matrix", help="create a matrix of opamps") create_opamp_matrix_parser.add_argument("-p", "--params", default="training_params.npy", help="File path for params (default: training_params.npy)") create_opamp_matrix_parser.add_argument("-r", "--results", default="training_results.npy", help="File path for results (default: training_results.npy)") - specfilehelp = "File path for a specfile. The specfile is a txt file where each line represents indices to extract\n" - specfilehelp += "\tthe first word in each line is taken as a name (everything before the first space)" - specfilehelp += "\teverything after the first space should be a list of integer indices. The list should be space seperated (with no chars denoting start or end)" - specfilehelp += "\tonly place a new line at the end of the list. lines are read as a single spec" - specfilehelp += "\tleaving this field empty indicates all opamps should be placed in the array" + specfilehelp = "File path for a specfile. The specfile is a txt file where each line represents indices to extract. " + specfilehelp += "The first word in each line is taken as a name (everything before the first space). " + specfilehelp += "Everything after the first space should be a list of integer indices. The list should be space seperated (with no chars denoting start or end). " + specfilehelp += "Only place a new line at the end of the list. Lines are read as a single spec. " + specfilehelp += "Leaving this field empty indicates all opamps should be placed in the array. " create_opamp_matrix_parser.add_argument("--specfile", type=Path, help=specfilehelp) - create_opamp_matrix_parser.add_argument("--opamp_dir",default="./save_gds_by_index",help="optionally point to a path, program looks for \{index\}.gds") + create_opamp_matrix_parser.add_argument("--opamp_dir",default="./save_gds_by_index",help="optionally point to a directory, program looks for 'index'.gds") args = parser.parse_args() @@ -1017,3 +1032,6 @@ def extract_stats( elif args.mode =="create_opamp_matrix": raise NotImplementedError("create_opamp_matrix mode is not yet implemented") + + end_watch = time.time() + print("\ntotal runtime was "+str((end_watch-start_watch)/3600) + " hours\n") From d5fe31ca7a0fafaa4883478ae61a3f430953dc20 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Mon, 4 Sep 2023 20:40:45 -0400 Subject: [PATCH 58/64] sim option to exchange stage 2 and 3 outputs --- .../tapeout_and_RL/opamp_perf_eval.sp | 10 +- .../tapeout_and_RL/sky130_nist_tapeout.py | 122 ++++++++++++------ 2 files changed, 91 insertions(+), 41 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index 1f9eaa227..d1aeed9fe 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -45,7 +45,7 @@ Ibiaso VDD biason {bo} ** Import opamp subcircuit .include opamp_pex.spice -XDUT vo VDD vip vin biascsn biason biasdpn GND opamp +XDUT vo VDD vip vin biascsn biason biasdpn GND csoutputnetNC opamp * parameter sweep ** Run initial analysis .save all @@ -60,6 +60,7 @@ let maxBidp = -1 let maxBio = -1 let savedPhaseMargin = -1 let savedDCGain = -1 +let savedthreedbBW = -1 * dp and cs bias log step let linear_step_until = 100u @@ -103,6 +104,9 @@ while bias_cs le bias_cs_Max meas ac pm find phase when vdb(vo)=0 ** Measure DC(ish) gain meas ac dcg find vdb(vo) at=1k + ** Measure 3db BW + let threedbabsgain = dcg - 3 + meas ac threedb when vdb(vo)=threedbabsgain FALL=1 ** Find local maxima if ( ugb_f ge maxUGB ) let maxUGB = ugb_f @@ -111,6 +115,7 @@ while bias_cs le bias_cs_Max let maxBio = bias_o let savedPhaseMargin = pm % 360 let savedDCGain = dcg + let savedthreedbBW = threedb end let absolute_counter = absolute_counter + 1 @@ -133,7 +138,7 @@ while bias_cs le bias_cs_Max end end ** Export global maxima -wrdata result_ac.txt maxUGB maxBidp maxBics maxBio savedPhaseMargin savedDCGain +wrdata result_ac.txt maxUGB maxBidp maxBics maxBio savedPhaseMargin savedDCGain savedthreedbBW ** Export power usage of opamp w/ best gain alterparam bcs = $&maxBics @@ -141,6 +146,7 @@ alterparam bdp = $&maxBidp alterparam bo = $&maxBio reset run + meas ac maxDraw max i(vsupply) let maxPower = maxDraw * 1.8 wrdata result_power.txt maxPower diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index c65b881ed..62aab3f05 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -93,9 +93,9 @@ def sky130_opamp_add_pads(opamp_in: Component, flatten=False) -> Component: opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row0_col1_nanopad_E"],pad_array_ref.ports["row0_col1_pad_N"],width=3) opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row1_col1_nanopad_E"],pad_array_ref.ports["row1_col1_pad_S"],width=3) # add the extra pad for the CS output - cspadref = comp << pad + cspadref = opamp_wpads << pad cspadref.movex(240).movey(80) - comp << L_route(pdk, cspadref.ports["pad_S"], comp.ports["commonsource_output_E"],hwidth=3, glayer1="met5",glayer2="met5") + opamp_wpads << L_route(pdk, cspadref.ports["pad_S"], opamp_wpads.ports["commonsource_output_E"],hwidth=3, hglayer="met5",vglayer="met5") #opamp_wpads << nanopad if flatten: return opamp_wpads.flatten() @@ -121,38 +121,43 @@ def sky130_add_opamp_labels(opamp_in: Component) -> Component: # gnd gndlabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() gndlabel.add_label(text="gnd",layer=met3_label) - move_info.append((gndlabel,opamp_in.ports["pin_gnd_N"])) + move_info.append((gndlabel,opamp_in.ports["pin_gnd_N"],None)) #diffpairibias ibias1label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() ibias1label.add_label(text="diffpairibias",layer=met2_label) - move_info.append((ibias1label,opamp_in.ports["pin_diffpairibias_N"])) + move_info.append((ibias1label,opamp_in.ports["pin_diffpairibias_N"],None)) #outputibias ibias3label = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() ibias3label.add_label(text="outputibias",layer=met2_label) - move_info.append((ibias3label,opamp_in.ports["pin_outputibias_N"])) + move_info.append((ibias3label,opamp_in.ports["pin_outputibias_N"],None)) # commonsourceibias ibias2label = rectangle(layer=met4_pin,size=(1,1),centered=True).copy() ibias2label.add_label(text="commonsourceibias",layer=met4_label) - move_info.append((ibias2label,opamp_in.ports["pin_commonsourceibias_N"])) + move_info.append((ibias2label,opamp_in.ports["pin_commonsourceibias_N"],None)) #minus minuslabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() minuslabel.add_label(text="minus",layer=met3_label) - move_info.append((minuslabel,opamp_in.ports["pin_minus_N"])) + move_info.append((minuslabel,opamp_in.ports["pin_minus_N"],None)) #-plus pluslabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() pluslabel.add_label(text="plus",layer=met3_label) - move_info.append((pluslabel,opamp_in.ports["pin_plus_N"])) + move_info.append((pluslabel,opamp_in.ports["pin_plus_N"],None)) #vdd vddlabel = rectangle(layer=met3_pin,size=(1,1),centered=True).copy() vddlabel.add_label(text="vdd",layer=met3_label) - move_info.append((vddlabel,opamp_in.ports["pin_vdd_N"])) - # output + move_info.append((vddlabel,opamp_in.ports["pin_vdd_N"],None)) + # output (3rd stage) outputlabel = rectangle(layer=met2_pin,size=(1,1),centered=True).copy() outputlabel.add_label(text="output",layer=met2_label) - move_info.append((outputlabel,opamp_in.ports["pin_output_route_N"])) + move_info.append((outputlabel,opamp_in.ports["pin_output_route_N"],None)) + # output (2nd stage) + outputlabel = rectangle(layer=met4_pin,size=(0.2,0.2),centered=True).copy() + outputlabel.add_label(text="CSoutput",layer=met4_label) + move_info.append((outputlabel,opamp_in.ports["commonsource_output_E"],('l','c'))) # move everything to position - for comp, prt in move_info: - compref = align_comp_to_port(comp, prt, alignment=('c','b')) + for comp, prt, alignment in move_info: + alignment = ('c','b') if alignment is None else alignment + compref = align_comp_to_port(comp, prt, alignment=alignment) opamp_in.add(compref) return opamp_in.flatten() @@ -252,17 +257,19 @@ def opamp_results_serializer( Ibias_output: float = -987.654321, area: float = -987.654321, power: float = -987.654321, - noise: float = -987.654321 + noise: float = -987.654321, + bw_3db: float = -987.654321, ) -> np.array: - return np.array([ugb, dcGain, phaseMargin, Ibias_diffpair, Ibias_commonsource, Ibias_output, area, power, noise], dtype=np.float64) + return np.array([ugb, dcGain, phaseMargin, Ibias_diffpair, Ibias_commonsource, Ibias_output, area, power, noise, bw_3db], dtype=np.float64) def opamp_results_de_serializer( results: Optional[np.array]=None ) -> dict: + results_length_const = 10 if results is None: - results = 9*[-987.654321] - if not len(results) == 9: - raise ValueError("results should be a length 9 array") + results = results_length_const*[-987.654321] + if not len(results) == results_length_const: + raise ValueError("results should be a length "+str(results_length_const)+" array") results_dict = dict() results_dict["ugb"] = float(results[0]) results_dict["dcGain"] = float(results[1]) @@ -273,6 +280,7 @@ def opamp_results_de_serializer( results_dict["area"] = float(results[6]) results_dict["power"] = float(results[7]) results_dict["noise"] = float(results[8]) + results_dict["bw_3db"] = float(results[9]) return results_dict def get_small_parameter_list(test_mode = False) -> np.array: @@ -283,8 +291,8 @@ def get_small_parameter_list(test_mode = False) -> np.array: diffpairs.append((6,1,4)) diffpairs.append((5,1,4)) else: - for width in [6,9]: - for length in [1, 2]: + for width in [6]: + for length in [0.5, 1]: for fingers in [2,4,6]: diffpairs.append((width,length,fingers)) # all bias2 (output amp bias) transistors @@ -293,8 +301,8 @@ def get_small_parameter_list(test_mode = False) -> np.array: bias2s.append((6,1,4,3)) else: for width in [6]: - for length in [1,2]: - for fingers in [4,6]: + for length in [1,2,3]: + for fingers in [4]: for mults in [2,3]: bias2s.append((width,length,fingers,mults)) # all output pmos transistors @@ -302,17 +310,26 @@ def get_small_parameter_list(test_mode = False) -> np.array: if test_mode: pamp_hparams.append((7,1,8,3)) else: - for width in [7,4]: - for length in [1,2]: - for fingers in [8,14]: + for width in [7,4,10]: + for length in [0.5,1]: + for fingers in [8]: pamp_hparams.append((width,length,fingers,3)) + # diffpair bias cmirror + diffpair_cmirrors = list() + if test_mode: + pass + else: + for width in [6]: + for length in [2,3]: + for fingers in [4]: + diffpair_cmirrors.append((width,length,fingers)) # rows of the cap array to try cap_arrays = [1,2] # routing mults to try rmults = [2] # ****************************************** # create and return the small parameters list - short_list_len = len(diffpairs) * len(bias2s) * len(pamp_hparams) * len(cap_arrays) * len(rmults) + short_list_len = len(diffpairs) * len(bias2s) * len(pamp_hparams) * len(cap_arrays) * len(rmults) * len(diffpair_cmirrors) short_list_len += 2 if test_mode else 0 short_list = np.empty(shape=(short_list_len,len(opamp_parameters_serializer())),dtype=np.float64) index = 0 @@ -321,19 +338,26 @@ def get_small_parameter_list(test_mode = False) -> np.array: for pamp_o_v in pamp_hparams: for cap_array_v in cap_arrays: for rmult in rmults: - tup_to_add = opamp_parameters_serializer( - diffpair_params=diffpair_v, - half_common_source_bias=bias2_v, - mim_cap_rows=cap_array_v, - half_common_source_params=pamp_o_v, - rmult=rmult, - ) - short_list[index] = tup_to_add - index = index + 1 + for diffpair_cmirror_v in diffpair_cmirrors: + tup_to_add = opamp_parameters_serializer( + diffpair_params=diffpair_v, + half_common_source_bias=bias2_v, + mim_cap_rows=cap_array_v, + half_common_source_params=pamp_o_v, + rmult=rmult, + diffpair_bias=diffpair_cmirror_v, + ) + short_list[index] = tup_to_add + index = index + 1 # if test_mode create a failed attempt (to test error handling) if test_mode: short_list[index] = opamp_parameters_serializer(mim_cap_rows=-1) short_list[index+1] = opamp_parameters_serializer(mim_cap_rows=0) + global _GET_PARAM_SET_LENGTH_ + if _GET_PARAM_SET_LENGTH_: + print("created parameter set of length: "+str(len(short_list))) + import sys + sys.exit() return short_list def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: Union[str,Path]): @@ -362,9 +386,9 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: except Exception: pass na = -987.654321 - noACresults = ACColumns is None or len(ACColumns)<9 - noDCresults = DCColumns is None or len(DCColumns)<2 - nonoiseresults = NoiseColumns is None or len(NoiseColumns)<2 + noACresults = (ACColumns is None) or len(ACColumns)<13 + noDCresults = (DCColumns is None) or len(DCColumns)<2 + nonoiseresults = (NoiseColumns is None) or len(NoiseColumns)<2 return_dict = { "ugb": na if noACresults else ACColumns[1], "Ibias_diffpair": na if noACresults else ACColumns[3], @@ -372,6 +396,7 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: "Ibias_output": na if noACresults else ACColumns[7], "phaseMargin": na if noACresults else ACColumns[9], "dcGain": na if noACresults else ACColumns[11], + "bw_3db": na if noACresults else ACColumns[13], "power": na if noDCresults else DCColumns[1], "noise": na if nonoiseresults else NoiseColumns[1] } @@ -385,6 +410,7 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: return return_dict def process_netlist_subckt(netlist: Union[str,Path], sim_model: Literal["normal model", "cryo model"], cload: float=0.0, noparasitics: bool=False): + global _TAKE_OUTPUT_AT_SECOND_STAGE_ netlist = Path(netlist).resolve() if not netlist.is_file(): raise ValueError("netlist must be file") @@ -402,7 +428,11 @@ def process_netlist_subckt(netlist: Union[str,Path], sim_model: Literal["normal if "cryo" in sim_model and len(line) and line[0]=="M": subckt_lines[i][0]="X" if all([hint in line for hint in hints]): - subckt_lines[i] = ".subckt opamp output vdd plus minus commonsourceibias outputibias diffpairibias gnd\nCload output gnd " + str(cload) +"p\n" + if _TAKE_OUTPUT_AT_SECOND_STAGE_: + headerstr = ".subckt opamp CSoutput vdd plus minus commonsourceibias outputibias diffpairibias gnd output" + else: + headerstr = ".subckt opamp output vdd plus minus commonsourceibias outputibias diffpairibias gnd CSoutput" + subckt_lines[i] = headerstr+"\nCload output gnd " + str(cload) +"p\n" if "floating" in line or (noparasitics and len(line) and line[0]=="C"): subckt_lines[i] = "* "+ subckt_lines[i] with open(netlist, "w") as spice_net: @@ -932,6 +962,8 @@ def extract_stats( get_training_data_parser.add_argument("--noparasitics",action="store_true",help="specify that parasitics should be removed when simulating") get_training_data_parser.add_argument("--nparray",default=None,help="overrides the test parameters and takes the ones you provide (file path to .npy file).\n\tMUST HAVE LEN > 1") get_training_data_parser.add_argument("--saverawsims",action="store_true",help="specify that the raw simulation directories should be saved (default saved under save_gds_by_index/...)") + get_training_data_parser.add_argument("--get_tset_len",action="store_true",help="print the length of the default parameter set and quit") + get_training_data_parser.add_argument("--output_second_stage",action="store_true",help="measure relevant sim metrics at the output of the second stage rather than output of third stage") # Subparser for gen_opamp mode gen_opamp_parser = subparsers.add_parser("gen_opamp", help="Run the gen_opamp function. optional parameters for transistors are width,length,fingers,mults") @@ -953,6 +985,7 @@ def extract_stats( test.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") test.add_argument("--cload", type=float, default=float(0), help="run simulation with load capacitance units=pico Farads") test.add_argument("--noparasitics",action="store_true",help="specify that parasitics should be removed when simulating") + test.add_argument("--output_second_stage",action="store_true",help="measure relevant sim metrics at the output of the second stage rather than output of third stage") # Subparser for create_opamp_matrix mode create_opamp_matrix_parser = subparsers.add_parser("create_opamp_matrix", help="create a matrix of opamps") @@ -968,6 +1001,11 @@ def extract_stats( args = parser.parse_args() + global _GET_PARAM_SET_LENGTH_ + global _TAKE_OUTPUT_AT_SECOND_STAGE_ + _GET_PARAM_SET_LENGTH_ = False + _TAKE_OUTPUT_AT_SECOND_STAGE_ = False + # Simulation Temperature information if vars(args).get("temp") is not None: temperature_info = [args.temp, None] @@ -984,6 +1022,10 @@ def extract_stats( extract_stats(params=args.params, results=args.results) elif args.mode=="get_training_data": + if args.get_tset_len: + _GET_PARAM_SET_LENGTH_ = True + if args.output_second_stage: + _TAKE_OUTPUT_AT_SECOND_STAGE_ = True # Call the get_training_data function with test_mode flag parameter_array = None if args.nparray is not None: @@ -1016,6 +1058,8 @@ def extract_stats( opamp_comp_final.write_gds(args.output_gds) elif args.mode == "test": + if args.output_second_stage: + _TAKE_OUTPUT_AT_SECOND_STAGE_ = True params = { "diffpair_params": (6, 1, 4), "diffpair_bias": (6, 2, 4), From 30b1615efa947dd97f42aad8ab52004117556b39 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 5 Sep 2023 11:42:45 -0400 Subject: [PATCH 59/64] tighten i sweep for power considerations --- .../gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index d1aeed9fe..37a2af228 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -64,13 +64,13 @@ let savedthreedbBW = -1 * dp and cs bias log step let linear_step_until = 100u -let linear_step_default = 20u +let linear_step_default = 16u let bias_dp_Min = 10u -let bias_dp_Max = 2000u -let bias_dp_logStep = 1.2 -let bias_cs_Min = 70u -let bias_cs_Max = 2000u -let bias_cs_logStep = 1.12 +let bias_dp_Max = 400u +let bias_dp_logStep = 1.08 +let bias_cs_Min = 10u +let bias_cs_Max = 300u +let bias_cs_logStep = 1.08 * output bias linear step let bias_o_Min = 93.5u From f662ade416575919ba5827157ce93d394de26456 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Tue, 5 Sep 2023 23:26:19 -0400 Subject: [PATCH 60/64] power sim fix --- .../tapeout_and_RL/opamp_perf_eval.sp | 12 +++++----- .../tapeout_and_RL/sky130_nist_tapeout.py | 22 +++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index 37a2af228..f750807b4 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -1,5 +1,6 @@ * opamp_perf_eval.sp ** OpenFASOC Team, Ryan Wans 2023 +.param mc_mm_switch=0 ** IMPORTANT: Temperature setting is added automatically in the reading ** of this file on line 6 as 25. DO NOT OVERRIDE. @@ -140,16 +141,17 @@ end ** Export global maxima wrdata result_ac.txt maxUGB maxBidp maxBics maxBio savedPhaseMargin savedDCGain savedthreedbBW -** Export power usage of opamp w/ best gain +** Export power usage of correctly biased opamp alterparam bcs = $&maxBics alterparam bdp = $&maxBidp alterparam bo = $&maxBio reset -run -meas ac maxDraw max i(vsupply) -let maxPower = maxDraw * 1.8 -wrdata result_power.txt maxPower +op +let estimated_output_1to1_ref = @Ibiaso[current]*1.8 +let ptotal_exact = -i(vsupply)*1.8 +let estimated_two_stagepwr = ptotal_exact - estimated_output_1to1_ref +wrdata result_power.txt ptotal_exact estimated_two_stagepwr ** Run noise analysis on opamp w/ best gain reset diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 62aab3f05..051daa428 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -35,6 +35,12 @@ from itertools import count, repeat +global _GET_PARAM_SET_LENGTH_ +global _TAKE_OUTPUT_AT_SECOND_STAGE_ +_GET_PARAM_SET_LENGTH_ = False +_TAKE_OUTPUT_AT_SECOND_STAGE_ = False + + # ====Build Opamp==== @@ -259,13 +265,14 @@ def opamp_results_serializer( power: float = -987.654321, noise: float = -987.654321, bw_3db: float = -987.654321, + power_twostage: float = -987.654321 ) -> np.array: - return np.array([ugb, dcGain, phaseMargin, Ibias_diffpair, Ibias_commonsource, Ibias_output, area, power, noise, bw_3db], dtype=np.float64) + return np.array([ugb, dcGain, phaseMargin, Ibias_diffpair, Ibias_commonsource, Ibias_output, area, power, noise, bw_3db, power_twostage], dtype=np.float64) def opamp_results_de_serializer( results: Optional[np.array]=None ) -> dict: - results_length_const = 10 + results_length_const = 11 if results is None: results = results_length_const*[-987.654321] if not len(results) == results_length_const: @@ -281,6 +288,7 @@ def opamp_results_de_serializer( results_dict["power"] = float(results[7]) results_dict["noise"] = float(results[8]) results_dict["bw_3db"] = float(results[9]) + results_dict["power_twostage"] = float(results[10]) return results_dict def get_small_parameter_list(test_mode = False) -> np.array: @@ -387,7 +395,7 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: pass na = -987.654321 noACresults = (ACColumns is None) or len(ACColumns)<13 - noDCresults = (DCColumns is None) or len(DCColumns)<2 + noDCresults = (DCColumns is None) or len(DCColumns)<4 nonoiseresults = (NoiseColumns is None) or len(NoiseColumns)<2 return_dict = { "ugb": na if noACresults else ACColumns[1], @@ -398,7 +406,8 @@ def get_sim_results(acpath: Union[str,Path], dcpath: Union[str,Path], noisepath: "dcGain": na if noACresults else ACColumns[11], "bw_3db": na if noACresults else ACColumns[13], "power": na if noDCresults else DCColumns[1], - "noise": na if nonoiseresults else NoiseColumns[1] + "noise": na if nonoiseresults else NoiseColumns[1], + "power_twostage": na if noDCresults else DCColumns[3], } for key, val in return_dict.items(): val_flt = na @@ -1001,11 +1010,6 @@ def extract_stats( args = parser.parse_args() - global _GET_PARAM_SET_LENGTH_ - global _TAKE_OUTPUT_AT_SECOND_STAGE_ - _GET_PARAM_SET_LENGTH_ = False - _TAKE_OUTPUT_AT_SECOND_STAGE_ = False - # Simulation Temperature information if vars(args).get("temp") is not None: temperature_info = [args.temp, None] From 7f5603d627409c025b909fcf8608e7e6fc1d4efd Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Wed, 6 Sep 2023 18:33:08 -0400 Subject: [PATCH 61/64] new bias strategy --- .../tapeout_and_RL/opamp_perf_eval.sp | 15 +++++++++------ .../tapeout_and_RL/sky130_nist_tapeout.py | 16 ++++++++-------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index f750807b4..22b29386e 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -55,6 +55,7 @@ XDUT vo VDD vip vin biascsn biason biasdpn GND csoutputnetNC opamp .control ** Set initial values set filetype = ascii +let maxFOM = -1 let maxUGB = -1 let maxBics = -1 let maxBidp = -1 @@ -64,14 +65,14 @@ let savedDCGain = -1 let savedthreedbBW = -1 * dp and cs bias log step -let linear_step_until = 100u -let linear_step_default = 16u +let linear_step_until = 60u +let linear_step_default = 7u let bias_dp_Min = 10u let bias_dp_Max = 400u -let bias_dp_logStep = 1.08 +let bias_dp_logStep = 1.1 let bias_cs_Min = 10u let bias_cs_Max = 300u -let bias_cs_logStep = 1.08 +let bias_cs_logStep = 1.1 * output bias linear step let bias_o_Min = 93.5u @@ -108,8 +109,10 @@ while bias_cs le bias_cs_Max ** Measure 3db BW let threedbabsgain = dcg - 3 meas ac threedb when vdb(vo)=threedbabsgain FALL=1 - ** Find local maxima - if ( ugb_f ge maxUGB ) + ** if FOM is better than previous max save results + let FOM = ugb_f / (bias_cs + bias_dp) + if ( FOM ge maxFOM ) + let maxFOM = FOM let maxUGB = ugb_f let maxBics = bias_cs let maxBidp = bias_dp diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 051daa428..5b6662f25 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -299,9 +299,9 @@ def get_small_parameter_list(test_mode = False) -> np.array: diffpairs.append((6,1,4)) diffpairs.append((5,1,4)) else: - for width in [6]: - for length in [0.5, 1]: - for fingers in [2,4,6]: + for width in [2,6]: + for length in [0.5, 1, 2]: + for fingers in [2,4]: diffpairs.append((width,length,fingers)) # all bias2 (output amp bias) transistors bias2s = list() @@ -309,7 +309,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: bias2s.append((6,1,4,3)) else: for width in [6]: - for length in [1,2,3]: + for length in [1,2]: for fingers in [4]: for mults in [2,3]: bias2s.append((width,length,fingers,mults)) @@ -318,9 +318,9 @@ def get_small_parameter_list(test_mode = False) -> np.array: if test_mode: pamp_hparams.append((7,1,8,3)) else: - for width in [7,4,10]: - for length in [0.5,1]: - for fingers in [8]: + for width in [7,4]: + for length in [0.5,1,2]: + for fingers in [8,4,2]: pamp_hparams.append((width,length,fingers,3)) # diffpair bias cmirror diffpair_cmirrors = list() @@ -328,7 +328,7 @@ def get_small_parameter_list(test_mode = False) -> np.array: pass else: for width in [6]: - for length in [2,3]: + for length in [2]: for fingers in [4]: diffpair_cmirrors.append((width,length,fingers)) # rows of the cap array to try From 4e419f30ceaf6ae5761591b8d84ad0ba1f68e4f9 Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Wed, 13 Sep 2023 08:29:27 -0400 Subject: [PATCH 62/64] naming enhancments --- .../{pygen => glayout}/README.md | 122 +++++++++++++----- .../{pygen => glayout}/__init__.py | 0 .../common/two_transistor_interdigitized.py | 28 ++-- .../common/two_transistor_place.py | 6 +- .../{pygen => glayout}/diff_pair.py | 14 +- .../docs/PortTreeExample.png | Bin .../docs/straight_route_def_beh.png | Bin .../docs/txt_port_trees}/L_route_v1_tree.txt | 0 .../docs/txt_port_trees}/c_route_v1_tree.txt | 0 .../txt_port_trees}/diff_pair_v1_tree.txt | 0 .../txt_port_trees}/mimcap_array_v1_tree.txt | 0 .../docs/txt_port_trees}/mimcap_v1_tree.txt | 0 .../txt_port_trees}/multiplier_v1_tree.txt | 0 .../docs/txt_port_trees}/nmos_v1_tree.txt | 0 .../docs/txt_port_trees}/opamp_v1_tree.txt | 0 .../docs/txt_port_trees}/pmos_v1_tree.txt | 0 .../straight_route_v1_tree.txt | 0 .../docs/txt_port_trees}/tapring_v1_tree.txt | 0 .../txt_port_trees}/via_stack_v1_tree.txt | 0 .../docs/txt_port_trees}/viaarray_v1_tree.txt | 0 .../gdsfactory-gen/{pygen => glayout}/fet.py | 16 +-- .../{pygen => glayout}/guardring.py | 12 +- .../{pygen => glayout}/mimcap.py | 10 +- .../{pygen => glayout}/opamp.py | 26 ++-- .../{pygen => glayout}/pdk/__init__.py | 0 .../pdk/gf180_mapped/__init__.py | 2 +- .../pdk/gf180_mapped/gf180_mapped.py | 4 +- .../pdk/gf180_mapped/gf180mcu.drc | 0 .../pdk/gf180_mapped/gf180mcu_drc.lydrc | 0 .../pdk/gf180_mapped/grules.py | 0 .../{pygen => glayout}/pdk/mappedpdk.py | 0 .../pdk/sky130_mapped/__init__.py | 2 +- .../pdk/sky130_mapped/grules.py | 0 .../pdk/sky130_mapped/sky130.lydrc | 0 .../pdk/sky130_mapped/sky130_add_npc.py | 36 ------ .../pdk/sky130_mapped/sky130_mapped.py | 0 .../{pygen => glayout}/pdk/util/__init__.py | 0 .../{pygen => glayout}/pdk/util/comp_utils.py | 2 +- .../pdk/util/opamp_array_create.py | 0 .../{pygen => glayout}/pdk/util/port_utils.py | 34 ++--- .../pdk/util/print_rules.py | 0 .../pdk/util/snap_to_grid.py | 0 .../pdk/util/standard_main.py | 4 +- .../{pygen => glayout}/routing/L_route.py | 10 +- .../{pygen => glayout}/routing/c_route.py | 10 +- .../routing/straight_route.py | 10 +- .../{pygen => glayout}/via_gen.py | 8 +- .../gdsfactory-gen/tapeout_and_RL/README.md | 72 ++++++++--- .../tapeout_and_RL/extract.bash | 3 - .../tapeout_and_RL/matrix_create.py | 51 -------- .../tapeout_and_RL/opamp_perf_eval.sp | 3 +- .../{ => pads}/sky130_mpw5_pad.gds | Bin .../{ => pads}/sky130_nano_pad.gds | Bin .../tapeout_and_RL/sky130_nist_tapeout.py | 107 +++++++++++---- 54 files changed, 323 insertions(+), 269 deletions(-) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/README.md (62%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/__init__.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/common/two_transistor_interdigitized.py (87%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/common/two_transistor_place.py (94%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/diff_pair.py (94%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/docs/PortTreeExample.png (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/docs/straight_route_def_beh.png (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/L_route_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/c_route_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/diff_pair_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/mimcap_array_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/mimcap_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/multiplier_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/nmos_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/opamp_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/pmos_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/straight_route_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/tapring_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/via_stack_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen/docs => glayout/docs/txt_port_trees}/viaarray_v1_tree.txt (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/fet.py (97%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/guardring.py (93%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/mimcap.py (92%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/opamp.py (97%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/__init__.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/gf180_mapped/__init__.py (55%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/gf180_mapped/gf180_mapped.py (93%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/gf180_mapped/gf180mcu.drc (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/gf180_mapped/gf180mcu_drc.lydrc (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/gf180_mapped/grules.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/mappedpdk.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/sky130_mapped/__init__.py (54%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/sky130_mapped/grules.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/sky130_mapped/sky130.lydrc (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/sky130_mapped/sky130_add_npc.py (61%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/sky130_mapped/sky130_mapped.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/util/__init__.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/util/comp_utils.py (99%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/util/opamp_array_create.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/util/port_utils.py (94%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/util/print_rules.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/util/snap_to_grid.py (100%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/pdk/util/standard_main.py (86%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/routing/L_route.py (91%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/routing/c_route.py (96%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/routing/straight_route.py (93%) rename openfasoc/generators/gdsfactory-gen/{pygen => glayout}/via_gen.py (98%) delete mode 100644 openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py rename openfasoc/generators/gdsfactory-gen/tapeout_and_RL/{ => pads}/sky130_mpw5_pad.gds (100%) rename openfasoc/generators/gdsfactory-gen/tapeout_and_RL/{ => pads}/sky130_nano_pad.gds (100%) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/README.md b/openfasoc/generators/gdsfactory-gen/glayout/README.md similarity index 62% rename from openfasoc/generators/gdsfactory-gen/pygen/README.md rename to openfasoc/generators/gdsfactory-gen/glayout/README.md index 3665a0b88..1f0d9f5bc 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/README.md +++ b/openfasoc/generators/gdsfactory-gen/glayout/README.md @@ -1,6 +1,6 @@ All functions, classes, etc have a help docustring. See python help() for specific questions -- [Pygen](#pygen) +- [Glayout](#glayout) - [MappedPDK](#mappedpdk) - [Generic Layers](#generic-layers) - [Generic Rule Guide](#generic-rule-guide) @@ -14,7 +14,7 @@ All functions, classes, etc have a help docustring. See python help() for specif - [Example 3: fet](#example-3-fet) - [Advanced Topics](#advanced-topics) - [Cells and PDK.activate()](#cells-and-pdkactivate) - - [Important GDSFactory Notes and Pygen Utilities](#important-gdsfactory-notes-and-pygen-utilities) + - [Important GDSFactory Notes and Glayout Utilities](#important-gdsfactory-notes-and-glayout-utilities) - [Port Naming Best Practices Guide](#port-naming-best-practices-guide) - [PortTree](#porttree) - [Snap to 2x grid](#snap-to-2x-grid) @@ -22,11 +22,12 @@ All functions, classes, etc have a help docustring. See python help() for specif - [DRC](#drc) - [LVS, and Labeling Issues](#lvs-and-labeling-issues) - [Addressing Complicated Requirments with Default Decorators](#addressing-complicated-requirments-with-default-decorators) + - [API overview](#api-overview) -# Pygen -Pygen is a layout automation tool which generates DRC clean circuit layouts across many technologies. Pygen is implemented as an easy-to-install python package. All required Pygen dependencies are available on pypi and are installed automatically from pypi when downloading OpenFASOC. Pygen (being a generic layout automation tool) does not require an installed pdk (just a MappedPDK description—explained below). Pygen is composed of 2 main parts: the generic pdk framework and the circuit generators. -The generic pdk framework allows for describing any pdk in a standardized format. The “pdk” sub-package within Pygen contains all code for the generic pdk class (known as “MappedPDK”) in addition to sky130 and gf180 MappedPDK objects. Because MappedPDK is a python class, describing a technology with a MappedPDK allows for passing the pdk as a python object. +# Glayout +Glayout is a layout automation tool which generates DRC clean circuit layouts for any technology implementing the Glayout framework. Glayout is implemented as an easy-to-install python package. All required Glayout dependencies are available on pypi and are installed automatically from pypi when downloading OpenFASOC. Glayout (being a generic layout automation tool) does not require an installed pdk (just a MappedPDK description, explained below). Glayout is composed of 2 main parts: the generic pdk framework and the circuit generators. +The generic pdk framework allows for describing any pdk in a standardized format. The “pdk” sub-package within Glayout contains all code for the generic pdk class (known as “MappedPDK”) in addition to sky130 and gf180 MappedPDK objects. Because MappedPDK is a python class, describing a technology with a MappedPDK allows for passing the pdk as a python object. The PDK generic circuit generator programs (also known as cells) are python functions which take as arguments a MappedPDK object and a set of optional layout parameters to produce a DRC clean layout. For example, an nMOS circuit generator (also known as nMOS cell), would require the user to specify a MappedPDK and, optionally, the transistor length, width, number of fingers, etc. ## MappedPDK @@ -59,23 +60,23 @@ For self edges, the following simplified syntax is available: `MappedPDK.get_grule(“metal 2”, “metal 2”)` or `MappedPDK.get_grule(“metal 2”)` ### Creating a MappedPDK To create a MappedPDK for an arbitrary technology, the generic layer mapping and the rule deck must be provided. MappedPDK stores generic layers as a python dictionary; the keys are generic layer names and the values are tuple(int, int) layers. Keys must be one of the generic layers listed in the class variable MappedPDK.valid_glayers; this class variable is an attribute which belongs to the MappedPDK type rather than an individual instance of MappedPDK so it should not be modified. -It is up to the programmer to decide which technology layer should be used for each generic layer. For example, the Skywater 130nm technology provides a layer called “local interconnect” which is a Titanium Nitride layer used for local routing. Local interconnect has similar (on order of magnitude) conductivity to the metal layers. The pygen provided sky130 MappedPDK object maps: the generic “metal 1” to the sky130 local interconnect layer, the generic “metal contact” to the sky130 local interconnect contact layer, and the generic “via 1” to the sky130 metal contact layer. Progressing up the BEOL, the sky130 MappedPDK generic metals are actually 1 metal ahead of the real layers that are being used; for example, the generic “metal 2” is actually the sky130 metal 1 layer. -Because there are less than 20 generic layers, MappedPDK requires the programmer to manually define the generic layer python map and pass it to the constructor. However, the generic rules are much more numerous. Pygen provides a utility tool to assist in creating the MappedPDK rule deck. There is a spreadsheet to rule representation conversion program which assists with this. +It is up to the programmer to decide which technology layer should be used for each generic layer. For example, the Skywater 130nm technology provides a layer called “local interconnect” which is a Titanium Nitride layer used for local routing. Local interconnect has similar (on order of magnitude) conductivity to the metal layers. The glayout provided sky130 MappedPDK object maps: the generic “metal 1” to the sky130 local interconnect layer, the generic “metal contact” to the sky130 local interconnect contact layer, and the generic “via 1” to the sky130 metal contact layer. Progressing up the BEOL, the sky130 MappedPDK generic metals are actually 1 metal ahead of the real layers that are being used; for example, the generic “metal 2” is actually the sky130 metal 1 layer. +Because there are less than 20 generic layers, MappedPDK requires the programmer to manually define the generic layer python map and pass it to the constructor. However, the generic rules are much more numerous. Glayout provides a utility tool to assist in creating the MappedPDK rule deck. There is a spreadsheet to rule representation conversion program which assists with this. ## PDK Agnostic Layout, Basics The python layout generators (known as “cell factories”, but sometimes referred to as “cells” or "components" or "component factories") are built on the MappedPDK framework. All cell factories should have the `@cell` decorator which can be imported with `from gdsfactory.cell import cell` The MappedPDK.get_glayer and MappedPDK.get_grule methods enable the construction of DRC clean layouts programmatically. However, it is the responsibility of the Cell factory programmer to ensure that the proper rules and layer checks are executed. **The quality of the programmer is the quality of the cell.** ### Via Stack Generator -The only stand alone cell (cell factory which does not call other cell factories) in the pygen package is the via stack. Cell factories generally follow a similar programming procedure, so via stack provides a good introduction to the cell factory structure. +The only stand alone cell (cell factory which does not call other cell factories) in the glayout package is the via stack. Cell factories generally follow a similar programming procedure, so via stack provides a good introduction to the cell factory structure. Like all cells, via stack takes as the first argument a MappedPDK object. There are two other required arguments which specify the generic layers to create the via stack between; the order in which these “glayers” (another name for generic layers) are provided does not matter. There are also several optional arguments providing more specific layout control. To explain this cell, the following function call will be assumed: `via_stack(GF180_MappedPDK, “active”, “metal 3”)` OR `via_stack(GF180_MappedPDK, “metal 3”, “active”)` Most cells start by running layer error checking. The via stack must verify that the provided MappedPDK contains both glayers provided and both glayers provided can be routed between. For example, it is usually not possible to route from “nwell” without an “n+s/d” implant, so if one of the layers provided is “nwell”, via stack raises an exception. Additionally, via stack must verify that all layers in between the provided glayers are available in the pdk. In this case, the required glayers are: “active”, “metal contact”, “metal 1”, “via 1”, “metal 2”, via 2”, and “metal 3”. For the passed MappedPDK (GF180), all required glayers are present, but in the case that a glayer is not present, via stack raises an exception. -layer error checking is done with [`pdk.has_required_glayers(glayers_list)`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py#L142). +layer error checking is done with [`pdk.has_required_glayers(glayers_list)`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/mappedpdk.py#L142). The via stack then loops through these layers, placing them one at a time. To legally size and place each layer, via stack must consider “min_enclosure” and “width” rules for vias and metals. For example, to lay the “active” layer, the “metal contact” “width” and the “metal contact” to “active” “min_enclosure” rules must be considered. To lay the “metal 1” layer, the “min_enclosure” and “width” rules of both the via above and the via below “metal 1” must be considered. The programmer of the generic cells must consider all relevant rules to produce a legal layout. Rules are accessed in cell code using the `MappedPDK.get_grule` method. ### Routing -Routing utilities are required to create complicated hierarchical designs. At the backend of routing is the gdsfactory “Port” object. Fundamentally, ports describe a polygon edge. Ports include center, width, and orientation of the edge, along with other attributes and utility methods. The pygen routing functions operate to create paths between ports. -As described with the via stack example above, the checks and sizings necessary for legal layout are executed in the cell generator. Pygen routing functions do not need to understand cell context; for this reason, routing functions are called “dumb routes”. There are three “dumb route” utilities: straight route, L route, and C route. Dumb routes are simple, but contain optional arguments which allow for precise control over created paths. The default path behavior is easy to predict and will generally make the most reasonable decisions if no direction is provided. +Routing utilities are required to create complicated hierarchical designs. At the backend of routing is the gdsfactory “Port” object. Fundamentally, ports describe a polygon edge. Ports include center, width, and orientation of the edge, along with other attributes and utility methods. The glayout routing functions operate to create paths between ports. +As described with the via stack example above, the checks and sizings necessary for legal layout are executed in the cell generator. Glayout routing functions do not need to understand cell context; for this reason, routing functions are called “dumb routes”. There are three “dumb route” utilities: straight route, L route, and C route. Dumb routes are simple, but contain optional arguments which allow for precise control over created paths. The default path behavior is easy to predict and will generally make the most reasonable decisions if no direction is provided. For example, Straight route creates a straight path directly between two ports. If the two provided ports are not collinear or have different orientations, the function will by default route from the first port to the imaginary line stretching perpendicularly from the second port. By default, the route will begin on the same layer as the first port and will lay a via stack if necessary at the second port. If two ports are parallel, Straight route will raise an exception. **Straight Route Default Behavoir:** @@ -84,20 +85,20 @@ For example, Straight route creates a straight path directly between two ports. L route and C route also create simple paths. L route creates an L shaped route (two straight paths perpendicular) and C route creates a C shaped route (two parallel paths connected by a straight path). ### PDK Agnostic Hierarchical Cells All cells other than the via stack contain hierarchy. Combining hierarchy and careful routing allows for clean layouts while increasing complexity. -#### Example 1: [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py#L180) -The most basic hierarchical cell is the [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py#L180). Via array is composed of via stacks and has a similar interface to the via stack generator, but additionally accepts a size argument. The array spacing computation is another example of the programmers role in creating DRC clean layout. After error checking, the via array program creates the via stack single element that will be copied to create the array. Then, the generator loops through each layer and uses the gdsfactory component.extract method to get the dimension of that layer in the via stack; The min spacing for that layer is `pdk.get_grule(layer)["min_separation"] + 2*layer_dim`. After looping through the entire array, The maximum seperation is the correct spacing to use. -#### Example 2: [tapring](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/guardring.py) -tapring produces a substrate / well tap rectanglular ring that legally enclose a rectangular shape. `gdsfactory.component.rectangular_ring` is used along with pygen [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py#L180). The ring is always of minimum width and legalizing the ring is easy because via_array does most of the work. Special care is taken at the corners to ensure min spacing between adjacent metal layers is not below min_separation. Although not currently implemented, error checking for this ring should check the size is not too small (separation between edges is not legal). +#### Example 1: [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/via_gen.py#L180) +The most basic hierarchical cell is the [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/via_gen.py#L180). Via array is composed of via stacks and has a similar interface to the via stack generator, but additionally accepts a size argument. The array spacing computation is another example of the programmers role in creating DRC clean layout. After error checking, the via array program creates the via stack single element that will be copied to create the array. Then, the generator loops through each layer and uses the gdsfactory component.extract method to get the dimension of that layer in the via stack; The min spacing for that layer is `pdk.get_grule(layer)["min_separation"] + 2*layer_dim`. After looping through the entire array, The maximum seperation is the correct spacing to use. +#### Example 2: [tapring](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/guardring.py) +tapring produces a substrate / well tap rectanglular ring that legally enclose a rectangular shape. `gdsfactory.component.rectangular_ring` is used along with glayout [via_array](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/via_gen.py#L180). The ring is always of minimum width and legalizing the ring is easy because via_array does most of the work. Special care is taken at the corners to ensure min spacing between adjacent metal layers is not below min_separation. Although not currently implemented, error checking for this ring should check the size is not too small (separation between edges is not legal). Generators should be made as generic as possible. In this case, tapring can produce either a p-tap or n-tap ring. Glayers are just strings and they can be passed to functions as arguments. Also, you glayer variables can be passed directly to `pdk.get_grule(glayer_var)`. -#### Example 3: [fet](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/fet.py) -The most important component factory in pygen is the [multiplier](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/fet.py#L61) because it handles the difficult task of creating legal transistors. By passing the source/drain layer (either "p+s/d" or "n+s/d") multiplier code is reused to create nmos and pmos transistors. arrays of multipliers can be created to allow for transistors with several multipliers. read the help docustring for all functions in [fet.py](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/fet.py) +#### Example 3: [fet](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/fet.py) +The most important component factory in glayout is the [multiplier](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/fet.py#L61) because it handles the difficult task of creating legal transistors. By passing the source/drain layer (either "p+s/d" or "n+s/d") multiplier code is reused to create nmos and pmos transistors. arrays of multipliers can be created to allow for transistors with several multipliers. read the help docustring for all functions in [fet.py](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/fet.py) ## Advanced Topics -The following topics are only neccessary if you want to code with pygen, but are not neccessary for a basic understanding of pygen. +The following topics are only neccessary if you want to code with glayout, but are not neccessary for a basic understanding of glayout. ### Cells and PDK.activate() All cell factories should be decorated with the `@cell` decorator which can be imported from gdsfactory with `from gdsfactory.cell import cell`. You must also call pdk.activate() for cells to correctly work. This is related to caching, gds/oasis write settings, default decorators, etc. -### Important GDSFactory Notes and Pygen Utilities -The GDSFactory API is extremely versatile and there are many useful features. It takes some experience to learn about all features and identify the most useful tools from GDSFactory. GDSFactory serves as the backend GDS manipulation library and as an object oriented tool kit with several useful classes including: Components, Component References, and Ports. There are also common shapes as Components in GDSFactory such as rectangles, circles, rectangular_rings, etc. To automate common tasks that do not fit into GDSFactory, Pygen includes many utility functions. The most important of these functions are also addressed here. +### Important GDSFactory Notes and Glayout Utilities +The GDSFactory API is extremely versatile and there are many useful features. It takes some experience to learn about all features and identify the most useful tools from GDSFactory. GDSFactory serves as the backend GDS manipulation library and as an object oriented tool kit with several useful classes including: Components, Component References, and Ports. There are also common shapes as Components in GDSFactory such as rectangles, circles, rectangular_rings, etc. To automate common tasks that do not fit into GDSFactory, Glayout includes many utility functions. The most important of these functions are also addressed here. - Components are the GDSFactory implementation of GDS cells. Components contain references to other components (Component Reference). Important methods are included below. - Component.name: get or set the name of a Component - Component.flatten(): flattens all references in the components @@ -108,12 +109,12 @@ The GDSFactory API is extremely versatile and there are many useful features. It - Component.add_padding(): add a layer surrounding the component - Component booleans: see the gdsfactory documentation for how to run boolean operations of components. - Component.write_gds(): write the gds to disk - - Component.bbox: return bounding box of the component (xmin,ymin),(xmax,ymax). Pygen has an evaluate_bbox function which return the x and y dimensions of the bbox + - Component.bbox: return bounding box of the component (xmin,ymin),(xmax,ymax). Glayout has an evaluate_bbox function which return the x and y dimensions of the bbox - insertion operator: `ref = Component << Component_to_add` - Component.add(): add an one of several types to a Component. (more flexible than << operator) - Component.ref()/.ref_center(): return a reference to a component -It is not possible to move Components in GDSFactory. GDSFactory has a Component cache, so moving a component may invalidate the cache, but there are situations where you want to move a component; For these situations, use the pygen [move](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L24), [movex](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L63), [movey](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L73) functions. +It is not possible to move Components in GDSFactory. GDSFactory has a Component cache, so moving a component may invalidate the cache, but there are situations where you want to move a component; For these situations, use the glayout [move](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py#L24), [movex](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py#L63), [movey](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py#L73) functions. - Component references are pointers to components. They have many of the same methods as Components with some additions. - ComponentReference.parent: the Component which this component reference points to @@ -126,14 +127,14 @@ To add a ComponentReference to a Component, you cannot use the insertion operato - A port describes a single edge of a polygon. The most useful port attributes are **width, center tuple(x,y), orientation (degrees), and layer of the edge**. - For example, the rectangle cell factory provided in gdsfactory.components.rectangle returns a Component type with the following port names: e1, e2, e3, e4. - e1=West, e2=North, e3=East, e4=South. The default naming scheme of ports in GDSFactory is not descriptive - - use pygen [rename_ports_by_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L67), [rename_ports_by_list](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L91) functions and see below for port naming best practices guide - - pygen [get_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L124): returns the letter (N,E,S,W) or degrees of orientation of port. by default returns the one you do not have. see help. - - pygen [assert_port_manhattan](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L159): assert that a port or list or ports have orientation N, E, S, or W - - pygen [assert_ports_perpindicular](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L181): assert two ports are perpindicular - - pygen [set_port_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L181): return new port which is copy of old port but with new orientation - - pygen [set_port_width](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L202): return a new port which is a copy of the old one, but with new width + - use glayout [rename_ports_by_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L67), [rename_ports_by_list](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L91) functions and see below for port naming best practices guide + - glayout [get_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L124): returns the letter (N,E,S,W) or degrees of orientation of port. by default returns the one you do not have. see help. + - glayout [assert_port_manhattan](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L159): assert that a port or list or ports have orientation N, E, S, or W + - glayout [assert_ports_perpindicular](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L181): assert two ports are perpindicular + - glayout [set_port_orientation](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L181): return new port which is copy of old port but with new orientation + - glayout [set_port_width](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L202): return a new port which is a copy of the old one, but with new width -A very important utility is [align_comp_to_port](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py#L83): pass a component or componentReference and a port, and align the component to any edge of the port. +A very important utility is [align_comp_to_port](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py#L83): pass a component or componentReference and a port, and align the component to any edge of the port. ### Port Naming Best Practices Guide As previously pointed out, the default naming of ports in GDSFactory is not descriptive. By default gdsfactory.components.rectangle returns ports e1 (West port), e2 (North port), e3 (East port), e4 (South port). Additionally, complicated hiearchies can result in thousands of ports, so organizing ports is a neccessity. The below best practices guide should be used to organize ports @@ -142,11 +143,11 @@ As previously pointed out, the default naming of ports in GDSFactory is not desc `tapring.add_ports(via_array.get_ports_list(),prefix="topviaarray_")` - The port rename functions look for the "\_" syntax. You can NOT use the port rename functions without this syntax. - The last 2 characters of a port name should "\_" followed by the orientation (N, E, S, or W) - - you can easily achieve this by calling pygen [`rename_ports_by_orientation`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L67) before returning a component (just the names end with "\_" before calling this function) + - you can easily achieve this by calling glayout [`rename_ports_by_orientation`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L67) before returning a component (just the names end with "\_" before calling this function) - **USE PORTS**: be sure to correctly add and label ports to components you make because you do not know when they will be used in other cells. #### PortTree -The [PortTree](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L232) class is designed to assist in finding ports and understanding port structure. Initialize a PortTree by calling [`PortTree(Component or ComponentReference)`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L245). The PortTree will internally construct a directory tree structure from the Component's ports. You can use [`PortTree.print()`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py#L304) to print this whole structure for a nice figure explaining a Component's ports. See the example print output from a via_stack component below: +The [PortTree](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L232) class is designed to assist in finding ports and understanding port structure. Initialize a PortTree by calling [`PortTree(Component or ComponentReference)`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L245). The PortTree will internally construct a directory tree structure from the Component's ports. You can use [`PortTree.print()`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py#L304) to print this whole structure for a nice figure explaining a Component's ports. See the example print output from a via_stack component below: **PortTree of a via_stack:** ![PortTree example](docs/PortTreeExample.png) @@ -158,7 +159,62 @@ Although many technolgies have 2 or more mimcap options, there is currently only ### DRC If the system has klayout installed and you provide a klayout lydrc script for your MappedPDK, you can run DRC from python by calling pdk.drc(Component or GDS). The return value is a boolean (legal or not legal) and a lyrdb (xml format) file is written describing each DRC error. This file can be opened graphically in klayout with the following syntax `klayout layout.gds -m drc.lyrdb` ### LVS, and Labeling Issues -There are no glayers for labeling or pins, all cells are generated without any labels. You can easily add pins to your component manually after pygen write the gds, or by using ports, you can write a function for adding labels and pins. See [sky130_nist_tapeout example function](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py#L97). +There are no glayers for labeling or pins, all cells are generated without any labels. You can easily add pins to your component manually after glayout write the gds, or by using ports, you can write a function for adding labels and pins. See [sky130_nist_tapeout example function](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py#L97). ### Addressing Complicated Requirments with Default Decorators A python decorator is a function (the decorator) is a function which is called on another function. It can be used to enhance the features of a function. With GDSFactory Pdk (and MappedPDK objects) you can define a default decorator which runs on any cell factory (cell factories must be decorated with the `@cell` decorator). The default decorator you define runs in addition to the `@cell` decorator. The defined default_decorator should accept as argument a Component and return a Component. -This should be used when dealing with PDK specfic requirments that do not fit into the MappedPDK framework. For example, sky130 has a NPC (nitride poly cut) layer which **must** be used wherever licon (local interconnect contact) is laid over poly. It does not make sense to modify MappedPDK to add a generic NPC layer AND modify all cell factories; sky130 is unqiue in this requirment, so modifying MappedPDK/all cell factories would make pygen less generic. Instead, we define a default_decorator [`sky130_add_npc(Component) -> Component`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py). This function uses booleans to add npc anywhere licon is laid over poly (it also joins NPC polygons if they are closer than the NPC min separation rule). Layers and rules in this technology specific function are hard coded because this decorator will only run for sky130 is the active pdk (this is one reason why you must be sure that pdk is activated). \ No newline at end of file +This should be used when dealing with PDK specfic requirments that do not fit into the MappedPDK framework. For example, sky130 has a NPC (nitride poly cut) layer which **must** be used wherever licon (local interconnect contact) is laid over poly. It does not make sense to modify MappedPDK to add a generic NPC layer AND modify all cell factories; sky130 is unqiue in this requirment, so modifying MappedPDK/all cell factories would make glayout less generic. Instead, we define a default_decorator [`sky130_add_npc(Component) -> Component`](https://github.com/alibillalhammoud/OpenFASOC/blob/main/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130_add_npc.py). This function uses booleans to add npc anywhere licon is laid over poly (it also joins NPC polygons if they are closer than the NPC min separation rule). Layers and rules in this technology specific function are hard coded because this decorator will only run for sky130 is the active pdk (this is one reason why you must be sure that pdk is activated). + +## API overview +This section provides a high-level overview of all functions in glayout. See **docs** (TODO) printed docustrings of all files. + + +- glayout: + - generators + - via_gen.py + - via_stack: via between any two 'routable' layers + - via_array: array of via stacks. specify area or num vias desired + - guardring.py: create a tapring around an enclosed area + - fet.py + - multiplier: the basic building block for both n/pfets + - pfet + - nfet + - diff_pair.py: create a common centroid ab ba place diff pair (either n or pfet) + - opamp.py: create an opamp (TODO: see docs for netlist and general layout plan) + - mimcap.py + - mimcap + - mimcap_array + - common + - two_transistor_place.py: two_transistor_place, place two devices in any configuration specified by a string (e.g. aba bab aba) + - two_transistor_interdigitized.py + - two_transistor_interdigitized: place two transistor interdigitized + - two_nfet_interdigitized: a specialization of two_transistor_interdigitized to place specifically nfet + - routing + - straight_route: route in a straight line + - L_route: route in an L shape + - c_route: rout in a C shape + - pdk + - mappedpdk.py: MappedPDK class + - sky130_mapped_pdk: MappedPDK object for sky130 + - `from glayout.pdk.sky130_mapped import sky130_mapped_pdk` + - gf180_mapped_pdk: MappedPDK object for gf180 + - `from glayout.pdk.gf180_mapped import gf180_mapped_pdk` + - util + - comp_utils.py + - evaluate_bbox: returns [width, hieght] of a component + - move: move Component, compref, or Port + - movex: movex Component, compref, or Port + - movey: movey Component, compref, or Port + - align_comp_to_port: move a compref or Component such that it is aligned to a port (also specify how you want to align with `alignment` option). + - prec_array: create an array of components + - prec_center: return the amount of x,y translation required to center a component + - prec_ref_center: return a centered ref of a component + - get_padding_points_cc: get points of a rectangle which pads (with some extra space optionally) a component. (e.g. lay p+s/d over diffusion with padding=0.2um) + - to_decimal: convert a float or list of float (or decimal) to python decimal + - to_float: convert decimal or list of decimal (or float) to python float + - port_utils.py + - print_rules.py + - snap_to_grid.py + - standard_main.py + - opamp_array_create.py + + diff --git a/openfasoc/generators/gdsfactory-gen/pygen/__init__.py b/openfasoc/generators/gdsfactory-gen/glayout/__init__.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/__init__.py rename to openfasoc/generators/gdsfactory-gen/glayout/__init__.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py b/openfasoc/generators/gdsfactory-gen/glayout/common/two_transistor_interdigitized.py similarity index 87% rename from openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py rename to openfasoc/generators/gdsfactory-gen/glayout/common/two_transistor_interdigitized.py index a317f5182..691a96aa9 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_interdigitized.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/common/two_transistor_interdigitized.py @@ -1,22 +1,23 @@ -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from pydantic import validate_arguments from gdsfactory.component import Component -from pygen.fet import nmos, pmos, multiplier -from pygen.pdk.util.comp_utils import evaluate_bbox +from glayout.fet import nmos, pmos, multiplier +from glayout.pdk.util.comp_utils import evaluate_bbox from typing import Literal, Union -from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list -from pygen.pdk.util.comp_utils import prec_ref_center -from pygen.routing.straight_route import straight_route +from glayout.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list +from glayout.pdk.util.comp_utils import prec_ref_center +from glayout.routing.straight_route import straight_route from gdsfactory.functions import transformed -from pygen.guardring import tapring -from pygen.pdk.util.port_utils import add_ports_perimeter +from glayout.guardring import tapring +from glayout.pdk.util.port_utils import add_ports_perimeter from gdsfactory.cell import clear_cache -#from pygen.common.two_transistor_interdigitized import two_nfet_interdigitized; from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk; biasParams=[6,2,4]; rmult=2 +#from glayout.common.two_transistor_interdigitized import two_nfet_interdigitized; from glayout.pdk.sky130_mapped import sky130_mapped_pdk as pdk; biasParams=[6,2,4]; rmult=2 @validate_arguments -def two_transistor_interdigitized(pdk: MappedPDK, +def two_transistor_interdigitized( + pdk: MappedPDK, numcols: int, deviceA_and_B: Literal["nfet", "pfet"], dummy: Union[bool, tuple[bool, bool]] = True, @@ -31,7 +32,7 @@ def two_transistor_interdigitized(pdk: MappedPDK, deviceA_and_B = the device to place for both transistors (either nfet or pfet) dummy = place dummy at the edges of the interdigitized place (true by default). you can specify tuple to place only on one side kwargs = key word arguments for device. - ****NOTE: These are the same as pygen.fet.multiplier arguments EXCLUDING dummy, sd_route_extension, and pdk options + ****NOTE: These are the same as glayout.fet.multiplier arguments EXCLUDING dummy, sd_route_extension, and pdk options """ if isinstance(dummy, bool): dummy = (dummy, dummy) @@ -90,7 +91,8 @@ def two_transistor_interdigitized(pdk: MappedPDK, @validate_arguments -def two_nfet_interdigitized(pdk: MappedPDK, +def two_nfet_interdigitized( + pdk: MappedPDK, numcols: int, dummy: Union[bool, tuple[bool, bool]] = True, with_substrate_tap: bool = True, @@ -104,7 +106,7 @@ def two_nfet_interdigitized(pdk: MappedPDK, numcols = a single col is actually one col for both nfets (so AB). 2 cols = ABAB ... so on dummy = place dummy at the edges of the interdigitized place (true by default). you can specify tuple to place only on one side kwargs = key word arguments for multiplier. - ****NOTE: These are the same as pygen.fet.multiplier arguments EXCLUDING dummy, sd_route_extension, and pdk options + ****NOTE: These are the same as glayout.fet.multiplier arguments EXCLUDING dummy, sd_route_extension, and pdk options """ base_multiplier = two_transistor_interdigitized(pdk, numcols, "nfet", dummy, **kwargs) # tie diff --git a/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_place.py b/openfasoc/generators/gdsfactory-gen/glayout/common/two_transistor_place.py similarity index 94% rename from openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_place.py rename to openfasoc/generators/gdsfactory-gen/glayout/common/two_transistor_place.py index 634c220a3..36e2ad708 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/common/two_transistor_place.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/common/two_transistor_place.py @@ -1,9 +1,9 @@ -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from pydantic import validate_arguments from gdsfactory.component import Component from typing import Callable -from pygen.fet import nmos, pmos -from pygen.pdk.util.comp_utils import evaluate_bbox +from glayout.fet import nmos, pmos +from glayout.pdk.util.comp_utils import evaluate_bbox @validate_arguments def two_transistor_place(pdk: MappedPDK, pattern: str, deviceA: tuple[Callable, dict], deviceB: tuple[Callable, dict]) -> Component: diff --git a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py b/openfasoc/generators/gdsfactory-gen/glayout/diff_pair.py similarity index 94% rename from openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py rename to openfasoc/generators/gdsfactory-gen/glayout/diff_pair.py index bcf12d68c..b6aaa4d63 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/diff_pair.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/diff_pair.py @@ -1,16 +1,16 @@ from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from pygen.fet import nmos, pmos -from pygen.pdk.mappedpdk import MappedPDK +from glayout.fet import nmos, pmos +from glayout.pdk.mappedpdk import MappedPDK from typing import Optional, Union from gdsfactory.routing.route_quad import route_quad from gdsfactory.routing.route_sharp import route_sharp -from pygen.routing.c_route import c_route -from pygen.pdk.util.comp_utils import movex, movey, evaluate_bbox, align_comp_to_port -from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, get_orientation, set_port_orientation -from pygen.via_gen import via_stack -from pygen.pdk.util.snap_to_grid import component_snap_to_grid +from glayout.routing.c_route import c_route +from glayout.pdk.util.comp_utils import movex, movey, evaluate_bbox, align_comp_to_port +from glayout.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, get_orientation, set_port_orientation +from glayout.via_gen import via_stack +from glayout.pdk.util.snap_to_grid import component_snap_to_grid @cell diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/PortTreeExample.png b/openfasoc/generators/gdsfactory-gen/glayout/docs/PortTreeExample.png similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/PortTreeExample.png rename to openfasoc/generators/gdsfactory-gen/glayout/docs/PortTreeExample.png diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_def_beh.png b/openfasoc/generators/gdsfactory-gen/glayout/docs/straight_route_def_beh.png similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_def_beh.png rename to openfasoc/generators/gdsfactory-gen/glayout/docs/straight_route_def_beh.png diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/L_route_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/L_route_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/L_route_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/L_route_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/c_route_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/c_route_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/c_route_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/c_route_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/diff_pair_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/diff_pair_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/diff_pair_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/diff_pair_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_array_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/mimcap_array_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_array_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/mimcap_array_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/mimcap_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/mimcap_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/mimcap_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/multiplier_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/multiplier_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/multiplier_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/multiplier_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/nmos_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/nmos_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/nmos_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/nmos_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/opamp_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/opamp_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/opamp_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/pmos_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/pmos_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/pmos_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/pmos_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/straight_route_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/straight_route_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/straight_route_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/tapring_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/tapring_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/tapring_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/tapring_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/via_stack_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/via_stack_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/via_stack_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/via_stack_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/docs/viaarray_v1_tree.txt b/openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/viaarray_v1_tree.txt similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/docs/viaarray_v1_tree.txt rename to openfasoc/generators/gdsfactory-gen/glayout/docs/txt_port_trees/viaarray_v1_tree.txt diff --git a/openfasoc/generators/gdsfactory-gen/pygen/fet.py b/openfasoc/generators/gdsfactory-gen/glayout/fet.py similarity index 97% rename from openfasoc/generators/gdsfactory-gen/pygen/fet.py rename to openfasoc/generators/gdsfactory-gen/glayout/fet.py index f9a7814ae..057113b32 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/fet.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/fet.py @@ -2,17 +2,17 @@ from gdsfactory.cell import cell from gdsfactory.component import Component, copy from gdsfactory.components.rectangle import rectangle -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from typing import Optional, Union -from pygen.via_gen import via_array, via_stack -from pygen.guardring import tapring +from glayout.via_gen import via_array, via_stack +from glayout.guardring import tapring from pydantic import validate_arguments -from pygen.pdk.util.comp_utils import evaluate_bbox, to_float, to_decimal, prec_array, prec_center, prec_ref_center, movey, align_comp_to_port -from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports -from pygen.routing.c_route import c_route -from pygen.pdk.util.snap_to_grid import component_snap_to_grid +from glayout.pdk.util.comp_utils import evaluate_bbox, to_float, to_decimal, prec_array, prec_center, prec_ref_center, movey, align_comp_to_port +from glayout.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports +from glayout.routing.c_route import c_route +from glayout.pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal -from pygen.routing.straight_route import straight_route +from glayout.routing.straight_route import straight_route @validate_arguments diff --git a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py b/openfasoc/generators/gdsfactory-gen/glayout/guardring.py similarity index 93% rename from openfasoc/generators/gdsfactory-gen/pygen/guardring.py rename to openfasoc/generators/gdsfactory-gen/glayout/guardring.py index c73c2c97a..4a6c66d35 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/guardring.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/guardring.py @@ -1,14 +1,14 @@ -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from gdsfactory.components.rectangular_ring import rectangular_ring -from pygen.via_gen import via_array, via_stack +from glayout.via_gen import via_array, via_stack from typing import Optional -from pygen.pdk.util.comp_utils import to_decimal, to_float, evaluate_bbox -from pygen.pdk.util.port_utils import print_ports -from pygen.pdk.util.snap_to_grid import component_snap_to_grid -from pygen.routing.L_route import L_route +from glayout.pdk.util.comp_utils import to_decimal, to_float, evaluate_bbox +from glayout.pdk.util.port_utils import print_ports +from glayout.pdk.util.snap_to_grid import component_snap_to_grid +from glayout.routing.L_route import L_route @cell diff --git a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py b/openfasoc/generators/gdsfactory-gen/glayout/mimcap.py similarity index 92% rename from openfasoc/generators/gdsfactory-gen/pygen/mimcap.py rename to openfasoc/generators/gdsfactory-gen/glayout/mimcap.py index ede466175..c47edd22a 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/mimcap.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/mimcap.py @@ -1,13 +1,13 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from typing import Optional -from pygen.via_gen import via_array -from pygen.pdk.util.comp_utils import prec_array, to_decimal, to_float -from pygen.pdk.util.port_utils import rename_ports_by_orientation, add_ports_perimeter, print_ports +from glayout.via_gen import via_array +from glayout.pdk.util.comp_utils import prec_array, to_decimal, to_float +from glayout.pdk.util.port_utils import rename_ports_by_orientation, add_ports_perimeter, print_ports from pydantic import validate_arguments -from pygen.routing.straight_route import straight_route +from glayout.routing.straight_route import straight_route from decimal import ROUND_UP, Decimal diff --git a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py b/openfasoc/generators/gdsfactory-gen/glayout/opamp.py similarity index 97% rename from openfasoc/generators/gdsfactory-gen/pygen/opamp.py rename to openfasoc/generators/gdsfactory-gen/glayout/opamp.py index 64a26088b..4edbdb972 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/opamp.py @@ -2,22 +2,22 @@ from gdsfactory.component import Component, copy from gdsfactory.component_reference import ComponentReference from gdsfactory.components.rectangle import rectangle -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from typing import Optional, Union -from pygen.fet import nmos, pmos, multiplier -from pygen.diff_pair import diff_pair -from pygen.guardring import tapring -from pygen.mimcap import mimcap_array, mimcap -from pygen.routing.L_route import L_route -from pygen.routing.c_route import c_route -from pygen.via_gen import via_stack, via_array +from glayout.fet import nmos, pmos, multiplier +from glayout.diff_pair import diff_pair +from glayout.guardring import tapring +from glayout.mimcap import mimcap_array, mimcap +from glayout.routing.L_route import L_route +from glayout.routing.c_route import c_route +from glayout.via_gen import via_stack, via_array from gdsfactory.routing.route_quad import route_quad -from pygen.pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port, get_padding_points_cc -from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation, rename_component_ports -from pygen.routing.straight_route import straight_route -from pygen.pdk.util.snap_to_grid import component_snap_to_grid +from glayout.pdk.util.comp_utils import evaluate_bbox, prec_ref_center, movex, movey, to_decimal, to_float, move, align_comp_to_port, get_padding_points_cc +from glayout.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, add_ports_perimeter, print_ports, set_port_orientation, rename_component_ports +from glayout.routing.straight_route import straight_route +from glayout.pdk.util.snap_to_grid import component_snap_to_grid from pydantic import validate_arguments -from pygen.common.two_transistor_interdigitized import two_nfet_interdigitized +from glayout.common.two_transistor_interdigitized import two_nfet_interdigitized diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/__init__.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/__init__.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/__init__.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/__init__.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/__init__.py similarity index 55% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/__init__.py index 14bcbfe69..20dc68d90 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/__init__.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/__init__.py @@ -2,4 +2,4 @@ Usage at the package level: from pdk.gf180_mapped import gf180_mapped_pdk """ -from pygen.pdk.gf180_mapped.gf180_mapped import gf180_mapped_pdk +from glayout.pdk.gf180_mapped.gf180_mapped import gf180_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/gf180_mapped.py similarity index 93% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/gf180_mapped.py index b619485a0..e4cab6e41 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180_mapped.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/gf180_mapped.py @@ -3,8 +3,8 @@ """ from gf180.layers import LAYER # , LAYER_VIEWS -from .gf180_mapped.grules import grulesobj -from .mappedpdk import MappedPDK +from ..gf180_mapped.grules import grulesobj +from ..mappedpdk import MappedPDK from pathlib import Path LAYER = LAYER.dict() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu.drc b/openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/gf180mcu.drc similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu.drc rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/gf180mcu.drc diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu_drc.lydrc b/openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/gf180mcu_drc.lydrc similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/gf180mcu_drc.lydrc rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/gf180mcu_drc.lydrc diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/grules.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/gf180_mapped/grules.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/gf180_mapped/grules.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/mappedpdk.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/mappedpdk.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/mappedpdk.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/__init__.py similarity index 54% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/__init__.py index 0f72494e1..ac744c839 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/__init__.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/__init__.py @@ -2,4 +2,4 @@ Usage at the package level: from pdk.sky130_mapped import sky130_mapped_pdk """ -from pygen.pdk.sky130_mapped.sky130_mapped import sky130_mapped_pdk +from glayout.pdk.sky130_mapped.sky130_mapped import sky130_mapped_pdk diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/grules.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/grules.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/grules.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130.lydrc b/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130.lydrc similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130.lydrc rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130.lydrc diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130_add_npc.py similarity index 61% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130_add_npc.py index be1a7a327..04d411181 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_add_npc.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130_add_npc.py @@ -3,42 +3,6 @@ from gdsfactory.geometry.boolean import boolean -# slightly slower version -#def sky130_add_npc(comp: Component) -> Component: -# licon_comp = comp.extract(layers=[(66,44)]) -# poly_comp = comp.extract(layers=[(66,20)]) -# if len(licon_comp.get_polygons()) < 2 and len(poly_comp.get_polygons()) < 2: -# return comp -# liconANDpoly = boolean(licon_comp, poly_comp, layer=(1,2), operation="and") -# licon_polygons = liconANDpoly.get_polygons(as_array=False) -# # iterate through all licon and create extra space top right / extra space bottom left -# npc_toprightextra = Component() -# npc_bottomleftextra = Component() -# for licon_polygon in licon_polygons: -# bbox = licon_polygon.bounding_box() -# licon_polygonxmin = bbox[0][0] -# licon_polygonymin = bbox[0][1] -# licon_polygonxmax = bbox[1][0] -# licon_polygonymax = bbox[1][1] -# padding_points_toprightextra = [ -# [licon_polygonxmin - 0.1, licon_polygonymin - 0.1], -# [licon_polygonxmax + 0.37, licon_polygonymin - 0.1], -# [licon_polygonxmax + 0.37, licon_polygonymax + 0.37], -# [licon_polygonxmin - 0.1, licon_polygonymax + 0.37], -# ] -# padding_points_bottomleftextra = [ -# [licon_polygonxmin - 0.37, licon_polygonymin - 0.37], -# [licon_polygonxmax + 0.1, licon_polygonymin - 0.37], -# [licon_polygonxmax + 0.1, licon_polygonymax + 0.1], -# [licon_polygonxmin - 0.37, licon_polygonymax + 0.1], -# ] -# npc_toprightextra._add(Polygon(padding_points_toprightextra, layer=(1,3))) -# npc_bottomleftextra._add(Polygon(padding_points_bottomleftextra, layer=(1,3))) -# # the npc layer (correctly merged is the combination of both this layers AND) -# NPCcomp = boolean(npc_toprightextra, npc_bottomleftextra, layer=(95,20), operation="and") -# comp.add(NPCcomp.get_polygons(as_array=False)) -# return comp - def sky130_add_npc(comp: Component) -> Component: """To keep with the generic generator structure, we do NOT add nitride poly cut layer in the generic generators (npc is specfic to sky130). diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130_mapped.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/sky130_mapped/sky130_mapped.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/sky130_mapped/sky130_mapped.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/__init__.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/__init__.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/util/__init__.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/util/__init__.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py similarity index 99% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py index 49b4e25d9..0b00dedc7 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py @@ -7,7 +7,7 @@ from decimal import Decimal from gdsfactory.functions import transformed from gdsfactory.functions import move as __gf_move -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK @validate_arguments diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/opamp_array_create.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/util/opamp_array_create.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/util/opamp_array_create.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py similarity index 94% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py index 2383e62b4..b7ee6259b 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py @@ -229,7 +229,7 @@ def print_ports(custom_comp: Union[Component, ComponentReference], names_only: O class PortTree: - """PortTree helps a pygen programmer visualize the ports in a component + """PortTree helps a glayout programmer visualize the ports in a component \"_\" should represent a level of hiearchy (much like a directory). think of this like psuedo directories Initialize a PortTree from a Component or ComponentReference then use self.ls to list all ports/subdirectories in a directory @@ -305,7 +305,7 @@ def print(self, savetofile: bool=True, default_opts: bool=True, depth: Optional[ args: depth = max depth to print. this is a kwarg but since it so common, it should be specfied from depth arg savetofile = saves print output to a txt file rather than printing to terminal (easier to view, but without nice formatting) - default_opts = bool=True results in using pygen recommended default print arguments + default_opts = bool=True results in using glayout recommended default print arguments kwargs -> kwargs are prettyprint options passed directly to prettyprint. ****NOTE: kwargs override all other options """ @@ -325,20 +325,20 @@ def print(self, savetofile: bool=True, default_opts: bool=True, depth: Optional[ def print_port_tree_all_cells() -> list: - """print the PortTree for most of the pygen cells and save as a text file. + """print the PortTree for most of the glayout cells and save as a text file. returns a list of components """ - from pygen.via_gen import via_stack, via_array - from pygen.opamp import opamp - from pygen.mimcap import mimcap - from pygen.mimcap import mimcap_array - from pygen.guardring import tapring - from pygen.fet import multiplier, nmos, pmos - from pygen.diff_pair import diff_pair - from pygen.routing.straight_route import straight_route - from pygen.routing.c_route import c_route - from pygen.routing.L_route import L_route - from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk + from glayout.via_gen import via_stack, via_array + from glayout.opamp import opamp + from glayout.mimcap import mimcap + from glayout.mimcap import mimcap_array + from glayout.guardring import tapring + from glayout.fet import multiplier, nmos, pmos + from glayout.diff_pair import diff_pair + from glayout.routing.straight_route import straight_route + from glayout.routing.c_route import c_route + from glayout.routing.L_route import L_route + from glayout.pdk.sky130_mapped import sky130_mapped_pdk as pdk from gdsfactory.port import Port print("saving via_stack, via_array, opamp, mimcap, mimcap_array, tapring, multiplier, nmos, pmos, diff_pair, straight_route, c_route, L_route Ports to txt files") celllist = list() @@ -359,7 +359,7 @@ def print_port_tree_all_cells() -> list: celllist.append(["c_route",c_route(pdk, psuedo_porta, psuedo_porta,extension=2)]) celllist.append(["opamp",opamp(pdk)]) for name, py_cell in celllist: - from pygen import __version__ as pygenvinfo - pygenv = str(pygenvinfo) - PortTree(py_cell,name=name).print(depth=5,outfile_name=name+"_v"+pygenv+"_tree.txt",default_orientation=True) + from glayout import __version__ as glayoutvinfo + glayoutv = str(glayoutvinfo) + PortTree(py_cell,name=name).print(depth=5,outfile_name=name+"_v"+glayoutv+"_tree.txt",default_orientation=True) return celllist diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/print_rules.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/util/print_rules.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/util/print_rules.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/snap_to_grid.py similarity index 100% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/util/snap_to_grid.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/util/snap_to_grid.py diff --git a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/standard_main.py similarity index 86% rename from openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py rename to openfasoc/generators/gdsfactory-gen/glayout/pdk/util/standard_main.py index 4dde5d124..ad50dfd6d 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/pdk/util/standard_main.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/standard_main.py @@ -22,10 +22,10 @@ # WARNING: DO NOT CHANGE standard behavoir (importing sky130 by default) if args[0].pdk == "gf180": - from pygen.pdk.gf180_mapped import gf180_mapped_pdk + from glayout.pdk.gf180_mapped import gf180_mapped_pdk pdk = gf180_mapped_pdk else: #default to sky130 - from pygen.pdk.sky130_mapped import sky130_mapped_pdk + from glayout.pdk.sky130_mapped import sky130_mapped_pdk pdk = sky130_mapped_pdk pdk.activate() diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py b/openfasoc/generators/gdsfactory-gen/glayout/routing/L_route.py similarity index 91% rename from openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py rename to openfasoc/generators/gdsfactory-gen/glayout/routing/L_route.py index d3e1666c4..007a57e46 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/routing/L_route.py @@ -1,12 +1,12 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from typing import Optional, Union -from pygen.via_gen import via_stack, via_array +from glayout.via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from pygen.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port, to_decimal, to_float, prec_ref_center -from pygen.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_port_manhattan, assert_ports_perpindicular +from glayout.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port, to_decimal, to_float, prec_ref_center +from glayout.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_port_manhattan, assert_ports_perpindicular from decimal import Decimal @@ -109,7 +109,7 @@ def L_route( if __name__ == "__main__": - from pygen.pdk.util.standard_main import pdk + from glayout.pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met1"),size=(1,1)).ref() routebetweentop.movey(-4).movex(7) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py b/openfasoc/generators/gdsfactory-gen/glayout/routing/c_route.py similarity index 96% rename from openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py rename to openfasoc/generators/gdsfactory-gen/glayout/routing/c_route.py index 837f24e67..1fd57f319 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/routing/c_route.py @@ -1,14 +1,14 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from typing import Optional, Union from math import isclose -from pygen.via_gen import via_stack +from glayout.via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from pygen.pdk.util.comp_utils import evaluate_bbox -from pygen.pdk.util.port_utils import add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_port_orientation, get_orientation +from glayout.pdk.util.comp_utils import evaluate_bbox +from glayout.pdk.util.port_utils import add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_port_orientation, get_orientation from pydantic import validate_arguments @@ -196,7 +196,7 @@ def c_route( return rename_ports_by_orientation(rename_ports_by_list(croute.flatten(), [("con_","con_")])) if __name__ == "__main__": - from pygen.pdk.util.standard_main import pdk + from glayout.pdk.util.standard_main import pdk routebetweentop = copy(rectangle(layer=pdk.get_glayer("met1"))).ref() routebetweentop.movey(10) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py b/openfasoc/generators/gdsfactory-gen/glayout/routing/straight_route.py similarity index 93% rename from openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py rename to openfasoc/generators/gdsfactory-gen/glayout/routing/straight_route.py index ced58706b..3fadfc44d 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/routing/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/routing/straight_route.py @@ -4,12 +4,12 @@ from gdsfactory.cell import cell from gdsfactory.component import Component from gdsfactory.port import Port -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from typing import Optional -from pygen.via_gen import via_stack, via_array +from glayout.via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle -from pygen.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port -from pygen.pdk.util.port_utils import assert_port_manhattan, set_port_orientation +from glayout.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port +from glayout.pdk.util.port_utils import assert_port_manhattan, set_port_orientation @cell @@ -113,7 +113,7 @@ def straight_route( if __name__ == "__main__": - from pygen.pdk.util.standard_main import pdk + from glayout.pdk.util.standard_main import pdk routebetweentop = rectangle(layer=pdk.get_glayer("met3"),size=(1,1)).ref() routebetweentop.movex(20) diff --git a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py b/openfasoc/generators/gdsfactory-gen/glayout/via_gen.py similarity index 98% rename from openfasoc/generators/gdsfactory-gen/pygen/via_gen.py rename to openfasoc/generators/gdsfactory-gen/glayout/via_gen.py index bc54c56c3..ce4feca49 100644 --- a/openfasoc/generators/gdsfactory-gen/pygen/via_gen.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/via_gen.py @@ -2,12 +2,12 @@ from gdsfactory.component import Component from gdsfactory.components.rectangle import rectangle from pydantic import validate_arguments -from pygen.pdk.mappedpdk import MappedPDK +from glayout.pdk.mappedpdk import MappedPDK from math import floor from typing import Optional, Union -from pygen.pdk.util.comp_utils import evaluate_bbox, prec_array, to_float, move, prec_ref_center, to_decimal -from pygen.pdk.util.port_utils import rename_ports_by_orientation, print_ports -from pygen.pdk.util.snap_to_grid import component_snap_to_grid +from glayout.pdk.util.comp_utils import evaluate_bbox, prec_array, to_float, move, prec_ref_center, to_decimal +from glayout.pdk.util.port_utils import rename_ports_by_orientation, print_ports +from glayout.pdk.util.snap_to_grid import component_snap_to_grid from decimal import Decimal from typing import Literal diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md index 91ad28849..35cf4a510 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/README.md @@ -1,10 +1,14 @@ # sky130 NIST Tapeout Macros This directory contains the `sky130_nist_tapeout.py` file which is a python program containing all functions and utils neccessary to produce the circuits, simulation info, and statistics used in the sky130 NIST tapeout. -`sky130_nist_tapeout.py` has a command line interface. use the `-h` option to see all args for this program. help output is replicated below +`sky130_nist_tapeout.py` has a command line interface. use the `-h` option to see all args for this program. help output is replicated below. + +## NOTE +Before using `sky130_nist_tapeout.py` file you should set env variable `PDK_ROOT` to the root directory of the sky130 pdk on your system. You should also change the pdk path in `opamp_perf_eval.sp` and `extract.bash`. ## general help ``` -usage: sky130_nist_tapeout.py [-h] {extract_stats,get_training_data,gen_opamp,test} ... +usage: sky130_nist_tapeout.py [-h] + {extract_stats,get_training_data,gen_opamp,test,create_opamp_matrix} ... sky130 nist tapeout sample, RL generation, and statistics utility. @@ -12,12 +16,14 @@ options: -h, --help show this help message and exit mode: - {extract_stats,get_training_data,gen_opamp,test} + {extract_stats,get_training_data,gen_opamp,test,create_opamp_matrix} extract_stats Run the extract_stats function. get_training_data Run the get_training_data function. - gen_opamp Run the gen_opamp function. optional parameters for transistors - are width,length,fingers,mults + gen_opamp Run the gen_opamp function. optional parameters for transistors are + width,length,fingers,mults test Test mode + create_opamp_matrix + create a matrix of opamps ``` ## extract_stats mode @@ -42,8 +48,8 @@ usage: sky130_nist_tapeout.py gen_opamp [-h] [--output_stage_params OUTPUT_STAGE_PARAMS OUTPUT_STAGE_PARAMS OUTPUT_STAGE_PARAMS] [--output_stage_bias OUTPUT_STAGE_BIAS OUTPUT_STAGE_BIAS OUTPUT_STAGE_BIAS] [--mim_cap_size MIM_CAP_SIZE MIM_CAP_SIZE] - [--mim_cap_rows MIM_CAP_ROWS] [--rmult RMULT] - [--add_pads] [--output_gds OUTPUT_GDS] + [--mim_cap_rows MIM_CAP_ROWS] [--rmult RMULT] [--add_pads] + [--output_gds OUTPUT_GDS] options: -h, --help show this help message and exit @@ -72,25 +78,29 @@ options: ## get_training_data mode ``` usage: sky130_nist_tapeout.py get_training_data [-h] [-t] [--temp TEMP] [--cload CLOAD] - [--noparasitics] [--nparray NPARRAY] - [--saverawsims] + [--noparasitics] [--nparray NPARRAY] [--saverawsims] + [--get_tset_len] [--output_second_stage] options: - -h, --help show this help message and exit - -t, --test-mode Set test_mode to True (default: False) - --temp TEMP Simulation temperature - --cload CLOAD run simulation with load capacitance units=pico Farads - --noparasitics specify that parasitics should be removed when simulating - --nparray NPARRAY overrides the test parameters and takes the ones you provide (file - path to .npy file) - --saverawsims specify that the raw simulation directories should be saved - (default saved under save_gds_by_index/...) + -h, --help show this help message and exit + -t, --test-mode Set test_mode to True (default: False) + --temp TEMP Simulation temperature + --cload CLOAD run simulation with load capacitance units=pico Farads + --noparasitics specify that parasitics should be removed when simulating + --nparray NPARRAY overrides the test parameters and takes the ones you provide (file path to .npy file). + MUST HAVE LEN > 1 + --saverawsims specify that the raw simulation directories should be saved (default saved + under save_gds_by_index/...) + --get_tset_len print the length of the default parameter set and quit + --output_second_stage + measure relevant sim metrics at the output of the second stage rather than + output of third stage ``` ## test mode ``` -usage: sky130_nist_tapeout.py test [-h] [--output_dir OUTPUT_DIR] [--temp TEMP] - [--cload CLOAD] [--noparasitics] +usage: sky130_nist_tapeout.py test [-h] [--output_dir OUTPUT_DIR] [--temp TEMP] [--cload CLOAD] + [--noparasitics] [--output_second_stage] options: -h, --help show this help message and exit @@ -99,4 +109,26 @@ options: --temp TEMP Simulation temperature --cload CLOAD run simulation with load capacitance units=pico Farads --noparasitics specify that parasitics should be removed when simulating + --output_second_stage + measure relevant sim metrics at the output of the second stage rather than + output of third stage +``` + +## create_opamp_matrix mode +``` +usage: sky130_nist_tapeout.py create_opamp_matrix [-h] [-p PARAMS] [-r RESULTS] + [--indices INDICES [INDICES ...]] + [--output_dir OUTPUT_DIR] + +options: + -h, --help show this help message and exit + -p PARAMS, --params PARAMS + File path for params (default: params.npy) + -r RESULTS, --results RESULTS + Optional File path for results + --indices INDICES [INDICES ...] + list of int indices to pick from the opamp param.npy and add to the matrix + (default: the entire params list) + --output_dir OUTPUT_DIR + Directory for output files (default: ./opampmatrix) ``` \ No newline at end of file diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash index 235c44160..baa3fc8cc 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/extract.bash @@ -3,9 +3,6 @@ # Actual export PDK_ROOT=/usr/bin/miniconda3/share/pdk/ -# Ryan -# export PDK_ROOT = /home/rw/work/open_pdks/sky130 - # args: # first arg = gds file to read # second arg = name of top cell in gds file to read diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py deleted file mode 100644 index 759ee814d..000000000 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/matrix_create.py +++ /dev/null @@ -1,51 +0,0 @@ -import numpy as np -import sys -# path to pygen -sys.path.append('../') -from sky130_nist_tapeout import sky130_opamp_add_pads, opamp_parameters_de_serializer, opamp_results_de_serializer -from pygen.opamp import opamp -from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk -from pathlib import Path -from pygen.pdk.util.opamp_array_create import write_opamp_matrix -from multiprocessing import Pool -from gdsfactory.cell import clear_cache -from pygen.pdk.util.snap_to_grid import component_snap_to_grid -from pygen.routing.L_route import L_route -from pygen.pdk.util.port_utils import add_ports_perimeter - -results= np.load("results.npy") -params = np.load("params.npy") - -#low_noise = params[[58,18,42]] -#low_pwr_high_FOM = params[[0,4,2,1]] -#high_BW = params[[10,27,31]] -#high_DCg = params[[59,9,33]] - - -def create_opamps(save_dir_name: str, indices: list): - pdk.cell_decorator_settings.cache=False - comps = list() - for index in indices: - # create opamp - comp = sky130_opamp_add_pads(opamp(pdk, **opamp_parameters_de_serializer(params[index])), flatten=False) - comp = component_snap_to_grid(comp) - comp.name = "opamp_" + str(index) - # append to list - comps.append(comp) - clear_cache() - with open(save_dir_name+".txt","a") as resfile: - strtowrite = "\n-------------------------\nopamp_"+str(index) - strtowrite += "\nparams = " + str(opamp_parameters_de_serializer(params[index])) - strtowrite += "\n\nresults = " + str(opamp_results_de_serializer(results[index])) - strtowrite += "\n\n\n" - resfile.write(strtowrite) - write_opamp_matrix(comps, write_name = save_dir_name + ".gds", xspace=600) - - -listnames = ["low_noise","low_pwr_high_FOM","high_BW","high_DCg"] -listindices = [[58,18,42],[0,4,2,1],[10,27,31],[59,9,33]] - -for name, indices in zip(listnames,listindices): - create_opamps(name, indices) - clear_cache() - diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp index 22b29386e..e665906de 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/opamp_perf_eval.sp @@ -30,8 +30,7 @@ Ibiaso VDD biason {bo} ** Import SKY130 libs (this should be replaced with a path relative to some env variable) * the ones with double * will not be used. The one with only 1 * will be used -** Ryan -** .lib /home/rw/work/open_pdks/sky130/sky130A/libs.tech/ngspice/sky130.lib.spice tt +** example not used **@@stp .include /home/rw/work/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice ** GCP machine diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_mpw5_pad.gds b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/pads/sky130_mpw5_pad.gds similarity index 100% rename from openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_mpw5_pad.gds rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/pads/sky130_mpw5_pad.gds diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nano_pad.gds b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/pads/sky130_nano_pad.gds similarity index 100% rename from openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nano_pad.gds rename to openfasoc/generators/gdsfactory-gen/tapeout_and_RL/pads/sky130_nano_pad.gds diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 5b6662f25..58d202177 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -1,23 +1,23 @@ import sys -# path to pygen +# path to glayout sys.path.append('../') from gdsfactory.read.import_gds import import_gds from gdsfactory.components import text_freetype, rectangle -from pygen.pdk.util.comp_utils import prec_array, movey, align_comp_to_port, prec_ref_center -from pygen.pdk.util.port_utils import add_ports_perimeter, print_ports +from glayout.pdk.util.comp_utils import prec_array, movey, align_comp_to_port, prec_ref_center +from glayout.pdk.util.port_utils import add_ports_perimeter, print_ports from gdsfactory.component import Component -from pygen.pdk.mappedpdk import MappedPDK -from pygen.opamp import opamp -from pygen.routing.L_route import L_route -from pygen.routing.straight_route import straight_route -from pygen.routing.c_route import c_route -from pygen.via_gen import via_array +from glayout.pdk.mappedpdk import MappedPDK +from glayout.opamp import opamp +from glayout.routing.L_route import L_route +from glayout.routing.straight_route import straight_route +from glayout.routing.c_route import c_route +from glayout.via_gen import via_array from gdsfactory.cell import cell, clear_cache import numpy as np from subprocess import Popen from pathlib import Path -from typing import Union, Optional, Literal +from typing import Union, Optional, Literal, Iterable from tempfile import TemporaryDirectory from shutil import copyfile, copytree from multiprocessing import Pool @@ -31,8 +31,10 @@ from sklearn.cluster import KMeans, AgglomerativeClustering from sklearn.metrics import silhouette_score import argparse -from pygen.pdk.sky130_mapped import sky130_mapped_pdk as pdk +from glayout.pdk.sky130_mapped import sky130_mapped_pdk as pdk from itertools import count, repeat +from glayout.pdk.util.snap_to_grid import component_snap_to_grid +from glayout.pdk.util.opamp_array_create import write_opamp_matrix global _GET_PARAM_SET_LENGTH_ @@ -52,7 +54,7 @@ def sky130_opamp_add_pads(opamp_in: Component, flatten=False) -> Component: opamp_wpads = opamp_in.copy() opamp_wpads = movey(opamp_wpads, destination=0) # create pad array and add to opamp - pad = import_gds("sky130_mpw5_pad.gds") + pad = import_gds("pads/sky130_mpw5_pad.gds") pad.name = "mpw5pad" pad = add_ports_perimeter(pad, pdk.get_glayer("met4"),prefix="pad_") pad_array = prec_array(pad, rows=2, columns=(4+1), spacing=(40,120)) @@ -86,7 +88,7 @@ def sky130_opamp_add_pads(opamp_in: Component, flatten=False) -> Component: pin_ref = opamp_wpads << text_pin_labels[4*row + col_u] align_comp_to_port(pin_ref,pad_array_port,alignment=('c','t')) # import nano pad and add to opamp - nanopad = import_gds("sky130_nano_pad.gds") + nanopad = import_gds("pads/sky130_nano_pad.gds") nanopad.name = "nanopad" nanopad = add_ports_perimeter(nanopad, pdk.get_glayer("met4"),prefix="nanopad_") nanopad_array = prec_array(nanopad, rows=2, columns=2, spacing=(10,10)) @@ -561,7 +563,7 @@ def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: saves opamp gds in current directory with name 12345678987654321.gds returns -987.654321 for all values IF phase margin < 45 """ - from pygen.pdk.sky130_mapped import sky130_mapped_pdk + from glayout.pdk.sky130_mapped import sky130_mapped_pdk # process temperature info temperature_info = [temp, None] if temperature_info[0] > -20: @@ -585,7 +587,11 @@ def single_build_and_simulation(parameters: np.array, temp: int=25, output_dir: return results -#======stats======= + + +# ================ stats ================== + + @@ -951,6 +957,51 @@ def extract_stats( +# ================ create opamp matrix ================== + + + +def create_opamp_matrix(save_dir_name: str, params: np.array, results: Optional[np.array] = None, indices: Optional[list]=None): + """create opamps with pads from the np array of opamp parameters + args: + save_dir_name = name of directory to save gds array and text description into + params = 2d list-like container (list, np.array, tuple, etc.) where each row is in the same form as opamp_parameters_serializer + results = (Optional) 2d list-like container (list, np.array, tuple, etc.) where each row is in the same form as opamp_results_serializer + ****NOTE: if results is not specfied, the stats.txt will not list the sim results for each opamp + indices = (Optional) an iterable of integers where each integer represent an index into the params and results lists + """ + # arg setup + current_setting = pdk.cell_decorator_settings.cache + pdk.cell_decorator_settings.cache = False + comps = list() + if indices is None: + indices = range(len(params)) + # dir setup + save_dir = Path(save_dir_name).resolve() + save_dir.mkdir(parents=True,exist_ok=True) + # run opamps + for index in indices: + # create opamp + comp = sky130_opamp_add_pads(opamp(pdk, **opamp_parameters_de_serializer(params[index])), flatten=False) + comp = component_snap_to_grid(comp) + comp.name = "opamp_" + str(index) + # append to list + comps.append(comp) + clear_cache() + with open(str(save_dir)+"/stats.txt","a") as resfile: + strtowrite = "\n-------------------------\nopamp_"+str(index) + strtowrite += "\nparams = " + str(opamp_parameters_de_serializer(params[index])) + if results is not None: + strtowrite += "\n\nresults = " + str(opamp_results_de_serializer(results[index])) + strtowrite += "\n\n\n" + resfile.write(strtowrite) + write_opamp_matrix(comps, write_name = str(save_dir) + "/opamp_matrix.gds", xspace=600) + pdk.cell_decorator_settings.cache = current_setting + + + + + if __name__ == "__main__": import time start_watch = time.time() @@ -988,7 +1039,7 @@ def extract_stats( gen_opamp_parser.add_argument("--add_pads",action="store_true" , help="add pads (gen_opamp mode only)") gen_opamp_parser.add_argument("--output_gds", help="Filename for outputing opamp (gen_opamp mode only)") - # Testing + # subparse for testing mode (create opamp and run sims) test = subparsers.add_parser("test", help="Test mode") test.add_argument("--output_dir", type=Path, default="./", help="Directory for output GDS file") test.add_argument("--temp", type=int, default=int(25), help="Simulation temperature") @@ -998,15 +1049,10 @@ def extract_stats( # Subparser for create_opamp_matrix mode create_opamp_matrix_parser = subparsers.add_parser("create_opamp_matrix", help="create a matrix of opamps") - create_opamp_matrix_parser.add_argument("-p", "--params", default="training_params.npy", help="File path for params (default: training_params.npy)") - create_opamp_matrix_parser.add_argument("-r", "--results", default="training_results.npy", help="File path for results (default: training_results.npy)") - specfilehelp = "File path for a specfile. The specfile is a txt file where each line represents indices to extract. " - specfilehelp += "The first word in each line is taken as a name (everything before the first space). " - specfilehelp += "Everything after the first space should be a list of integer indices. The list should be space seperated (with no chars denoting start or end). " - specfilehelp += "Only place a new line at the end of the list. Lines are read as a single spec. " - specfilehelp += "Leaving this field empty indicates all opamps should be placed in the array. " - create_opamp_matrix_parser.add_argument("--specfile", type=Path, help=specfilehelp) - create_opamp_matrix_parser.add_argument("--opamp_dir",default="./save_gds_by_index",help="optionally point to a directory, program looks for 'index'.gds") + create_opamp_matrix_parser.add_argument("-p", "--params", default="params.npy", help="File path for params (default: params.npy)") + create_opamp_matrix_parser.add_argument("-r", "--results", help="Optional File path for results") + create_opamp_matrix_parser.add_argument("--indices", type=int, nargs="+", help="list of int indices to pick from the opamp param.npy and add to the matrix (default: the entire params list)") + create_opamp_matrix_parser.add_argument("--output_dir", type=Path, default="./opampmatrix", help="Directory for output files (default: ./opampmatrix)") args = parser.parse_args() @@ -1079,7 +1125,16 @@ def extract_stats( print(results) elif args.mode =="create_opamp_matrix": - raise NotImplementedError("create_opamp_matrix mode is not yet implemented") + params = Path(args.params).resolve() + params = np.load(str(params)) + results = Path(args.results).resolve() if args.results else None + results = np.load(str(results)) if results else None + if args.indices is not None: + indices = args.indices if isinstance(args.indices, Iterable) else [args.indices] + else: + indices = None + create_opamp_matrix(args.output_dir,params,results,indices) + end_watch = time.time() print("\ntotal runtime was "+str((end_watch-start_watch)/3600) + " hours\n") From 78f9cf564c58b316e6584e7f62107c5062966a0f Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Sat, 16 Sep 2023 21:07:06 -0400 Subject: [PATCH 63/64] simple opamps generator --- .../tapeout_and_RL/pads/pad_60um_flat.gds | Bin 0 -> 686108 bytes .../tapeout_and_RL/sky130_nist_tapeout.py | 30 +++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 openfasoc/generators/gdsfactory-gen/tapeout_and_RL/pads/pad_60um_flat.gds diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/pads/pad_60um_flat.gds b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/pads/pad_60um_flat.gds new file mode 100644 index 0000000000000000000000000000000000000000..29ff959fb5f616c92c88ac7aaaf9fb444f95ced7 GIT binary patch literal 686108 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 literal 0 HcmV?d00001 diff --git a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py index 58d202177..0d66b8cf6 100644 --- a/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py +++ b/openfasoc/generators/gdsfactory-gen/tapeout_and_RL/sky130_nist_tapeout.py @@ -54,10 +54,10 @@ def sky130_opamp_add_pads(opamp_in: Component, flatten=False) -> Component: opamp_wpads = opamp_in.copy() opamp_wpads = movey(opamp_wpads, destination=0) # create pad array and add to opamp - pad = import_gds("pads/sky130_mpw5_pad.gds") - pad.name = "mpw5pad" + pad = import_gds("pads/pad_60um_flat.gds") + pad.name = "NISTpad" pad = add_ports_perimeter(pad, pdk.get_glayer("met4"),prefix="pad_") - pad_array = prec_array(pad, rows=2, columns=(4+1), spacing=(40,120)) + pad_array = prec_array(pad, rows=2, columns=(4+1), spacing=(20,120)) pad_array_ref = prec_ref_center(pad_array) opamp_wpads.add(pad_array_ref) # add via_array to vdd pin @@ -102,7 +102,7 @@ def sky130_opamp_add_pads(opamp_in: Component, flatten=False) -> Component: opamp_wpads << straight_route(pdk, nanopad_array_ref.ports["row1_col1_nanopad_E"],pad_array_ref.ports["row1_col1_pad_S"],width=3) # add the extra pad for the CS output cspadref = opamp_wpads << pad - cspadref.movex(240).movey(80) + cspadref.movex(240).movey(90) opamp_wpads << L_route(pdk, cspadref.ports["pad_S"], opamp_wpads.ports["commonsource_output_E"],hwidth=3, hglayer="met5",vglayer="met5") #opamp_wpads << nanopad if flatten: @@ -1039,6 +1039,10 @@ def create_opamp_matrix(save_dir_name: str, params: np.array, results: Optional[ gen_opamp_parser.add_argument("--add_pads",action="store_true" , help="add pads (gen_opamp mode only)") gen_opamp_parser.add_argument("--output_gds", help="Filename for outputing opamp (gen_opamp mode only)") + # subparser for gen_opamps mode + gen_opamps_parser = subparsers.add_parser("gen_opamps", help="generates the opamps returned in the small parameters list but only saves GDS and does not add pads. always outputs to ./outputrawopamps") + gen_opamps_parser.add_argument("--pdk", help="specify sky130 or gf180 pdk") + # subparse for testing mode (create opamp and run sims) test = subparsers.add_parser("test", help="Test mode") test.add_argument("--output_dir", type=Path, default="./", help="Directory for output GDS file") @@ -1136,5 +1140,23 @@ def create_opamp_matrix(save_dir_name: str, params: np.array, results: Optional[ create_opamp_matrix(args.output_dir,params,results,indices) + elif args.mode == "gen_opamps": + global usepdk + if args.pdk[0].lower()=="g": + from glayout.pdk.gf180_mapped import gf180_mapped_pdk + usepdk = gf180_mapped_pdk + else: + usepdk = pdk + output_path = Path("./outputrawopamps").resolve() + output_path.mkdir() + def create_func(argnparray, indx: int): + global usepdk + comp = opamp(usepdk,**opamp_parameters_de_serializer(argnparray)) + comp.write_gds("./outputrawopamps/amp"+str(indx)+".gds") + + argnparray = get_small_parameter_list() + with Pool(120) as cores: + cores.starmap(create_func, zip(argnparray,count(0))) + end_watch = time.time() print("\ntotal runtime was "+str((end_watch-start_watch)/3600) + " hours\n") From 2ed19ddc03819078762413462bfc17ba13f1996a Mon Sep 17 00:00:00 2001 From: labtob <70279295+alibillalhammoud@users.noreply.github.com> Date: Sun, 24 Sep 2023 17:18:00 -0400 Subject: [PATCH 64/64] gdsfactory v7.7 --- .../gdsfactory-gen/glayout/opamp.py | 8 ++-- .../glayout/pdk/util/comp_utils.py | 19 ++++++++- .../glayout/pdk/util/port_utils.py | 28 +++++++------ .../glayout/pdk/util/snap_to_grid.py | 35 +++------------- .../gdsfactory-gen/glayout/routing/L_route.py | 11 +++-- .../gdsfactory-gen/glayout/routing/c_route.py | 42 +++++++++++-------- .../glayout/routing/straight_route.py | 13 +++--- .../gdsfactory-gen/requirements.txt | 1 - 8 files changed, 80 insertions(+), 77 deletions(-) diff --git a/openfasoc/generators/gdsfactory-gen/glayout/opamp.py b/openfasoc/generators/gdsfactory-gen/glayout/opamp.py index 4edbdb972..4660e09dc 100644 --- a/openfasoc/generators/gdsfactory-gen/glayout/opamp.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/opamp.py @@ -178,7 +178,7 @@ def __create_sharedgatecomps(pdk: MappedPDK, rmult: int) -> tuple: pdk, "p+s/d", width=6, length=1, fingers=4, dummy=False, rmult=rmult ) # TODO: figure out single dim spacing rule then delete both test delete and this - single_dim = to_decimal(relative_dim_comp.xmax) + to_decimal(0.1) + single_dim = to_decimal(relative_dim_comp.xmax) + to_decimal(0.11) LRplusdopedPorts = list() LRgatePorts = list() LRdrainsPorts = list() @@ -200,7 +200,7 @@ def __create_sharedgatecomps(pdk: MappedPDK, rmult: int) -> tuple: extra_t = single_dim else: pcenterfourunits = relative_dim_comp - pref_ = (shared_gate_comps << pcenterfourunits).movex(to_float(i * single_dim + extra_t)) + pref_ = (shared_gate_comps << pcenterfourunits).movex(pdk.snap_to_2xgrid(to_float(i * single_dim + extra_t))) LRplusdopedPorts += [pref_.ports["plusdoped_W"] , pref_.ports["plusdoped_E"]] LRgatePorts += [pref_.ports["gate_W"],pref_.ports["gate_E"]] LRdrainsPorts += [pref_.ports["source_W"],pref_.ports["source_E"]] @@ -227,7 +227,7 @@ def __route_sharedgatecomps(pdk: MappedPDK, shared_gate_comps, via_location, pto shared_gate_comps.add_ports(ptop_AB.get_ports_list(),prefix="ptopAB_") shared_gate_comps.add_ports(pbottom_AB.get_ports_list(),prefix="pbottomAB_") # short all gates of shared_gate_comps - pcenter_gate_route_extension = shared_gate_comps.xmax - min(ptop_AB.ports["R_gate_E"].center[0], LRgatePorts[-1].center[0]) - pdk.get_grule("active_diff")["min_width"] + pcenter_gate_route_extension = pdk.snap_to_2xgrid(shared_gate_comps.xmax - min(ptop_AB.ports["R_gate_E"].center[0], LRgatePorts[-1].center[0]) - pdk.get_grule("active_diff")["min_width"]) pcenter_l_croute = shared_gate_comps << c_route(pdk, ptop_AB.ports["L_gate_W"], pbottom_AB.ports["L_gate_W"],extension=pcenter_gate_route_extension) pcenter_r_croute = shared_gate_comps << c_route(pdk, ptop_AB.ports["R_gate_E"], pbottom_AB.ports["R_gate_E"],extension=pcenter_gate_route_extension) shared_gate_comps << straight_route(pdk, LRgatePorts[0], pcenter_l_croute.ports["con_N"]) @@ -512,7 +512,7 @@ def opamp( opamp_top.add_padding(layers=(pdk.get_glayer("pwell"),),default=0) # add ground pin gndpin = opamp_top << rectangle(size=(5,3),layer=pdk.get_glayer("met4"),centered=True) - gndpin.movey(opamp_top.ymin-pdk.util_max_metal_seperation()-gndpin.ymax) + gndpin.movey(pdk.snap_to_2xgrid(opamp_top.ymin-pdk.util_max_metal_seperation()-gndpin.ymax)) # route bottom ncomps except drain of nbias (still need to place common source pmos amp) clear_cache() opamp_top, halfmultn_drain_routeref, halfmultn_gate_routeref, _cref = __route_bottom_ncomps_except_drain_nbias(pdk, opamp_top, gndpin, half_common_source_bias[3]) diff --git a/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py index 0b00dedc7..6905fec6d 100644 --- a/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/comp_utils.py @@ -8,6 +8,8 @@ from gdsfactory.functions import transformed from gdsfactory.functions import move as __gf_move from glayout.pdk.mappedpdk import MappedPDK +from gdstk import rectangle as primitive_rectangle +from .port_utils import add_ports_perimeter, rename_ports_by_list @validate_arguments @@ -288,4 +290,19 @@ def get_padding_points_cc( if pdk_for_snap2xgrid is not None: for i, ppoint in enumerate(ppoints): ppoints[i] = pdk_for_snap2xgrid.snap_to_2xgrid(ppoint) - return ppoints \ No newline at end of file + return ppoints + + + +def get_primitive_rectangle(size: tuple[float,float]=(5,3), layer: tuple[int,int]=(0,0)): + """creates a rectangle component which snaps point to grid (does not snap to 2x grid) + has same behavoir as gdsfactory.components.rectangle but doesnt allow centering (would snap to grid) + """ + temprect = Component() + temprect.add_polygon(primitive_rectangle((0,0),size,*layer)) + temprect = rename_ports_by_list(add_ports_perimeter(temprect,layer=layer,prefix="route_"),[("W","e1"),("N","e2"),("E","e3"),("S","e4")]) + #rect = Component() + #clogic_ref = prec_ref_center(temprect) if centered else temprect.ref() + #rect.add(clogic_ref) + #rect.add_ports(clogic_ref.ports) + return temprect.flatten() diff --git a/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py index b7ee6259b..0ac9956cd 100644 --- a/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/port_utils.py @@ -74,18 +74,20 @@ def rename_ports_by_orientation(custom_comp: Component) -> Component: class rename_ports_by_list__call: - def __init__(self, replace_list: list[tuple[str,str]] = []): - self.replace_list = dict(replace_list) - self.replace_history = dict.fromkeys(self.replace_list.keys()) - for keyword in self.replace_history: - self.replace_history[keyword] = 0 - @validate_arguments - def __call__(self, old_name: str, pobj: Port) -> str: - for keyword, newname in self.replace_list.items(): - if keyword in old_name: - self.replace_history[keyword] += 1 - return newname + str(self.replace_history[keyword]) - return old_name + def __init__(self, replace_list: list[tuple[str,str]] = []): + self.replace_list = dict(replace_list) + self.replace_history = dict.fromkeys(self.replace_list.keys()) + for keyword in self.replace_history: + self.replace_history[keyword] = 0 + @validate_arguments + def __call__(self, old_name: str, pobj: Port) -> str: + for keyword, newname in self.replace_list.items(): + if keyword in old_name: + inst_id = self.replace_history[keyword] + replace_name = newname + str(inst_id if inst_id else "") + self.replace_history[keyword] += 1 + return replace_name + return old_name @validate_arguments def rename_ports_by_list(custom_comp: Component, replace_list: list[tuple[str,str]]) -> Component: @@ -121,7 +123,7 @@ def add_ports_perimeter(custom_comp: Component, layer: tuple[int, int], prefix: @validate_arguments -def get_orientation(orientation: Union[int,float,str], int_only: Optional[bool]=False) -> Union[float,int,str]: +def get_orientation(orientation: Union[int,float,str], int_only: bool=False) -> Union[float,int,str]: """returns the angle corresponding to port orientation orientation must contain N/n,E/e,S/s,W/w e.g. all the follwing are valid: diff --git a/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/snap_to_grid.py b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/snap_to_grid.py index 5f5983c22..a1464edc8 100644 --- a/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/snap_to_grid.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/pdk/util/snap_to_grid.py @@ -1,41 +1,18 @@ from gdsfactory.typings import Component from pydantic import validate_arguments -from typing import Optional, Union, Iterable, Literal -from gdsfactory.pdk import get_grid_size -from tempfile import TemporaryDirectory -from pathlib import Path -from gdsfactory.read.import_gds import import_gds -from decimal import Decimal, ROUND_UP -from gdsfactory.snap import snap_to_grid @validate_arguments -def component_snap_to_grid(comp: Component, nm: Optional[int]=None) -> Component: - """snaps all polygons in component to grid and correctly updates ports +def component_snap_to_grid(comp: Component) -> Component: + """snaps all polygons and ports in component to grid comp = the component to snap to grid NOTE this function will flatten the component - nm the grid to snap to, defaults to active pdk grid size""" - # flatten the component + """ + #return comp.flatten() + # flatten the component then copy (snaps polygons and ports to grid) name = comp.name - comp = comp.flatten() + comp = comp.flatten().copy() comp.name = name - # figure out nm - if nm is None: - nm = int(get_grid_size() * 1000) - elif nm == 0: - return comp - elif nm < 0: - raise ValueError("nm must be an integer tolerance value greater than zero") - # iterate through ports and snap to grid - comp.snap_ports_to_grid(nm=nm) - save_ports = comp.get_ports_list() - save_name = comp.name - with TemporaryDirectory() as tmpdirname: - tmp_gds_path = Path(comp.write_gds(gdsdir=tmpdirname)).resolve() - comp = import_gds(gdspath=tmp_gds_path) - comp.unlock() - comp.add_ports(save_ports) - comp.name = save_name return comp diff --git a/openfasoc/generators/gdsfactory-gen/glayout/routing/L_route.py b/openfasoc/generators/gdsfactory-gen/glayout/routing/L_route.py index 007a57e46..200c0e7c2 100644 --- a/openfasoc/generators/gdsfactory-gen/glayout/routing/L_route.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/routing/L_route.py @@ -4,8 +4,7 @@ from glayout.pdk.mappedpdk import MappedPDK from typing import Optional, Union from glayout.via_gen import via_stack, via_array -from gdsfactory.components.rectangle import rectangle -from glayout.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port, to_decimal, to_float, prec_ref_center +from glayout.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port, to_decimal, to_float, prec_ref_center, get_primitive_rectangle from glayout.pdk.util.port_utils import rename_ports_by_orientation, rename_ports_by_list, print_ports, assert_port_manhattan, assert_ports_perpindicular from decimal import Decimal @@ -74,8 +73,8 @@ def L_route( hdim = abs(hdim_center) + hwidth/2 vdim = abs(vdim_center) + vwidth/2 # create and place vertical and horizontal connections - hconnect = rectangle(size=to_float((hdim,vwidth)),layer=pdk.get_glayer(hglayer)) - vconnect = rectangle(size=to_float((hwidth,vdim)),layer=pdk.get_glayer(vglayer)) + hconnect = get_primitive_rectangle(size=to_float((hdim,vwidth)),layer=pdk.get_glayer(hglayer)) + vconnect = get_primitive_rectangle(size=to_float((hwidth,vdim)),layer=pdk.get_glayer(vglayer)) #xalign valign = ("l","c") if hdim_center > 0 else ("r","c") halign = ("c","b") if vdim_center > 0 else ("c","t") @@ -111,9 +110,9 @@ def L_route( if __name__ == "__main__": from glayout.pdk.util.standard_main import pdk - routebetweentop = rectangle(layer=pdk.get_glayer("met1"),size=(1,1)).ref() + routebetweentop = get_primitive_rectangle(layer=pdk.get_glayer("met1"),size=(1,1)).ref() routebetweentop.movey(-4).movex(7) - routebetweenbottom = rectangle(layer=pdk.get_glayer("met1"), size=(1, 0.5)) + routebetweenbottom = get_primitive_rectangle(layer=pdk.get_glayer("met1"), size=(1, 0.5)) mycomp = L_route(pdk,routebetweentop.ports["e4"],routebetweenbottom.ports["e1"]) mycomp.unlock() mycomp.add(routebetweentop) diff --git a/openfasoc/generators/gdsfactory-gen/glayout/routing/c_route.py b/openfasoc/generators/gdsfactory-gen/glayout/routing/c_route.py index 1fd57f319..084125715 100644 --- a/openfasoc/generators/gdsfactory-gen/glayout/routing/c_route.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/routing/c_route.py @@ -7,9 +7,10 @@ from glayout.via_gen import via_stack from gdsfactory.routing.route_quad import route_quad from gdsfactory.components.rectangle import rectangle -from glayout.pdk.util.comp_utils import evaluate_bbox +from glayout.pdk.util.comp_utils import evaluate_bbox, get_primitive_rectangle from glayout.pdk.util.port_utils import add_ports_perimeter, rename_ports_by_orientation, rename_ports_by_list, print_ports, set_port_width, set_port_orientation, get_orientation from pydantic import validate_arguments +from gdsfactory.snap import snap_to_grid @validate_arguments @@ -56,6 +57,7 @@ def c_route( - None means center (no offset) ****NOTE: viaoffset pushes both vias towards each other slightly """ + extension = snap_to_grid(extension) # error checking and figure out args if round(edge1.orientation) % 90 or round(edge2.orientation) % 90: raise ValueError("Ports must be vertical or horizontal") @@ -79,16 +81,16 @@ def c_route( viastack1 = via_stack(pdk,e1glayer,cglayer,fullbottom=fullbottom,assume_bottom_via=True) viastack2 = via_stack(pdk,e2glayer,cglayer,fullbottom=fullbottom,assume_bottom_via=True) if e1glayer == e2glayer: - __fill_empty_viastack__macro(pdk,e1glayer,size=(width1,width2)) + pass elif e1glayer == cglayer: viastack1 = __fill_empty_viastack__macro(pdk,e1glayer,size=evaluate_bbox(viastack2)) elif e2glayer == cglayer: viastack2 = __fill_empty_viastack__macro(pdk,e2glayer,size=evaluate_bbox(viastack1)) # find extension - e1_length = extension + evaluate_bbox(viastack1)[0] - e2_length = extension + evaluate_bbox(viastack2)[0] - xdiff = abs(edge1.center[0] - edge2.center[0]) - ydiff = abs(edge1.center[1] - edge2.center[1]) + e1_length = snap_to_grid(extension + evaluate_bbox(viastack1)[0]) + e2_length = snap_to_grid(extension + evaluate_bbox(viastack2)[0]) + xdiff = snap_to_grid(abs(edge1.center[0] - edge2.center[0])) + ydiff = snap_to_grid(abs(edge1.center[1] - edge2.center[1])) if not isclose(edge1.center[0],edge2.center[0]): if round(edge1.orientation) == 0:# facing east if edge1.center[0] > edge2.center[0]: @@ -117,8 +119,8 @@ def c_route( box_dims = [(e1_length, width1),(e2_length, width2)] if round(edge1.orientation) == 90 or round(edge1.orientation) == 270: box_dims = [(width1, e1_length),(width2, e2_length)] - rect_c1 = rectangle(size=box_dims[0], layer=pdk.get_glayer(e1glayer),centered=True).copy() - rect_c2 = rectangle(size=box_dims[1], layer=pdk.get_glayer(e2glayer),centered=True).copy() + rect_c1 = get_primitive_rectangle(size=box_dims[0], layer=pdk.get_glayer(e1glayer)) + rect_c2 = get_primitive_rectangle(size=box_dims[1], layer=pdk.get_glayer(e2glayer)) rect_c1 = rename_ports_by_orientation(rename_ports_by_list(rect_c1,[("e","e_")])) rect_c2 = rename_ports_by_orientation(rename_ports_by_list(rect_c2,[("e","e_")])) e1_extension = e1_extension_comp << rect_c1 @@ -126,24 +128,28 @@ def c_route( e1_extension.move(destination=edge1.center) e2_extension.move(destination=edge2.center) if round(edge1.orientation) == 0:# facing east - e1_extension.movex(evaluate_bbox(e1_extension)[0]/2) - e2_extension.movex(evaluate_bbox(e2_extension)[0]/2) + e1_extension.movey(0-evaluate_bbox(e1_extension)[1]/2) + e2_extension.movey(0-evaluate_bbox(e2_extension)[1]/2) elif round(edge1.orientation) == 180:# facing west - e1_extension.movex(0-evaluate_bbox(e1_extension)[0]/2) - e2_extension.movex(0-evaluate_bbox(e2_extension)[0]/2) - elif round(edge1.orientation) == 270:# facing south + e1_extension.movex(0-evaluate_bbox(e1_extension)[0]) + e2_extension.movex(0-evaluate_bbox(e2_extension)[0]) e1_extension.movey(0-evaluate_bbox(e1_extension)[1]/2) e2_extension.movey(0-evaluate_bbox(e2_extension)[1]/2) + elif round(edge1.orientation) == 270:# facing south + e1_extension.movex(0-evaluate_bbox(e1_extension)[0]/2) + e2_extension.movex(0-evaluate_bbox(e2_extension)[0]/2) + e1_extension.movey(0-evaluate_bbox(e1_extension)[1]) + e2_extension.movey(0-evaluate_bbox(e2_extension)[1]) else:#facing north - e1_extension.movey(evaluate_bbox(e1_extension)[1]/2) - e2_extension.movey(evaluate_bbox(e2_extension)[1]/2) + e1_extension.movex(0-evaluate_bbox(e1_extension)[0]/2) + e2_extension.movex(0-evaluate_bbox(e2_extension)[0]/2) # place viastacks e1_extension_comp.add_ports(e1_extension.get_ports_list()) e2_extension_comp.add_ports(e2_extension.get_ports_list()) me1 = e1_extension_comp << viastack1 me2 = e2_extension_comp << viastack2 route_ports = [None,None] - via_flush = abs((width1 - evaluate_bbox(viastack1)[0])/2) if viaoffset else 0 + via_flush = snap_to_grid(abs((width1 - evaluate_bbox(viastack1)[0])/2) if viaoffset else 0) via_flush1 = via_flush if viaoffset[0] else 0-via_flush via_flush1 = 0 if viaoffset[0] is None else via_flush1 via_flush2 = via_flush if viaoffset[1] else 0-via_flush @@ -198,9 +204,9 @@ def c_route( if __name__ == "__main__": from glayout.pdk.util.standard_main import pdk - routebetweentop = copy(rectangle(layer=pdk.get_glayer("met1"))).ref() + routebetweentop = copy(get_primitive_rectangle(layer=pdk.get_glayer("met1"))).ref() routebetweentop.movey(10) - routebetweenbottom = rectangle(layer=pdk.get_glayer("met1")) + routebetweenbottom = get_primitive_rectangle(layer=pdk.get_glayer("met1")) mycomp = c_route(pdk,routebetweentop.ports["e3"],routebetweenbottom.ports["e3"]) mycomp.unlock() mycomp.add(routebetweentop) diff --git a/openfasoc/generators/gdsfactory-gen/glayout/routing/straight_route.py b/openfasoc/generators/gdsfactory-gen/glayout/routing/straight_route.py index 3fadfc44d..fb861a27a 100644 --- a/openfasoc/generators/gdsfactory-gen/glayout/routing/straight_route.py +++ b/openfasoc/generators/gdsfactory-gen/glayout/routing/straight_route.py @@ -9,7 +9,8 @@ from glayout.via_gen import via_stack, via_array from gdsfactory.components.rectangle import rectangle from glayout.pdk.util.comp_utils import evaluate_bbox, align_comp_to_port -from glayout.pdk.util.port_utils import assert_port_manhattan, set_port_orientation +from glayout.pdk.util.port_utils import assert_port_manhattan, set_port_orientation, add_ports_perimeter +from gdstk import rectangle as primitive_rectangle @cell @@ -70,18 +71,20 @@ def straight_route( startx = edge1.center[0] endx = edge2.center[0] extension = endx-startx - viaport_name = "e3" if extension > 0 else "e1" + viaport_name = "route_E" if extension > 0 else "route_W" alignment = ("r","c") if extension > 0 else ("l","c") size = (abs(extension),width) else: starty = edge1.center[1] endy = edge2.center[1] extension = endy-starty - viaport_name = "e2" if extension > 0 else "e4" + viaport_name = "route_N" if extension > 0 else "route_S" alignment = ("c","t") if extension > 0 else ("c","b") size = (width,abs(extension)) # create route and via - route = rectangle(layer=pdk.get_glayer(glayer1),size=size,centered=True) + route = Component() + route.add_polygon(primitive_rectangle((0,0),size,*pdk.get_glayer(glayer1))) + add_ports_perimeter(route,layer=pdk.get_glayer(glayer1),prefix="route_") out_via = via_stack(pdk,glayer1,glayer2,fullbottom=fullbottom) if glayer1 != glayer2 else None # place route and via straightroute = Component() @@ -101,7 +104,7 @@ def straight_route( via1_alignment = temp if i == 0 else via1_alignment via2_alignment = temp if i == 1 else via2_alignment route_ref = align_comp_to_port(route,edge1,alignment=alignment) - straightroute.add_ports(route_ref.get_ports_list(),prefix="route_") + straightroute.add_ports(route_ref.get_ports_list()) straightroute.add(route_ref) if out_via is not None: alignlayer2 = pdk.get_glayer(glayer1) if via2_alignment_layer is None else pdk.get_glayer(via2_alignment_layer) diff --git a/openfasoc/generators/gdsfactory-gen/requirements.txt b/openfasoc/generators/gdsfactory-gen/requirements.txt index bb51dafa8..da17ee38e 100644 --- a/openfasoc/generators/gdsfactory-gen/requirements.txt +++ b/openfasoc/generators/gdsfactory-gen/requirements.txt @@ -5,4 +5,3 @@ matplotlib scipy seaborn prettyprinttree -pygraphviz \ No newline at end of file