├── tb_bandgap_opamp.sym ├── run_lvs.sh ├── README ├── sky130_fd_pr__nfet_01v8_L9KS9E.mag ├── sky130_fd_pr__pfet_01v8_MGSVTJ.mag ├── sky130_fd_pr__nfet_01v8_lvt_FMMQLY.mag ├── sky130_fd_pr__nfet_01v8_lvt_FMHZDY.mag ├── sky130_fd_pr__pfet_01v8_lvt_3VR9VM.mag ├── sky130_fd_pr__pfet_01v8_GGMWVD.mag ├── sky130_fd_pr__pfet_01v8_GGY9VD.mag ├── sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD.mag ├── sky130_fd_pr__pfet_01v8_lvt_GWPMZG.mag ├── sky130_fd_pr__nfet_01v8_lvt_FMZK9W.mag ├── zero_opamp.spice ├── zero_opamp_layout.spice ├── zero_opamp_comp.out ├── tb_bandgap_opamp.sch ├── LICENSE └── zero_opamp.mag /tb_bandgap_opamp.sym: -------------------------------------------------------------------------------- 1 | v {xschem version=3.1.0 file_version=1.2} 2 | K {type=subcircuit 3 | format="@name @pinlist @symname" 4 | template="name=x1" 5 | } 6 | T {@symname} -90 -6 0 0 0.3 0.3 {} 7 | T {@name} 135 -22 0 0 0.2 0.2 {} 8 | L 4 -130 -10 130 -10 {} 9 | L 4 -130 10 130 10 {} 10 | L 4 -130 -10 -130 10 {} 11 | L 4 130 -10 130 10 {} 12 | -------------------------------------------------------------------------------- /run_lvs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # run_lvs.sh -- 4 | # 5 | # Run LVS on layout vs. schematic. Assumes that the schematic netlist 6 | # has been saved locally as "zero_opamp.spice" (may need to be copied 7 | # from ~/.xschem/simulations/). The layout netlist is generated 8 | # automatically by this script. 9 | # 10 | # Set environment variable PDK_ROOT if your PDK is installed in a 11 | # location other than the open_pdks default /usr/local/share/pdk/. 12 | # 13 | # Copyright 2023 R. Timothy Edwards 14 | 15 | echo ${PDK_ROOT:=/usr/local/share/pdk} > /dev/null 16 | echo ${PDK:=sky130A} > /dev/null 17 | 18 | magic -dnull -noconsole -rcfile $PDK_ROOT/$PDK/libs.tech/magic/$PDK.magicrc << EOF 19 | drc off 20 | crashbackups stop 21 | load zero_opamp 22 | select top cell 23 | expand 24 | extract do local 25 | extract all 26 | ext2spice lvs 27 | ext2spice -o zero_opamp_layout.spice 28 | EOF 29 | rm -f *.ext 30 | 31 | # export NETGEN_COLUMNS=50 32 | netgen -batch lvs "zero_opamp_layout.spice zero_opamp" "zero_opamp.spice zero_opamp" \ 33 | $PDK_ROOT/$PDK/libs.tech/netgen/${PDK}_setup.tcl zero_opamp_comp.out 34 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Files from making a layout from Stefan Schippers's bandgap 2 | op amp in a video by Matt Venn, Wednesday, March 29, 2023, 3 | presented in a webinar on Thursday, April 15, 2023. 4 | 5 | Layout by Tim Edwards, Efabless/Open Circuit Design 6 | All files distributed under the Apache open source license 7 | (see the LICENSE file for details). 8 | Copyright 2023 R. Timothy Edwards 9 | 10 | ----------------------------------------------------------- 11 | 12 | These files are being put up in a repository post-webinar 13 | to share. The files reflect the completed layout as 14 | shown at the end of the webinar. 15 | 16 | ----------------------------------------------------------- 17 | 18 | The setup for viewing the schematic requires copying the 19 | "xschemrc" file from the PDK into the current working 20 | directory (or providing it on the command line when starting 21 | xschem). Likewise, the ".magicrc" file can be copied from 22 | the PDK into the current working directory or specified on 23 | the command line (as shown in the webinar video). 24 | 25 | ----------------------------------------------------------- 26 | 27 | This repository contains a convenience script that was not 28 | used in the webinar, which automatically handles the 29 | process of generating the netlist from the layout and 30 | running netgen. This script assumes the default PDK 31 | location of /usr/local/share/pdk, but that can be overridden 32 | by setting the environment variable PDK_ROOT. 33 | 34 | ----------------------------------------------------------- 35 | 36 | Note that as in the webinar, the output netlist from xschem, 37 | "zero_opamp.spice", has been manually edited to remove all 38 | of the parasitic capacitances that appear in the schematic 39 | drawing, as those should not be used for LVS. 40 | 41 | ----------------------------------------------------------- 42 | 43 | Please use netgen version 1.5.252 or better, as the port 44 | mismatch shown in the webinar is due to a bug when removing 45 | the zero-volt voltage sources used in the schematic for 46 | current measurement. 47 | 48 | -------------------------------------------------------------------------------- /sky130_fd_pr__nfet_01v8_L9KS9E.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680636816 5 | << error_p >> 6 | rect -29 91 29 97 7 | rect -29 57 -17 91 8 | rect -29 51 29 57 9 | << pwell >> 10 | rect -211 -229 211 229 11 | << nmos >> 12 | rect -15 -81 15 19 13 | << ndiff >> 14 | rect -73 7 -15 19 15 | rect -73 -69 -61 7 16 | rect -27 -69 -15 7 17 | rect -73 -81 -15 -69 18 | rect 15 7 73 19 19 | rect 15 -69 27 7 20 | rect 61 -69 73 7 21 | rect 15 -81 73 -69 22 | << ndiffc >> 23 | rect -61 -69 -27 7 24 | rect 27 -69 61 7 25 | << psubdiff >> 26 | rect -175 159 -79 193 27 | rect 79 159 175 193 28 | rect -175 97 -141 159 29 | rect 141 97 175 159 30 | rect -175 -159 -141 -97 31 | rect 141 -159 175 -97 32 | rect -175 -193 -79 -159 33 | rect 79 -193 175 -159 34 | << psubdiffcont >> 35 | rect -79 159 79 193 36 | rect -175 -97 -141 97 37 | rect 141 -97 175 97 38 | rect -79 -193 79 -159 39 | << poly >> 40 | rect -33 91 33 107 41 | rect -33 57 -17 91 42 | rect 17 57 33 91 43 | rect -33 41 33 57 44 | rect -15 19 15 41 45 | rect -15 -107 15 -81 46 | << polycont >> 47 | rect -17 57 17 91 48 | << locali >> 49 | rect -175 159 -79 193 50 | rect 79 159 175 193 51 | rect -175 97 -141 159 52 | rect 141 97 175 159 53 | rect -33 57 -17 91 54 | rect 17 57 33 91 55 | rect -61 7 -27 23 56 | rect -61 -85 -27 -69 57 | rect 27 7 61 23 58 | rect 27 -85 61 -69 59 | rect -175 -159 -141 -97 60 | rect 141 -159 175 -97 61 | rect -175 -193 -79 -159 62 | rect 79 -193 175 -159 63 | << viali >> 64 | rect -17 57 17 91 65 | rect -61 -69 -27 7 66 | rect 27 -69 61 7 67 | << metal1 >> 68 | rect -29 91 29 97 69 | rect -29 57 -17 91 70 | rect 17 57 29 91 71 | rect -29 51 29 57 72 | rect -67 7 -21 19 73 | rect -67 -69 -61 7 74 | rect -27 -69 -21 7 75 | rect -67 -81 -21 -69 76 | rect 21 7 67 19 77 | rect 21 -69 27 7 78 | rect 61 -69 67 7 79 | rect 21 -81 67 -69 80 | << properties >> 81 | string FIXED_BBOX -158 -176 158 176 82 | string gencell sky130_fd_pr__nfet_01v8 83 | string library sky130 84 | string parameters w 0.5 l 0.15 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 0 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt sky130_fd_bs_flash__special_sonosfet_star sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt sky130_fd_pr__nfet_03v3_nvt} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 85 | << end >> 86 | -------------------------------------------------------------------------------- /sky130_fd_pr__pfet_01v8_MGSVTJ.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680636816 5 | << error_p >> 6 | rect -29 545 29 551 7 | rect -29 511 -17 545 8 | rect -29 505 29 511 9 | << nwell >> 10 | rect -211 -684 211 684 11 | << pmos >> 12 | rect -15 -536 15 464 13 | << pdiff >> 14 | rect -73 452 -15 464 15 | rect -73 -524 -61 452 16 | rect -27 -524 -15 452 17 | rect -73 -536 -15 -524 18 | rect 15 452 73 464 19 | rect 15 -524 27 452 20 | rect 61 -524 73 452 21 | rect 15 -536 73 -524 22 | << pdiffc >> 23 | rect -61 -524 -27 452 24 | rect 27 -524 61 452 25 | << nsubdiff >> 26 | rect -175 614 -79 648 27 | rect 79 614 175 648 28 | rect -175 551 -141 614 29 | rect 141 551 175 614 30 | rect -175 -614 -141 -551 31 | rect 141 -614 175 -551 32 | rect -175 -648 -79 -614 33 | rect 79 -648 175 -614 34 | << nsubdiffcont >> 35 | rect -79 614 79 648 36 | rect -175 -551 -141 551 37 | rect 141 -551 175 551 38 | rect -79 -648 79 -614 39 | << poly >> 40 | rect -33 545 33 561 41 | rect -33 511 -17 545 42 | rect 17 511 33 545 43 | rect -33 495 33 511 44 | rect -15 464 15 495 45 | rect -15 -562 15 -536 46 | << polycont >> 47 | rect -17 511 17 545 48 | << locali >> 49 | rect -175 614 -79 648 50 | rect 79 614 175 648 51 | rect -175 551 -141 614 52 | rect 141 551 175 614 53 | rect -33 511 -17 545 54 | rect 17 511 33 545 55 | rect -61 452 -27 468 56 | rect -61 -540 -27 -524 57 | rect 27 452 61 468 58 | rect 27 -540 61 -524 59 | rect -175 -614 -141 -551 60 | rect 141 -614 175 -551 61 | rect -175 -648 -79 -614 62 | rect 79 -648 175 -614 63 | << viali >> 64 | rect -17 511 17 545 65 | rect -61 -524 -27 452 66 | rect 27 -524 61 452 67 | << metal1 >> 68 | rect -29 545 29 551 69 | rect -29 511 -17 545 70 | rect 17 511 29 545 71 | rect -29 505 29 511 72 | rect -67 452 -21 464 73 | rect -67 -524 -61 452 74 | rect -27 -524 -21 452 75 | rect -67 -536 -21 -524 76 | rect 21 452 67 464 77 | rect 21 -524 27 452 78 | rect 61 -524 67 452 79 | rect 21 -536 67 -524 80 | << properties >> 81 | string FIXED_BBOX -158 -631 158 631 82 | string gencell sky130_fd_pr__pfet_01v8 83 | string library sky130 84 | string parameters w 5.0 l 0.15 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 0 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 compatible {sky130_fd_pr__pfet_01v8 sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 85 | << end >> 86 | -------------------------------------------------------------------------------- /sky130_fd_pr__nfet_01v8_lvt_FMMQLY.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | timestamp 1680634426 4 | << pwell >> 5 | rect -148 -130 148 130 6 | << nmoslvt >> 7 | rect -50 -25 50 25 8 | << ndiff >> 9 | rect -79 19 -50 25 10 | rect -79 -19 -73 19 11 | rect -56 -19 -50 19 12 | rect -79 -25 -50 -19 13 | rect 50 19 79 25 14 | rect 50 -19 56 19 15 | rect 73 -19 79 19 16 | rect 50 -25 79 -19 17 | << ndiffc >> 18 | rect -73 -19 -56 19 19 | rect 56 -19 73 19 20 | << psubdiff >> 21 | rect -130 95 -82 112 22 | rect 82 95 130 112 23 | rect -130 64 -113 95 24 | rect 113 64 130 95 25 | rect -130 -95 -113 -64 26 | rect 113 -95 130 -64 27 | rect -130 -112 -82 -95 28 | rect 82 -112 130 -95 29 | << psubdiffcont >> 30 | rect -82 95 82 112 31 | rect -130 -64 -113 64 32 | rect 113 -64 130 64 33 | rect -82 -112 82 -95 34 | << poly >> 35 | rect -50 61 50 69 36 | rect -50 44 -42 61 37 | rect 42 44 50 61 38 | rect -50 25 50 44 39 | rect -50 -44 50 -25 40 | rect -50 -61 -42 -44 41 | rect 42 -61 50 -44 42 | rect -50 -69 50 -61 43 | << polycont >> 44 | rect -42 44 42 61 45 | rect -42 -61 42 -44 46 | << locali >> 47 | rect -130 95 -82 112 48 | rect 82 95 130 112 49 | rect -130 64 -113 95 50 | rect 113 64 130 95 51 | rect -50 44 -42 61 52 | rect 42 44 50 61 53 | rect -73 19 -56 27 54 | rect -73 -27 -56 -19 55 | rect 56 19 73 27 56 | rect 56 -27 73 -19 57 | rect -50 -61 -42 -44 58 | rect 42 -61 50 -44 59 | rect -130 -95 -113 -64 60 | rect 113 -95 130 -64 61 | rect -130 -112 -82 -95 62 | rect 82 -112 130 -95 63 | << viali >> 64 | rect -42 44 42 61 65 | rect -73 -19 -56 19 66 | rect 56 -19 73 19 67 | rect -42 -61 42 -44 68 | << metal1 >> 69 | rect -48 61 48 64 70 | rect -48 44 -42 61 71 | rect 42 44 48 61 72 | rect -48 41 48 44 73 | rect -76 19 -53 25 74 | rect -76 -19 -73 19 75 | rect -56 -19 -53 19 76 | rect -76 -25 -53 -19 77 | rect 53 19 76 25 78 | rect 53 -19 56 19 79 | rect 73 -19 76 19 80 | rect 53 -25 76 -19 81 | rect -48 -44 48 -41 82 | rect -48 -61 -42 -44 83 | rect 42 -61 48 -44 84 | rect -48 -64 48 -61 85 | << properties >> 86 | string FIXED_BBOX -121 -103 121 103 87 | string gencell sky130_fd_pr__nfet_01v8_lvt 88 | string library sky130 89 | string parameters w 0.5 l 1.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt sky130_fd_bs_flash__special_sonosfet_star sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt sky130_fd_pr__nfet_03v3_nvt} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 90 | << end >> 91 | -------------------------------------------------------------------------------- /sky130_fd_pr__nfet_01v8_lvt_FMHZDY.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | timestamp 1680634426 4 | << pwell >> 5 | rect -498 -130 498 130 6 | << nmoslvt >> 7 | rect -400 -25 400 25 8 | << ndiff >> 9 | rect -429 19 -400 25 10 | rect -429 -19 -423 19 11 | rect -406 -19 -400 19 12 | rect -429 -25 -400 -19 13 | rect 400 19 429 25 14 | rect 400 -19 406 19 15 | rect 423 -19 429 19 16 | rect 400 -25 429 -19 17 | << ndiffc >> 18 | rect -423 -19 -406 19 19 | rect 406 -19 423 19 20 | << psubdiff >> 21 | rect -480 95 -432 112 22 | rect 432 95 480 112 23 | rect -480 64 -463 95 24 | rect 463 64 480 95 25 | rect -480 -95 -463 -64 26 | rect 463 -95 480 -64 27 | rect -480 -112 -432 -95 28 | rect 432 -112 480 -95 29 | << psubdiffcont >> 30 | rect -432 95 432 112 31 | rect -480 -64 -463 64 32 | rect 463 -64 480 64 33 | rect -432 -112 432 -95 34 | << poly >> 35 | rect -400 61 400 69 36 | rect -400 44 -392 61 37 | rect 392 44 400 61 38 | rect -400 25 400 44 39 | rect -400 -44 400 -25 40 | rect -400 -61 -392 -44 41 | rect 392 -61 400 -44 42 | rect -400 -69 400 -61 43 | << polycont >> 44 | rect -392 44 392 61 45 | rect -392 -61 392 -44 46 | << locali >> 47 | rect -480 95 -432 112 48 | rect 432 95 480 112 49 | rect -480 64 -463 95 50 | rect 463 64 480 95 51 | rect -400 44 -392 61 52 | rect 392 44 400 61 53 | rect -423 19 -406 27 54 | rect -423 -27 -406 -19 55 | rect 406 19 423 27 56 | rect 406 -27 423 -19 57 | rect -400 -61 -392 -44 58 | rect 392 -61 400 -44 59 | rect -480 -95 -463 -64 60 | rect 463 -95 480 -64 61 | rect -480 -112 -432 -95 62 | rect 432 -112 480 -95 63 | << viali >> 64 | rect -392 44 392 61 65 | rect -423 -19 -406 19 66 | rect 406 -19 423 19 67 | rect -392 -61 392 -44 68 | << metal1 >> 69 | rect -398 61 398 64 70 | rect -398 44 -392 61 71 | rect 392 44 398 61 72 | rect -398 41 398 44 73 | rect -426 19 -403 25 74 | rect -426 -19 -423 19 75 | rect -406 -19 -403 19 76 | rect -426 -25 -403 -19 77 | rect 403 19 426 25 78 | rect 403 -19 406 19 79 | rect 423 -19 426 19 80 | rect 403 -25 426 -19 81 | rect -398 -44 398 -41 82 | rect -398 -61 -392 -44 83 | rect 392 -61 398 -44 84 | rect -398 -64 398 -61 85 | << properties >> 86 | string FIXED_BBOX -471 -103 471 103 87 | string gencell sky130_fd_pr__nfet_01v8_lvt 88 | string library sky130 89 | string parameters w 0.5 l 8.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt sky130_fd_bs_flash__special_sonosfet_star sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt sky130_fd_pr__nfet_03v3_nvt} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 90 | << end >> 91 | -------------------------------------------------------------------------------- /sky130_fd_pr__pfet_01v8_lvt_3VR9VM.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680634426 5 | << nwell >> 6 | rect -296 -319 296 319 7 | << pmoslvt >> 8 | rect -100 -100 100 100 9 | << pdiff >> 10 | rect -158 88 -100 100 11 | rect -158 -88 -146 88 12 | rect -112 -88 -100 88 13 | rect -158 -100 -100 -88 14 | rect 100 88 158 100 15 | rect 100 -88 112 88 16 | rect 146 -88 158 88 17 | rect 100 -100 158 -88 18 | << pdiffc >> 19 | rect -146 -88 -112 88 20 | rect 112 -88 146 88 21 | << nsubdiff >> 22 | rect -260 249 -164 283 23 | rect 164 249 260 283 24 | rect -260 187 -226 249 25 | rect 226 187 260 249 26 | rect -260 -249 -226 -187 27 | rect 226 -249 260 -187 28 | rect -260 -283 -164 -249 29 | rect 164 -283 260 -249 30 | << nsubdiffcont >> 31 | rect -164 249 164 283 32 | rect -260 -187 -226 187 33 | rect 226 -187 260 187 34 | rect -164 -283 164 -249 35 | << poly >> 36 | rect -100 181 100 197 37 | rect -100 147 -84 181 38 | rect 84 147 100 181 39 | rect -100 100 100 147 40 | rect -100 -147 100 -100 41 | rect -100 -181 -84 -147 42 | rect 84 -181 100 -147 43 | rect -100 -197 100 -181 44 | << polycont >> 45 | rect -84 147 84 181 46 | rect -84 -181 84 -147 47 | << locali >> 48 | rect -260 249 -164 283 49 | rect 164 249 260 283 50 | rect -260 187 -226 249 51 | rect 226 187 260 249 52 | rect -100 147 -84 181 53 | rect 84 147 100 181 54 | rect -146 88 -112 104 55 | rect -146 -104 -112 -88 56 | rect 112 88 146 104 57 | rect 112 -104 146 -88 58 | rect -100 -181 -84 -147 59 | rect 84 -181 100 -147 60 | rect -260 -249 -226 -187 61 | rect 226 -249 260 -187 62 | rect -260 -283 -164 -249 63 | rect 164 -283 260 -249 64 | << viali >> 65 | rect -84 147 84 181 66 | rect -146 -88 -112 88 67 | rect 112 -88 146 88 68 | rect -84 -181 84 -147 69 | << metal1 >> 70 | rect -96 181 96 187 71 | rect -96 147 -84 181 72 | rect 84 147 96 181 73 | rect -96 141 96 147 74 | rect -152 88 -106 100 75 | rect -152 -88 -146 88 76 | rect -112 -88 -106 88 77 | rect -152 -100 -106 -88 78 | rect 106 88 152 100 79 | rect 106 -88 112 88 80 | rect 146 -88 152 88 81 | rect 106 -100 152 -88 82 | rect -96 -147 96 -141 83 | rect -96 -181 -84 -147 84 | rect 84 -181 96 -147 85 | rect -96 -187 96 -181 86 | << properties >> 87 | string FIXED_BBOX -243 -266 243 266 88 | string gencell sky130_fd_pr__pfet_01v8_lvt 89 | string library sky130 90 | string parameters w 1.0 l 1.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.35 wmin 0.42 compatible {sky130_fd_pr__pfet_01v8 sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 91 | << end >> 92 | -------------------------------------------------------------------------------- /sky130_fd_pr__pfet_01v8_GGMWVD.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680634426 5 | << nwell >> 6 | rect -996 -319 996 319 7 | << pmos >> 8 | rect -800 -100 800 100 9 | << pdiff >> 10 | rect -858 88 -800 100 11 | rect -858 -88 -846 88 12 | rect -812 -88 -800 88 13 | rect -858 -100 -800 -88 14 | rect 800 88 858 100 15 | rect 800 -88 812 88 16 | rect 846 -88 858 88 17 | rect 800 -100 858 -88 18 | << pdiffc >> 19 | rect -846 -88 -812 88 20 | rect 812 -88 846 88 21 | << nsubdiff >> 22 | rect -960 249 -864 283 23 | rect 864 249 960 283 24 | rect -960 187 -926 249 25 | rect 926 187 960 249 26 | rect -960 -249 -926 -187 27 | rect 926 -249 960 -187 28 | rect -960 -283 -864 -249 29 | rect 864 -283 960 -249 30 | << nsubdiffcont >> 31 | rect -864 249 864 283 32 | rect -960 -187 -926 187 33 | rect 926 -187 960 187 34 | rect -864 -283 864 -249 35 | << poly >> 36 | rect -800 181 800 197 37 | rect -800 147 -784 181 38 | rect 784 147 800 181 39 | rect -800 100 800 147 40 | rect -800 -147 800 -100 41 | rect -800 -181 -784 -147 42 | rect 784 -181 800 -147 43 | rect -800 -197 800 -181 44 | << polycont >> 45 | rect -784 147 784 181 46 | rect -784 -181 784 -147 47 | << locali >> 48 | rect -960 249 -864 283 49 | rect 864 249 960 283 50 | rect -960 187 -926 249 51 | rect 926 187 960 249 52 | rect -800 147 -784 181 53 | rect 784 147 800 181 54 | rect -846 88 -812 104 55 | rect -846 -104 -812 -88 56 | rect 812 88 846 104 57 | rect 812 -104 846 -88 58 | rect -800 -181 -784 -147 59 | rect 784 -181 800 -147 60 | rect -960 -249 -926 -187 61 | rect 926 -249 960 -187 62 | rect -960 -283 -864 -249 63 | rect 864 -283 960 -249 64 | << viali >> 65 | rect -784 147 784 181 66 | rect -846 -88 -812 88 67 | rect 812 -88 846 88 68 | rect -784 -181 784 -147 69 | << metal1 >> 70 | rect -796 181 796 187 71 | rect -796 147 -784 181 72 | rect 784 147 796 181 73 | rect -796 141 796 147 74 | rect -852 88 -806 100 75 | rect -852 -88 -846 88 76 | rect -812 -88 -806 88 77 | rect -852 -100 -806 -88 78 | rect 806 88 852 100 79 | rect 806 -88 812 88 80 | rect 846 -88 852 88 81 | rect 806 -100 852 -88 82 | rect -796 -147 796 -141 83 | rect -796 -181 -784 -147 84 | rect 784 -181 796 -147 85 | rect -796 -187 796 -181 86 | << properties >> 87 | string FIXED_BBOX -943 -266 943 266 88 | string gencell sky130_fd_pr__pfet_01v8 89 | string library sky130 90 | string parameters w 1.0 l 8.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 compatible {sky130_fd_pr__pfet_01v8 sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 91 | << end >> 92 | -------------------------------------------------------------------------------- /sky130_fd_pr__pfet_01v8_GGY9VD.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680634426 5 | << nwell >> 6 | rect -996 -419 996 419 7 | << pmos >> 8 | rect -800 -200 800 200 9 | << pdiff >> 10 | rect -858 188 -800 200 11 | rect -858 -188 -846 188 12 | rect -812 -188 -800 188 13 | rect -858 -200 -800 -188 14 | rect 800 188 858 200 15 | rect 800 -188 812 188 16 | rect 846 -188 858 188 17 | rect 800 -200 858 -188 18 | << pdiffc >> 19 | rect -846 -188 -812 188 20 | rect 812 -188 846 188 21 | << nsubdiff >> 22 | rect -960 349 -864 383 23 | rect 864 349 960 383 24 | rect -960 287 -926 349 25 | rect 926 287 960 349 26 | rect -960 -349 -926 -287 27 | rect 926 -349 960 -287 28 | rect -960 -383 -864 -349 29 | rect 864 -383 960 -349 30 | << nsubdiffcont >> 31 | rect -864 349 864 383 32 | rect -960 -287 -926 287 33 | rect 926 -287 960 287 34 | rect -864 -383 864 -349 35 | << poly >> 36 | rect -800 281 800 297 37 | rect -800 247 -784 281 38 | rect 784 247 800 281 39 | rect -800 200 800 247 40 | rect -800 -247 800 -200 41 | rect -800 -281 -784 -247 42 | rect 784 -281 800 -247 43 | rect -800 -297 800 -281 44 | << polycont >> 45 | rect -784 247 784 281 46 | rect -784 -281 784 -247 47 | << locali >> 48 | rect -960 349 -864 383 49 | rect 864 349 960 383 50 | rect -960 287 -926 349 51 | rect 926 287 960 349 52 | rect -800 247 -784 281 53 | rect 784 247 800 281 54 | rect -846 188 -812 204 55 | rect -846 -204 -812 -188 56 | rect 812 188 846 204 57 | rect 812 -204 846 -188 58 | rect -800 -281 -784 -247 59 | rect 784 -281 800 -247 60 | rect -960 -349 -926 -287 61 | rect 926 -349 960 -287 62 | rect -960 -383 -864 -349 63 | rect 864 -383 960 -349 64 | << viali >> 65 | rect -784 247 784 281 66 | rect -846 -188 -812 188 67 | rect 812 -188 846 188 68 | rect -784 -281 784 -247 69 | << metal1 >> 70 | rect -796 281 796 287 71 | rect -796 247 -784 281 72 | rect 784 247 796 281 73 | rect -796 241 796 247 74 | rect -852 188 -806 200 75 | rect -852 -188 -846 188 76 | rect -812 -188 -806 188 77 | rect -852 -200 -806 -188 78 | rect 806 188 852 200 79 | rect 806 -188 812 188 80 | rect 846 -188 852 188 81 | rect 806 -200 852 -188 82 | rect -796 -247 796 -241 83 | rect -796 -281 -784 -247 84 | rect 784 -281 796 -247 85 | rect -796 -287 796 -281 86 | << properties >> 87 | string FIXED_BBOX -943 -366 943 366 88 | string gencell sky130_fd_pr__pfet_01v8 89 | string library sky130 90 | string parameters w 2.0 l 8.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 compatible {sky130_fd_pr__pfet_01v8 sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 91 | << end >> 92 | -------------------------------------------------------------------------------- /sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680634426 5 | << nwell >> 6 | rect -596 -619 596 619 7 | << pmoslvt >> 8 | rect -400 -400 400 400 9 | << pdiff >> 10 | rect -458 388 -400 400 11 | rect -458 -388 -446 388 12 | rect -412 -388 -400 388 13 | rect -458 -400 -400 -388 14 | rect 400 388 458 400 15 | rect 400 -388 412 388 16 | rect 446 -388 458 388 17 | rect 400 -400 458 -388 18 | << pdiffc >> 19 | rect -446 -388 -412 388 20 | rect 412 -388 446 388 21 | << nsubdiff >> 22 | rect -560 549 -464 583 23 | rect 464 549 560 583 24 | rect -560 487 -526 549 25 | rect 526 487 560 549 26 | rect -560 -549 -526 -487 27 | rect 526 -549 560 -487 28 | rect -560 -583 -464 -549 29 | rect 464 -583 560 -549 30 | << nsubdiffcont >> 31 | rect -464 549 464 583 32 | rect -560 -487 -526 487 33 | rect 526 -487 560 487 34 | rect -464 -583 464 -549 35 | << poly >> 36 | rect -400 481 400 497 37 | rect -400 447 -384 481 38 | rect 384 447 400 481 39 | rect -400 400 400 447 40 | rect -400 -447 400 -400 41 | rect -400 -481 -384 -447 42 | rect 384 -481 400 -447 43 | rect -400 -497 400 -481 44 | << polycont >> 45 | rect -384 447 384 481 46 | rect -384 -481 384 -447 47 | << locali >> 48 | rect -560 549 -464 583 49 | rect 464 549 560 583 50 | rect -560 487 -526 549 51 | rect 526 487 560 549 52 | rect -400 447 -384 481 53 | rect 384 447 400 481 54 | rect -446 388 -412 404 55 | rect -446 -404 -412 -388 56 | rect 412 388 446 404 57 | rect 412 -404 446 -388 58 | rect -400 -481 -384 -447 59 | rect 384 -481 400 -447 60 | rect -560 -549 -526 -487 61 | rect 526 -549 560 -487 62 | rect -560 -583 -464 -549 63 | rect 464 -583 560 -549 64 | << viali >> 65 | rect -384 447 384 481 66 | rect -446 -388 -412 388 67 | rect 412 -388 446 388 68 | rect -384 -481 384 -447 69 | << metal1 >> 70 | rect -396 481 396 487 71 | rect -396 447 -384 481 72 | rect 384 447 396 481 73 | rect -396 441 396 447 74 | rect -452 388 -406 400 75 | rect -452 -388 -446 388 76 | rect -412 -388 -406 388 77 | rect -452 -400 -406 -388 78 | rect 406 388 452 400 79 | rect 406 -388 412 388 80 | rect 446 -388 452 388 81 | rect 406 -400 452 -388 82 | rect -396 -447 396 -441 83 | rect -396 -481 -384 -447 84 | rect 384 -481 396 -447 85 | rect -396 -487 396 -481 86 | << properties >> 87 | string FIXED_BBOX -543 -566 543 566 88 | string gencell sky130_fd_pr__pfet_01v8_lvt 89 | string library sky130 90 | string parameters w 4.0 l 4.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.35 wmin 0.42 compatible {sky130_fd_pr__pfet_01v8 sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 91 | << end >> 92 | -------------------------------------------------------------------------------- /sky130_fd_pr__pfet_01v8_lvt_GWPMZG.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680634426 5 | << nwell >> 6 | rect -396 -1019 396 1019 7 | << pmoslvt >> 8 | rect -200 -800 200 800 9 | << pdiff >> 10 | rect -258 788 -200 800 11 | rect -258 -788 -246 788 12 | rect -212 -788 -200 788 13 | rect -258 -800 -200 -788 14 | rect 200 788 258 800 15 | rect 200 -788 212 788 16 | rect 246 -788 258 788 17 | rect 200 -800 258 -788 18 | << pdiffc >> 19 | rect -246 -788 -212 788 20 | rect 212 -788 246 788 21 | << nsubdiff >> 22 | rect -360 949 -264 983 23 | rect 264 949 360 983 24 | rect -360 887 -326 949 25 | rect 326 887 360 949 26 | rect -360 -949 -326 -887 27 | rect 326 -949 360 -887 28 | rect -360 -983 -264 -949 29 | rect 264 -983 360 -949 30 | << nsubdiffcont >> 31 | rect -264 949 264 983 32 | rect -360 -887 -326 887 33 | rect 326 -887 360 887 34 | rect -264 -983 264 -949 35 | << poly >> 36 | rect -200 881 200 897 37 | rect -200 847 -184 881 38 | rect 184 847 200 881 39 | rect -200 800 200 847 40 | rect -200 -847 200 -800 41 | rect -200 -881 -184 -847 42 | rect 184 -881 200 -847 43 | rect -200 -897 200 -881 44 | << polycont >> 45 | rect -184 847 184 881 46 | rect -184 -881 184 -847 47 | << locali >> 48 | rect -360 949 -264 983 49 | rect 264 949 360 983 50 | rect -360 887 -326 949 51 | rect 326 887 360 949 52 | rect -200 847 -184 881 53 | rect 184 847 200 881 54 | rect -246 788 -212 804 55 | rect -246 -804 -212 -788 56 | rect 212 788 246 804 57 | rect 212 -804 246 -788 58 | rect -200 -881 -184 -847 59 | rect 184 -881 200 -847 60 | rect -360 -949 -326 -887 61 | rect 326 -949 360 -887 62 | rect -360 -983 -264 -949 63 | rect 264 -983 360 -949 64 | << viali >> 65 | rect -184 847 184 881 66 | rect -246 -788 -212 788 67 | rect 212 -788 246 788 68 | rect -184 -881 184 -847 69 | << metal1 >> 70 | rect -196 881 196 887 71 | rect -196 847 -184 881 72 | rect 184 847 196 881 73 | rect -196 841 196 847 74 | rect -252 788 -206 800 75 | rect -252 -788 -246 788 76 | rect -212 -788 -206 788 77 | rect -252 -800 -206 -788 78 | rect 206 788 252 800 79 | rect 206 -788 212 788 80 | rect 246 -788 252 788 81 | rect 206 -800 252 -788 82 | rect -196 -847 196 -841 83 | rect -196 -881 -184 -847 84 | rect 184 -881 196 -847 85 | rect -196 -887 196 -881 86 | << properties >> 87 | string FIXED_BBOX -343 -966 343 966 88 | string gencell sky130_fd_pr__pfet_01v8_lvt 89 | string library sky130 90 | string parameters w 8.0 l 2.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.35 wmin 0.42 compatible {sky130_fd_pr__pfet_01v8 sky130_fd_pr__pfet_01v8_lvt sky130_fd_pr__pfet_01v8_hvt sky130_fd_pr__pfet_g5v0d10v5} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 91 | << end >> 92 | -------------------------------------------------------------------------------- /sky130_fd_pr__nfet_01v8_lvt_FMZK9W.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | timestamp 1680634426 4 | << pwell >> 5 | rect -298 -205 298 205 6 | << nmoslvt >> 7 | rect -200 -100 200 100 8 | << ndiff >> 9 | rect -229 94 -200 100 10 | rect -229 -94 -223 94 11 | rect -206 -94 -200 94 12 | rect -229 -100 -200 -94 13 | rect 200 94 229 100 14 | rect 200 -94 206 94 15 | rect 223 -94 229 94 16 | rect 200 -100 229 -94 17 | << ndiffc >> 18 | rect -223 -94 -206 94 19 | rect 206 -94 223 94 20 | << psubdiff >> 21 | rect -280 170 -232 187 22 | rect 232 170 280 187 23 | rect -280 139 -263 170 24 | rect 263 139 280 170 25 | rect -280 -170 -263 -139 26 | rect 263 -170 280 -139 27 | rect -280 -187 -232 -170 28 | rect 232 -187 280 -170 29 | << psubdiffcont >> 30 | rect -232 170 232 187 31 | rect -280 -139 -263 139 32 | rect 263 -139 280 139 33 | rect -232 -187 232 -170 34 | << poly >> 35 | rect -200 136 200 144 36 | rect -200 119 -192 136 37 | rect 192 119 200 136 38 | rect -200 100 200 119 39 | rect -200 -119 200 -100 40 | rect -200 -136 -192 -119 41 | rect 192 -136 200 -119 42 | rect -200 -144 200 -136 43 | << polycont >> 44 | rect -192 119 192 136 45 | rect -192 -136 192 -119 46 | << locali >> 47 | rect -280 170 -232 187 48 | rect 232 170 280 187 49 | rect -280 139 -263 170 50 | rect 263 139 280 170 51 | rect -200 119 -192 136 52 | rect 192 119 200 136 53 | rect -223 94 -206 102 54 | rect -223 -102 -206 -94 55 | rect 206 94 223 102 56 | rect 206 -102 223 -94 57 | rect -200 -136 -192 -119 58 | rect 192 -136 200 -119 59 | rect -280 -170 -263 -139 60 | rect 263 -170 280 -139 61 | rect -280 -187 -232 -170 62 | rect 232 -187 280 -170 63 | << viali >> 64 | rect -192 119 192 136 65 | rect -223 -94 -206 94 66 | rect 206 -94 223 94 67 | rect -192 -136 192 -119 68 | << metal1 >> 69 | rect -198 136 198 139 70 | rect -198 119 -192 136 71 | rect 192 119 198 136 72 | rect -198 116 198 119 73 | rect -226 94 -203 100 74 | rect -226 -94 -223 94 75 | rect -206 -94 -203 94 76 | rect -226 -100 -203 -94 77 | rect 203 94 226 100 78 | rect 203 -94 206 94 79 | rect 223 -94 226 94 80 | rect 203 -100 226 -94 81 | rect -198 -119 198 -116 82 | rect -198 -136 -192 -119 83 | rect 192 -136 198 -119 84 | rect -198 -139 198 -136 85 | << properties >> 86 | string FIXED_BBOX -271 -178 271 178 87 | string gencell sky130_fd_pr__nfet_01v8_lvt 88 | string library sky130 89 | string parameters w 2.0 l 4.0 m 1 nf 1 diffcov 100 polycov 100 guard 1 glc 1 grc 1 gtc 1 gbc 1 tbcov 100 rlcov 100 topc 1 botc 1 poverlap 0 doverlap 1 lmin 0.15 wmin 0.42 compatible {sky130_fd_pr__nfet_01v8 sky130_fd_pr__nfet_01v8_lvt sky130_fd_bs_flash__special_sonosfet_star sky130_fd_pr__nfet_g5v0d10v5 sky130_fd_pr__nfet_05v0_nvt sky130_fd_pr__nfet_03v3_nvt} full_metal 1 viasrc 100 viadrn 100 viagate 100 viagb 0 viagr 0 viagl 0 viagt 0 90 | << end >> 91 | -------------------------------------------------------------------------------- /zero_opamp.spice: -------------------------------------------------------------------------------- 1 | ** sch_path: /usr/share/pdk/sky130A/libs.tech/xschem/sky130_tests/zero_opamp.sch 2 | .subckt zero_opamp PLUS MINUS EN_N VSS VCC DIFFOUT ADJ 3 | *.PININFO PLUS:I MINUS:I EN_N:I VSS:I VCC:I DIFFOUT:O ADJ:I 4 | XM4 net6 EN_N VCC VCC sky130_fd_pr__pfet_01v8 L=8 W=2 nf=1 ad='W * 0.29' as='W * 0.29' pd='W + 2 * 0.29' 5 | + ps='W + 2 * 0.29' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 6 | XM18 G2 G2 VSS VSS sky130_fd_pr__nfet_01v8_lvt L=4 W=2 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 7 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 8 | XM2 G1 G1 VSS VSS sky130_fd_pr__nfet_01v8_lvt L=4 W=2 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 9 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 10 | XM20 G2 PLUS net7 VCC sky130_fd_pr__pfet_01v8_lvt L=2 W=8 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 11 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 12 | XM3 G1 MINUS net8 VCC sky130_fd_pr__pfet_01v8_lvt L=2 W=8 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 13 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 14 | v1 SP net8 0 15 | .save i(v1) 16 | XM6 DIFFOUT G2 net1 VSS sky130_fd_pr__nfet_01v8_lvt L=4 W=2 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 17 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 18 | v2 SP net7 0 19 | .save i(v2) 20 | v4 net1 VSS 0 21 | .save i(v4) 22 | v6 net6 SP 0 23 | .save i(v6) 24 | XM7 DIFFOUT EN_N VSS VSS sky130_fd_pr__nfet_01v8 L=0.15 W=0.5 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 25 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 26 | XM46 net9 EN_N VCC VCC sky130_fd_pr__pfet_01v8 L=0.15 W=5 nf=1 ad='W * 0.29' as='W * 0.29' pd='W + 2 * 0.29' 27 | + ps='W + 2 * 0.29' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 28 | v17 net9 net3 0 29 | .save i(v17) 30 | XM12 net2 G1 VSS VSS sky130_fd_pr__nfet_01v8_lvt L=4 W=2 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 31 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 32 | XM54 net2 net2 net3 VCC sky130_fd_pr__pfet_01v8_lvt L=4 W=4 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 33 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 34 | XM5 DIFFOUT net2 net3 VCC sky130_fd_pr__pfet_01v8_lvt L=4 W=4 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 35 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 36 | XM8 G1 ADJ net4 VCC sky130_fd_pr__pfet_01v8_lvt L=1 W=1 nf=1 ad='W * 0.29' as='W * 0.29' pd='W + 2 * 0.29' 37 | + ps='W + 2 * 0.29' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 38 | XM9 G1 ADJ net5 VSS sky130_fd_pr__nfet_01v8_lvt L=1 W=0.5 nf=1 ad='W * 0.29' as='W * 0.29' pd='W + 2 * 0.29' 39 | + ps='W + 2 * 0.29' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 40 | XM10 net5 VCC VSS VSS sky130_fd_pr__nfet_01v8_lvt L=8 W=0.5 nf=1 ad='W * 0.29' as='W * 0.29' pd='2*(W + 0.29)' 41 | + ps='2*(W + 0.29)' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 42 | XM1 net4 EN_N VCC VCC sky130_fd_pr__pfet_01v8 L=8 W=1 nf=1 ad='W * 0.29' as='W * 0.29' pd='W + 2 * 0.29' 43 | + ps='W + 2 * 0.29' nrd=0 nrs=0 sa=0 sb=0 sd=0 mult=1 m=1 44 | .ends 45 | .end 46 | -------------------------------------------------------------------------------- /zero_opamp_layout.spice: -------------------------------------------------------------------------------- 1 | * NGSPICE file created from zero_opamp.ext - technology: sky130A 2 | 3 | .subckt sky130_fd_pr__nfet_01v8_lvt_FMZK9W a_400_n200# a_n458_n200# a_n400_n288# a_n560_n374# 4 | X0 a_400_n200# a_n400_n288# a_n458_n200# a_n560_n374# sky130_fd_pr__nfet_01v8_lvt ad=0.58 pd=4.58 as=0.58 ps=4.58 w=2 l=4 5 | .ends 6 | 7 | .subckt sky130_fd_pr__pfet_01v8_MGSVTJ a_n33_495# w_n211_n684# a_n73_n536# a_15_n536# 8 | X0 a_15_n536# a_n33_495# a_n73_n536# w_n211_n684# sky130_fd_pr__pfet_01v8 ad=1.45 pd=10.6 as=1.45 ps=10.6 w=5 l=0.15 9 | .ends 10 | 11 | .subckt sky130_fd_pr__pfet_01v8_GGMWVD w_n996_n319# a_n800_n197# a_800_n100# a_n858_n100# 12 | X0 a_800_n100# a_n800_n197# a_n858_n100# w_n996_n319# sky130_fd_pr__pfet_01v8 ad=0.29 pd=2.58 as=0.29 ps=2.58 w=1 l=8 13 | .ends 14 | 15 | .subckt sky130_fd_pr__pfet_01v8_lvt_GWPMZG a_n200_n897# a_200_n800# w_n396_n1019# 16 | + a_n258_n800# 17 | X0 a_200_n800# a_n200_n897# a_n258_n800# w_n396_n1019# sky130_fd_pr__pfet_01v8_lvt ad=2.32 pd=16.6 as=2.32 ps=16.6 w=8 l=2 18 | .ends 19 | 20 | .subckt sky130_fd_pr__pfet_01v8_GGY9VD a_800_n200# a_n858_n200# w_n996_n419# a_n800_n297# 21 | X0 a_800_n200# a_n800_n297# a_n858_n200# w_n996_n419# sky130_fd_pr__pfet_01v8 ad=0.58 pd=4.58 as=0.58 ps=4.58 w=2 l=8 22 | .ends 23 | 24 | .subckt sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD w_n596_n619# a_n400_n497# a_400_n400# a_n458_n400# 25 | X0 a_400_n400# a_n400_n497# a_n458_n400# w_n596_n619# sky130_fd_pr__pfet_01v8_lvt ad=1.16 pd=8.58 as=1.16 ps=8.58 w=4 l=4 26 | .ends 27 | 28 | .subckt sky130_fd_pr__nfet_01v8_L9KS9E a_n73_n81# a_n175_n193# a_n33_41# a_15_n81# 29 | X0 a_15_n81# a_n33_41# a_n73_n81# a_n175_n193# sky130_fd_pr__nfet_01v8 ad=0.145 pd=1.58 as=0.145 ps=1.58 w=0.5 l=0.15 30 | .ends 31 | 32 | .subckt sky130_fd_pr__nfet_01v8_lvt_FMMQLY a_100_n50# a_n100_n138# a_n260_n224# a_n158_n50# 33 | X0 a_100_n50# a_n100_n138# a_n158_n50# a_n260_n224# sky130_fd_pr__nfet_01v8_lvt ad=0.145 pd=1.58 as=0.145 ps=1.58 w=0.5 l=1 34 | .ends 35 | 36 | .subckt sky130_fd_pr__pfet_01v8_lvt_3VR9VM w_n296_n319# a_n100_n197# a_100_n100# a_n158_n100# 37 | X0 a_100_n100# a_n100_n197# a_n158_n100# w_n296_n319# sky130_fd_pr__pfet_01v8_lvt ad=0.29 pd=2.58 as=0.29 ps=2.58 w=1 l=1 38 | .ends 39 | 40 | .subckt sky130_fd_pr__nfet_01v8_lvt_FMHZDY a_n800_n138# a_n960_n224# a_n858_n50# a_800_n50# 41 | X0 a_800_n50# a_n800_n138# a_n858_n50# a_n960_n224# sky130_fd_pr__nfet_01v8_lvt ad=0.145 pd=1.58 as=0.145 ps=1.58 w=0.5 l=8 42 | .ends 43 | 44 | .subckt zero_opamp PLUS MINUS EN_N VSS VCC DIFFOUT ADJ 45 | XXM12 m1_4962_n90# VSS G1 VSS sky130_fd_pr__nfet_01v8_lvt_FMZK9W 46 | XXM46 EN_N VCC m1_4960_n440# VCC sky130_fd_pr__pfet_01v8_MGSVTJ 47 | XXM18 G2 VSS G2 VSS sky130_fd_pr__nfet_01v8_lvt_FMZK9W 48 | XXM1 VCC EN_N m1_693_n743# VCC sky130_fd_pr__pfet_01v8_GGMWVD 49 | XXM2 G1 VSS G1 VSS sky130_fd_pr__nfet_01v8_lvt_FMZK9W 50 | XXM3 MINUS G1 VCC SP sky130_fd_pr__pfet_01v8_lvt_GWPMZG 51 | XXM4 SP VCC VCC EN_N sky130_fd_pr__pfet_01v8_GGY9VD 52 | XXM5 VCC m1_4962_n90# DIFFOUT m1_4960_n440# sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD 53 | XXM6 DIFFOUT VSS G2 VSS sky130_fd_pr__nfet_01v8_lvt_FMZK9W 54 | XXM7 VSS VSS EN_N DIFFOUT sky130_fd_pr__nfet_01v8_L9KS9E 55 | XXM9 m1_724_n2032# ADJ VSS G1 sky130_fd_pr__nfet_01v8_lvt_FMMQLY 56 | XXM8 VCC ADJ m1_693_n743# G1 sky130_fd_pr__pfet_01v8_lvt_3VR9VM 57 | XXM20 PLUS G2 VCC SP sky130_fd_pr__pfet_01v8_lvt_GWPMZG 58 | XXM54 VCC m1_4962_n90# m1_4962_n90# m1_4960_n440# sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD 59 | XXM10 VCC VSS m1_724_n2032# VSS sky130_fd_pr__nfet_01v8_lvt_FMHZDY 60 | .ends 61 | 62 | -------------------------------------------------------------------------------- /zero_opamp_comp.out: -------------------------------------------------------------------------------- 1 | 2 | Circuit 1 cell sky130_fd_pr__nfet_01v8_lvt and Circuit 2 cell sky130_fd_pr__nfet_01v8_lvt are black boxes. 3 | Warning: Equate pins: cell sky130_fd_pr__nfet_01v8_lvt is a placeholder, treated as a black box. 4 | Warning: Equate pins: cell sky130_fd_pr__nfet_01v8_lvt is a placeholder, treated as a black box. 5 | 6 | Subcircuit pins: 7 | Circuit 1: sky130_fd_pr__nfet_01v8_lvt |Circuit 2: sky130_fd_pr__nfet_01v8_lvt 8 | -------------------------------------------|------------------------------------------- 9 | 1 |1 10 | 2 |2 11 | 3 |3 12 | 4 |4 13 | --------------------------------------------------------------------------------------- 14 | Cell pin lists are equivalent. 15 | Device classes sky130_fd_pr__nfet_01v8_lvt and sky130_fd_pr__nfet_01v8_lvt are equivalent. 16 | 17 | Circuit 1 cell sky130_fd_pr__pfet_01v8 and Circuit 2 cell sky130_fd_pr__pfet_01v8 are black boxes. 18 | Warning: Equate pins: cell sky130_fd_pr__pfet_01v8 is a placeholder, treated as a black box. 19 | Warning: Equate pins: cell sky130_fd_pr__pfet_01v8 is a placeholder, treated as a black box. 20 | 21 | Subcircuit pins: 22 | Circuit 1: sky130_fd_pr__pfet_01v8 |Circuit 2: sky130_fd_pr__pfet_01v8 23 | -------------------------------------------|------------------------------------------- 24 | 1 |1 25 | 2 |2 26 | 3 |3 27 | 4 |4 28 | --------------------------------------------------------------------------------------- 29 | Cell pin lists are equivalent. 30 | Device classes sky130_fd_pr__pfet_01v8 and sky130_fd_pr__pfet_01v8 are equivalent. 31 | 32 | Circuit 1 cell sky130_fd_pr__pfet_01v8_lvt and Circuit 2 cell sky130_fd_pr__pfet_01v8_lvt are black boxes. 33 | Warning: Equate pins: cell sky130_fd_pr__pfet_01v8_lvt is a placeholder, treated as a black box. 34 | Warning: Equate pins: cell sky130_fd_pr__pfet_01v8_lvt is a placeholder, treated as a black box. 35 | 36 | Subcircuit pins: 37 | Circuit 1: sky130_fd_pr__pfet_01v8_lvt |Circuit 2: sky130_fd_pr__pfet_01v8_lvt 38 | -------------------------------------------|------------------------------------------- 39 | 1 |1 40 | 2 |2 41 | 3 |3 42 | 4 |4 43 | --------------------------------------------------------------------------------------- 44 | Cell pin lists are equivalent. 45 | Device classes sky130_fd_pr__pfet_01v8_lvt and sky130_fd_pr__pfet_01v8_lvt are equivalent. 46 | 47 | Circuit 1 cell sky130_fd_pr__nfet_01v8 and Circuit 2 cell sky130_fd_pr__nfet_01v8 are black boxes. 48 | Warning: Equate pins: cell sky130_fd_pr__nfet_01v8 is a placeholder, treated as a black box. 49 | Warning: Equate pins: cell sky130_fd_pr__nfet_01v8 is a placeholder, treated as a black box. 50 | 51 | Subcircuit pins: 52 | Circuit 1: sky130_fd_pr__nfet_01v8 |Circuit 2: sky130_fd_pr__nfet_01v8 53 | -------------------------------------------|------------------------------------------- 54 | 1 |1 55 | 2 |2 56 | 3 |3 57 | 4 |4 58 | --------------------------------------------------------------------------------------- 59 | Cell pin lists are equivalent. 60 | Device classes sky130_fd_pr__nfet_01v8 and sky130_fd_pr__nfet_01v8 are equivalent. 61 | Flattening unmatched subcell sky130_fd_pr__nfet_01v8_lvt_FMZK9W in circuit zero_opamp (0)(4 instances) 62 | Flattening unmatched subcell sky130_fd_pr__pfet_01v8_MGSVTJ in circuit zero_opamp (0)(1 instance) 63 | Flattening unmatched subcell sky130_fd_pr__pfet_01v8_GGMWVD in circuit zero_opamp (0)(1 instance) 64 | Flattening unmatched subcell sky130_fd_pr__pfet_01v8_lvt_GWPMZG in circuit zero_opamp (0)(2 instances) 65 | Flattening unmatched subcell sky130_fd_pr__pfet_01v8_GGY9VD in circuit zero_opamp (0)(1 instance) 66 | Flattening unmatched subcell sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD in circuit zero_opamp (0)(2 instances) 67 | Flattening unmatched subcell sky130_fd_pr__nfet_01v8_L9KS9E in circuit zero_opamp (0)(1 instance) 68 | Flattening unmatched subcell sky130_fd_pr__nfet_01v8_lvt_FMMQLY in circuit zero_opamp (0)(1 instance) 69 | Flattening unmatched subcell sky130_fd_pr__pfet_01v8_lvt_3VR9VM in circuit zero_opamp (0)(1 instance) 70 | Flattening unmatched subcell sky130_fd_pr__nfet_01v8_lvt_FMHZDY in circuit zero_opamp (0)(1 instance) 71 | 72 | Removing zero-valued device vsrc from cell zero_opamp (1) makes a better match 73 | Removing zero-valued device vsrc from cell zero_opamp (1) makes a better match 74 | Removing zero-valued device vsrc from cell zero_opamp (1) makes a better match 75 | Removing zero-valued device vsrc from cell zero_opamp (1) makes a better match 76 | Removing zero-valued device vsrc from cell zero_opamp (1) makes a better match 77 | Making another compare attempt. 78 | 79 | Subcircuit summary: 80 | Circuit 1: zero_opamp |Circuit 2: zero_opamp 81 | -------------------------------------------|------------------------------------------- 82 | sky130_fd_pr__nfet_01v8_lvt (6) |sky130_fd_pr__nfet_01v8_lvt (6) 83 | sky130_fd_pr__pfet_01v8 (3) |sky130_fd_pr__pfet_01v8 (3) 84 | sky130_fd_pr__pfet_01v8_lvt (5) |sky130_fd_pr__pfet_01v8_lvt (5) 85 | sky130_fd_pr__nfet_01v8 (1) |sky130_fd_pr__nfet_01v8 (1) 86 | Number of devices: 15 |Number of devices: 15 87 | Number of nets: 14 |Number of nets: 14 88 | --------------------------------------------------------------------------------------- 89 | Netlists match uniquely. 90 | 91 | Subcircuit pins: 92 | Circuit 1: zero_opamp |Circuit 2: zero_opamp 93 | -------------------------------------------|------------------------------------------- 94 | PLUS |PLUS 95 | MINUS |MINUS 96 | ADJ |ADJ 97 | DIFFOUT |DIFFOUT 98 | VCC |VCC 99 | VSS |VSS 100 | EN_N |EN_N 101 | --------------------------------------------------------------------------------------- 102 | Cell pin lists are equivalent. 103 | Device classes zero_opamp and zero_opamp are equivalent. 104 | 105 | Final result: Circuits match uniquely. 106 | . 107 | -------------------------------------------------------------------------------- /tb_bandgap_opamp.sch: -------------------------------------------------------------------------------- 1 | v {xschem version=3.1.0 file_version=1.2 2 | * Copyright 2021 Stefan Frederik Schippers 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | 16 | } 17 | G {} 18 | K {} 19 | V {} 20 | S {} 21 | E {} 22 | L 2 2110 -680 2110 -680 {} 23 | L 2 2100 -690 2150 -690 {} 24 | L 2 2270 -640 2270 -620 {} 25 | L 2 2240 -610 2290 -610 {} 26 | L 3 1970 -860 1970 -740 {} 27 | L 3 2130 -860 2130 -790 {} 28 | L 3 2290 -860 2290 -740 {} 29 | L 4 1870 -720 1970 -720 {} 30 | L 4 1970 -740 1970 -720 {} 31 | L 4 1970 -740 2290 -740 {} 32 | L 4 2290 -740 2290 -720 {} 33 | L 4 2290 -720 2410 -720 {} 34 | L 4 1870 -790 2130 -790 {} 35 | L 4 2130 -790 2130 -770 {} 36 | L 4 2130 -770 2290 -770 {} 37 | L 4 2290 -790 2290 -770 {} 38 | L 4 2290 -790 2410 -790 {} 39 | L 4 1870 -670 2130 -670 {} 40 | L 4 2130 -670 2150 -690 {} 41 | L 4 2150 -690 2290 -690 {} 42 | L 4 2290 -690 2290 -670 {} 43 | L 4 2290 -670 2410 -670 {} 44 | L 4 1870 -610 2130 -610 {} 45 | L 4 2210 -650 2290 -650 {} 46 | L 4 2290 -650 2290 -610 {} 47 | L 4 2290 -610 2410 -610 {} 48 | L 4 2130 -610 2210 -650 {} 49 | B 2 780 -480 1580 -120 {flags=graph,unlocked 50 | y1=-0.015 51 | y2=1.8 52 | ypos1=0 53 | ypos2=2 54 | divy=5 55 | subdivy=1 56 | unity=1 57 | x1=1e-11 58 | x2=4e-06 59 | divx=5 60 | subdivx=1 61 | node="diffout_n 62 | adj 63 | out" 64 | color="4 7 12" 65 | 66 | unitx=1 67 | logx=0 68 | logy=0 69 | dataset=-1 70 | hilight_wave=-1} 71 | B 2 780 -1280 1580 -880 {flags=graph,unlocked 72 | y1=0.598627 73 | y2=0.60131 74 | ypos1=0 75 | ypos2=2 76 | divy=5 77 | subdivy=1 78 | unity=1 79 | x1=1e-11 80 | x2=4e-06 81 | divx=5 82 | subdivx=1 83 | 84 | 85 | dataset=-1 86 | unitx=1 87 | logx=0 88 | logy=0 89 | color="4 7" 90 | node="plus minus"} 91 | B 2 780 -1480 1580 -1280 {flags=graph,unlocked 92 | y1=0 93 | y2=2 94 | ypos1=0.106679 95 | ypos2=0.661454 96 | divy=5 97 | subdivy=1 98 | unity=1 99 | x1=-5.98366e-10 100 | x2=3.99937e-06 101 | divx=5 102 | subdivx=1 103 | node="start 104 | en_n" 105 | color="4 4" 106 | dataset=-1 107 | unitx=1 108 | logx=0 109 | logy=0 110 | digital=1} 111 | B 2 1650 -530 2450 -130 {flags=graph 112 | y1=-3.72028e-05 113 | y2=1.90117e-06 114 | ypos1=0 115 | ypos2=2 116 | divy=5 117 | subdivy=1 118 | unity=1 119 | x1=1e-11 120 | x2=4e-06 121 | divx=5 122 | subdivx=1 123 | 124 | 125 | dataset=-1 126 | unitx=1 127 | logx=0 128 | logy=0 129 | 130 | color=6 131 | node=i(vvcc)} 132 | B 2 230 -1050 400 -900 {flags=graph 133 | y1=0.395916 134 | y2=0.732143 135 | ypos1=0.0639625 136 | ypos2=0.678667 137 | divy=5 138 | subdivy=1 139 | unity=1 140 | x1=1.04595e-11 141 | x2=4e-06 142 | divx=3 143 | subdivx=1 144 | node=vth 145 | color=4 146 | dataset=-1 147 | unitx=1 148 | logx=0 149 | logy=0 150 | digital=0} 151 | B 2 780 -880 1580 -480 {flags=graph 152 | y1=1.6 153 | y2=2 154 | ypos1=0 155 | ypos2=2 156 | divy=5 157 | subdivy=1 158 | unity=1 159 | x1=1e-11 160 | x2=4e-06 161 | divx=5 162 | subdivx=1 163 | 164 | 165 | dataset=-1 166 | unitx=1 167 | logx=0 168 | logy=0 169 | color=4 170 | node=vcc} 171 | B 2 230 -1250 400 -1110 {flags=graph 172 | y1=-102.256 173 | y2=137.935 174 | ypos1=0.0639625 175 | ypos2=0.678667 176 | divy=5 177 | subdivy=1 178 | unity=1 179 | x1=1e-11 180 | x2=4e-06 181 | divx=3 182 | subdivx=1 183 | node=temperat 184 | color=4 185 | dataset=-1 186 | unitx=1 187 | logx=0 188 | logy=0 189 | digital=0} 190 | A 4 1620 -1200 5 0 360 {fill=true} 191 | A 4 1620 -1150 5 0 360 {fill=true} 192 | A 4 1620 -1100 5 0 360 {fill=true} 193 | A 4 1620 -1000 5 0 360 {fill=true} 194 | A 4 1620 -950 5 0 360 {fill=true} 195 | A 4 1620 -1050 5 0 360 {fill=true} 196 | A 4 1620 -1250 5 0 360 {fill=true} 197 | P 2 4 2110 -690 2100 -680 2110 -680 2110 -690 {fill=true} 198 | P 2 4 2110 -670 2110 -680 2100 -680 2110 -670 {fill=true} 199 | P 2 4 2270 -650 2260 -640 2270 -640 2270 -650 {fill=true} 200 | P 2 4 2270 -610 2270 -620 2260 -620 2270 -610 {fill=true} 201 | P 4 5 70 -1330 450 -1330 450 -780 70 -780 70 -1330 {dash=4} 202 | T {Comparator - design goals} 1840 -1350 0 0 1 1 {} 203 | T {Comparator must detect a differential signal as low as +/-1mV} 1640 -1260 0 0 0.6 0.6 {} 204 | T {1.8V VCC +/- 10%} 1640 -1210 0 0 0.6 0.6 {} 205 | T {-40C to 125C temperature} 1640 -1160 0 0 0.6 0.6 {} 206 | T {Simulate with device mismatch parameters} 1640 -1110 0 0 0.6 0.6 {} 207 | T {Sensing time: 1us calibration and 1us sensing (no speed optimization).} 1640 -1010 0 0 0.6 0.6 {} 208 | T {CAL} 1860 -800 0 1 0.4 0.4 {} 209 | T {EN} 1860 -750 0 1 0.4 0.4 {} 210 | T {CALIBRATION 211 | 40ns} 2120 -850 0 1 0.4 0.4 {} 212 | T {SENSING 213 | 40ns} 2250 -850 0 1 0.4 0.4 {} 214 | T {OFF} 2380 -850 0 1 0.4 0.4 {} 215 | T {OFF} 1930 -850 0 1 0.4 0.4 {} 216 | T {V+ - V-} 1860 -680 0 1 0.4 0.4 {} 217 | T {SAOUT} 1860 -620 0 1 0.4 0.4 {} 218 | T {2mV} 2050 -700 0 0 0.4 0.4 {} 219 | T {VCC} 2210 -650 0 0 0.4 0.4 {} 220 | T {Icc < 50uA} 1640 -960 0 0 0.6 0.6 {} 221 | T {Self calibration: no circuit trimming} 1640 -1060 0 0 0.6 0.6 {} 222 | T {Check devices. Not on layout 223 | will not be present in LVS 224 | netlist} 20 -1460 0 0 0.6 0.6 {} 225 | T {Mismatch checker} 250 -1070 0 0 0.3 0.3 { layer=4} 226 | T {Simulation temperature} 230 -1270 0 0 0.3 0.3 { layer=4} 227 | N 320 -540 340 -540 { lab=DIFFOUT_N} 228 | N 620 -540 720 -540 { lab=ADJ} 229 | N 420 -540 620 -540 { lab=ADJ} 230 | N 130 -880 160 -880 {lab=VSS} 231 | N 130 -930 130 -910 {lab=VTH} 232 | N 130 -960 130 -930 {lab=VTH} 233 | N 90 -930 90 -880 { lab=VTH} 234 | N 90 -930 130 -930 { lab=VTH} 235 | N 130 -850 130 -800 { 236 | lab=VSS} 237 | N 130 -1060 130 -1020 { 238 | lab=VSS} 239 | N 430 -360 570 -360 { 240 | lab=DIFFOUT_N} 241 | N 120 -1280 120 -1260 {lab=TEMPERAT} 242 | C {devices/title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"} 243 | C {devices/code.sym} 40 -370 0 0 {name=STIMULI 244 | only_toplevel=true 245 | place=end 246 | value="* .option SCALE=1e-6 247 | .option method=gear 248 | 249 | * this experimental option enables mos model bin 250 | * selection based on W/NF instead of W 251 | .option wnflag=1 252 | 253 | 254 | .param VCCGAUSS = agauss(1.8, 0.05, 1) 255 | .param VCC = 'VCCGAUSS' 256 | ** use following line to remove VCC variations 257 | * .param VCC = 1.8 258 | 259 | .param TEMPGAUSS = agauss(40, 30, 1) 260 | .option temp = 'TEMPGAUSS' 261 | ** use following line to remove temperature variations 262 | * .option temp = 25 263 | 264 | .include stimuli_tb_bandgap_opamp.cir 265 | .control 266 | option seed=9 267 | let run=0 268 | dowhile run <= 100 269 | save all 270 | tran 1n 4000n uic 271 | remzerovec 272 | write tb_bandgap_opamp.raw 273 | set appendwrite 274 | reset 275 | let run = run + 1 276 | end 277 | .endc 278 | "} 279 | C {devices/launcher.sym} 240 -150 0 0 {name=h2 280 | descr="Simulate" 281 | tclcommand="xschem netlist; xschem simulate"} 282 | C {devices/lab_pin.sym} 270 -270 0 0 {name=p1 lab=EN_N} 283 | C {devices/lab_pin.sym} 270 -330 0 0 {name=p2 lab=MINUS} 284 | C {devices/lab_pin.sym} 270 -390 0 0 {name=p3 lab=PLUS} 285 | C {devices/lab_wire.sym} 460 -360 0 1 {name=p4 lab=DIFFOUT_N} 286 | C {devices/lab_pin.sym} 270 -250 0 0 {name=p5 lab=VCC} 287 | C {devices/lab_pin.sym} 270 -230 0 0 {name=p6 lab=VSS} 288 | C {devices/lab_pin.sym} 270 -290 0 0 {name=p7 lab=ADJ} 289 | C {sky130_tests/passgate.sym} 380 -540 0 0 {name=x6 W_N=0.5 L_N=0.15 W_P=0.5 L_P=0.15 VCCBPIN=VCC VSSBPIN=VSS m=1} 290 | C {devices/lab_pin.sym} 380 -510 0 0 {name=l34 sig_type=std_logic lab=START_N} 291 | C {devices/lab_pin.sym} 380 -570 0 0 {name=l37 sig_type=std_logic lab=START} 292 | C {devices/lab_pin.sym} 720 -540 0 1 {name=l255 lab=ADJ} 293 | C {devices/lab_pin.sym} 490 -480 0 0 {name=l40 sig_type=std_logic lab=VSS} 294 | C {sky130_fd_pr/cap_mim_m3_2.sym} 490 -510 0 0 {name=C1 model=cap_mim_m3_2 W=10 L=10 MF=5 spiceprefix=X } 295 | C {devices/lab_pin.sym} 320 -540 0 0 {name=p9 lab=DIFFOUT_N} 296 | C {sky130_tests/not.sym} 540 -700 0 0 {name=x2 m=1 VCCPIN=VCC VSSPIN=VSS W_N=1 L_N=0.15 W_P=2 L_P=0.15} 297 | C {devices/lab_pin.sym} 500 -700 0 0 {name=p15 lab=START} 298 | C {devices/lab_pin.sym} 580 -700 0 1 {name=p16 lab=START_N} 299 | C {sky130_fd_pr/corner.sym} 40 -210 0 0 {name=CORNER only_toplevel=true corner=tt_mm} 300 | C {devices/launcher.sym} 870 -80 0 0 {name=h5 301 | descr="load waves" 302 | tclcommand="xschem raw_read $netlist_dir/tb_bandgap_opamp.raw tran" 303 | } 304 | C {sky130_tests/zero_opamp.sym} 350 -360 0 0 {name=x1} 305 | C {devices/lab_pin.sym} 160 -880 0 1 {name=p23 lab=VSS} 306 | C {sky130_fd_pr/nfet_01v8.sym} 110 -880 0 0 {name=M18 307 | L=0.15 308 | W=0.5 309 | ad="'W * 0.29'" pd="'2*(W + 0.29)'" 310 | as="'W * 0.29'" ps="'2*(W + 0.29)'" 311 | nrd=0 nrs=0 312 | sa=0 sb=0 sd=0 313 | nf=1 mult=1 314 | model=nfet_01v8 315 | spiceprefix=X 316 | lvs_format=" "} 317 | C {devices/lab_pin.sym} 130 -930 0 1 {name=l5 lab=VTH} 318 | C {devices/lab_pin.sym} 130 -800 0 0 {name=p8 lab=VSS} 319 | C {devices/isource.sym} 130 -990 0 0 {name=I0 value=100n 320 | lvs_format=" "} 321 | C {devices/lab_pin.sym} 130 -1060 0 0 {name=p10 lab=VSS} 322 | C {sky130_tests/gain_stage.sym} 630 -360 0 0 {name=x3} 323 | C {devices/lab_pin.sym} 690 -360 0 1 {name=p12 lab=OUT} 324 | C {devices/lab_pin.sym} 610 -250 0 0 {name=p13 lab=VCC} 325 | C {devices/lab_pin.sym} 610 -230 0 0 {name=p14 lab=VSS} 326 | C {devices/lab_pin.sym} 610 -270 0 0 {name=p17 lab=START_N} 327 | C {devices/lab_pin.sym} 610 -290 0 0 {name=p18 lab=START} 328 | C {devices/lab_pin.sym} 610 -310 0 0 {name=p19 lab=EN_N} 329 | C {devices/vsource_arith.sym} 120 -1230 0 0 {name=E5 VOL=temper MAX=200 MIN=-200 330 | lvs_format=" "} 331 | C {devices/lab_pin.sym} 120 -1280 0 1 {name=p113 lab=TEMPERAT} 332 | C {devices/lab_pin.sym} 120 -1200 0 0 {name=p114 lab=VSS} 333 | C {devices/noconn.sym} 120 -1280 0 0 {name=l12} 334 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /zero_opamp.mag: -------------------------------------------------------------------------------- 1 | magic 2 | tech sky130A 3 | magscale 1 2 4 | timestamp 1680637778 5 | << nwell >> 6 | rect 7076 -1112 7446 250 7 | << locali >> 8 | rect 194 940 8090 976 9 | rect 194 842 506 940 10 | rect 8028 842 8090 940 11 | rect 194 820 8090 842 12 | rect 190 726 8090 820 13 | rect 190 -408 1182 726 14 | rect 190 -956 350 -408 15 | rect 814 -956 1182 -408 16 | rect 184 -1606 366 -1172 17 | rect 1704 -1182 2076 726 18 | rect 2810 -1176 3182 726 19 | rect 4540 222 8090 726 20 | rect 4540 164 8088 222 21 | rect 4540 18 7446 164 22 | rect 4540 -1168 4912 18 23 | rect 7076 -1112 7446 18 24 | rect 7764 -1102 8088 164 25 | rect 848 -1432 8080 -1316 26 | rect 834 -1476 8080 -1432 27 | rect 184 -1610 654 -1606 28 | rect 834 -1610 2766 -1476 29 | rect 184 -1712 2766 -1610 30 | rect 184 -1796 2608 -1712 31 | rect 184 -2176 654 -1796 32 | rect 2552 -2176 2608 -1796 33 | rect 184 -2238 2608 -2176 34 | rect 2730 -2176 2766 -1712 35 | rect 7116 -1710 8074 -1476 36 | rect 7116 -2176 7198 -1710 37 | rect 2730 -2234 7198 -2176 38 | rect 7302 -1842 8074 -1710 39 | rect 7302 -2176 7424 -1842 40 | rect 7750 -2176 8074 -1842 41 | rect 7302 -2234 8080 -2176 42 | rect 2730 -2238 8080 -2234 43 | rect 184 -2288 8080 -2238 44 | rect 184 -2386 440 -2288 45 | rect 7974 -2386 8080 -2288 46 | rect 184 -2426 8080 -2386 47 | << viali >> 48 | rect 506 842 8028 940 49 | rect 2608 -2238 2730 -1712 50 | rect 7198 -2234 7302 -1710 51 | rect 440 -2386 7974 -2288 52 | << metal1 >> 53 | rect 186 940 8080 978 54 | rect 186 842 506 940 55 | rect 8028 842 8080 940 56 | rect 186 740 8080 842 57 | rect 1358 608 1562 740 58 | rect 1226 134 1236 458 59 | rect 1302 134 1312 458 60 | rect 1588 134 1598 458 61 | rect 1664 134 1674 458 62 | rect 194 -286 620 -40 63 | rect 384 -1064 448 -602 64 | rect 368 -1194 378 -1064 65 | rect 450 -1194 460 -1064 66 | rect 384 -1448 448 -1194 67 | rect 550 -1518 616 -286 68 | rect 693 -743 1008 -657 69 | rect 922 -1038 1008 -743 70 | rect 922 -1124 1542 -1038 71 | rect 724 -2032 776 -1364 72 | rect 1826 -2104 1966 740 73 | rect 2244 624 2644 740 74 | rect 3322 634 3332 690 75 | rect 3704 634 3714 690 76 | rect 4008 634 4018 690 77 | rect 4390 634 4400 690 78 | rect 2114 136 2124 456 79 | rect 2200 136 2210 456 80 | rect 2682 132 2692 452 81 | rect 2768 132 2778 452 82 | rect 2246 -632 2644 -616 83 | rect 2246 -920 2262 -632 84 | rect 2626 -920 2644 -632 85 | rect 2246 -1060 2644 -920 86 | rect 3240 -930 3250 -620 87 | rect 3304 -930 3314 -620 88 | rect 3432 -1066 3594 634 89 | rect 3752 -1070 3846 602 90 | rect 3926 -930 3936 -620 91 | rect 3990 -930 4000 -620 92 | rect 4116 -1060 4278 634 93 | rect 3740 -1196 3750 -1070 94 | rect 3852 -1196 3862 -1070 95 | rect 3752 -1504 3846 -1196 96 | rect 4444 -1324 4552 602 97 | rect 7566 434 7644 448 98 | rect 7204 422 7256 428 99 | rect 7204 364 7256 370 100 | rect 5058 2 6928 4 101 | rect 4962 -66 6928 2 102 | rect 4962 -90 5088 -66 103 | rect 4962 -208 5088 -194 104 | rect 4960 -440 4970 -208 105 | rect 5040 -440 5088 -208 106 | rect 4962 -446 5088 -440 107 | rect 5292 -1000 5570 -66 108 | rect 5842 -70 5950 -66 109 | rect 5840 -92 5950 -70 110 | rect 5862 -162 5950 -92 111 | rect 5374 -1066 5542 -1060 112 | rect 5362 -1200 5372 -1066 113 | rect 5542 -1200 5552 -1066 114 | rect 4432 -1432 4442 -1324 115 | rect 4550 -1432 4560 -1324 116 | rect 4840 -1328 4948 -1318 117 | rect 4828 -1436 4838 -1328 118 | rect 4946 -1436 4956 -1328 119 | rect 4840 -1504 4948 -1436 120 | rect 2918 -1600 3846 -1504 121 | rect 4000 -1600 4948 -1504 122 | rect 2592 -1696 2750 -1688 123 | rect 2434 -2186 2512 -1952 124 | rect 2588 -1968 2598 -1696 125 | rect 2746 -1968 2756 -1696 126 | rect 2830 -1968 2840 -1700 127 | rect 2902 -1968 2912 -1700 128 | rect 2592 -2186 2608 -1968 129 | rect 186 -2238 2608 -2186 130 | rect 2730 -2186 2750 -1968 131 | rect 3230 -2096 3396 -1600 132 | rect 3752 -2032 3846 -1600 133 | rect 3916 -1970 3926 -1702 134 | rect 3988 -1970 3998 -1702 135 | rect 4328 -2098 4494 -1600 136 | rect 4840 -2056 4948 -1600 137 | rect 5004 -1968 5014 -1700 138 | rect 5076 -1968 5086 -1700 139 | rect 5374 -2098 5542 -1200 140 | rect 5896 -1222 5950 -162 141 | rect 6046 -444 6056 -212 142 | rect 6126 -444 6136 -212 143 | rect 6400 -998 6678 -66 144 | rect 6988 -144 7102 -130 145 | rect 6970 -1176 7102 -144 146 | rect 5896 -1276 5991 -1222 147 | rect 5937 -2045 5991 -1276 148 | rect 6480 -1432 6490 -1326 149 | rect 6640 -1432 6650 -1326 150 | rect 6090 -1970 6100 -1702 151 | rect 6162 -1970 6172 -1702 152 | rect 6480 -2098 6648 -1432 153 | rect 6962 -1500 6972 -1176 154 | rect 7048 -1490 7102 -1176 155 | rect 7208 -1478 7252 364 156 | rect 7556 180 7566 434 157 | rect 7648 180 7658 434 158 | rect 7574 42 7640 180 159 | rect 7794 -8 7998 740 160 | rect 7510 -444 7520 -210 161 | rect 7578 -444 7588 -210 162 | rect 7646 -986 7998 -8 163 | rect 7646 -1218 7762 -1206 164 | rect 7646 -1478 7660 -1218 165 | rect 7748 -1478 7762 -1218 166 | rect 7048 -1500 7082 -1490 167 | rect 6992 -1510 7082 -1500 168 | rect 6998 -1648 7082 -1510 169 | rect 7208 -1518 7604 -1478 170 | rect 7208 -1520 7252 -1518 171 | rect 6992 -2038 7082 -1648 172 | rect 7180 -1698 7312 -1696 173 | rect 7170 -1968 7180 -1698 174 | rect 7314 -1968 7324 -1698 175 | rect 6514 -2108 6622 -2098 176 | rect 7180 -2186 7198 -1968 177 | rect 2730 -2234 7198 -2186 178 | rect 7302 -2186 7312 -1968 179 | rect 7564 -1976 7604 -1518 180 | rect 7478 -2186 7558 -2008 181 | rect 7646 -2106 7762 -1478 182 | rect 7302 -2234 8080 -2186 183 | rect 2730 -2238 8080 -2234 184 | rect 186 -2288 8080 -2238 185 | rect 186 -2386 440 -2288 186 | rect 7974 -2386 8080 -2288 187 | rect 186 -2424 8080 -2386 188 | << via1 >> 189 | rect 1236 134 1302 458 190 | rect 1598 134 1664 458 191 | rect 378 -1194 450 -1064 192 | rect 3332 634 3704 690 193 | rect 4018 634 4390 690 194 | rect 2124 136 2200 456 195 | rect 2692 132 2768 452 196 | rect 2262 -920 2626 -632 197 | rect 3250 -930 3304 -620 198 | rect 3936 -930 3990 -620 199 | rect 3750 -1196 3852 -1070 200 | rect 7204 370 7256 422 201 | rect 4970 -440 5040 -208 202 | rect 5372 -1200 5542 -1066 203 | rect 4442 -1432 4550 -1324 204 | rect 4838 -1436 4946 -1328 205 | rect 2598 -1712 2746 -1696 206 | rect 2598 -1968 2608 -1712 207 | rect 2608 -1968 2730 -1712 208 | rect 2730 -1968 2746 -1712 209 | rect 2840 -1968 2902 -1700 210 | rect 3926 -1970 3988 -1702 211 | rect 5014 -1968 5076 -1700 212 | rect 6056 -444 6126 -212 213 | rect 6490 -1432 6640 -1326 214 | rect 6100 -1970 6162 -1702 215 | rect 6972 -1500 7048 -1176 216 | rect 7566 180 7648 434 217 | rect 7520 -444 7578 -210 218 | rect 7660 -1478 7748 -1218 219 | rect 7180 -1710 7314 -1698 220 | rect 7180 -1968 7198 -1710 221 | rect 7198 -1968 7302 -1710 222 | rect 7302 -1968 7314 -1710 223 | << metal2 >> 224 | rect 3398 700 3664 1228 225 | rect 4068 700 4334 1228 226 | rect 3332 690 3704 700 227 | rect 3332 624 3704 634 228 | rect 4018 690 4390 700 229 | rect 4018 624 4390 634 230 | rect 1236 458 1302 468 231 | rect 1598 458 1664 468 232 | rect 2124 458 2200 466 233 | rect 2692 458 2768 462 234 | rect 182 134 1236 458 235 | rect 1302 134 1598 458 236 | rect 1664 456 2768 458 237 | rect 1664 136 2124 456 238 | rect 2200 452 2768 456 239 | rect 2200 136 2692 452 240 | rect 1664 134 2692 136 241 | rect 1236 124 1302 134 242 | rect 1598 124 1664 134 243 | rect 2124 126 2200 134 244 | rect 7566 434 7648 444 245 | rect 2768 422 7566 430 246 | rect 2768 370 7204 422 247 | rect 7256 370 7566 422 248 | rect 2768 180 7566 370 249 | rect 7648 180 7654 430 250 | rect 2768 178 7654 180 251 | rect 7566 170 7648 178 252 | rect 2692 122 2768 132 253 | rect 4970 -208 5040 -198 254 | rect 6056 -208 6126 -202 255 | rect 7520 -208 7578 -200 256 | rect 5040 -210 7590 -208 257 | rect 5040 -212 7520 -210 258 | rect 5040 -440 6056 -212 259 | rect 4970 -442 6056 -440 260 | rect 4970 -450 5040 -442 261 | rect 6126 -442 7520 -212 262 | rect 6056 -454 6126 -444 263 | rect 7578 -442 7590 -210 264 | rect 7520 -454 7578 -444 265 | rect 3250 -616 3304 -610 266 | rect 3936 -616 3990 -610 267 | rect 2128 -620 4522 -616 268 | rect 2128 -632 3250 -620 269 | rect 2128 -920 2262 -632 270 | rect 2626 -920 3250 -632 271 | rect 2128 -930 3250 -920 272 | rect 3304 -930 3936 -620 273 | rect 3990 -930 4522 -620 274 | rect 2128 -934 4522 -930 275 | rect 3250 -940 3304 -934 276 | rect 3936 -940 3990 -934 277 | rect 378 -1064 450 -1054 278 | rect 3750 -1068 3852 -1060 279 | rect 5372 -1066 5542 -1056 280 | rect 450 -1070 5372 -1068 281 | rect 450 -1194 3750 -1070 282 | rect 378 -1196 3750 -1194 283 | rect 3852 -1196 5372 -1070 284 | rect 378 -1204 450 -1196 285 | rect 3750 -1206 3852 -1196 286 | rect 5542 -1196 5644 -1068 287 | rect 6972 -1174 7048 -1166 288 | rect 6972 -1176 8072 -1174 289 | rect 5372 -1210 5542 -1200 290 | rect 4442 -1324 4550 -1314 291 | rect 4838 -1324 4946 -1318 292 | rect 6490 -1324 6640 -1316 293 | rect 4550 -1326 6640 -1324 294 | rect 4550 -1328 6490 -1326 295 | rect 4550 -1432 4838 -1328 296 | rect 4442 -1442 4550 -1432 297 | rect 4946 -1432 6490 -1328 298 | rect 4838 -1446 4946 -1436 299 | rect 6490 -1442 6640 -1432 300 | rect 7048 -1218 8072 -1176 301 | rect 7048 -1478 7660 -1218 302 | rect 7748 -1478 8072 -1218 303 | rect 7048 -1500 8072 -1478 304 | rect 6972 -1510 7048 -1500 305 | rect 2598 -1696 2746 -1686 306 | rect 2840 -1696 2902 -1690 307 | rect 3926 -1696 3988 -1692 308 | rect 5014 -1696 5076 -1690 309 | rect 6100 -1696 6162 -1692 310 | rect 7180 -1696 7314 -1688 311 | rect 2746 -1698 7314 -1696 312 | rect 2746 -1700 7180 -1698 313 | rect 2746 -1968 2840 -1700 314 | rect 2902 -1702 5014 -1700 315 | rect 2902 -1968 3926 -1702 316 | rect 2598 -1970 3926 -1968 317 | rect 3988 -1968 5014 -1702 318 | rect 5076 -1702 7180 -1700 319 | rect 5076 -1968 6100 -1702 320 | rect 3988 -1970 6100 -1968 321 | rect 6162 -1968 7180 -1702 322 | rect 6162 -1970 7314 -1968 323 | rect 2598 -1978 2746 -1970 324 | rect 2840 -1978 2902 -1970 325 | rect 3926 -1980 3988 -1970 326 | rect 5014 -1978 5076 -1970 327 | rect 6100 -1980 6162 -1970 328 | rect 7180 -1978 7314 -1970 329 | use sky130_fd_pr__pfet_01v8_GGMWVD XM1 330 | timestamp 1680634426 331 | transform 0 1 1449 -1 0 -200 332 | box -996 -319 996 319 333 | use sky130_fd_pr__nfet_01v8_lvt_FMZK9W XM2 334 | timestamp 1680634426 335 | transform 1 0 3316 0 1 -1840 336 | box -596 -410 596 410 337 | use sky130_fd_pr__pfet_01v8_lvt_GWPMZG XM3 338 | timestamp 1680634426 339 | transform 1 0 3516 0 1 -195 340 | box -396 -1019 396 1019 341 | use sky130_fd_pr__pfet_01v8_GGY9VD XM4 342 | timestamp 1680634426 343 | transform 0 1 2441 -1 0 -204 344 | box -996 -419 996 419 345 | use sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD XM5 346 | timestamp 1680634426 347 | transform 1 0 6542 0 1 -531 348 | box -596 -619 596 619 349 | use sky130_fd_pr__nfet_01v8_lvt_FMZK9W XM6 350 | timestamp 1680634426 351 | transform 1 0 6574 0 1 -1840 352 | box -596 -410 596 410 353 | use sky130_fd_pr__nfet_01v8_L9KS9E XM7 354 | timestamp 1680636816 355 | transform 1 0 7585 0 1 -2031 356 | box -211 -229 211 229 357 | use sky130_fd_pr__pfet_01v8_lvt_3VR9VM XM8 358 | timestamp 1680634426 359 | transform 1 0 574 0 1 -677 360 | box -296 -319 296 319 361 | use sky130_fd_pr__nfet_01v8_lvt_FMMQLY XM9 362 | timestamp 1680634426 363 | transform 1 0 598 0 1 -1402 364 | box -296 -260 296 260 365 | use sky130_fd_pr__nfet_01v8_lvt_FMHZDY XM10 366 | timestamp 1680634426 367 | transform 1 0 1606 0 1 -1996 368 | box -996 -260 996 260 369 | use sky130_fd_pr__nfet_01v8_lvt_FMZK9W XM12 370 | timestamp 1680634426 371 | transform 1 0 5488 0 1 -1840 372 | box -596 -410 596 410 373 | use sky130_fd_pr__nfet_01v8_lvt_FMZK9W XM18 374 | timestamp 1680634426 375 | transform 1 0 4402 0 1 -1840 376 | box -596 -410 596 410 377 | use sky130_fd_pr__pfet_01v8_lvt_GWPMZG XM20 378 | timestamp 1680634426 379 | transform 1 0 4202 0 1 -195 380 | box -396 -1019 396 1019 381 | use sky130_fd_pr__pfet_01v8_MGSVTJ XM46 382 | timestamp 1680636816 383 | transform 1 0 7607 0 1 -464 384 | box -211 -684 211 684 385 | use sky130_fd_pr__pfet_01v8_lvt_ZQZ9VD XM54 386 | timestamp 1680634426 387 | transform 1 0 5456 0 1 -531 388 | box -596 -619 596 619 389 | << labels >> 390 | flabel metal1 220 762 420 962 0 FreeSans 256 0 0 0 VCC 391 | port 5 nsew 392 | flabel metal1 216 -2394 416 -2194 0 FreeSans 256 0 0 0 VSS 393 | port 4 nsew 394 | flabel metal2 3426 1002 3626 1202 0 FreeSans 256 0 0 0 MINUS 395 | port 2 nsew default input 396 | flabel metal2 4112 1002 4312 1202 0 FreeSans 256 0 0 0 PLUS 397 | port 1 nsew default input 398 | flabel metal2 230 212 430 412 0 FreeSans 256 0 0 0 EN_N 399 | port 3 nsew 400 | flabel metal2 7840 -1430 8040 -1230 0 FreeSans 256 0 0 0 DIFFOUT 401 | port 6 nsew 402 | flabel metal1 214 -266 414 -66 0 FreeSans 256 0 0 0 ADJ 403 | port 7 nsew 404 | flabel metal2 2982 -792 2982 -792 0 FreeSans 800 0 0 0 SP 405 | flabel metal1 3796 -1298 3796 -1298 0 FreeSans 800 0 0 0 G1 406 | flabel metal1 4498 -1250 4498 -1250 0 FreeSans 800 0 0 0 G2 407 | << end >> 408 | --------------------------------------------------------------------------------