Ring OSC done. 21 Stages. Need to check output buffer
diff --git a/xschem/ring_vco/not.sch b/xschem/ring_vco/not.sch
index ab0740c..674e041 100644
--- a/xschem/ring_vco/not.sch
+++ b/xschem/ring_vco/not.sch
@@ -11,9 +11,7 @@
 N 80 90 130 90 { lab=in}
 N 210 90 300 90 { lab=out}
 N 210 200 210 240 { lab=vss}
-N 210 170 280 170 { lab=vss}
-N 280 170 280 240 { lab=vss}
-N 210 240 280 240 { lab=vss}
+N 210 170 280 170 { lab=vbulk}
 N 80 240 210 240 { lab=vss}
 N 210 -50 210 -10 { lab=vdd}
 N 80 -50 210 -50 { lab=vdd}
@@ -48,3 +46,4 @@
 C {ipin.sym} 80 240 0 0 {name=p3 lab=vss}
 C {opin.sym} 300 90 0 0 {name=p4 lab=out
 }
+C {ipin.sym} 280 170 2 0 {name=p5 lab=vbulk}
diff --git a/xschem/ring_vco/not.sym b/xschem/ring_vco/not.sym
index 09e1378..a5e69e5 100644
--- a/xschem/ring_vco/not.sym
+++ b/xschem/ring_vco/not.sym
@@ -14,10 +14,12 @@
 L 4 -20 20 20 0 {}
 L 4 -20 -20 20 0 {}
 L 4 -20 -20 -20 20 {}
+L 4 -40 10 -20 10 {}
 B 5 -2.5 -32.5 2.5 -27.5 {name=vdd dir=in name=p1 }
 B 5 -42.5 -2.5 -37.5 2.5 {name=in dir=in name=p2 }
 B 5 47.5 -2.5 52.5 2.5 {name=out dir=out name=p4 }
 B 5 -2.5 27.5 2.5 32.5 {name=vss dir=in name=p3 }
+B 5 -42.5 7.5 -37.5 12.5 {name=vbulk dir=in name=p3 }
 A 4 25 -0.4000000000000057 5.015974481593782 355.4260787400991 360 {}
 T {@symname} 16 4 0 0 0.3 0.3 {}
 T {@name} 15 -22 0 0 0.2 0.2 {}
@@ -25,3 +27,4 @@
 T {in} -35 -14 0 0 0.2 0.2 {}
 T {out} 55 -14 0 1 0.2 0.2 {}
 T {vss} 14 15 1 0 0.2 0.2 {}
+T {vbulk} -25 24 2 0 0.2 0.2 {}
diff --git a/xschem/ring_vco/ring_vco.sch b/xschem/ring_vco/ring_vco.sch
index e2ab5e0..27a8ddf 100644
--- a/xschem/ring_vco/ring_vco.sch
+++ b/xschem/ring_vco/ring_vco.sch
@@ -27,7 +27,7 @@
 N 330 -80 330 -30 { lab=10}
 N 440 -80 440 -30 { lab=10}
 N 550 -80 550 -30 { lab=10}
-N 920 0 1020 0 { lab=out}
+N 2520 0 2620 0 { lab=out}
 N -0 -80 550 -80 { lab=10}
 N 550 -80 640 -80 { lab=10}
 N 290 -200 290 -80 { lab=10}
@@ -54,18 +54,18 @@
 N -280 250 -200 250 { lab=vss}
 N -200 -140 -120 -140 { lab=5}
 N -120 -230 -120 -140 { lab=5}
