Added schematics and netlists
diff --git a/xschem/netlist/bsim4v5.out b/xschem/netlist/bsim4v5.out
new file mode 100644
index 0000000..d9a142e
--- /dev/null
+++ b/xschem/netlist/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 = x1.xm1:sky130_fd_pr__pfet_01v8__model.24
diff --git a/xschem/netlist/opamp.spice b/xschem/netlist/opamp.spice
new file mode 100644
index 0000000..47f53a4
--- /dev/null
+++ b/xschem/netlist/opamp.spice
@@ -0,0 +1,28 @@
+**.subckt opamp vdd vss vin_n vin_p iref vout
+*.iopin vdd
+*.iopin vss
+*.ipin vin_n
+*.ipin vin_p
+*.ipin iref
+*.opin vout
+XM1 vbn vin_n vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM2 voe1 vin_p vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM3 vbn vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM4 voe1 vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM5 vp iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM7 vout iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+XM8 iref iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=15 m=15 
+XM9 net1 vdd voe1 vss sky130_fd_pr__nfet_01v8 W=0.75 L=0.15 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' sa=0 sb=0 sd=0 nf=1 mult=6 m=6 
+XC1 net1 vout sky130_fd_pr__cap_mim_m3_1 W=17.55 L=15 MF=6 m=6
+XM6 vout voe1 vss vss sky130_fd_pr__nfet_01v8 W=4.5 L=0.45 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+**.ends
+.end
diff --git a/xschem/netlist/opamp_closeloop.spice b/xschem/netlist/opamp_closeloop.spice
new file mode 100644
index 0000000..9e39f56
--- /dev/null
+++ b/xschem/netlist/opamp_closeloop.spice
@@ -0,0 +1,128 @@
+**.subckt opamp_closeloop
+V1 vss GND DC{vss} 
+V2 vdd vss DC{vdd} 
+V4 vsen vcm sin(0 {vac} 1Meg) dc 0 ac 1 
+C4 vsen vin_signal 1 m=1
+I0 net1 vss DC{iref} 
+R1 vin vin_signal 500 m=1
+R3 vout vin 5k m=1
+C5 vin vss 5p m=1
+x1 vdd net1 vin vcm vout vss opamp
+C1 vout vss 20p m=1
+V5 vcm vss DC{vcm} 
+**** begin user architecture code
+
+
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib TT
+
+* OP Parameters & Singals to save
+.save all  @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM2.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM5.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM8.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulations
+.control
+  ac dec 100 1k 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1k
+  *meas ac PM find vp(vout) when vdb(vout)=0
+  *print PM*180/PI
+  *meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) {vp(vout)*180/PI}
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_ac1.raw
+
+  reset
+  tran 0.01u 11u
+  setplot tran1
+  plot v(vsen) v(vout)
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_tran1.raw
+
+  reset
+  noise v(vout) V4 dec 100 1k 10G 1
+  setplot noise1
+  plot inoise_spectrum onoise_spectrum
+  *print inoise_spectrum
+  *print onoise_spectrum
+  setplot noise2
+  *plot inoise_total onoise_total
+  print inoise_total
+  print onoise_total
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_noise.raw
+
+  reset
+  op
+  setplot op1
+  print vout
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_op1.raw
+
+.endc
+
+.end
+
+
+**** end user architecture code
+**.ends
+
+* expanding   symbol:  opamp.sym # of pins=6
+
+.subckt opamp  vdd iref vin_n vin_p vout vss
+*.iopin vdd
+*.iopin vss
+*.ipin vin_n
+*.ipin vin_p
+*.ipin iref
+*.opin vout
+XM1 vbn vin_n vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM2 voe1 vin_p vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM3 vbn vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM4 voe1 vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM5 vp iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM7 vout iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+XM8 iref iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=15 m=15 
+XM9 net1 vdd voe1 vss sky130_fd_pr__nfet_01v8 W=0.75 L=0.15 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' sa=0 sb=0 sd=0 nf=1 mult=6 m=6 
+XC1 net1 vout sky130_fd_pr__cap_mim_m3_1 W=15 L=17.55 MF=6 m=6
+XM6 vout voe1 vss vss sky130_fd_pr__nfet_01v8 W=4.5 L=0.45 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+.ends
+
+.GLOBAL GND
+.end
diff --git a/xschem/netlist/opamp_closeloop_rpad.spice b/xschem/netlist/opamp_closeloop_rpad.spice
new file mode 100644
index 0000000..d3a3261
--- /dev/null
+++ b/xschem/netlist/opamp_closeloop_rpad.spice
@@ -0,0 +1,130 @@
+**.subckt opamp_closeloop_rpad
+V1 vss GND DC{vss} 
+V2 vdd vss DC{vdd} 
+V4 vsen vcm sin(0 {vac} 1Meg) dc 0 ac 1 
+C4 vsen vin_signal 1 m=1
+I0 net1 vss DC{iref} 
+R1 vin vin_signal 500 m=1
+R3 vout vin 5k m=1
+C5 vin vss 5p m=1
+x1 vdd net1 net2 vcm net3 vss opamp
+C1 vout vss 20p m=1
+V5 vcm vss DC{vcm} 
+R2 net2 vin 150 m=1
+R4 vout net3 150 m=1
+**** begin user architecture code
+
+
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib TT
+
+* OP Parameters & Singals to save
+.save all  @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM2.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM5.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM8.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulations
+.control
+  ac dec 100 1k 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1k
+  *meas ac PM find vp(vout) when vdb(vout)=0
+  *print PM*180/PI
+  *meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) {vp(vout)*180/PI}
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_ac1.raw
+
+  reset
+  tran 0.01u 11u
+  setplot tran1
+  plot v(vsen) v(vout)
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_tran1.raw
+
+  reset
+  noise v(vout) V4 dec 100 1k 10G 1
+  setplot noise1
+  plot inoise_spectrum onoise_spectrum
+  *print inoise_spectrum
+  *print onoise_spectrum
+  setplot noise2
+  *plot inoise_total onoise_total
+  print inoise_total
+  print onoise_total
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_noise.raw
+
+  reset
+  op
+  setplot op1
+  print vout
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_op1.raw
+
+.endc
+
+.end
+
+
+**** end user architecture code
+**.ends
+
+* expanding   symbol:  opamp.sym # of pins=6
+
+.subckt opamp  vdd iref vin_n vin_p vout vss
+*.iopin vdd
+*.iopin vss
+*.ipin vin_n
+*.ipin vin_p
+*.ipin iref
+*.opin vout
+XM1 vbn vin_n vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM2 voe1 vin_p vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM3 vbn vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM4 voe1 vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM5 vp iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM7 vout iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+XM8 iref iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=15 m=15 
+XM9 net1 vdd voe1 vss sky130_fd_pr__nfet_01v8 W=0.75 L=0.15 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' sa=0 sb=0 sd=0 nf=1 mult=6 m=6 
+XC1 net1 vout sky130_fd_pr__cap_mim_m3_1 W=15 L=17.55 MF=6 m=6
+XM6 vout voe1 vss vss sky130_fd_pr__nfet_01v8 W=4.5 L=0.45 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+.ends
+
+.GLOBAL GND
+.end
diff --git a/xschem/netlist/opamp_openloop.spice b/xschem/netlist/opamp_openloop.spice
new file mode 100644
index 0000000..1b2a719
--- /dev/null
+++ b/xschem/netlist/opamp_openloop.spice
@@ -0,0 +1,113 @@
+**.subckt opamp_openloop
+V1 vss GND DC{vss} 
+V2 vdd vss DC{vdd} 
+V3 vcm vss DC{vcm} 
+V4 vsen vcm sin(0 {vac} 1Meg) dc 0 ac 1 
+C4 vsen vin 1 m=1
+I0 net1 vss DC{iref} 
+R1 ve vcm 500 m=1
+R2 vin ve 1G m=1
+R3 vout ve 5k m=1
+C5 vin vss 5p m=1
+C1 vout vss 20p m=1
+x1 vdd net1 vin vcm vout vss opamp
+**** begin user architecture code
+
+
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+*.lib /home/dhernando/projects/foundry/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib SS
+*.lib  ~/fulgor-opamp-sky130/xschem/sky130.lib TT
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib fs
+
+* OP Parameters & Singals to save
+.save all  @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM2.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM5.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM8.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulation
+.control
+
+  ac dec 100 1 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1
+  meas ac PM find vp(vout) when vdb(vout)=0
+  print PM*180/PI
+  meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) {vp(vout)*180/PI}
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_openloop_ac1.raw
+
+  reset
+  op
+  setplot op1
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_openloop_op1.raw
+
+.endc
+
+.end
+
+
+**** end user architecture code
+**.ends
+
+* expanding   symbol:  opamp.sym # of pins=6
+
+.subckt opamp  vdd iref vin_n vin_p vout vss
+*.iopin vdd
+*.iopin vss
+*.ipin vin_n
+*.ipin vin_p
+*.ipin iref
+*.opin vout
+XM1 vbn vin_n vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM2 voe1 vin_p vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM3 vbn vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM4 voe1 vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM5 vp iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM7 vout iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+XM8 iref iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=15 m=15 
+XM9 net1 vdd voe1 vss sky130_fd_pr__nfet_01v8 W=0.75 L=0.15 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' sa=0 sb=0 sd=0 nf=1 mult=6 m=6 
+XC1 net1 vout sky130_fd_pr__cap_mim_m3_1 W=17.55 L=15 MF=6 m=6
+XM6 vout voe1 vss vss sky130_fd_pr__nfet_01v8 W=4.5 L=0.45 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+.ends
+
+.GLOBAL GND
+.end
diff --git a/xschem/netlist/opamp_openloop_rpad.spice b/xschem/netlist/opamp_openloop_rpad.spice
new file mode 100644
index 0000000..cc50390
--- /dev/null
+++ b/xschem/netlist/opamp_openloop_rpad.spice
@@ -0,0 +1,115 @@
+**.subckt opamp_openloop_rpad
+V1 vss GND DC{vss} 
+V2 vdd vss DC{vdd} 
+V3 vcm vss DC{vcm} 
+V4 vsen vcm sin(0 {vac} 1Meg) dc 0 ac 1 
+C4 vsen vin 1 m=1
+I0 net1 vss DC{iref} 
+R1 ve vcm 500 m=1
+R2 vin ve 1G m=1
+R3 vout ve 5k m=1
+C5 vin vss 5p m=1
+C1 vout vss 20p m=1
+x1 vdd net1 net3 vcm net2 vss opamp
+R4 net3 vin 150 m=1
+R5 vout net2 150 m=1
+**** begin user architecture code
+
+
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+*.lib /home/dhernando/projects/foundry/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib SS
+*.lib  ~/fulgor-opamp-sky130/xschem/sky130.lib TT
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib TT
+
+* OP Parameters & Singals to save
+.save all  @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM2.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM5.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]  @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]  @M.X1.XM8.msky130_fd_pr__pfet_01v8[id]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++  @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulation
+.control
+
+  ac dec 100 1 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1
+  meas ac PM find vp(vout) when vdb(vout)=0
+  print PM*180/PI
+  meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) {vp(vout)*180/PI}
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_openloop_ac1.raw
+
+  reset
+  op
+  setplot op1
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_openloop_op1.raw
+
+.endc
+
+.end
+
+
+**** end user architecture code
+**.ends
+
+* expanding   symbol:  opamp.sym # of pins=6
+
+.subckt opamp  vdd iref vin_n vin_p vout vss
+*.iopin vdd
+*.iopin vss
+*.ipin vin_n
+*.ipin vin_p
+*.ipin iref
+*.opin vout
+XM1 vbn vin_n vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM2 voe1 vin_p vp vp sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=200 m=200 
+XM3 vbn vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM4 voe1 vbn vss vss sky130_fd_pr__nfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=30 m=30 
+XM5 vp iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=60 m=60 
+XM7 vout iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+XM8 iref iref vdd vdd sky130_fd_pr__pfet_01v8 W=3 L=0.3 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' sa=0 sb=0 sd=0 nf=1 mult=15 m=15 
+XM9 net1 vdd voe1 vss sky130_fd_pr__nfet_01v8 W=0.75 L=0.15 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' sa=0 sb=0 sd=0 nf=1 mult=12 m=12 
+XC1 net1 vout sky130_fd_pr__cap_mim_m3_1 W=20 L=20 MF=6 m=6
+XM6 vout voe1 vss vss sky130_fd_pr__nfet_01v8 W=4.5 L=0.45 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' sa=0 sb=0 sd=0 nf=1 mult=150 m=150 
+.ends
+
+.GLOBAL GND
+.end
diff --git a/xschem/sch/opamp.sch b/xschem/sch/opamp.sch
new file mode 100644
index 0000000..d7413ac
--- /dev/null
+++ b/xschem/sch/opamp.sch
@@ -0,0 +1,193 @@
+v { version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 1290 -35 1290 40 { lab=vss}
+N 1570 -35 1570 40 { lab=vss}
+N 1290 40 1357.5 40 { lab=vss}
+N 1357.5 40 1570 40 { lab=vss}
+N 1370 -135 1370 -65 { lab=vbn}
+N 1210 -65 1290 -65 { lab=vss}
+N 1210 -65 1210 40 { lab=vss}
+N 1210 40 1290 40 { lab=vss}
+N 1570 -65 1637.5 -65 { lab=vss}
+N 1637.5 -65 1637.5 40 { lab=vss}
+N 1570 -240 1570 -95 { lab=voe1}
+N 1290 -360 1290 -300 { lab=vp}
+N 1290 -360 1570 -360 { lab=vp}
+N 1570 -360 1570 -300 { lab=vp}
+N 1287.5 -270 1350 -270 { lab=vp}
+N 1350 -360 1350 -270 { lab=vp}
+N 1507.5 -360 1507.5 -270 { lab=vp}
+N 1430 -410 1430 -360 { lab=vp}
+N 1890 -472.5 1890 -470 { lab=vdd}
+N 1890 -500 1890 -472.5 { lab=vdd}
+N 1430 -500 1890 -500 { lab=vdd}
+N 1430 -500 1430 -470 { lab=vdd}
+N 1887.5 -440 1967.5 -440 { lab=vdd}
+N 1967.5 -500 1967.5 -440 { lab=vdd}
+N 1890 -500 1967.5 -500 { lab=vdd}
+N 1050 -500 1050 -470 { lab=vdd}
+N 1050 -500 1430 -500 { lab=vdd}
+N 1050 -360 1152.5 -360 { lab=iref}
+N 1152.5 -440 1152.5 -360 { lab=iref}
+N 1767.5 -440 1850 -440 { lab=iref}
+N 970 -440 1052.5 -440 { lab=vdd}
+N 970 -500 970 -440 { lab=vdd}
+N 970 -500 1050 -500 { lab=vdd}
+N 1430 -440 1510 -440 { lab=vdd}
+N 1510 -500 1510 -440 { lab=vdd}
+N 1370 -137.5 1370 -135 { lab=vbn}
+N 1507.5 -270 1572.5 -270 { lab=vp}
+N 1290 -240 1290 -95 { lab=vbn}
+N 1290 -137.5 1370 -137.5 { lab=vbn}
+N 1090 -440 1152.5 -440 { lab=iref}
+N 1275 -440 1390 -440 { lab=iref}
+N 1152.5 -440 1275 -440 { lab=iref}
+N 1330 -65 1530 -65 { lab=vbn}
+N 1050 -410 1050 -360 { lab=iref}
+N 1180 -270 1250 -270 { lab=vin_n}
+N 1750 -190 1800 -190 { lab=#net1}
+N 1720 -250 1720 -230 { lab=vdd}
+N 1720 -190 1720 -110 { lab=vss}
+N 1570 -190 1690 -190 { lab=voe1}
+N 1860 -190 1890 -190 { lab=vout}
+N 950 -500 970 -500 { lab=vdd}
+N 950 40 1210 40 { lab=vss}
+N 1610 -270 1670 -270 { lab=vin_p}
+N 950 -360 1050 -360 { lab=iref}
+N 1570 40 1890 40 { lab=vss}
+N 1890 40 1980 40 { lab=vss}
+N 1980 -60 1980 40 { lab=vss}
+N 1890 -60 1980 -60 { lab=vss}
+N 1670 -60 1850 -60 { lab=voe1}
+N 1670 -190 1670 -60 { lab=voe1}
+N 1890 -190 1890 -90 { lab=vout}
+N 1890 -410 1890 -190 { lab=vout}
+N 1890 -240 2030 -240 { lab=vout}
+N 1890 -30 1890 40 { lab=vss}
+C {sky130_fd_pr/pfet_01v8.sym} 1270 -270 0 0 {name=M1
+L=0.3
+W=3
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=200
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 1590 -270 0 1 {name=M2
+L=0.3
+W=3
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=200
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 1310 -65 0 1 {name=M3
+L=0.3
+W=3
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=30
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/nfet_01v8.sym} 1550 -65 0 0 {name=M4
+L=0.3
+W=3
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=30
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 1410 -440 0 0 {name=M5
+L=0.3
+W=3
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=30
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 1870 -440 0 0 {name=M7
+L=0.3
+W=3
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=150
+model=pfet_01v8
+spiceprefix=X
+}
+C {sky130_fd_pr/pfet_01v8.sym} 1070 -440 0 1 {name=M8
+L=0.3
+W=3
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=15
+model=pfet_01v8
+spiceprefix=X
+}
+C {lab_wire.sym} 1272.5 -500 0 0 {name=l1 sig_type=std_logic lab=vdd
+}
+C {lab_wire.sym} 1275 -440 0 0 {name=l2 sig_type=std_logic lab=iref
+
+}
+C {lab_wire.sym} 1405 -360 0 0 {name=l4 sig_type=std_logic lab=vp}
+C {lab_pin.sym} 1767.5 -440 0 0 {name=l5 sig_type=std_logic lab=iref}
+C {lab_wire.sym} 1442.5 40 0 0 {name=l7 sig_type=std_logic lab=vss
+}
+C {lab_wire.sym} 1977.5 -240 0 0 {name=l8 sig_type=std_logic lab=vout
+}
+C {lab_wire.sym} 1450 -65 0 0 {name=l6 sig_type=std_logic lab=vbn}
+C {sky130_fd_pr/nfet_01v8.sym} 1720 -210 1 0 {name=M9
+L=0.15
+W=0.75
+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'"
+sa=0 sb=0 sd=0
+nf=1 mult=6
+model=nfet_01v8
+spiceprefix=X
+}
+C {lab_pin.sym} 1720 -250 2 0 {name=l9 sig_type=std_logic lab=vdd
+}
+C {lab_pin.sym} 1720 -110 2 0 {name=l10 sig_type=std_logic lab=vss
+}
+C {sky130_fd_pr/cap_mim_m3_1.sym} 1830 -190 3 0 {name=C1 model=cap_mim_m3_1 W=17.55 L=15 MF=6 spiceprefix=X}
+C {iopin.sym} 950 -500 2 0 {name=p1 lab=vdd}
+C {iopin.sym} 950 40 2 0 {name=p2 lab=vss}
+C {ipin.sym} 1180 -270 0 0 {name=p3 lab=vin_n}
+C {ipin.sym} 1670 -270 2 0 {name=p4 lab=vin_p}
+C {ipin.sym} 950 -360 0 0 {name=p5 lab=iref}
+C {sky130_fd_pr/nfet_01v8.sym} 1870 -60 0 0 {name=M6
+L=0.45
+W=4.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'"
+sa=0 sb=0 sd=0
+nf=1 mult=150
+model=nfet_01v8
+spiceprefix=X
+}
+C {lab_wire.sym} 1630 -190 0 0 {name=l3 sig_type=std_logic lab=voe1}
+C {opin.sym} 2030 -240 0 0 {name=p6 lab=vout}
diff --git a/xschem/sch/opamp.sym b/xschem/sch/opamp.sym
new file mode 100644
index 0000000..52d2a6c
--- /dev/null
+++ b/xschem/sch/opamp.sym
@@ -0,0 +1,34 @@
+v {xschem version=2.9.8 file_version=1.2}
+G {}
+K {type=subcircuit
+format="@name @pinlist @symname"
+template="name=x1"
+}
+V {}
+S {}
+E {}
+L 4 -30 40 -30 60 {}
+L 4 -70 -20 -50 -20 {}
+L 4 -70 20 -50 20 {}
+L 4 50 0 70 0 {}
+L 4 -50 -50 -50 -0 {}
+L 4 -50 -0 -50 50 {}
+L 4 -50 50 50 -0 {}
+L 4 -50 -50 50 0 {}
+L 7 -10 -50 -10 -30 {}
+L 7 10 40 10 60 {}
+L 7 10 20 10 40 {}
+B 5 -12.5 -52.5 -7.5 -47.5 {name=vdd dir=inout name=p1 }
+B 5 -32.5 57.5 -27.5 62.5 {name=iref dir=in name=p5 }
+B 5 -72.5 -22.5 -67.5 -17.5 {name=vin_n dir=in name=p3 }
+B 5 -72.5 17.5 -67.5 22.5 {name=vin_p dir=in name=p4 }
+B 5 67.5 -2.5 72.5 2.5 {name=vout dir=out name=p6 }
+B 5 7.5 57.5 12.5 62.5 {name=vss dir=inout name=p2 }
+T {@symname} -30.5 -6 0 0 0.3 0.3 {}
+T {@name} 15 -32 0 0 0.2 0.2 {}
+T {vdd} -4 -55 3 1 0.2 0.2 {}
+T {iref} -24 55 3 0 0.2 0.2 {}
+T {vin_n} -45 -24 0 0 0.2 0.2 {}
+T {vin_p} -45 16 0 0 0.2 0.2 {}
+T {vout} 75 -14 0 1 0.2 0.2 {}
+T {vss} 24 55 1 1 0.2 0.2 {}
diff --git a/xschem/sch/opamp_closeloop.sch b/xschem/sch/opamp_closeloop.sch
new file mode 100644
index 0000000..6605bab
--- /dev/null
+++ b/xschem/sch/opamp_closeloop.sch
@@ -0,0 +1,153 @@
+v { version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 600 -170 600 -130 { lab=GND}
+N 600 -270 600 -230 { lab=vss}
+N 700 -270 700 -230 { lab=vdd}
+N 700 -170 700 -130 { lab=vss}
+N 800 -360 800 -330 { lab=vin_signal}
+N 1210 -190 1210 -150 { lab=vss}
+N 1210 -280 1210 -250 { lab=#net1}
+N 800 -270 800 -230 { lab=vsen}
+N 800 -170 800 -130 { lab=vcm}
+N 990 -550 1050 -550 { lab=vin}
+N 980 -550 980 -360 { lab=vin}
+N 980 -550 990 -550 { lab=vin}
+N 800 -360 860 -360 { lab=vin_signal}
+N 1030 -360 1090 -360 { lab=vin}
+N 1260 -550 1310 -550 { lab=vout}
+N 1030 -250 1030 -210 { lab=vss}
+N 1030 -360 1030 -310 { lab=vin}
+N 1250 -280 1250 -260 { lab=vss}
+N 1390 -340 1390 -310 { lab=vout}
+N 1310 -340 1390 -340 { lab=vout}
+N 1390 -250 1390 -200 { lab=vss}
+N 1110 -290 1110 -250 { lab=vcm}
+N 1110 -190 1110 -150 { lab=vss}
+N 1110 -320 1110 -290 { lab=vcm}
+N 1110 -320 1170 -320 { lab=vcm}
+N 1090 -360 1170 -360 { lab=vin}
+N 920 -360 1030 -360 { lab=vin}
+N 1310 -550 1390 -550 { lab=vout}
+N 1390 -550 1390 -340 { lab=vout}
+N 1050 -550 1200 -550 { lab=vin}
+N 1230 -420 1230 -390 { lab=vdd}
+C {vsource.sym} 600 -200 0 0 {name=V1 value=DC\{vss\}}
+C {vsource.sym} 700 -200 0 0 {name=V2 value=DC\{vdd\}}
+C {gnd.sym} 600 -130 0 0 {name=l14 lab=GND}
+C {vsource.sym} 800 -200 0 0 {name=V4 value="sin(0 \{vac\} 1Meg) dc 0 ac 1"}
+C {capa.sym} 800 -300 2 0 {name=C4
+m=1
+value=1
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 700 -270 1 0 {name=l15 sig_type=std_logic lab=vdd}
+C {lab_pin.sym} 600 -270 1 0 {name=l16 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 700 -130 3 0 {name=l18 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 800 -130 3 0 {name=l20 sig_type=std_logic lab=vcm}
+C {isource.sym} 1210 -220 0 0 {name=I0 value=DC\{iref\}}
+C {lab_pin.sym} 1210 -150 3 0 {name=l22 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 800 -250 3 0 {name=l24 sig_type=std_logic lab=vsen}
+C {res.sym} 890 -360 1 0 {name=R1
+value=500
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1230 -550 1 0 {name=R3
+value=5k
+footprint=1206
+device=resistor
+m=1}
+C {lab_pin.sym} 1030 -210 3 0 {name=l28 sig_type=std_logic lab=vss
+}
+C {capa.sym} 1030 -280 0 0 {name=C5
+m=1
+value=5p
+footprint=1206
+device="ceramic capacitor"}
+C {netlist_not_shown.sym} 650 -530 0 0 {name=SIMULATION only_toplevel=false 
+
+value="
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib TT
+
+* OP Parameters & Singals to save
+.save all
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[id] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[id] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[id] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulations
+.control
+  ac dec 100 1k 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1k
+  *meas ac PM find vp(vout) when vdb(vout)=0
+  *print PM*180/PI
+  *meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) \{vp(vout)*180/PI\}
+  write ~/caravel_fulgor_opamp/xschem/sim_results/opamp_closeloop_ac1.raw
+  
+  reset
+  tran 0.01u 11u
+  setplot tran1
+  plot v(vsen) v(vout)
+  write ~/caravel_fulgor_opamp/xschem/sim_results/opamp_closeloop_tran1.raw
+
+  reset    
+  noise v(vout) V4 dec 100 1k 10G 1
+  setplot noise1
+  plot inoise_spectrum onoise_spectrum
+  *print inoise_spectrum
+  *print onoise_spectrum
+  setplot noise2
+  *plot inoise_total onoise_total
+  print inoise_total
+  print onoise_total
+  write ~/caravel_fulgor_opamp/xschem/sim_results/opamp_closeloop_noise.raw
+  
+  reset
+  op
+  setplot op1
+  print vout  
+  write ~/caravel_fulgor_opamp/xschem/sim_results/opamp_closeloop_op1.raw
+  
+.endc
+
+.end
+"}
+C {opamp.sym} 1240 -340 0 0 {name=x1}
+C {lab_pin.sym} 1250 -260 3 0 {name=l1 sig_type=std_logic lab=vss}
+C {capa.sym} 1390 -280 0 0 {name=C1
+m=1
+value=20p
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 1390 -200 3 0 {name=l2 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1360 -340 0 0 {name=l3 sig_type=std_logic lab=vout}
+C {lab_pin.sym} 1110 -150 3 0 {name=l5 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1150 -320 0 0 {name=l4 sig_type=std_logic lab=vcm}
+C {vsource.sym} 1110 -220 0 0 {name=V5 value=DC\{vcm\}}
+C {lab_wire.sym} 1110 -360 0 0 {name=l6 sig_type=std_logic lab=vin}
+C {lab_wire.sym} 840 -360 0 0 {name=l7 sig_type=std_logic lab=vin_signal}
+C {lab_pin.sym} 1230 -420 1 0 {name=l8 sig_type=std_logic lab=vdd}
diff --git a/xschem/sch/opamp_closeloop_rpad.sch b/xschem/sch/opamp_closeloop_rpad.sch
new file mode 100644
index 0000000..f42c385
--- /dev/null
+++ b/xschem/sch/opamp_closeloop_rpad.sch
@@ -0,0 +1,166 @@
+v { version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 600 -170 600 -130 { lab=GND}
+N 600 -270 600 -230 { lab=vss}
+N 700 -270 700 -230 { lab=vdd}
+N 700 -170 700 -130 { lab=vss}
+N 800 -360 800 -330 { lab=vin_signal}
+N 1210 -190 1210 -150 { lab=vss}
+N 1210 -280 1210 -250 { lab=#net1}
+N 800 -270 800 -230 { lab=vsen}
+N 800 -170 800 -130 { lab=vcm}
+N 990 -550 1050 -550 { lab=vin}
+N 980 -550 980 -360 { lab=vin}
+N 980 -550 990 -550 { lab=vin}
+N 800 -360 860 -360 { lab=vin_signal}
+N 1030 -360 1090 -360 { lab=vin}
+N 1260 -550 1310 -550 { lab=vout}
+N 1030 -250 1030 -210 { lab=vss}
+N 1030 -360 1030 -310 { lab=vin}
+N 1250 -280 1250 -260 { lab=vss}
+N 1460 -340 1460 -310 { lab=vout}
+N 1460 -250 1460 -200 { lab=vss}
+N 1110 -290 1110 -250 { lab=vcm}
+N 1110 -190 1110 -150 { lab=vss}
+N 1110 -320 1110 -290 { lab=vcm}
+N 1110 -320 1170 -320 { lab=vcm}
+N 920 -360 1030 -360 { lab=vin}
+N 1310 -550 1390 -550 { lab=vout}
+N 1050 -550 1200 -550 { lab=vin}
+N 1230 -420 1230 -390 { lab=vdd}
+N 1150 -360 1170 -360 { lab=#net2}
+N 1400 -340 1420 -340 { lab=vout}
+N 1390 -550 1460 -550 { lab=vout}
+N 1460 -550 1460 -340 { lab=vout}
+N 1420 -340 1460 -340 { lab=vout}
+N 1310 -340 1340 -340 { lab=#net3}
+C {vsource.sym} 600 -200 0 0 {name=V1 value=DC\{vss\}}
+C {vsource.sym} 700 -200 0 0 {name=V2 value=DC\{vdd\}}
+C {gnd.sym} 600 -130 0 0 {name=l14 lab=GND}
+C {vsource.sym} 800 -200 0 0 {name=V4 value="sin(0 \{vac\} 1Meg) dc 0 ac 1"}
+C {capa.sym} 800 -300 2 0 {name=C4
+m=1
+value=1
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 700 -270 1 0 {name=l15 sig_type=std_logic lab=vdd}
+C {lab_pin.sym} 600 -270 1 0 {name=l16 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 700 -130 3 0 {name=l18 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 800 -130 3 0 {name=l20 sig_type=std_logic lab=vcm}
+C {isource.sym} 1210 -220 0 0 {name=I0 value=DC\{iref\}}
+C {lab_pin.sym} 1210 -150 3 0 {name=l22 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 800 -250 3 0 {name=l24 sig_type=std_logic lab=vsen}
+C {res.sym} 890 -360 1 0 {name=R1
+value=500
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1230 -550 1 0 {name=R3
+value=5k
+footprint=1206
+device=resistor
+m=1}
+C {lab_pin.sym} 1030 -210 3 0 {name=l28 sig_type=std_logic lab=vss
+}
+C {capa.sym} 1030 -280 0 0 {name=C5
+m=1
+value=5p
+footprint=1206
+device="ceramic capacitor"}
+C {netlist_not_shown.sym} 650 -530 0 0 {name=SIMULATION only_toplevel=false 
+
+value="
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib TT
+
+* OP Parameters & Singals to save
+.save all
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[id] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[id] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[id] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulations
+.control
+  ac dec 100 1k 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1k
+  *meas ac PM find vp(vout) when vdb(vout)=0
+  *print PM*180/PI
+  *meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) \{vp(vout)*180/PI\}
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_ac1.raw
+  
+  reset
+  tran 0.01u 11u
+  setplot tran1
+  plot v(vsen) v(vout)
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_tran1.raw
+
+  reset    
+  noise v(vout) V4 dec 100 1k 10G 1
+  setplot noise1
+  plot inoise_spectrum onoise_spectrum
+  *print inoise_spectrum
+  *print onoise_spectrum
+  setplot noise2
+  *plot inoise_total onoise_total
+  print inoise_total
+  print onoise_total
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_noise.raw
+  
+  reset
+  op
+  setplot op1
+  print vout  
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_closeloop_op1.raw
+  
+.endc
+
+.end
+"}
+C {opamp.sym} 1240 -340 0 0 {name=x1}
+C {lab_pin.sym} 1250 -260 3 0 {name=l1 sig_type=std_logic lab=vss}
+C {capa.sym} 1460 -280 0 0 {name=C1
+m=1
+value=20p
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 1460 -200 3 0 {name=l2 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1440 -340 0 0 {name=l3 sig_type=std_logic lab=vout}
+C {lab_pin.sym} 1110 -150 3 0 {name=l5 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1150 -320 0 0 {name=l4 sig_type=std_logic lab=vcm}
+C {vsource.sym} 1110 -220 0 0 {name=V5 value=DC\{vcm\}}
+C {lab_wire.sym} 1070 -360 0 0 {name=l6 sig_type=std_logic lab=vin}
+C {lab_wire.sym} 840 -360 0 0 {name=l7 sig_type=std_logic lab=vin_signal}
+C {lab_pin.sym} 1230 -420 1 0 {name=l8 sig_type=std_logic lab=vdd}
+C {res.sym} 1120 -360 1 0 {name=R2
+value=150
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1370 -340 1 0 {name=R4
+value=150
+footprint=1206
+device=resistor
+m=1}
diff --git a/xschem/sch/opamp_openloop.sch b/xschem/sch/opamp_openloop.sch
new file mode 100644
index 0000000..f478e1c
--- /dev/null
+++ b/xschem/sch/opamp_openloop.sch
@@ -0,0 +1,150 @@
+v { version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 1132.5 -137.5 1132.5 -100 { lab=GND}
+N 1132.5 -237.5 1132.5 -197.5 { lab=vss}
+N 1220 -237.5 1220 -197.5 { lab=vdd}
+N 1220 -137.5 1220 -100 { lab=vss}
+N 1530 -250 1530 -210 { lab=vss}
+N 1320 -335 1320 -297.5 { lab=vin}
+N 1630 -250 1630 -210 { lab=vss}
+N 1320 -237.5 1320 -197.5 { lab=vsen}
+N 1320 -137.5 1320 -100 { lab=vcm}
+N 1210 -430 1340 -430 { lab=ve}
+N 1280 -620 1340 -620 { lab=ve}
+N 1270 -620 1270 -430 { lab=ve}
+N 1270 -620 1280 -620 { lab=ve}
+N 1090 -430 1150 -430 { lab=vcm}
+N 1400 -430 1450 -430 { lab=vin}
+N 1450 -430 1510 -430 { lab=vin}
+N 1450 -320 1450 -280 { lab=vss}
+N 1450 -430 1450 -380 { lab=vin}
+N 1630 -350 1630 -310 { lab=#net1}
+N 1670 -350 1670 -330 { lab=vss}
+N 1780 -410 1780 -390 { lab=vout}
+N 1730 -410 1780 -410 { lab=vout}
+N 1780 -330 1780 -300 { lab=vss}
+N 1650 -490 1650 -460 { lab=vdd}
+N 1540 -390 1590 -390 { lab=vcm}
+N 1530 -390 1530 -310 { lab=vcm}
+N 1530 -390 1540 -390 { lab=vcm}
+N 1510 -430 1590 -430 { lab=vin}
+N 1590 -620 1780 -620 { lab=vout}
+N 1780 -620 1780 -410 { lab=vout}
+N 1340 -620 1530 -620 { lab=ve}
+C {vsource.sym} 1132.5 -167.5 0 0 {name=V1 value=DC\{vss\}}
+C {vsource.sym} 1220 -167.5 0 0 {name=V2 value=DC\{vdd\}}
+C {vsource.sym} 1530 -280 0 0 {name=V3 value=DC\{vcm\}}
+C {gnd.sym} 1132.5 -100 0 0 {name=l14 lab=GND}
+C {vsource.sym} 1320 -167.5 0 0 {name=V4 value="sin(0 \{vac\} 1Meg) dc 0 ac 1"}
+C {capa.sym} 1320 -267.5 2 0 {name=C4
+m=1
+value=1
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 1220 -237.5 1 0 {name=l15 sig_type=std_logic lab=vdd}
+C {lab_pin.sym} 1132.5 -237.5 1 0 {name=l16 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 1220 -100 3 0 {name=l18 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 1530 -210 3 0 {name=l19 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 1320 -100 3 0 {name=l20 sig_type=std_logic lab=vcm}
+C {lab_pin.sym} 1320 -335 1 0 {name=l21 sig_type=std_logic lab=vin}
+C {isource.sym} 1630 -280 0 0 {name=I0 value=DC\{iref\}}
+C {lab_pin.sym} 1630 -210 3 0 {name=l22 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1320 -225 3 0 {name=l24 sig_type=std_logic lab=vsen}
+C {res.sym} 1180 -430 1 0 {name=R1
+value=500
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1370 -430 1 0 {name=R2
+value=1G
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1560 -620 1 0 {name=R3
+value=5k
+footprint=1206
+device=resistor
+m=1}
+C {lab_pin.sym} 1090 -430 0 0 {name=l25 sig_type=std_logic lab=vcm}
+C {lab_wire.sym} 1252.5 -430 0 0 {name=l26 sig_type=std_logic lab=ve
+
+}
+C {lab_pin.sym} 1450 -280 3 0 {name=l28 sig_type=std_logic lab=vss
+}
+C {capa.sym} 1450 -350 0 0 {name=C5
+m=1
+value=5p
+footprint=1206
+device="ceramic capacitor"}
+C {netlist_not_shown.sym} 1080 -600 0 0 {name=SIMULATION only_toplevel=false 
+
+value="
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib fs
+
+* OP Parameters & Singals to save
+.save all
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[id] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[id] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[id] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulation
+.control
+  
+  ac dec 100 1 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1
+  meas ac PM find vp(vout) when vdb(vout)=0
+  print PM*180/PI
+  meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) \{vp(vout)*180/PI\}
+  write ~/caravel_fulgor_opamp/xschem/sim_results/opamp_openloop_ac1.raw
+
+  reset
+  op
+  setplot op1
+  write ~/caravel_fulgor_opamp/xschem/sim_results/opamp_openloop_op1.raw
+
+.endc
+
+.end
+"}
+C {lab_pin.sym} 1670 -330 3 0 {name=l1 sig_type=std_logic lab=vss}
+C {capa.sym} 1780 -360 0 0 {name=C1
+m=1
+value=20p
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 1780 -300 3 0 {name=l2 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1772.5 -410 0 0 {name=l3 sig_type=std_logic lab=vout
+
+}
+C {lab_pin.sym} 1650 -490 1 0 {name=l4 sig_type=std_logic lab=vdd}
+C {lab_wire.sym} 1572.5 -390 0 0 {name=l5 sig_type=std_logic lab=vcm
+
+}
+C {lab_wire.sym} 1522.5 -430 0 0 {name=l6 sig_type=std_logic lab=vin
+
+}
+C {opamp.sym} 1660 -410 0 0 {name=x1}
diff --git a/xschem/sch/opamp_openloop_rpad.sch b/xschem/sch/opamp_openloop_rpad.sch
new file mode 100644
index 0000000..f687bb0
--- /dev/null
+++ b/xschem/sch/opamp_openloop_rpad.sch
@@ -0,0 +1,164 @@
+v { version=2.9.8 file_version=1.2}
+G {}
+K {}
+V {}
+S {}
+E {}
+N 1132.5 -137.5 1132.5 -100 { lab=GND}
+N 1132.5 -237.5 1132.5 -197.5 { lab=vss}
+N 1220 -237.5 1220 -197.5 { lab=vdd}
+N 1220 -137.5 1220 -100 { lab=vss}
+N 1530 -250 1530 -210 { lab=vss}
+N 1320 -335 1320 -297.5 { lab=vin}
+N 1630 -250 1630 -210 { lab=vss}
+N 1320 -237.5 1320 -197.5 { lab=vsen}
+N 1320 -137.5 1320 -100 { lab=vcm}
+N 1210 -430 1340 -430 { lab=ve}
+N 1280 -620 1340 -620 { lab=ve}
+N 1270 -620 1270 -430 { lab=ve}
+N 1270 -620 1280 -620 { lab=ve}
+N 1090 -430 1150 -430 { lab=vcm}
+N 1400 -430 1450 -430 { lab=vin}
+N 1450 -430 1510 -430 { lab=vin}
+N 1450 -320 1450 -280 { lab=vss}
+N 1450 -430 1450 -380 { lab=vin}
+N 1630 -350 1630 -310 { lab=#net1}
+N 1670 -350 1670 -330 { lab=vss}
+N 1920 -410 1920 -390 { lab=vout}
+N 1920 -330 1920 -300 { lab=vss}
+N 1650 -490 1650 -460 { lab=vdd}
+N 1540 -390 1590 -390 { lab=vcm}
+N 1530 -390 1530 -310 { lab=vcm}
+N 1530 -390 1540 -390 { lab=vcm}
+N 1590 -620 1780 -620 { lab=vout}
+N 1920 -620 1920 -410 { lab=vout}
+N 1340 -620 1530 -620 { lab=ve}
+N 1780 -620 1920 -620 { lab=vout}
+N 1820 -410 1920 -410 { lab=vout}
+N 1730 -410 1760 -410 { lab=#net2}
+N 1570 -430 1590 -430 { lab=#net3}
+C {vsource.sym} 1132.5 -167.5 0 0 {name=V1 value=DC\{vss\}}
+C {vsource.sym} 1220 -167.5 0 0 {name=V2 value=DC\{vdd\}}
+C {vsource.sym} 1530 -280 0 0 {name=V3 value=DC\{vcm\}}
+C {gnd.sym} 1132.5 -100 0 0 {name=l14 lab=GND}
+C {vsource.sym} 1320 -167.5 0 0 {name=V4 value="sin(0 \{vac\} 1Meg) dc 0 ac 1"}
+C {capa.sym} 1320 -267.5 2 0 {name=C4
+m=1
+value=1
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 1220 -237.5 1 0 {name=l15 sig_type=std_logic lab=vdd}
+C {lab_pin.sym} 1132.5 -237.5 1 0 {name=l16 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 1220 -100 3 0 {name=l18 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 1530 -210 3 0 {name=l19 sig_type=std_logic lab=vss}
+C {lab_pin.sym} 1320 -100 3 0 {name=l20 sig_type=std_logic lab=vcm}
+C {lab_pin.sym} 1320 -335 1 0 {name=l21 sig_type=std_logic lab=vin}
+C {isource.sym} 1630 -280 0 0 {name=I0 value=DC\{iref\}}
+C {lab_pin.sym} 1630 -210 3 0 {name=l22 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1320 -225 3 0 {name=l24 sig_type=std_logic lab=vsen}
+C {res.sym} 1180 -430 1 0 {name=R1
+value=500
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1370 -430 1 0 {name=R2
+value=1G
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1560 -620 1 0 {name=R3
+value=5k
+footprint=1206
+device=resistor
+m=1}
+C {lab_pin.sym} 1090 -430 0 0 {name=l25 sig_type=std_logic lab=vcm}
+C {lab_wire.sym} 1252.5 -430 0 0 {name=l26 sig_type=std_logic lab=ve
+
+}
+C {lab_pin.sym} 1450 -280 3 0 {name=l28 sig_type=std_logic lab=vss
+}
+C {capa.sym} 1450 -350 0 0 {name=C5
+m=1
+value=5p
+footprint=1206
+device="ceramic capacitor"}
+C {netlist_not_shown.sym} 1080 -600 0 0 {name=SIMULATION only_toplevel=false 
+
+value="
+
+
+* Circuit Parameters
+.param iref = 100u
+.param vdd  = 1.8
+.param vss  = 0.0
+.param vcm  = 0.8
+.param vac  = 10m
+.options TEMP = 65.0
+
+* Include Models
+*.lib /home/dhernando/projects/foundry/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib SS
+*.lib  ~/fulgor-opamp-sky130/xschem/sky130.lib TT
+.lib ~/skywater_pdk/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/sky130.lib TT
+
+* OP Parameters & Singals to save
+.save all
++ @M.X1.XM1.msky130_fd_pr__pfet_01v8[id] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM1.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM1.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM2.msky130_fd_pr__pfet_01v8[id] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM2.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM2.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM3.msky130_fd_pr__nfet_01v8[id] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM3.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM3.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM4.msky130_fd_pr__nfet_01v8[id] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM4.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM4.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM5.msky130_fd_pr__pfet_01v8[id] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM5.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM5.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM6.msky130_fd_pr__nfet_01v8[id] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM6.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM6.msky130_fd_pr__nfet_01v8[gds]
++ @M.X1.XM7.msky130_fd_pr__pfet_01v8[id] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM7.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM7.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM8.msky130_fd_pr__pfet_01v8[id] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vth] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vgs] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vds] @M.X1.XM8.msky130_fd_pr__pfet_01v8[vdsat] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gm] @M.X1.XM8.msky130_fd_pr__pfet_01v8[gds]
++ @M.X1.XM9.msky130_fd_pr__nfet_01v8[id] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vth] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vgs] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vds] @M.X1.XM9.msky130_fd_pr__nfet_01v8[vdsat] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gm] @M.X1.XM9.msky130_fd_pr__nfet_01v8[gds]
+
+*Simulation
+.control
+  
+  ac dec 100 1 10G
+  setplot ac1
+  meas ac GBW when vdb(vout)=0
+  meas ac DCG find vdb(vout) at=1
+  meas ac PM find vp(vout) when vdb(vout)=0
+  print PM*180/PI
+  meas ac GM find vdb(vout) when vp(vout)=0
+  plot vdb(vout) \{vp(vout)*180/PI\}
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_openloop_ac1.raw
+
+  reset
+  op
+  setplot op1
+  write ~/fulgor-opamp-sky130/xschem/sim_results/opamp_openloop_op1.raw
+
+.endc
+
+.end
+"}
+C {lab_pin.sym} 1670 -330 3 0 {name=l1 sig_type=std_logic lab=vss}
+C {capa.sym} 1920 -360 0 0 {name=C1
+m=1
+value=20p
+footprint=1206
+device="ceramic capacitor"}
+C {lab_pin.sym} 1920 -300 3 0 {name=l2 sig_type=std_logic lab=vss}
+C {lab_wire.sym} 1912.5 -410 0 0 {name=l3 sig_type=std_logic lab=vout
+
+}
+C {lab_pin.sym} 1650 -490 1 0 {name=l4 sig_type=std_logic lab=vdd}
+C {lab_wire.sym} 1572.5 -390 0 0 {name=l5 sig_type=std_logic lab=vcm
+
+}
+C {lab_wire.sym} 1482.5 -430 0 0 {name=l6 sig_type=std_logic lab=vin
+
+}
+C {opamp.sym} 1660 -410 0 0 {name=x1}
+C {res.sym} 1540 -430 1 0 {name=R4
+value=150
+footprint=1206
+device=resistor
+m=1}
+C {res.sym} 1790 -410 1 0 {name=R5
+value=150
+footprint=1206
+device=resistor
+m=1}
diff --git a/xschem/sim_results/opamp_closeloop_ac1.raw b/xschem/sim_results/opamp_closeloop_ac1.raw
new file mode 100644
index 0000000..3fab6a6
--- /dev/null
+++ b/xschem/sim_results/opamp_closeloop_ac1.raw
Binary files differ
diff --git a/xschem/sim_results/opamp_closeloop_noise.raw b/xschem/sim_results/opamp_closeloop_noise.raw
new file mode 100644
index 0000000..a9d997e
--- /dev/null
+++ b/xschem/sim_results/opamp_closeloop_noise.raw
Binary files differ
diff --git a/xschem/sim_results/opamp_closeloop_op1.raw b/xschem/sim_results/opamp_closeloop_op1.raw
new file mode 100644
index 0000000..4bc9fbd
--- /dev/null
+++ b/xschem/sim_results/opamp_closeloop_op1.raw
Binary files differ
diff --git a/xschem/sim_results/opamp_closeloop_tran1.raw b/xschem/sim_results/opamp_closeloop_tran1.raw
new file mode 100644
index 0000000..6ad6a87
--- /dev/null
+++ b/xschem/sim_results/opamp_closeloop_tran1.raw
Binary files differ
diff --git a/xschem/sim_results/opamp_openloop_ac1.raw b/xschem/sim_results/opamp_openloop_ac1.raw
new file mode 100644
index 0000000..495da28
--- /dev/null
+++ b/xschem/sim_results/opamp_openloop_ac1.raw
Binary files differ
diff --git a/xschem/sim_results/opamp_openloop_op1.raw b/xschem/sim_results/opamp_openloop_op1.raw
new file mode 100644
index 0000000..bc42c73
--- /dev/null
+++ b/xschem/sim_results/opamp_openloop_op1.raw
Binary files differ
diff --git a/xschem/sky130.lib b/xschem/sky130.lib
new file mode 100644
index 0000000..4e95cf0
--- /dev/null
+++ b/xschem/sky130.lib
@@ -0,0 +1,100 @@
+* Copyright 2020 The SkyWater PDK Authors
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     https://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+
+******* SkyWater sky130 model library *********
+
+* Typical corner (tt)
+.lib tt
+* nfet
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__tt.pm3.spice"
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__mismatch.corner.spice"
+* pfet
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__tt.pm3.spice"
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__mismatch.corner.spice"
+* others
+.include "tt/nonfet.spice"
+.include "../all.spice"
+.include "tt/rf.spice"
+* R+C
+.include "../r+c/res_typical__cap_typical.spice"
+.include "../r+c/res_typical__cap_typical__lin.spice"
+.endl
+
+* Slow-Fast corner (sf)
+.lib sf
+* nfet
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__sf.pm3.spice"
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__mismatch.corner.spice"
+* pfet
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__sf.pm3.spice"
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__mismatch.corner.spice"
+* others
+.include "sf/nonfet.spice"
+.include "../all.spice"
+.include "sf/rf.spice"
+* R+C
+.include "../r+c/res_typical__cap_typical.spice"
+.include "../r+c/res_typical__cap_typical__lin.spice"
+.endl
+
+* Fast-Fast corner (ff)
+.lib ff
+* nfet
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__ff.pm3.spice"
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__mismatch.corner.spice"
+* pfet
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__ff.pm3.spice"
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__mismatch.corner.spice"
+* others 
+.include "ff/nonfet.spice"
+.include "../all.spice"
+.include "ff/rf.spice"
+* R+C
+.include "../r+c/res_typical__cap_typical.spice"
+.include "../r+c/res_typical__cap_typical__lin.spice"
+.endl
+
+* Slow-Slow corner (ss)
+.lib ss
+* nfet
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__ss.pm3.spice"
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__mismatch.corner.spice"
+* pfet
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__ss.pm3.spice"
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__mismatch.corner.spice"
+* others
+.include "ss/nonfet.spice"
+.include "../all.spice"
+.include "ss/rf.spice"
+* R+C
+.include "../r+c/res_typical__cap_typical.spice"
+.include "../r+c/res_typical__cap_typical__lin.spice"
+.endl
+
+* Fast-Slow corner (fs)
+.lib fs
+* nfet
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__fs.pm3.spice"
+.include "../../cells/nfet_01v8/sky130_fd_pr__nfet_01v8__mismatch.corner.spice"
+* pfet
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__fs.pm3.spice"
+.include "../../cells/pfet_01v8/sky130_fd_pr__pfet_01v8__mismatch.corner.spice"
+* others
+.include "fs/nonfet.spice"
+.include "../all.spice"
+.include "fs/rf.spice"
+* R+C
+.include "../r+c/res_typical__cap_typical.spice"
+.include "../r+c/res_typical__cap_typical__lin.spice"
+.endl
diff --git a/xschem/xschemrc b/xschem/xschemrc
new file mode 100644
index 0000000..8e464f9
--- /dev/null
+++ b/xschem/xschemrc
@@ -0,0 +1,6 @@
+#Configure xschem project directory to use sky130 symbols
+set XSCHEM_LIBRARY_PATH {}
+append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/xschem_library
+append XSCHEM_LIBRARY_PATH :~/skywater_pdk/xschem_sky130
+append XSCHEM_LIBRARY_PATH :~/caravel_fulgor_opamp/xschem/sch
+