add comparator
diff --git a/.gitignore b/.gitignore
index bd35ce4..9c759a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
 precheck_results
 */tmp
-*/*/tmp
\ No newline at end of file
+*/*/tmp
+/comparator/sky130_fd_pr
+*.ext
\ No newline at end of file
diff --git a/comparator/.magicrc b/comparator/.magicrc
new file mode 100644
index 0000000..2cf27ba
--- /dev/null
+++ b/comparator/.magicrc
@@ -0,0 +1,71 @@
+puts stdout "Sourcing design .magicrc for technology sky130A ..."
+
+# scale to one
+set scalefac [tech lambda]
+if {[lindex $scalefac 1] < 2} {
+    scalegrid 1 10000
+}
+
+# drc off
+drc euclidean on
+
+# Allow override of PDK path from environment variable PDKPATH
+if {[catch {set PDKPATH $env(PDKPATH)}]} {
+    set PDKPATH "~/open_sky130/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 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 maglef
+}
+
+# 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
+} 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}
+}
+
+# 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}
+
+# set units for grid
+snap on
\ No newline at end of file
diff --git a/comparator/bsim4v5.out b/comparator/bsim4v5.out
new file mode 100644
index 0000000..fa67279
--- /dev/null
+++ b/comparator/bsim4v5.out
@@ -0,0 +1,5 @@
+BSIM4v5: Berkeley Short Channel IGFET Model-4
+Developed by Xuemei (Jane) Xi, Mohan Dunga, Prof. Ali Niknejad and Prof. Chenming Hu in 2003.
+
+++++++++++ BSIM4v5 PARAMETER CHECKING BELOW ++++++++++
+Model = xpre.x0:sky130_fd_pr__pfet_g5v0d10v5__model.55
diff --git a/comparator/comparator-decision.spice b/comparator/comparator-decision.spice
new file mode 100644
index 0000000..e7c2132
--- /dev/null
+++ b/comparator/comparator-decision.spice
@@ -0,0 +1,19 @@
+* scale: 1e6 units = 1 micron
+
+.subckt comparator-decision VPAMP VNAMP VOP VON VGND VPWR
+
+* voltage to current
+X0 VPWR VPAMP VOP VPWR sky130_fd_pr__pfet_g5v0d10v5 w=1.5e+6u l=0.5e+6u
+X1 VPWR VNAMP VON VPWR sky130_fd_pr__pfet_g5v0d10v5 w=1.5e+6u l=0.5e+6u
+
+* decision feedback
+X2 VOP VOP ISINK VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+X3 VOP VON ISINK VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+
+X4 VON VOP ISINK VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+X5 VON VON ISINK VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+
+* current sink
+X6 ISINK ISINK VGND VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+
+.ends
\ No newline at end of file
diff --git a/comparator/comparator-diffamp.spice b/comparator/comparator-diffamp.spice
new file mode 100644
index 0000000..1e0e0b3
--- /dev/null
+++ b/comparator/comparator-diffamp.spice
@@ -0,0 +1,23 @@
+* scale: 1e6 units = 1 micron
+
+* This is a 1.8V version: make sure expected inputs in range
+
+.subckt comparator-diffamp VOP VON VOUT VGND VPWR
+
+*load transistors
+X0 VPWR VONAMP VOPAMP VPWR sky130_fd_pr__pfet_01v8 w=3e+06u l=0.18e+6u
+X1 VPWR VONAMP VONAMP VPWR sky130_fd_pr__pfet_01v8 w=3e+06u l=0.18e+6u
+
+*diff pair
+X2 VOPAMP VOP ISINK VGND sky130_fd_pr__nfet_01v8 w=1e+06u l=0.18e+6u
+X3 VONAMP VON ISINK VGND sky130_fd_pr__nfet_01v8 w=1e+06u l=0.18e+6u
+
+* current source
+X4 ISINK VONAMP VGND VGND sky130_fd_pr__nfet_01v8 w=1e+06u l=0.18e+6u
+
+*output inverter
+X5 VPWR VOPAMP VOUT VPWR sky130_fd_pr__pfet_01v8 w=2e+06u l=0.15e+6u
+X6 VOUT VOPAMP VGND VGND sky130_fd_pr__nfet_01v8 w=1e+06u l=0.15e+6u
+
+
+.ends
\ No newline at end of file
diff --git a/comparator/comparator-preamp.spice b/comparator/comparator-preamp.spice
new file mode 100644
index 0000000..6472fba
--- /dev/null
+++ b/comparator/comparator-preamp.spice
@@ -0,0 +1,37 @@
+* scale: 1e6 units = 1 micron
+
+.subckt comparator-preamp VP VN VPAMP VNAMP VI BIASN VGND VPWR
+
+*constant current source: paralleled to allow for size matching
+* X0 VI BIASN VGND VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+* X1 VI BIASN VGND VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+* 
+* *Diff Pair
+* X12 VPAMP VP VI VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+* X13 VNAMP VN VI VGND sky130_fd_pr__nfet_03v3_nvt w=1e+6u l=0.6e+6u
+* 
+* *Load transistors
+* X24 VPWR VPAMP VPAMP VPWR sky130_fd_pr__pfet_g5v0d10v5 w=1.5e+6u l=0.5e+6u
+* X25 VPWR VNAMP VNAMP VPWR sky130_fd_pr__pfet_g5v0d10v5 w=1.5e+6u l=0.5e+6u
+
+* extracted
+*.option scale=1u
+
+X0 VPWR VPWR VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=-0 pd=0 as=-0 ps=0 w=1.5e+06u l=500000u
+X1 VPWR VPWR VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=-0 pd=0 as=-0 ps=0 w=1.5e+06u l=500000u
+X2 VPAMP VPAMP VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=0 pd=0 as=-0 ps=0 w=1.5e+06u l=500000u
+X3 VNAMP VNAMP VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=0 pd=0 as=-0 ps=0 w=1.5e+06u l=500000u
+X4 VGND BIASN VI VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=-0 ps=0 w=1e+06u l=600000u
+X5 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06u l=600000u
+X6 VI BIASN VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=-0 pd=0 as=0 ps=0 w=1e+06u l=600000u
+X7 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06u l=600000u
+X8 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06u l=600000u
+X9 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06u l=600000u
+X10 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06u l=600000u
+X11 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06u l=600000u
+X12 VI VN VNAMP VGND sky130_fd_pr__nfet_03v3_nvt ad=-0 pd=0 as=-0 ps=0 w=1e+06u l=600000u
+X13 VI VP VPAMP VGND sky130_fd_pr__nfet_03v3_nvt ad=-0 pd=0 as=-0 ps=0 w=1e+06u l=600000u
+C0 VPWR VGND 8.16fF
+
+
+.ends
\ No newline at end of file
diff --git a/comparator/preamp.mag b/comparator/preamp.mag
new file mode 100644
index 0000000..3bf8438
--- /dev/null
+++ b/comparator/preamp.mag
@@ -0,0 +1,153 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1632245862
+<< nwell >>
+rect 60 1210 150 1540
+rect 0 1170 150 1210
+rect 0 1060 150 1100
+rect 60 730 150 1060
+<< pwell >>
+rect 880 1260 950 1440
+rect 620 1160 850 1210
+rect 620 1070 850 1120
+rect 890 840 950 1020
+rect 660 330 910 460
+<< locali >>
+rect -80 2440 180 2460
+rect -80 2340 -60 2440
+rect 160 2340 180 2440
+rect -80 2280 180 2340
+rect 640 2200 920 2220
+rect -160 1780 270 2170
+rect 640 2100 660 2200
+rect 900 2100 920 2200
+rect 640 2040 920 2100
+rect 1300 2000 1760 2020
+rect 660 1860 910 1950
+rect 1300 1900 1320 2000
+rect 1740 1900 1760 2000
+rect 550 1820 1010 1860
+rect 1300 1840 1760 1900
+rect 550 1680 700 1820
+rect 860 1680 1010 1820
+rect 1460 1750 1610 1840
+rect 1330 1660 1730 1750
+rect -160 1260 -20 1540
+rect 60 1440 150 1540
+rect 1220 1480 1850 1660
+rect 60 1210 150 1350
+rect 1330 1390 1730 1480
+rect 0 1170 150 1210
+rect 660 1170 850 1210
+rect 620 1160 850 1170
+rect 620 1110 850 1120
+rect 0 1060 150 1100
+rect 660 1070 850 1110
+rect 1220 1080 1360 1240
+rect 1490 1180 1570 1190
+rect 1490 1120 1500 1180
+rect 1560 1120 1570 1180
+rect 1490 1110 1570 1120
+rect 1210 1070 1360 1080
+rect 1700 1080 1840 1240
+rect 1700 1070 1850 1080
+rect 1210 1060 1350 1070
+rect 1710 1060 1850 1070
+rect -160 730 -20 1010
+rect 60 930 150 1060
+rect 60 730 150 840
+rect 1330 820 1730 910
+rect 1220 640 1840 820
+rect -160 100 270 490
+rect 550 460 700 600
+rect 860 460 1010 600
+rect 1330 550 1730 640
+rect 550 420 1010 460
+rect 1460 440 1610 550
+rect 660 330 910 420
+<< viali >>
+rect -60 2340 160 2440
+rect 660 2100 900 2200
+rect 1320 1900 1740 2000
+rect 60 1350 150 1440
+rect 630 1350 690 1440
+rect 860 1260 950 1440
+rect 1400 1290 1490 1330
+rect 1580 1290 1670 1330
+rect 620 1170 660 1210
+rect 620 1070 660 1110
+rect 1500 1120 1560 1180
+rect 60 840 150 930
+rect 630 840 690 930
+rect 860 840 950 1020
+<< metal1 >>
+rect -80 2440 180 2460
+rect -80 2340 -60 2440
+rect 160 2340 180 2440
+rect -80 2320 180 2340
+rect 640 2200 1760 2460
+rect 640 2100 660 2200
+rect 900 2100 1760 2200
+rect 640 2080 1760 2100
+rect 1300 2000 1760 2080
+rect 1300 1900 1320 2000
+rect 1740 1900 1760 2000
+rect 1300 1880 1760 1900
+rect 40 1440 710 1460
+rect 40 1350 60 1440
+rect 150 1350 630 1440
+rect 690 1350 710 1440
+rect 40 1330 710 1350
+rect 840 1440 970 1460
+rect 840 1260 860 1440
+rect 950 1260 970 1440
+rect 1380 1330 1690 1350
+rect 1380 1290 1400 1330
+rect 1490 1290 1580 1330
+rect 1670 1290 1690 1330
+rect 1380 1270 1690 1290
+rect 600 1210 680 1230
+rect 600 1170 620 1210
+rect 660 1170 680 1210
+rect 600 1160 680 1170
+rect 840 1200 970 1260
+rect 840 1180 1580 1200
+rect 840 1120 1500 1180
+rect 1560 1120 1580 1180
+rect 600 1110 680 1120
+rect 600 1070 620 1110
+rect 660 1070 680 1110
+rect 600 1050 680 1070
+rect 840 1100 1580 1120
+rect 840 1020 970 1100
+rect 40 930 710 950
+rect 40 840 60 930
+rect 150 840 630 930
+rect 690 840 710 930
+rect 40 820 710 840
+rect 840 840 860 1020
+rect 950 840 970 1020
+rect 840 820 970 840
+use sky130_fd_pr__nfet_03v3_nvt_DWHJCV  sky130_fd_pr__nfet_03v3_nvt_DWHJCV_0
+timestamp 1632244313
+transform 1 0 1532 0 1 1151
+box -377 -776 377 776
+use sky130_fd_pr__nfet_03v3_nvt_ZJHJCF  sky130_fd_pr__nfet_03v3_nvt_ZJHJCF_0
+timestamp 1632244518
+transform 1 0 783 0 1 1140
+box -288 -985 288 985
+use sky130_fd_pr__pfet_g5v0d10v5_CABTE7  sky130_fd_pr__pfet_g5v0d10v5_CABTE7_0
+timestamp 1632243750
+transform 1 0 53 0 1 1136
+box -308 -1251 308 1251
+<< labels >>
+rlabel metal1 640 2380 1760 2460 1 VGND
+rlabel metal1 -80 2420 180 2460 1 VPWR
+rlabel metal1 1480 1100 1580 1200 1 VI
+rlabel metal1 1380 1270 1690 1350 1 BIASN
+rlabel metal1 390 1330 460 1460 1 VPAMP
+rlabel metal1 390 820 460 950 1 VNAMP
+rlabel metal1 600 1160 680 1230 1 VP
+rlabel metal1 600 1050 680 1120 1 VN
+<< end >>
diff --git a/comparator/preamp.spice b/comparator/preamp.spice
new file mode 100644
index 0000000..668223d
--- /dev/null
+++ b/comparator/preamp.spice
@@ -0,0 +1,19 @@
+* SPICE3 file created from preamp.ext - technology: sky130A
+
+.option scale=1u
+
+X0 VPWR VPWR VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=-0 pd=0 as=-0 ps=0 w=1.5e+06 l=500000
+X1 VPWR VPWR VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=-0 pd=0 as=-0 ps=0 w=1.5e+06 l=500000
+X2 VPAMP VPAMP VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=0 pd=0 as=-0 ps=0 w=1.5e+06 l=500000
+X3 VNAMP VNAMP VPWR VPWR sky130_fd_pr__pfet_g5v0d10v5 ad=0 pd=0 as=-0 ps=0 w=1.5e+06 l=500000
+X4 VGND BIASN VI VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=-0 ps=0 w=1e+06 l=600000
+X5 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06 l=600000
+X6 VI BIASN VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=-0 pd=0 as=0 ps=0 w=1e+06 l=600000
+X7 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06 l=600000
+X8 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06 l=600000
+X9 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06 l=600000
+X10 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06 l=600000
+X11 VGND VGND VGND VGND sky130_fd_pr__nfet_03v3_nvt ad=0 pd=0 as=0 ps=0 w=1e+06 l=600000
+X12 VI VN VNAMP VGND sky130_fd_pr__nfet_03v3_nvt ad=-0 pd=0 as=-0 ps=0 w=1e+06 l=600000
+X13 VI VP VPAMP VGND sky130_fd_pr__nfet_03v3_nvt ad=-0 pd=0 as=-0 ps=0 w=1e+06 l=600000
+C0 VPWR VGND 8.16fF
diff --git a/comparator/simulation.spice b/comparator/simulation.spice
new file mode 100644
index 0000000..5f38b23
--- /dev/null
+++ b/comparator/simulation.spice
@@ -0,0 +1,43 @@
+* comparator Simulation
+* this file edited to remove everything not in tt lib
+.lib "./sky130_fd_pr/models/sky130.lib.spice" tt
+.include comparator-preamp.spice
+.include comparator-decision.spice
+.include comparator-diffamp.spice
+
+* instantiate the comparator
+Xpre VP VN VPAMP VNAMP VI BIASN VGND VPWR comparator-preamp
+Xdec VPAMP VNAMP VOP VON VGND VPWR comparator-decision
+Xdif VOP VON VOUT VGND VDD comparator-diffamp
+
+* set gnd and power
+Vgnd VGND 0 0
+Vdd3v3 VPWR VGND 3
+Vdd1v8 VDD  VGND 1.8
+
+* set bias voltage
+Vbias BIASN VGND 0.3
+
+VNin VN VGND 1.5
+VPin VP VGND 1.5
+
+* create pulse
+*VPin VP VGND pulse(0 3 1p 1n 1n 1n 2n)
+*VPin VP VGND SINE(1.5 0.01 10Meg)
+
+*.tran 10e-12 200e-09 0e-00
+.dc VPin 0 3 0.002 VNin 0 3 0.2
+
+.control
+run
+set color0 = white
+set color1 = black
+plot VOUT
+*plot VP VN VOUT VPWR
+*plot VPAMP VNAMP VI
+*plot VOP VON
+*plot i(Vdd3v3)
+*plot i(Vdd1v8)
+.endc
+
+.end
diff --git a/comparator/sky130_fd_pr__nfet_03v3_nvt_DWHJCV.mag b/comparator/sky130_fd_pr__nfet_03v3_nvt_DWHJCV.mag
new file mode 100644
index 0000000..9dd1969
--- /dev/null
+++ b/comparator/sky130_fd_pr__nfet_03v3_nvt_DWHJCV.mag
@@ -0,0 +1,201 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1632244313
+<< pwell >>
+rect -377 -776 377 776
+<< nnmos >>
+rect -149 318 -29 518
+rect 29 318 149 518
+rect -149 -100 -29 100
+rect 29 -100 149 100
+rect -149 -518 -29 -318
+rect 29 -518 149 -318
+<< mvndiff >>
+rect -207 506 -149 518
+rect -207 330 -195 506
+rect -161 330 -149 506
+rect -207 318 -149 330
+rect -29 506 29 518
+rect -29 330 -17 506
+rect 17 330 29 506
+rect -29 318 29 330
+rect 149 506 207 518
+rect 149 330 161 506
+rect 195 330 207 506
+rect 149 318 207 330
+rect -207 88 -149 100
+rect -207 -88 -195 88
+rect -161 -88 -149 88
+rect -207 -100 -149 -88
+rect -29 88 29 100
+rect -29 -88 -17 88
+rect 17 -88 29 88
+rect -29 -100 29 -88
+rect 149 88 207 100
+rect 149 -88 161 88
+rect 195 -88 207 88
+rect 149 -100 207 -88
+rect -207 -330 -149 -318
+rect -207 -506 -195 -330
+rect -161 -506 -149 -330
+rect -207 -518 -149 -506
+rect -29 -330 29 -318
+rect -29 -506 -17 -330
+rect 17 -506 29 -330
+rect -29 -518 29 -506
+rect 149 -330 207 -318
+rect 149 -506 161 -330
+rect 195 -506 207 -330
+rect 149 -518 207 -506
+<< mvndiffc >>
+rect -195 330 -161 506
+rect -17 330 17 506
+rect 161 330 195 506
+rect -195 -88 -161 88
+rect -17 -88 17 88
+rect 161 -88 195 88
+rect -195 -506 -161 -330
+rect -17 -506 17 -330
+rect 161 -506 195 -330
+<< mvpsubdiff >>
+rect -341 728 341 740
+rect -341 694 -233 728
+rect 233 694 341 728
+rect -341 682 341 694
+rect -341 632 -283 682
+rect -341 -632 -329 632
+rect -295 -632 -283 632
+rect 283 632 341 682
+rect -341 -682 -283 -632
+rect 283 -632 295 632
+rect 329 -632 341 632
+rect 283 -682 341 -632
+rect -341 -694 341 -682
+rect -341 -728 -233 -694
+rect 233 -728 341 -694
+rect -341 -740 341 -728
+<< mvpsubdiffcont >>
+rect -233 694 233 728
+rect -329 -632 -295 632
+rect 295 -632 329 632
+rect -233 -728 233 -694
+<< poly >>
+rect -149 590 -29 606
+rect -149 556 -133 590
+rect -45 556 -29 590
+rect -149 518 -29 556
+rect 29 590 149 606
+rect 29 556 45 590
+rect 133 556 149 590
+rect 29 518 149 556
+rect -149 280 -29 318
+rect -149 246 -133 280
+rect -45 246 -29 280
+rect -149 230 -29 246
+rect 29 280 149 318
+rect 29 246 45 280
+rect 133 246 149 280
+rect 29 230 149 246
+rect -149 172 -29 188
+rect -149 138 -133 172
+rect -45 138 -29 172
+rect -149 100 -29 138
+rect 29 172 149 188
+rect 29 138 45 172
+rect 133 138 149 172
+rect 29 100 149 138
+rect -149 -138 -29 -100
+rect -149 -172 -133 -138
+rect -45 -172 -29 -138
+rect -149 -188 -29 -172
+rect 29 -138 149 -100
+rect 29 -172 45 -138
+rect 133 -172 149 -138
+rect 29 -188 149 -172
+rect -149 -246 -29 -230
+rect -149 -280 -133 -246
+rect -45 -280 -29 -246
+rect -149 -318 -29 -280
+rect 29 -246 149 -230
+rect 29 -280 45 -246
+rect 133 -280 149 -246
+rect 29 -318 149 -280
+rect -149 -556 -29 -518
+rect -149 -590 -133 -556
+rect -45 -590 -29 -556
+rect -149 -606 -29 -590
+rect 29 -556 149 -518
+rect 29 -590 45 -556
+rect 133 -590 149 -556
+rect 29 -606 149 -590
+<< polycont >>
+rect -133 556 -45 590
+rect 45 556 133 590
+rect -133 246 -45 280
+rect 45 246 133 280
+rect -133 138 -45 172
+rect 45 138 133 172
+rect -133 -172 -45 -138
+rect 45 -172 133 -138
+rect -133 -280 -45 -246
+rect 45 -280 133 -246
+rect -133 -590 -45 -556
+rect 45 -590 133 -556
+<< locali >>
+rect -329 694 -233 728
+rect 233 694 329 728
+rect -329 632 -295 694
+rect 295 632 329 694
+rect -149 556 -133 590
+rect -45 556 -29 590
+rect 29 556 45 590
+rect 133 556 149 590
+rect -195 506 -161 522
+rect -195 314 -161 330
+rect -17 506 17 522
+rect -17 314 17 330
+rect 161 506 195 522
+rect 161 314 195 330
+rect -149 246 -133 280
+rect -45 246 -29 280
+rect 29 246 45 280
+rect 133 246 149 280
+rect -149 138 -133 172
+rect -45 138 -29 172
+rect 29 138 45 172
+rect 133 138 149 172
+rect -195 88 -161 104
+rect -195 -104 -161 -88
+rect -17 88 17 104
+rect -17 -104 17 -88
+rect 161 88 195 104
+rect 161 -104 195 -88
+rect -149 -172 -133 -138
+rect -45 -172 -29 -138
+rect 29 -172 45 -138
+rect 133 -172 149 -138
+rect -149 -280 -133 -246
+rect -45 -280 -29 -246
+rect 29 -280 45 -246
+rect 133 -280 149 -246
+rect -195 -330 -161 -314
+rect -195 -522 -161 -506
+rect -17 -330 17 -314
+rect -17 -522 17 -506
+rect 161 -330 195 -314
+rect 161 -522 195 -506
+rect -149 -590 -133 -556
+rect -45 -590 -29 -556
+rect 29 -590 45 -556
+rect 133 -590 149 -556
+rect -329 -694 -295 -632
+rect 295 -694 329 -632
+rect -329 -728 -233 -694
+rect 233 -728 329 -694
+<< properties >>
+string gencell sky130_fd_pr__nfet_03v3_nvt
+string FIXED_BBOX -312 -711 312 711
+string parameters w 1 l 0.6 m 3 nf 2 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.50 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
+string library sky130
+<< end >>
diff --git a/comparator/sky130_fd_pr__nfet_03v3_nvt_RPCQRP.mag b/comparator/sky130_fd_pr__nfet_03v3_nvt_RPCQRP.mag
new file mode 100644
index 0000000..1625337
--- /dev/null
+++ b/comparator/sky130_fd_pr__nfet_03v3_nvt_RPCQRP.mag
@@ -0,0 +1,76 @@
+magic
+tech sky130A
+timestamp 1632242814
+<< pwell >>
+rect -144 -179 144 179
+<< nnmos >>
+rect -30 -50 30 50
+<< mvndiff >>
+rect -59 44 -30 50
+rect -59 -44 -53 44
+rect -36 -44 -30 44
+rect -59 -50 -30 -44
+rect 30 44 59 50
+rect 30 -44 36 44
+rect 53 -44 59 44
+rect 30 -50 59 -44
+<< mvndiffc >>
+rect -53 -44 -36 44
+rect 36 -44 53 44
+<< mvpsubdiff >>
+rect -126 155 126 161
+rect -126 138 -72 155
+rect 72 138 126 155
+rect -126 132 126 138
+rect -126 107 -97 132
+rect -126 -107 -120 107
+rect -103 -107 -97 107
+rect 97 107 126 132
+rect -126 -132 -97 -107
+rect 97 -107 103 107
+rect 120 -107 126 107
+rect 97 -132 126 -107
+rect -126 -138 126 -132
+rect -126 -155 -72 -138
+rect 72 -155 126 -138
+rect -126 -161 126 -155
+<< mvpsubdiffcont >>
+rect -72 138 72 155
+rect -120 -107 -103 107
+rect 103 -107 120 107
+rect -72 -155 72 -138
+<< poly >>
+rect -30 86 30 94
+rect -30 69 -22 86
+rect 22 69 30 86
+rect -30 50 30 69
+rect -30 -69 30 -50
+rect -30 -86 -22 -69
+rect 22 -86 30 -69
+rect -30 -94 30 -86
+<< polycont >>
+rect -22 69 22 86
+rect -22 -86 22 -69
+<< locali >>
+rect -120 138 -72 155
+rect 72 138 120 155
+rect -120 107 -103 138
+rect 103 107 120 138
+rect -30 69 -22 86
+rect 22 69 30 86
+rect -53 44 -36 52
+rect -53 -52 -36 -44
+rect 36 44 53 52
+rect 36 -52 53 -44
+rect -30 -86 -22 -69
+rect 22 -86 30 -69
+rect -120 -138 -103 -107
+rect 103 -138 120 -107
+rect -120 -155 -72 -138
+rect 72 -155 120 -138
+<< properties >>
+string gencell sky130_fd_pr__nfet_03v3_nvt
+string FIXED_BBOX -111 -146 111 146
+string parameters w 1 l 0.60 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.50 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
+string library sky130
+<< end >>
diff --git a/comparator/sky130_fd_pr__nfet_03v3_nvt_ZJHJCF.mag b/comparator/sky130_fd_pr__nfet_03v3_nvt_ZJHJCF.mag
new file mode 100644
index 0000000..50f5f02
--- /dev/null
+++ b/comparator/sky130_fd_pr__nfet_03v3_nvt_ZJHJCF.mag
@@ -0,0 +1,164 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1632244518
+<< pwell >>
+rect -288 -985 288 985
+<< nnmos >>
+rect -60 527 60 727
+rect -60 109 60 309
+rect -60 -309 60 -109
+rect -60 -727 60 -527
+<< mvndiff >>
+rect -118 715 -60 727
+rect -118 539 -106 715
+rect -72 539 -60 715
+rect -118 527 -60 539
+rect 60 715 118 727
+rect 60 539 72 715
+rect 106 539 118 715
+rect 60 527 118 539
+rect -118 297 -60 309
+rect -118 121 -106 297
+rect -72 121 -60 297
+rect -118 109 -60 121
+rect 60 297 118 309
+rect 60 121 72 297
+rect 106 121 118 297
+rect 60 109 118 121
+rect -118 -121 -60 -109
+rect -118 -297 -106 -121
+rect -72 -297 -60 -121
+rect -118 -309 -60 -297
+rect 60 -121 118 -109
+rect 60 -297 72 -121
+rect 106 -297 118 -121
+rect 60 -309 118 -297
+rect -118 -539 -60 -527
+rect -118 -715 -106 -539
+rect -72 -715 -60 -539
+rect -118 -727 -60 -715
+rect 60 -539 118 -527
+rect 60 -715 72 -539
+rect 106 -715 118 -539
+rect 60 -727 118 -715
+<< mvndiffc >>
+rect -106 539 -72 715
+rect 72 539 106 715
+rect -106 121 -72 297
+rect 72 121 106 297
+rect -106 -297 -72 -121
+rect 72 -297 106 -121
+rect -106 -715 -72 -539
+rect 72 -715 106 -539
+<< mvpsubdiff >>
+rect -252 937 252 949
+rect -252 903 -144 937
+rect 144 903 252 937
+rect -252 891 252 903
+rect -252 841 -194 891
+rect -252 -841 -240 841
+rect -206 -841 -194 841
+rect 194 841 252 891
+rect -252 -891 -194 -841
+rect 194 -841 206 841
+rect 240 -841 252 841
+rect 194 -891 252 -841
+rect -252 -903 252 -891
+rect -252 -937 -144 -903
+rect 144 -937 252 -903
+rect -252 -949 252 -937
+<< mvpsubdiffcont >>
+rect -144 903 144 937
+rect -240 -841 -206 841
+rect 206 -841 240 841
+rect -144 -937 144 -903
+<< poly >>
+rect -60 799 60 815
+rect -60 765 -44 799
+rect 44 765 60 799
+rect -60 727 60 765
+rect -60 489 60 527
+rect -60 455 -44 489
+rect 44 455 60 489
+rect -60 439 60 455
+rect -60 381 60 397
+rect -60 347 -44 381
+rect 44 347 60 381
+rect -60 309 60 347
+rect -60 71 60 109
+rect -60 37 -44 71
+rect 44 37 60 71
+rect -60 21 60 37
+rect -60 -37 60 -21
+rect -60 -71 -44 -37
+rect 44 -71 60 -37
+rect -60 -109 60 -71
+rect -60 -347 60 -309
+rect -60 -381 -44 -347
+rect 44 -381 60 -347
+rect -60 -397 60 -381
+rect -60 -455 60 -439
+rect -60 -489 -44 -455
+rect 44 -489 60 -455
+rect -60 -527 60 -489
+rect -60 -765 60 -727
+rect -60 -799 -44 -765
+rect 44 -799 60 -765
+rect -60 -815 60 -799
+<< polycont >>
+rect -44 765 44 799
+rect -44 455 44 489
+rect -44 347 44 381
+rect -44 37 44 71
+rect -44 -71 44 -37
+rect -44 -381 44 -347
+rect -44 -489 44 -455
+rect -44 -799 44 -765
+<< locali >>
+rect -240 903 -144 937
+rect 144 903 240 937
+rect -240 841 -206 903
+rect 206 841 240 903
+rect -60 765 -44 799
+rect 44 765 60 799
+rect -106 715 -72 731
+rect -106 523 -72 539
+rect 72 715 106 731
+rect 72 523 106 539
+rect -60 455 -44 489
+rect 44 455 60 489
+rect -60 347 -44 381
+rect 44 347 60 381
+rect -106 297 -72 313
+rect -106 105 -72 121
+rect 72 297 106 313
+rect 72 105 106 121
+rect -60 37 -44 71
+rect 44 37 60 71
+rect -60 -71 -44 -37
+rect 44 -71 60 -37
+rect -106 -121 -72 -105
+rect -106 -313 -72 -297
+rect 72 -121 106 -105
+rect 72 -313 106 -297
+rect -60 -381 -44 -347
+rect 44 -381 60 -347
+rect -60 -489 -44 -455
+rect 44 -489 60 -455
+rect -106 -539 -72 -523
+rect -106 -731 -72 -715
+rect 72 -539 106 -523
+rect 72 -731 106 -715
+rect -60 -799 -44 -765
+rect 44 -799 60 -765
+rect -240 -903 -206 -841
+rect 206 -903 240 -841
+rect -240 -937 -144 -903
+rect 144 -937 240 -903
+<< properties >>
+string gencell sky130_fd_pr__nfet_03v3_nvt
+string FIXED_BBOX -223 -920 223 920
+string parameters w 1 l 0.6 m 4 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.50 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
+string library sky130
+<< end >>
diff --git a/comparator/sky130_fd_pr__pfet_g5v0d10v5_7EB329.mag b/comparator/sky130_fd_pr__pfet_g5v0d10v5_7EB329.mag
new file mode 100644
index 0000000..dcd7c0a
--- /dev/null
+++ b/comparator/sky130_fd_pr__pfet_g5v0d10v5_7EB329.mag
@@ -0,0 +1,164 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1632242116
+<< nwell >>
+rect -308 -1251 308 1251
+<< mvpmos >>
+rect -50 654 50 954
+rect -50 118 50 418
+rect -50 -418 50 -118
+rect -50 -954 50 -654
+<< mvpdiff >>
+rect -108 942 -50 954
+rect -108 666 -96 942
+rect -62 666 -50 942
+rect -108 654 -50 666
+rect 50 942 108 954
+rect 50 666 62 942
+rect 96 666 108 942
+rect 50 654 108 666
+rect -108 406 -50 418
+rect -108 130 -96 406
+rect -62 130 -50 406
+rect -108 118 -50 130
+rect 50 406 108 418
+rect 50 130 62 406
+rect 96 130 108 406
+rect 50 118 108 130
+rect -108 -130 -50 -118
+rect -108 -406 -96 -130
+rect -62 -406 -50 -130
+rect -108 -418 -50 -406
+rect 50 -130 108 -118
+rect 50 -406 62 -130
+rect 96 -406 108 -130
+rect 50 -418 108 -406
+rect -108 -666 -50 -654
+rect -108 -942 -96 -666
+rect -62 -942 -50 -666
+rect -108 -954 -50 -942
+rect 50 -666 108 -654
+rect 50 -942 62 -666
+rect 96 -942 108 -666
+rect 50 -954 108 -942
+<< mvpdiffc >>
+rect -96 666 -62 942
+rect 62 666 96 942
+rect -96 130 -62 406
+rect 62 130 96 406
+rect -96 -406 -62 -130
+rect 62 -406 96 -130
+rect -96 -942 -62 -666
+rect 62 -942 96 -666
+<< mvnsubdiff >>
+rect -242 1173 242 1185
+rect -242 1139 -134 1173
+rect 134 1139 242 1173
+rect -242 1127 242 1139
+rect -242 1077 -184 1127
+rect -242 -1077 -230 1077
+rect -196 -1077 -184 1077
+rect 184 1077 242 1127
+rect -242 -1127 -184 -1077
+rect 184 -1077 196 1077
+rect 230 -1077 242 1077
+rect 184 -1127 242 -1077
+rect -242 -1139 242 -1127
+rect -242 -1173 -134 -1139
+rect 134 -1173 242 -1139
+rect -242 -1185 242 -1173
+<< mvnsubdiffcont >>
+rect -134 1139 134 1173
+rect -230 -1077 -196 1077
+rect 196 -1077 230 1077
+rect -134 -1173 134 -1139
+<< poly >>
+rect -50 1035 50 1051
+rect -50 1001 -34 1035
+rect 34 1001 50 1035
+rect -50 954 50 1001
+rect -50 607 50 654
+rect -50 573 -34 607
+rect 34 573 50 607
+rect -50 557 50 573
+rect -50 499 50 515
+rect -50 465 -34 499
+rect 34 465 50 499
+rect -50 418 50 465
+rect -50 71 50 118
+rect -50 37 -34 71
+rect 34 37 50 71
+rect -50 21 50 37
+rect -50 -37 50 -21
+rect -50 -71 -34 -37
+rect 34 -71 50 -37
+rect -50 -118 50 -71
+rect -50 -465 50 -418
+rect -50 -499 -34 -465
+rect 34 -499 50 -465
+rect -50 -515 50 -499
+rect -50 -573 50 -557
+rect -50 -607 -34 -573
+rect 34 -607 50 -573
+rect -50 -654 50 -607
+rect -50 -1001 50 -954
+rect -50 -1035 -34 -1001
+rect 34 -1035 50 -1001
+rect -50 -1051 50 -1035
+<< polycont >>
+rect -34 1001 34 1035
+rect -34 573 34 607
+rect -34 465 34 499
+rect -34 37 34 71
+rect -34 -71 34 -37
+rect -34 -499 34 -465
+rect -34 -607 34 -573
+rect -34 -1035 34 -1001
+<< locali >>
+rect -230 1139 -134 1173
+rect 134 1139 230 1173
+rect -230 1077 -196 1139
+rect 196 1077 230 1139
+rect -50 1001 -34 1035
+rect 34 1001 50 1035
+rect -96 942 -62 958
+rect -96 650 -62 666
+rect 62 942 96 958
+rect 62 650 96 666
+rect -50 573 -34 607
+rect 34 573 50 607
+rect -50 465 -34 499
+rect 34 465 50 499
+rect -96 406 -62 422
+rect -96 114 -62 130
+rect 62 406 96 422
+rect 62 114 96 130
+rect -50 37 -34 71
+rect 34 37 50 71
+rect -50 -71 -34 -37
+rect 34 -71 50 -37
+rect -96 -130 -62 -114
+rect -96 -422 -62 -406
+rect 62 -130 96 -114
+rect 62 -422 96 -406
+rect -50 -499 -34 -465
+rect 34 -499 50 -465
+rect -50 -607 -34 -573
+rect 34 -607 50 -573
+rect -96 -666 -62 -650
+rect -96 -958 -62 -942
+rect 62 -666 96 -650
+rect 62 -958 96 -942
+rect -50 -1035 -34 -1001
+rect 34 -1035 50 -1001
+rect -230 -1139 -196 -1077
+rect 196 -1139 230 -1077
+rect -230 -1173 -134 -1139
+rect 134 -1173 230 -1139
+<< properties >>
+string gencell sky130_fd_pr__pfet_g5v0d10v5
+string FIXED_BBOX -213 -1156 213 1156
+string parameters w 1.5 l 0.5 m 4 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.50 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
+string library sky130
+<< end >>
diff --git a/comparator/sky130_fd_pr__pfet_g5v0d10v5_7EFQZ5.mag b/comparator/sky130_fd_pr__pfet_g5v0d10v5_7EFQZ5.mag
new file mode 100644
index 0000000..3b15dda
--- /dev/null
+++ b/comparator/sky130_fd_pr__pfet_g5v0d10v5_7EFQZ5.mag
@@ -0,0 +1,143 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1632242116
+<< nwell >>
+rect -545 -447 545 447
+<< mvpmos >>
+rect -287 -150 -187 150
+rect -129 -150 -29 150
+rect 29 -150 129 150
+rect 187 -150 287 150
+<< mvpdiff >>
+rect -345 138 -287 150
+rect -345 -138 -333 138
+rect -299 -138 -287 138
+rect -345 -150 -287 -138
+rect -187 138 -129 150
+rect -187 -138 -175 138
+rect -141 -138 -129 138
+rect -187 -150 -129 -138
+rect -29 138 29 150
+rect -29 -138 -17 138
+rect 17 -138 29 138
+rect -29 -150 29 -138
+rect 129 138 187 150
+rect 129 -138 141 138
+rect 175 -138 187 138
+rect 129 -150 187 -138
+rect 287 138 345 150
+rect 287 -138 299 138
+rect 333 -138 345 138
+rect 287 -150 345 -138
+<< mvpdiffc >>
+rect -333 -138 -299 138
+rect -175 -138 -141 138
+rect -17 -138 17 138
+rect 141 -138 175 138
+rect 299 -138 333 138
+<< mvnsubdiff >>
+rect -479 369 479 381
+rect -479 335 -371 369
+rect 371 335 479 369
+rect -479 323 479 335
+rect -479 273 -421 323
+rect -479 -273 -467 273
+rect -433 -273 -421 273
+rect 421 273 479 323
+rect -479 -323 -421 -273
+rect 421 -273 433 273
+rect 467 -273 479 273
+rect 421 -323 479 -273
+rect -479 -335 479 -323
+rect -479 -369 -371 -335
+rect 371 -369 479 -335
+rect -479 -381 479 -369
+<< mvnsubdiffcont >>
+rect -371 335 371 369
+rect -467 -273 -433 273
+rect 433 -273 467 273
+rect -371 -369 371 -335
+<< poly >>
+rect -287 231 -187 247
+rect -287 197 -271 231
+rect -203 197 -187 231
+rect -287 150 -187 197
+rect -129 231 -29 247
+rect -129 197 -113 231
+rect -45 197 -29 231
+rect -129 150 -29 197
+rect 29 231 129 247
+rect 29 197 45 231
+rect 113 197 129 231
+rect 29 150 129 197
+rect 187 231 287 247
+rect 187 197 203 231
+rect 271 197 287 231
+rect 187 150 287 197
+rect -287 -197 -187 -150
+rect -287 -231 -271 -197
+rect -203 -231 -187 -197
+rect -287 -247 -187 -231
+rect -129 -197 -29 -150
+rect -129 -231 -113 -197
+rect -45 -231 -29 -197
+rect -129 -247 -29 -231
+rect 29 -197 129 -150
+rect 29 -231 45 -197
+rect 113 -231 129 -197
+rect 29 -247 129 -231
+rect 187 -197 287 -150
+rect 187 -231 203 -197
+rect 271 -231 287 -197
+rect 187 -247 287 -231
+<< polycont >>
+rect -271 197 -203 231
+rect -113 197 -45 231
+rect 45 197 113 231
+rect 203 197 271 231
+rect -271 -231 -203 -197
+rect -113 -231 -45 -197
+rect 45 -231 113 -197
+rect 203 -231 271 -197
+<< locali >>
+rect -467 335 -371 369
+rect 371 335 467 369
+rect -467 273 -433 335
+rect 433 273 467 335
+rect -287 197 -271 231
+rect -203 197 -187 231
+rect -129 197 -113 231
+rect -45 197 -29 231
+rect 29 197 45 231
+rect 113 197 129 231
+rect 187 197 203 231
+rect 271 197 287 231
+rect -333 138 -299 154
+rect -333 -154 -299 -138
+rect -175 138 -141 154
+rect -175 -154 -141 -138
+rect -17 138 17 154
+rect -17 -154 17 -138
+rect 141 138 175 154
+rect 141 -154 175 -138
+rect 299 138 333 154
+rect 299 -154 333 -138
+rect -287 -231 -271 -197
+rect -203 -231 -187 -197
+rect -129 -231 -113 -197
+rect -45 -231 -29 -197
+rect 29 -231 45 -197
+rect 113 -231 129 -197
+rect 187 -231 203 -197
+rect 271 -231 287 -197
+rect -467 -335 -433 -273
+rect 433 -335 467 -273
+rect -467 -369 -371 -335
+rect 371 -369 467 -335
+<< properties >>
+string gencell sky130_fd_pr__pfet_g5v0d10v5
+string FIXED_BBOX -450 -352 450 352
+string parameters w 1.5 l 0.5 m 1 nf 4 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.50 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
+string library sky130
+<< end >>
diff --git a/comparator/sky130_fd_pr__pfet_g5v0d10v5_CABTE7.mag b/comparator/sky130_fd_pr__pfet_g5v0d10v5_CABTE7.mag
new file mode 100644
index 0000000..815a952
--- /dev/null
+++ b/comparator/sky130_fd_pr__pfet_g5v0d10v5_CABTE7.mag
@@ -0,0 +1,164 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1632243750
+<< nwell >>
+rect -308 -1251 308 1251
+<< mvpmos >>
+rect -50 654 50 954
+rect -50 118 50 418
+rect -50 -418 50 -118
+rect -50 -954 50 -654
+<< mvpdiff >>
+rect -108 942 -50 954
+rect -108 666 -96 942
+rect -62 666 -50 942
+rect -108 654 -50 666
+rect 50 942 108 954
+rect 50 666 62 942
+rect 96 666 108 942
+rect 50 654 108 666
+rect -108 406 -50 418
+rect -108 130 -96 406
+rect -62 130 -50 406
+rect -108 118 -50 130
+rect 50 406 108 418
+rect 50 130 62 406
+rect 96 130 108 406
+rect 50 118 108 130
+rect -108 -130 -50 -118
+rect -108 -406 -96 -130
+rect -62 -406 -50 -130
+rect -108 -418 -50 -406
+rect 50 -130 108 -118
+rect 50 -406 62 -130
+rect 96 -406 108 -130
+rect 50 -418 108 -406
+rect -108 -666 -50 -654
+rect -108 -942 -96 -666
+rect -62 -942 -50 -666
+rect -108 -954 -50 -942
+rect 50 -666 108 -654
+rect 50 -942 62 -666
+rect 96 -942 108 -666
+rect 50 -954 108 -942
+<< mvpdiffc >>
+rect -96 666 -62 942
+rect 62 666 96 942
+rect -96 130 -62 406
+rect 62 130 96 406
+rect -96 -406 -62 -130
+rect 62 -406 96 -130
+rect -96 -942 -62 -666
+rect 62 -942 96 -666
+<< mvnsubdiff >>
+rect -242 1173 242 1185
+rect -242 1139 -134 1173
+rect 134 1139 242 1173
+rect -242 1127 242 1139
+rect -242 1077 -184 1127
+rect -242 -1077 -230 1077
+rect -196 -1077 -184 1077
+rect 184 1077 242 1127
+rect -242 -1127 -184 -1077
+rect 184 -1077 196 1077
+rect 230 -1077 242 1077
+rect 184 -1127 242 -1077
+rect -242 -1139 242 -1127
+rect -242 -1173 -134 -1139
+rect 134 -1173 242 -1139
+rect -242 -1185 242 -1173
+<< mvnsubdiffcont >>
+rect -134 1139 134 1173
+rect -230 -1077 -196 1077
+rect 196 -1077 230 1077
+rect -134 -1173 134 -1139
+<< poly >>
+rect -50 1035 50 1051
+rect -50 1001 -34 1035
+rect 34 1001 50 1035
+rect -50 954 50 1001
+rect -50 607 50 654
+rect -50 573 -34 607
+rect 34 573 50 607
+rect -50 557 50 573
+rect -50 499 50 515
+rect -50 465 -34 499
+rect 34 465 50 499
+rect -50 418 50 465
+rect -50 71 50 118
+rect -50 37 -34 71
+rect 34 37 50 71
+rect -50 21 50 37
+rect -50 -37 50 -21
+rect -50 -71 -34 -37
+rect 34 -71 50 -37
+rect -50 -118 50 -71
+rect -50 -465 50 -418
+rect -50 -499 -34 -465
+rect 34 -499 50 -465
+rect -50 -515 50 -499
+rect -50 -573 50 -557
+rect -50 -607 -34 -573
+rect 34 -607 50 -573
+rect -50 -654 50 -607
+rect -50 -1001 50 -954
+rect -50 -1035 -34 -1001
+rect 34 -1035 50 -1001
+rect -50 -1051 50 -1035
+<< polycont >>
+rect -34 1001 34 1035
+rect -34 573 34 607
+rect -34 465 34 499
+rect -34 37 34 71
+rect -34 -71 34 -37
+rect -34 -499 34 -465
+rect -34 -607 34 -573
+rect -34 -1035 34 -1001
+<< locali >>
+rect -230 1139 -134 1173
+rect 134 1139 230 1173
+rect -230 1077 -196 1139
+rect 196 1077 230 1139
+rect -50 1001 -34 1035
+rect 34 1001 50 1035
+rect -96 942 -62 958
+rect -96 650 -62 666
+rect 62 942 96 958
+rect 62 650 96 666
+rect -50 573 -34 607
+rect 34 573 50 607
+rect -50 465 -34 499
+rect 34 465 50 499
+rect -96 406 -62 422
+rect -96 114 -62 130
+rect 62 406 96 422
+rect 62 114 96 130
+rect -50 37 -34 71
+rect 34 37 50 71
+rect -50 -71 -34 -37
+rect 34 -71 50 -37
+rect -96 -130 -62 -114
+rect -96 -422 -62 -406
+rect 62 -130 96 -114
+rect 62 -422 96 -406
+rect -50 -499 -34 -465
+rect 34 -499 50 -465
+rect -50 -607 -34 -573
+rect 34 -607 50 -573
+rect -96 -666 -62 -650
+rect -96 -958 -62 -942
+rect 62 -666 96 -650
+rect 62 -958 96 -942
+rect -50 -1035 -34 -1001
+rect 34 -1035 50 -1001
+rect -230 -1139 -196 -1077
+rect 196 -1139 230 -1077
+rect -230 -1173 -134 -1139
+rect 134 -1173 230 -1139
+<< properties >>
+string gencell sky130_fd_pr__pfet_g5v0d10v5
+string FIXED_BBOX -213 -1156 213 1156
+string parameters w 1.5 l 0.50 m 4 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.50 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
+string library sky130
+<< end >>
diff --git a/comparator/tristate-inverter.spice b/comparator/tristate-inverter.spice
new file mode 100644
index 0000000..0a3dc7d
--- /dev/null
+++ b/comparator/tristate-inverter.spice
@@ -0,0 +1,21 @@
+.subckt tristate-inverter Y A OE ~OE VGND VPWR
+* NGSPICE file created from tristate-inverter.ext - technology: sky130A
+
+* Top level circuit tristate-inverter with output pullup
+
+R1 VPWR Y 100k
+
+X0 Y ~OE a_150000_0# VPWR sky130_fd_pr__pfet_01v8 w=1e+06u l=150000u
+X1 Y OE a_150000_n1500000# VGND sky130_fd_pr__nfet_01v8 w=650000u l=150000u
+X2 a_150000_0# A VPWR VPWR sky130_fd_pr__pfet_01v8 w=1e+06u l=150000u
+X3 a_150000_n1500000# A VGND VGND sky130_fd_pr__nfet_01v8 w=650000u l=150000u
+
+
+* 
+* X0 pfet_middle A VPWR VPWR sky130_fd_pr__pfet_01v8 w=1e+06u l=150000u
+* X2 Y ~OE pfet_middle VPWR sky130_fd_pr__pfet_01v8 w=1e+06u l=150000u
+* 
+* X1 nfet_middle A VGND VGND sky130_fd_pr__nfet_01v8 w=650000u l=150000u
+* X3 Y OE nfet_middle VGND sky130_fd_pr__nfet_01v8 w=650000u l=150000u
+
+.ends
\ No newline at end of file