-N 760 -30 760 30 { lab=out_ring}
-N 760 0 820 0 { lab=out_ring}
-N 690 60 720 60 { lab=o6}
-N 690 -60 690 60 { lab=o6}
-N 690 -60 720 -60 { lab=o6}
-N 760 -120 760 -90 { lab=10}
-N 690 -120 760 -120 { lab=10}
-N 690 -120 690 -80 { lab=10}
+N 2360 -30 2360 30 { lab=out_ring}
+N 2360 0 2420 0 { lab=out_ring}
+N 2290 60 2320 60 { lab=#net1}
+N 2290 -60 2290 60 { lab=#net1}
+N 2290 -60 2320 -60 { lab=#net1}
+N 2360 -120 2360 -90 { lab=10}
+N 2290 -120 2360 -120 { lab=10}
+N 2290 -120 2290 -80 { lab=10}
 N 640 -80 690 -80 { lab=10}
-N 760 90 760 120 { lab=9}
-N 690 120 760 120 { lab=9}
-N 690 80 690 120 { lab=9}
+N 2360 90 2360 120 { lab=9}
+N 2290 120 2360 120 { lab=9}
+N 2290 80 2290 120 { lab=9}
 N 290 80 690 80 { lab=9}
 N 290 80 290 150 { lab=9}
 N 330 60 330 80 { lab=9}
@@ -75,28 +75,131 @@
 N -0 60 0 80 { lab=9}
 N 110 60 110 80 { lab=9}
 N 220 60 220 80 { lab=9}
-N 600 0 690 -0 { lab=o6}
-N 920 -30 920 30 { lab=out}
-N 920 90 920 120 { lab=vss}
-N 920 120 1010 120 { lab=vss}
-N 1010 60 1010 120 { lab=vss}
-N 920 60 1010 60 { lab=vss}
-N 850 60 880 60 { lab=out_ring}
-N 850 -60 850 60 { lab=out_ring}
-N 850 -60 880 -60 { lab=out_ring}
-N 820 -0 850 -0 { lab=out_ring}
-N 920 -120 920 -90 { lab=vdd}
-N 920 -120 1000 -120 { lab=vdd}
-N 1000 -120 1000 -60 { lab=vdd}
-N 920 -60 1000 -60 { lab=vdd}
+N 2520 -30 2520 30 { lab=out}
+N 2520 90 2520 120 { lab=vss}
+N 2520 120 2610 120 { lab=vss}
+N 2610 60 2610 120 { lab=vss}
+N 2520 60 2610 60 { lab=vss}
+N 2450 60 2480 60 { lab=out_ring}
+N 2450 -60 2450 60 { lab=out_ring}
+N 2450 -60 2480 -60 { lab=out_ring}
+N 2420 0 2450 0 { lab=out_ring}
+N 2520 -120 2520 -90 { lab=vdd}
+N 2520 -120 2600 -120 { lab=vdd}
+N 2600 -120 2600 -60 { lab=vdd}
+N 2520 -60 2600 -60 { lab=vdd}
 N 670 -300 670 -270 { lab=vss}
 N 670 -390 670 -360 { lab=in}
-N 760 -60 820 -60 { lab=10}
-N 820 -120 820 -60 { lab=10}
-N 760 -120 820 -120 { lab=10}
-N 760 60 840 60 { lab=9}
-N 840 60 840 120 { lab=9}
-N 760 120 840 120 { lab=9}
+N 2360 -60 2420 -60 { lab=10}
+N 2420 -120 2420 -60 { lab=10}
+N 2360 -120 2420 -120 { lab=10}
+N 2360 60 2440 60 { lab=vss}
+N 2440 60 2440 120 { lab=vss}
+N 600 -0 620 -0 { lab=o6}
+N 710 -0 730 -0 { lab=o7}
+N 690 80 910 80 { lab=9}
+N 690 -80 910 -80 { lab=10}
+N 660 -80 660 -30 { lab=10}
+N 770 -80 770 -30 { lab=10}
+N 770 30 770 80 { lab=9}
+N 660 30 660 80 { lab=9}
+N 910 80 1180 80 { lab=9}
+N 910 -80 1180 -80 { lab=10}
+N -60 10 -40 10 { lab=vss}
+N -60 10 -60 50 { lab=vss}
+N -60 50 720 50 { lab=vss}
+N 720 10 730 10 { lab=vss}
+N 720 10 720 50 { lab=vss}
+N 610 10 620 10 { lab=vss}
+N 610 10 610 50 { lab=vss}
+N 500 10 510 10 { lab=vss}
+N 500 10 500 50 { lab=vss}
+N 390 10 400 10 { lab=vss}
+N 390 10 390 50 { lab=vss}
+N 60 10 70 10 { lab=vss}
+N 60 10 60 50 { lab=vss}
+N 280 10 290 10 { lab=vss}
+N 280 10 280 50 { lab=vss}
+N 170 10 180 10 { lab=vss}
+N 170 10 170 50 { lab=vss}
+N 820 -0 840 -0 { lab=o8}
+N 930 -0 950 -0 { lab=#net2}
+N 1040 -0 1060 0 { lab=#net3}
+N 1150 -0 1180 -0 { lab=#net4}
+N 720 50 1160 50 { lab=vss}
+N 1160 10 1160 50 { lab=vss}
+N 1160 10 1180 10 { lab=vss}
+N 1050 10 1060 10 { lab=vss}
+N 1050 10 1050 50 { lab=vss}
+N 940 10 950 10 { lab=vss}
+N 940 10 940 50 { lab=vss}
+N 830 10 840 10 { lab=vss}
+N 830 10 830 50 { lab=vss}
+N 880 30 880 80 { lab=9}
+N 880 -80 880 -30 { lab=10}
+N 990 -80 990 -30 { lab=10}
+N 990 30 990 80 { lab=9}
+N 1100 30 1100 80 { lab=9}
+N 1100 -80 1100 -30 { lab=10}
+N 1220 30 1220 80 { lab=9}
+N 1180 80 1220 80 { lab=9}
+N 1220 -80 1220 -30 { lab=10}
+N 1180 -80 1220 -80 { lab=10}
+N 1220 80 1820 80 { lab=9}
+N 1220 -80 1820 -80 { lab=10}
+N 1340 30 1340 80 { lab=9}
+N 1340 -80 1340 -30 { lab=10}
+N 1460 30 1460 80 { lab=9}
+N 1460 -80 1460 -30 { lab=10}
+N 1580 -80 1580 -30 { lab=10}
+N 1580 30 1580 80 { lab=9}
+N 1160 50 1640 50 { lab=vss}
+N 1640 10 1640 50 { lab=vss}
+N 1640 10 1660 10 { lab=vss}
+N 1520 10 1540 10 { lab=vss}
+N 1520 10 1520 50 { lab=vss}
+N 1400 10 1420 10 { lab=vss}
+N 1400 10 1400 50 { lab=vss}
+N 1280 10 1300 10 { lab=vss}
+N 1280 10 1280 50 { lab=vss}
+N 1700 30 1700 80 { lab=9}
+N 1700 -80 1700 -30 { lab=10}
+N 1630 0 1660 0 { lab=#net5}
+N 1510 0 1540 0 { lab=#net6}
+N 1390 -0 1420 0 { lab=#net7}
+N 1270 0 1300 -0 { lab=#net8}
+N 1820 80 2030 80 { lab=9}
+N 1820 -80 2030 -80 { lab=10}
+N 1750 0 1780 -0 { lab=#net9}
+N 1640 50 1760 50 { lab=vss}
+N 1760 10 1760 50 { lab=vss}
+N 1760 10 1780 10 { lab=vss}
+N 1760 50 1880 50 { lab=vss}
+N 1880 10 1880 50 { lab=vss}
+N 1880 10 1910 10 { lab=vss}
+N 1820 30 1820 80 { lab=9}
+N 1950 30 1950 80 { lab=9}
+N 2260 0 2290 0 { lab=#net1}
+N 1950 -80 1950 -30 { lab=10}
+N 1820 -80 1820 -30 { lab=10}
+N 1870 -0 1910 -0 { lab=#net10}
+N 2010 10 2010 50 { lab=vss}
+N 2010 10 2030 10 { lab=vss}
+N 2010 50 2130 50 { lab=vss}
+N 2130 10 2130 50 { lab=vss}
+N 2130 10 2160 10 { lab=vss}
+N 2120 0 2160 0 { lab=#net11}
+N 2000 0 2030 -0 { lab=#net12}
+N 1880 50 2010 50 { lab=vss}
+N 2030 80 2200 80 { lab=9}
+N 2200 30 2200 80 { lab=9}
+N 2200 -80 2200 -30 { lab=10}
+N 2030 -80 2200 -80 { lab=10}
+N 2070 -80 2070 -30 { lab=10}
+N 2070 30 2070 80 { lab=9}
+N 2250 0 2260 -0 { lab=#net1}
+N 2200 80 2290 80 { lab=9}
+N 2200 -80 2290 -80 { lab=10}
 C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 0 0 0 0 {name=x1}
 C {vsource.sym} 480 -330 0 0 {name=V1 value=DC\{Vss\}}
 C {vsource.sym} 570 -330 0 0 {name=V2 value=DC\{Vdd\}}
@@ -113,7 +216,7 @@
 * Circuit Parameters
 .param vdd  = 1.8
 .param vss  = 0.0
-.param vin  = 0.6
+.param vin  = 1
 .param iref = 200u
 .options TEMP = 65.0
 
@@ -124,13 +227,22 @@
 .save all
 + @M.X2.XM1.msky130_fd_pr__nfet_01v8[id] @M.X2.XM1.msky130_fd_pr__nfet_01v8[vth] @M.X2.XM1.msky130_fd_pr__nfet_01v8[vgs] @M.X2.XM1.msky130_fd_pr__nfet_01v8[vds] @M.X2.XM1.msky130_fd_pr__nfet_01v8[vdsat] @M.X2.XM1.msky130_fd_pr__nfet_01v8[gm] @M.X2.XM1.msky130_fd_pr__nfet_01v8[gds] @M.X2.XM1.msky130_fd_pr__nfet_01v8[cgs] @M.X2.XM1.msky130_fd_pr__nfet_01v8[cgd]
 + @M.X2.XM2.msky130_fd_pr__pfet_01v8[id] @M.X2.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X2.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X2.XM2.msky130_fd_pr__pfet_01v8[vds] @M.X2.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X2.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X2.XM2.msky130_fd_pr__pfet_01v8[gds] @M.X2.XM1.msky130_fd_pr__nfet_01v8[cgs] @M.X2.XM1.msky130_fd_pr__nfet_01v8[cgd]
++ @M.XM6.msky130_fd_pr__nfet_01v8[id] @M.XM6.msky130_fd_pr__nfet_01v8[vth] @M.XM6.msky130_fd_pr__nfet_01v8[vgs] @M.XM6.msky130_fd_pr__nfet_01v8[vds] @M.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.XM6.msky130_fd_pr__nfet_01v8[gm] @M.XM6.msky130_fd_pr__nfet_01v8[gds] @M.XM6.msky130_fd_pr__nfet_01v8[cgs] @M.XM6.msky130_fd_pr__nfet_01v8[cgd]
++ @M.XM5.msky130_fd_pr__pfet_01v8[id] @M.XM5.msky130_fd_pr__pfet_01v8[vth] @M.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.XM5.msky130_fd_pr__pfet_01v8[vds] @M.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.XM5.msky130_fd_pr__pfet_01v8[gm] @M.XM5.msky130_fd_pr__pfet_01v8[gds] @M.XM5.msky130_fd_pr__nfet_01v8[cgs] @M.XM5.msky130_fd_pr__nfet_01v8[cgd]
+
+
 
 *Simulations
 .control
   *reset
-  tran 0.1n 0.5u
+  tran 0.05n 1u
   setplot tran1
   plot v(out) v(in)
+  linearize
+  set specwindow="blackman"
+  fft v(out)
+  spec 10 1000000 1000 v(out)
+  plot mag(v(out))
   *write ~/caravel_fulgor_opamp/xschem/sim_results/opamp_closeloop_tran1.raw
   
   
@@ -152,9 +264,9 @@
 C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 440 0 0 0 {name=x5}
 C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 550 0 0 0 {name=x6}
 C {lab_pin.sym} -80 0 0 0 {name=l5 sig_type=std_logic lab=out_ring}
-C {lab_wire.sym} 970 -120 0 0 {name=l11 sig_type=std_logic lab=vdd}
-C {lab_wire.sym} 970 120 0 0 {name=l14 sig_type=std_logic lab=vss}
-C {sky130_fd_pr/nfet_01v8.sym} 740 60 0 0 {name=M1
+C {lab_wire.sym} 2570 -120 0 0 {name=l11 sig_type=std_logic lab=vdd}
+C {lab_wire.sym} 2570 120 0 0 {name=l14 sig_type=std_logic lab=vss}
+C {sky130_fd_pr/nfet_01v8.sym} 2340 60 0 0 {name=M1
 L=0.15
 W=1.2
 ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
@@ -165,7 +277,7 @@
 model=nfet_01v8
 spiceprefix=X
 }
-C {sky130_fd_pr/pfet_01v8.sym} 740 -60 0 0 {name=M2
+C {sky130_fd_pr/pfet_01v8.sym} 2340 -60 0 0 {name=M2
 L=0.15
 W=1.5
 ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
@@ -176,7 +288,7 @@
 model=pfet_01v8
 spiceprefix=X
 }
-C {sky130_fd_pr/nfet_01v8.sym} 900 60 0 0 {name=M3
+C {sky130_fd_pr/nfet_01v8.sym} 2500 60 0 0 {name=M3
 L=0.15
 W=0.6
 ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
@@ -187,9 +299,9 @@
 model=nfet_01v8
 spiceprefix=X
 }
-C {sky130_fd_pr/pfet_01v8.sym} 900 -60 0 0 {name=M4
+C {sky130_fd_pr/pfet_01v8.sym} 2500 -60 0 0 {name=M4
 L=0.15
-W=1.05
+W=1.5
 ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
 as="'W * 0.29'" ps="'2 * (W + 0.29)'"
 nrd="'0.29 / W'" nrs="'0.29 / W'"
@@ -198,11 +310,11 @@
 model=pfet_01v8
 spiceprefix=X
 }
-C {lab_wire.sym} 820 0 0 0 {name=l4 sig_type=std_logic lab=out_ring}
-C {lab_pin.sym} 1020 0 2 0 {name=l6 sig_type=std_logic lab=out}
+C {lab_wire.sym} 2420 0 0 0 {name=l4 sig_type=std_logic lab=out_ring}
+C {lab_pin.sym} 2620 0 2 0 {name=l6 sig_type=std_logic lab=out}
 C {sky130_fd_pr/pfet_01v8.sym} 270 -230 0 0 {name=M5
 L=0.15
-W=1.05
+W=1.5
 ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
 as="'W * 0.29'" ps="'2 * (W + 0.29)'"
 nrd="'0.29 / W'" nrs="'0.29 / W'"
@@ -213,7 +325,7 @@
 }
 C {sky130_fd_pr/nfet_01v8.sym} 270 180 0 0 {name=M6
 L=0.15
-W=1.05
+W=1.5
 ad="'W * 0.29'" pd="'2 * (W + 0.29)'"
 as="'W * 0.29'" ps="'2 * (W + 0.29)'"
 nrd="'0.29 / W'" nrs="'0.29 / W'"
@@ -255,7 +367,25 @@
 C {lab_wire.sym} 280 0 0 0 {name=l18 sig_type=std_logic lab=o3}
 C {lab_wire.sym} 390 0 0 0 {name=l19 sig_type=std_logic lab=o4}
 C {lab_wire.sym} 500 0 0 0 {name=l20 sig_type=std_logic lab=o5}
-C {lab_wire.sym} 630 0 0 0 {name=l21 sig_type=std_logic lab=o6}
+C {lab_wire.sym} 610 0 0 0 {name=l21 sig_type=std_logic lab=o6}
 C {vsource.sym} 670 -330 0 0 {name=V3 value=DC\{Vin\}}
 C {lab_pin.sym} 670 -270 3 0 {name=l22 sig_type=std_logic lab=vss}
 C {lab_pin.sym} 670 -390 1 0 {name=l23 sig_type=std_logic lab=in}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 660 0 0 0 {name=x7}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 770 0 0 0 {name=x8}
+C {lab_wire.sym} 720 0 0 0 {name=l24 sig_type=std_logic lab=o7}
+C {lab_wire.sym} 830 0 0 0 {name=l25 sig_type=std_logic lab=o8}
+C {lab_wire.sym} -30 50 0 0 {name=l26 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 2440 120 3 0 {name=l27 sig_type=std_logic lab=vss}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 880 0 0 0 {name=x9}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 990 0 0 0 {name=x10}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1100 0 0 0 {name=x11}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1220 0 0 0 {name=x12}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1340 0 0 0 {name=x13}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1460 0 0 0 {name=x14}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1580 0 0 0 {name=x15}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1700 0 0 0 {name=x16}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1820 0 0 0 {name=x17}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 1950 0 0 0 {name=x18}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 2070 0 0 0 {name=x19}
+C {/home/dhernando/caravel_fulgor_opamp/xschem/ring_vco/not.sym} 2200 0 0 0 {name=x20}