added schematic to xschem
diff --git a/xschem/reram.sym b/xschem/reram.sym
new file mode 100644
index 0000000..e677477
--- /dev/null
+++ b/xschem/reram.sym
@@ -0,0 +1,42 @@
+v {xschem version=3.0.0 file_version=1.2 }
+G {}
+K {type=reram
+
+function0="1"
+function1="0"
+
+format="Ysky130_fd_pr_reram__reram_cell @name @pinlist @device"
+
+verilog_format="tran @name (@@P\\\\, @@M\\\\);"
+
+tedax_format="footprint @name @footprint
+value @name @value
+device @name @device
+spicedev @name @spicedev
+spiceval @name @spiceval
+comptag @name @comptag"
+
+template="name=RERAM1
+device=RERAM
+m=1"}
+V {}
+S {}
+E {}
+L 4 -20 20 20 -20 {}
+L 4 10 -20 20 -20 {}
+L 4 20 -20 20 -10 {}
+L 4 0 20 0 30 {}
+L 4 0 20 7.5 17.5 {}
+L 4 -7.5 12.5 7.5 17.5 {}
+L 4 -7.5 12.5 7.5 7.5 {}
+L 4 -7.5 2.5 7.5 7.5 {}
+L 4 -7.5 2.5 7.5 -2.5 {}
+L 4 -7.5 -7.5 7.5 -2.5 {}
+L 4 -7.5 -7.5 7.5 -12.5 {}
+L 4 -7.5 -17.5 7.5 -12.5 {}
+L 4 -7.5 -17.5 0 -20 {}
+L 4 0 -30 0 -20 {}
+B 5 -2.5 -32.5 2.5 -27.5 {name=TE dir=inout propag=1 pinnumber=1 goto=1}
+B 5 -2.5 27.5 2.5 32.5 {name=BE dir=inout propag=0 pinnumber=2 goto=0}
+T {@#0:net_name} 20 -38.75 0 0 0.15 0.15 {layer=15}
+T {@#1:net_name} 20 21.25 0 0 0.15 0.15 {layer=15}
diff --git a/xschem/sky130/nfet_01v8.sym b/xschem/sky130/nfet_01v8.sym
new file mode 100644
index 0000000..bba9022
--- /dev/null
+++ b/xschem/sky130/nfet_01v8.sym
@@ -0,0 +1,56 @@
+v {xschem version=3.0.0 file_version=1.2 
+
+* Copyright 2021 Stefan Frederik Schippers
+* 
+* 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.
+
+}
+G {}
+K {type=nmos
+format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W
++ nf='int(( @nf +1)/2) * @W / @nf * 0.29' ad='int(( @nf +1)/2) * @W / @nf * 0.29' as='int(( @nf +2)/2) * @W / @nf * 0.29'
++ pd='2*int(( @nf +1)/2) * ( @W / @nf + 0.29)' ps='2*int(( @nf +2)/2) * ( @W / @nf + 0.29)'
++ nrd='0.29 / @W ' nrs='0.29 / @W ' sa=@sa sb=@sb sd=@sd 
++ mult=@mult m=@mult"
+template="name=M1
+L=0.15
+W=1
+nf=1 
+mult=1
+sa=0 sb=0 sd=0
+model=nfet_01v8
+spiceprefix=X
+"}
+V {}
+S {}
+E {}
+L 4 7.5 -22.5 7.5 22.5 {}
+L 4 -20 0 2.5 0 {}
+L 4 20 -30 20 -17.5 {}
+L 4 20 17.5 20 30 {}
+L 4 2.5 -15 2.5 15 {}
+L 4 7.5 -17.5 20 -17.5 {}
+L 4 7.5 17.5 15 17.5 {}
+B 5 17.5 -32.5 22.5 -27.5 {name=D dir=inout}
+B 5 -22.5 -2.5 -17.5 2.5 {name=G dir=in}
+B 5 17.5 27.5 22.5 32.5 {name=S dir=inout}
+B 5 19.921875 -0.078125 20.078125 0.078125 {name=B dir=in}
+P 4 4 15 15 20 17.5 15 20 15 15 {fill=true}
+P 5 4 20 -2.5 15 0 20 2.5 20 -2.5 {fill=true}
+T {@name} 5 -30 0 1 0.2 0.2 {}
+T {S} 22.5 17.5 0 0 0.15 0.15 {layer=7}
+T {D} 22.5 -17.5 2 1 0.15 0.15 {layer=7}
+T {B} 20 -10 0 0 0.15 0.15 {layer=7}
+T {G} -10 -10 0 1 0.15 0.15 {layer=7}
+T {@model} 30 -8.75 2 1 0.2 0.2 {}
+T {@mult x @W / @L} 31.25 11.25 0 0 0.2 0.2 { layer=13}
diff --git a/xschem/sky130/nfet_03v3_nvt.sym b/xschem/sky130/nfet_03v3_nvt.sym
new file mode 100644
index 0000000..7bf385e
--- /dev/null
+++ b/xschem/sky130/nfet_03v3_nvt.sym
@@ -0,0 +1,58 @@
+v {xschem version=2.9.8 file_version=1.2
+
+* Copyright 2021 Stefan Frederik Schippers
+* 
+* 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.
+
+}
+G {}
+K {type=nmos
+format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W
++ nf=@nf ad='int(( @nf + 1)/2) * @W / @nf * 0.29'  as='int(( @nf +2)/2) * @W / @nf * 0.29' pd='2*int(( @nf +1)/2) * ( @W / @nf + 0.29)' ps='2*int(( @nf +2)/2) * ( @W / @nf + 0.29)'
++ nrd='0.29 / @W ' nrs='0.29 / @W ' sa=@sa sb=@sb sd=@sd 
++ mult=@mult m=@mult"
+template="name=M1
+L=0.5
+W=1
+nf=1
+mult=1
+sa=0 sb=0 sd=0
+model=nfet_03v3_nvt
+spiceprefix=X
+"}
+V {}
+S {}
+E {}
+L 4 20 -30 20 -17.5 {}
+L 4 20 17.5 20 30 {}
+L 4 7.5 -17.5 20 -17.5 {}
+L 4 7.5 17.5 15 17.5 {}
+L 4 -20 -0 -2.5 0 {}
+L 4 7.5 -22.5 7.5 -12.5 {}
+L 4 7.5 12.5 7.5 22.5 {}
+L 4 7.5 -5 7.5 5 {}
+B 5 17.5 -32.5 22.5 -27.5 {name=D dir=inout}
+B 5 -22.5 -2.5 -17.5 2.5 {name=G dir=in}
+B 5 17.5 27.5 22.5 32.5 {name=S dir=inout}
+B 5 19.921875 -0.078125 20.078125 0.078125 {name=B dir=in}
+P 4 4 15 15 20 17.5 15 20 15 15 {fill=true}
+P 4 5 -2.5 15 -2.5 -15 2.5 -15 2.5 15 -2.5 15 {}
+P 5 4 20 -2.5 15 0 20 2.5 20 -2.5 {fill=true}
+T {3V} 5 17.5 0 1 0.2 0.2 { layer=4}
+T {@name} 5 -30 0 1 0.2 0.2 {}
+T {S} 22.5 17.5 0 0 0.15 0.15 {layer=7}
+T {D} 22.5 -17.5 2 1 0.15 0.15 {layer=7}
+T {B} 20 -10 0 0 0.15 0.15 {layer=7}
+T {G} -10 -10 0 1 0.15 0.15 {layer=7}
+T {@model} 30 -8.75 2 1 0.2 0.2 {}
+T {@mult x @W / @L} 31.25 11.25 0 0 0.2 0.2 { layer=13}
diff --git a/xschem/sky130/pfet_01v8.sym b/xschem/sky130/pfet_01v8.sym
new file mode 100644
index 0000000..26b8d75
--- /dev/null
+++ b/xschem/sky130/pfet_01v8.sym
@@ -0,0 +1,57 @@
+v {xschem version=3.0.0 file_version=1.2 
+
+* Copyright 2021 Stefan Frederik Schippers
+* 
+* 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.
+
+}
+G {}
+K {type=pmos
+format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W
++ nf=@nf ad='int(( @nf +1)/2) * @W / @nf * 0.29' as='int(( @nf +2)/2) * @W / @nf * 0.29'
++ pd='2*int(( @nf +1)/2) * ( @W / @nf + 0.29)' ps='2*int(( @nf +2)/2) * ( @W / @nf + 0.29)'
++ nrd='0.29 / @W ' nrs='0.29 / @W ' sa=@sa sb=@sb sd=@sd
++ mult=@mult m=@mult"
+template="name=M1
+L=0.15
+W=1
+nf=1
+mult=1
+sa=0 sb=0 sd=0
+model=pfet_01v8
+spiceprefix=X
+"}
+V {}
+S {}
+E {}
+L 4 7.5 -22.5 7.5 22.5 {}
+L 4 20 -30 20 -17.5 {}
+L 4 20 17.5 20 30 {}
+L 4 2.5 -15 2.5 15 {}
+L 4 7.5 17.5 20 17.5 {}
+L 4 12.5 -17.5 20 -17.5 {}
+L 4 -20 0 -7.5 0 {}
+B 5 17.5 27.5 22.5 32.5 {name=D dir=inout}
+B 5 -22.5 -2.5 -17.5 2.5 {name=G dir=in}
+B 5 17.5 -32.5 22.5 -27.5 {name=S dir=inout}
+B 5 19.921875 -0.078125 20.078125 0.078125 {name=B dir=in}
+A 4 -2.5 0 5 180 360 {}
+P 4 4 12.5 -20 7.5 -17.5 12.5 -15 12.5 -20 {fill=true}
+P 5 4 15 -2.5 20 0 15 2.5 15 -2.5 {fill=true}
+T {@name} 5 -30 0 1 0.2 0.2 {}
+T {D} 22.5 17.5 0 0 0.15 0.15 {layer=7}
+T {S} 22.5 -17.5 2 1 0.15 0.15 {layer=7}
+T {B} 20 -10 0 0 0.15 0.15 {layer=7}
+T {G} -10 -10 0 1 0.15 0.15 {layer=7}
+T {@model} 30 -8.75 2 1 0.2 0.2 {}
+T {@mult x @W / @L} 31.25 11.25 0 0 0.2 0.2 { layer=13}
diff --git a/xschem/sky130_fd_pr_reram__reram_cell.va b/xschem/sky130_fd_pr_reram__reram_cell.va
new file mode 100644
index 0000000..6e2c0b8
--- /dev/null
+++ b/xschem/sky130_fd_pr_reram__reram_cell.va
@@ -0,0 +1,108 @@
+// 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.
+//
+// SPDX-License-Identifier: Apache-2.0
+
+`include "constants.vams"
+`include "disciplines.vams"
+
+module sky130_fd_pr_reram__reram_cell(TE, BE);
+    inout TE; // top electrode
+    inout BE; // bottom electrode
+    electrical TE, BE;
+
+    // ==================================================
+    // input parameters
+    // --------------------------------------------------
+    // physical area and thickness
+    parameter real area_ox             = 0.1024e-12 from (0:inf);                         // area of TE/BE overlap [meters^2]
+    parameter real Tox                 = 5.0e-9     from (0:inf);                         // thickness of oxide between TE and BE [meters]
+    parameter real Tfilament_max       = 4.9e-9     from (0:inf);                         // maximum thickness of conductive filament (for minimum resistance) [meters]
+    parameter real Tfilament_min       = 3.3e-9     from (0:inf);                         // minimum thickness of conductive filament (for maximum resistance) [meters]
+    parameter real Tfilament_0         = 3.3e-9     from [Tfilament_min:Tfilament_max];   // initial thickness of conductive filament (at t=0 for transient simulation) [meters]
+    // activation energy
+    parameter real Eact_generation     = 1.501      from (0:inf);                         // activation energy for vacancy generation [eV]
+    parameter real Eact_recombination  = 1.500      from (0:inf);                         // activation energy for vacancy recombination [eV]
+    // calibration parameters: I-V
+    parameter real I_k1                = 6.140e-5   from (0:inf);                         // current calibration parameter [Amps]
+    parameter real Tfilament_ref       = 4.7249e-9  from (0:inf);                         // filament thickness calibration parameter [meters]
+    parameter real V_ref               = 0.430      from (0:inf);                         // voltage calibration parameter [Volts]
+    // calibration parameters: filament growth
+    parameter real velocity_k1         = 150        from (0:inf);                         // velocity calibration parameter [meters/second]
+    parameter real gamma_k0            = 16.5       from (0:inf);                         // enhancement factor calibration parameter [unitless]
+    parameter real gamma_k1            = -1.25      from (-inf:inf);                      // enhancement factor calibration parameter [unitless]
+    // calibration parameters: temperature
+    parameter real Temperature_0       = 300        from (0:inf);                         // intial temperature [degrees Kelvin]
+    parameter real C_thermal           = 3.1825e-16 from (0:inf);                         // effective thermal capacitance [Joules/Kelvin]
+    parameter real tau_thermal         = 0.23e-9    from (0:inf);                         // effective thermal time constant [seconds]
+    // simulation control
+    parameter real t_step              = 1.0e-9     from (0:inf);                         // maximum time step [seconds]
+    // ==================================================
+
+    // internal parameters
+    parameter real a0 = 0.25e-9;           // atomic distance [m]
+    real Tfilament_current;      // current filament thickness [m]
+    real Tfilament_dTdt;         // current filament thickness, derivative w.r.t. time [m/s]
+    real gamma;                  // local enhancement factor
+    real Temperature_current;    // current temperature
+    real kT_over_q;              // e.g., 0.0259 at 300 degrees K [eV]
+
+    // transient simulation parameters
+    real t_current;              // current time step [s]
+    real t_previous;             // previous time step [s]
+    real t_delta;                // difference between current vs. previous time step
+
+    real iout;
+
+    // local functions
+    analog function real soft_minmax;
+        input x, xmin, xmax;
+        real x, xmin, xmax;
+        begin
+            if (x > xmax) begin
+                soft_minmax = xmax;
+            end else if (x < xmin) begin
+                soft_minmax = xmin;
+            end else begin
+                soft_minmax = x;
+            end
+        end
+    endfunction // soft_minmax
+
+    // core equations
+    analog begin
+        @(initial_instance) begin
+            // initial condition
+            $strobe("ReRAM inital instance");
+            Temperature_current = Temperature_0;
+            Tfilament_current = Tfilament_0;
+	end
+        $bound_step(t_step); // bound maximum time step
+        t_current = $abstime; // current time
+        t_delta = t_current - t_previous;
+        gamma = gamma_k0 + gamma_k1 * pow((Tox - Tfilament_current)/1.0e-9, 3);
+	    kT_over_q = (`P_K * Temperature_current) / `P_Q;
+        Tfilament_dTdt = velocity_k1 * (exp(-Eact_generation    / kT_over_q) * exp( gamma * a0/Tox * V(TE,BE) / kT_over_q) -
+                                        exp(-Eact_recombination / kT_over_q) * exp(-gamma * a0/Tox * V(TE,BE) / kT_over_q));        
+        Tfilament_current = Tfilament_current + Tfilament_dTdt * t_delta; // 1st-order update to filament thickness
+        Tfilament_current = soft_minmax(Tfilament_current, Tfilament_min, Tfilament_max); // bound filament thickness
+        I(TE,BE) <+ I_k1 * exp(-(Tox - Tfilament_current)/(Tox - Tfilament_ref)) * sinh( V(TE,BE)/V_ref );
+        Temperature_current = (Temperature_current + t_delta * (abs(V(TE,BE)*I(TE,BE)) / C_thermal + Temperature_0/tau_thermal))
+                              / (1 + t_delta/tau_thermal); // 1st-order update to temperature
+
+        //Temperature_current = 300;
+
+	    t_previous = $abstime; // current time step is previous time step for next iteration
+    end
+endmodule
diff --git a/xschem/user_analog_project_wrapper-example.sch b/xschem/user_analog_project_wrapper-example.sch
new file mode 100644
index 0000000..e3cbcec
--- /dev/null
+++ b/xschem/user_analog_project_wrapper-example.sch
@@ -0,0 +1,180 @@
+v {xschem version=2.9.9 file_version=1.2 }
+G {}
+K {}
+V {}
+S {}
+E {}
+N 3830 -460 3830 -390 { lab=vdda1}
+N 3730 -460 3830 -460 { lab=vdda1}
+N 3860 -230 3860 -180 { lab=vssa1}
+N 3770 -180 3860 -180 { lab=vssa1}
+N 3890 -460 3890 -390 { lab=vccd1}
+N 3890 -460 3960 -460 { lab=vccd1}
+N 3890 -130 3890 -60 { lab=vccd1}
+N 3890 -130 3950 -130 { lab=vccd1}
+N 3830 -130 3830 -60 { lab=io_analog[4]}
+N 3790 -130 3830 -130 { lab=io_analog[4]}
+N 3860 100 3860 150 { lab=vssa1}
+N 3800 150 3860 150 { lab=vssa1}
+N 4010 -10 4110 -10 { lab=gpio_analog[7]}
+N 4010 20 4110 20 { lab=io_out[15]}
+N 4010 50 4110 50 { lab=io_out[16]}
+N 4010 -340 4130 -340 { lab=gpio_analog[3]}
+N 4010 -310 4130 -310 { lab=io_out[11]}
+N 4010 -280 4130 -280 { lab=io_out[12]}
+N 3670 300 3670 340 { lab=io_clamp_low[2]}
+N 3670 400 3670 420 { lab=vssa1}
+N 3670 440 3670 460 { lab=io_clamp_high[2]}
+N 3670 520 3670 530 { lab=vssa1}
+N 3670 570 3670 590 { lab=io_clamp_low[1]}
+N 3670 650 3670 670 { lab=vssa1}
+N 4160 300 4160 330 { lab=io_clamp_high[1]}
+N 4160 390 4160 410 { lab=vssa1}
+N 4160 440 4160 460 { lab=io_clamp_low[0]}
+N 4160 520 4160 530 { lab=vssa1}
+N 4160 550 4160 560 { lab=io_clamp_high[0]}
+N 4160 620 4160 640 { lab=io_analog[4]}
+N 3630 300 3670 300 { lab=io_clamp_low[2]}
+N 3630 420 3670 420 { lab=vssa1}
+N 3630 440 3670 440 { lab=io_clamp_high[2]}
+N 3630 530 3670 530 { lab=vssa1}
+N 3630 570 3670 570 { lab=io_clamp_low[1]}
+N 3630 670 3670 670 { lab=vssa1}
+N 4130 300 4160 300 { lab=io_clamp_high[1]}
+N 4130 410 4160 410 { lab=vssa1}
+N 4130 440 4160 440 { lab=io_clamp_low[0]}
+N 4130 530 4160 530 { lab=vssa1}
+N 4130 550 4160 550 { lab=io_clamp_high[0]}
+N 4130 640 4160 640 { lab=io_analog[4]}
+N 3670 710 3670 750 { lab=io_oeb[12]}
+N 3670 810 3670 830 { lab=vssd1}
+N 3670 850 3670 870 { lab=io_oeb[16]}
+N 3670 930 3670 940 { lab=vssd1}
+N 4160 710 4160 740 { lab=io_oeb[11]}
+N 4160 800 4160 820 { lab=vssd1}
+N 4160 850 4160 870 { lab=#net1}
+N 4160 930 4160 940 { lab=vssd1}
+N 3630 710 3670 710 { lab=io_oeb[12]}
+N 3630 830 3670 830 { lab=vssd1}
+N 3630 850 3670 850 { lab=io_oeb[16]}
+N 3630 940 3670 940 { lab=vssd1}
+N 4130 710 4160 710 { lab=io_oeb[11]}
+N 4130 820 4160 820 { lab=vssd1}
+N 4130 850 4160 850 { lab=#net1}
+N 4130 940 4160 940 { lab=vssd1}
+C {example_por.sym} 3860 -310 0 0 {name=x1}
+C {example_por.sym} 3860 20 0 0 {name=x2}
+C {devices/iopin.sym} 3240 -470 0 0 {name=p1 lab=vdda1}
+C {devices/iopin.sym} 3240 -440 0 0 {name=p2 lab=vdda2}
+C {devices/iopin.sym} 3240 -410 0 0 {name=p3 lab=vssa1}
+C {devices/iopin.sym} 3240 -380 0 0 {name=p4 lab=vssa2}
+C {devices/iopin.sym} 3240 -350 0 0 {name=p5 lab=vccd1}
+C {devices/iopin.sym} 3240 -320 0 0 {name=p6 lab=vccd2}
+C {devices/iopin.sym} 3240 -290 0 0 {name=p7 lab=vssd1}
+C {devices/iopin.sym} 3240 -260 0 0 {name=p8 lab=vssd2}
+C {devices/ipin.sym} 3290 -190 0 0 {name=p9 lab=wb_clk_i}
+C {devices/ipin.sym} 3290 -160 0 0 {name=p10 lab=wb_rst_i}
+C {devices/ipin.sym} 3290 -130 0 0 {name=p11 lab=wbs_stb_i}
+C {devices/ipin.sym} 3290 -100 0 0 {name=p12 lab=wbs_cyc_i}
+C {devices/ipin.sym} 3290 -70 0 0 {name=p13 lab=wbs_we_i}
+C {devices/ipin.sym} 3290 -40 0 0 {name=p14 lab=wbs_sel_i[3:0]}
+C {devices/ipin.sym} 3290 -10 0 0 {name=p15 lab=wbs_dat_i[31:0]}
+C {devices/ipin.sym} 3290 20 0 0 {name=p16 lab=wbs_adr_i[31:0]}
+C {devices/opin.sym} 3280 80 0 0 {name=p17 lab=wbs_ack_o}
+C {devices/opin.sym} 3280 110 0 0 {name=p18 lab=wbs_dat_o[31:0]}
+C {devices/ipin.sym} 3290 150 0 0 {name=p19 lab=la_data_in[127:0]}
+C {devices/opin.sym} 3280 180 0 0 {name=p20 lab=la_data_out[127:0]}
+C {devices/ipin.sym} 3290 260 0 0 {name=p21 lab=io_in[26:0]}
+C {devices/ipin.sym} 3290 290 0 0 {name=p22 lab=io_in_3v3[26:0]}
+C {devices/ipin.sym} 3280 570 0 0 {name=p23 lab=user_clock2}
+C {devices/opin.sym} 3280 320 0 0 {name=p24 lab=io_out[26:0]}
+C {devices/opin.sym} 3280 350 0 0 {name=p25 lab=io_oeb[26:0]}
+C {devices/iopin.sym} 3250 410 0 0 {name=p26 lab=gpio_analog[17:0]}
+C {devices/iopin.sym} 3250 440 0 0 {name=p27 lab=gpio_noesd[17:0]}
+C {devices/iopin.sym} 3250 470 0 0 {name=p29 lab=io_analog[10:0]}
+C {devices/iopin.sym} 3250 500 0 0 {name=p30 lab=io_clamp_high[2:0]}
+C {devices/iopin.sym} 3250 530 0 0 {name=p31 lab=io_clamp_low[2:0]}
+C {devices/opin.sym} 3270 600 0 0 {name=p32 lab=user_irq[2:0]}
+C {devices/ipin.sym} 3290 210 0 0 {name=p28 lab=la_oenb[127:0]}
+C {devices/lab_pin.sym} 3730 -460 0 0 {name=l1 sig_type=std_logic lab=vdda1}
+C {devices/lab_pin.sym} 3770 -180 0 0 {name=l2 sig_type=std_logic lab=vssa1}
+C {devices/lab_pin.sym} 3960 -460 0 1 {name=l3 sig_type=std_logic lab=vccd1}
+C {devices/lab_pin.sym} 3950 -130 0 1 {name=l4 sig_type=std_logic lab=vccd1}
+C {devices/lab_pin.sym} 3790 -130 0 0 {name=l5 sig_type=std_logic lab=io_analog[4]}
+C {devices/lab_pin.sym} 3800 150 0 0 {name=l6 sig_type=std_logic lab=vssa1}
+C {devices/lab_pin.sym} 4130 -340 0 1 {name=l7 sig_type=std_logic lab=gpio_analog[3]}
+C {devices/lab_pin.sym} 4130 -310 0 1 {name=l8 sig_type=std_logic lab=io_out[11]}
+C {devices/lab_pin.sym} 4130 -280 0 1 {name=l9 sig_type=std_logic lab=io_out[12]}
+C {devices/lab_pin.sym} 4110 -10 0 1 {name=l10 sig_type=std_logic lab=gpio_analog[7]}
+C {devices/lab_pin.sym} 4110 20 0 1 {name=l11 sig_type=std_logic lab=io_out[15]}
+C {devices/lab_pin.sym} 4110 50 0 1 {name=l12 sig_type=std_logic lab=io_out[16]}
+C {sky130_fd_pr/res_generic_m1.sym} 3670 370 0 0 {name=R1
+W=11
+L=0.25
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 3670 490 0 0 {name=R2
+W=11
+L=0.25
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 3670 620 0 0 {name=R4
+W=11
+L=0.25
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 4160 360 0 0 {name=R5
+W=11
+L=0.25
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 4160 490 0 0 {name=R6
+W=11
+L=0.25
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 4160 590 0 0 {name=R7
+W=11
+L=0.25
+model=res_generic_m3
+mult=1}
+C {devices/lab_pin.sym} 3630 300 0 0 {name=l13 sig_type=std_logic lab=io_clamp_low[2]}
+C {devices/lab_pin.sym} 3630 440 0 0 {name=l14 sig_type=std_logic lab=io_clamp_high[2]}
+C {devices/lab_pin.sym} 3630 570 0 0 {name=l15 sig_type=std_logic lab=io_clamp_low[1]}
+C {devices/lab_pin.sym} 4130 300 0 0 {name=l16 sig_type=std_logic lab=io_clamp_high[1]}
+C {devices/lab_pin.sym} 4130 440 0 0 {name=l17 sig_type=std_logic lab=io_clamp_low[0]}
+C {devices/lab_pin.sym} 3630 420 0 0 {name=l18 sig_type=std_logic lab=vssa1}
+C {devices/lab_pin.sym} 3630 530 0 0 {name=l19 sig_type=std_logic lab=vssa1}
+C {devices/lab_pin.sym} 4130 410 0 0 {name=l20 sig_type=std_logic lab=vssa1}
+C {devices/lab_pin.sym} 4130 530 0 0 {name=l21 sig_type=std_logic lab=vssa1}
+C {devices/lab_pin.sym} 3630 670 0 0 {name=l22 sig_type=std_logic lab=vssa1}
+C {devices/lab_pin.sym} 4130 550 0 0 {name=l23 sig_type=std_logic lab=io_clamp_high[0]}
+C {devices/lab_pin.sym} 4130 640 0 0 {name=l24 sig_type=std_logic lab=io_analog[4]}
+C {sky130_fd_pr/res_generic_m1.sym} 3670 780 0 0 {name=R8
+W=0.56
+L=0.49
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 3670 900 0 0 {name=R9
+W=0.56
+L=0.31
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 4160 770 0 0 {name=R11
+W=0.56
+L=0.58
+model=res_generic_m3
+mult=1}
+C {sky130_fd_pr/res_generic_m1.sym} 4160 900 0 0 {name=R12
+W=0.56
+L=0.6
+model=res_generic_m3
+mult=1}
+C {devices/lab_pin.sym} 4130 850 0 0 {name=l25 sig_type=std_logic lab=io_oeb[15]}
+C {devices/lab_pin.sym} 3630 850 0 0 {name=l26 sig_type=std_logic lab=io_oeb[16]}
+C {devices/lab_pin.sym} 4130 710 0 0 {name=l27 sig_type=std_logic lab=io_oeb[11]}
+C {devices/lab_pin.sym} 3630 710 0 0 {name=l28 sig_type=std_logic lab=io_oeb[12]}
+C {devices/lab_pin.sym} 3630 830 0 0 {name=l29 sig_type=std_logic lab=vssd1}
+C {devices/lab_pin.sym} 3630 940 0 0 {name=l30 sig_type=std_logic lab=vssd1}
+C {devices/lab_pin.sym} 4130 820 0 0 {name=l31 sig_type=std_logic lab=vssd1}
+C {devices/lab_pin.sym} 4130 940 0 0 {name=l32 sig_type=std_logic lab=vssd1}
diff --git a/xschem/user_analog_project_wrapper.sch b/xschem/user_analog_project_wrapper.sch
index e3cbcec..ca5ec40 100644
--- a/xschem/user_analog_project_wrapper.sch
+++ b/xschem/user_analog_project_wrapper.sch
@@ -1,180 +1,83 @@
-v {xschem version=2.9.9 file_version=1.2 }
+v {xschem version=3.0.0 file_version=1.2 }
 G {}
 K {}
 V {}
 S {}
 E {}
-N 3830 -460 3830 -390 { lab=vdda1}
-N 3730 -460 3830 -460 { lab=vdda1}
-N 3860 -230 3860 -180 { lab=vssa1}
-N 3770 -180 3860 -180 { lab=vssa1}
-N 3890 -460 3890 -390 { lab=vccd1}
-N 3890 -460 3960 -460 { lab=vccd1}
-N 3890 -130 3890 -60 { lab=vccd1}
-N 3890 -130 3950 -130 { lab=vccd1}
-N 3830 -130 3830 -60 { lab=io_analog[4]}
-N 3790 -130 3830 -130 { lab=io_analog[4]}
-N 3860 100 3860 150 { lab=vssa1}
-N 3800 150 3860 150 { lab=vssa1}
-N 4010 -10 4110 -10 { lab=gpio_analog[7]}
-N 4010 20 4110 20 { lab=io_out[15]}
-N 4010 50 4110 50 { lab=io_out[16]}
-N 4010 -340 4130 -340 { lab=gpio_analog[3]}
-N 4010 -310 4130 -310 { lab=io_out[11]}
-N 4010 -280 4130 -280 { lab=io_out[12]}
-N 3670 300 3670 340 { lab=io_clamp_low[2]}
-N 3670 400 3670 420 { lab=vssa1}
-N 3670 440 3670 460 { lab=io_clamp_high[2]}
-N 3670 520 3670 530 { lab=vssa1}
-N 3670 570 3670 590 { lab=io_clamp_low[1]}
-N 3670 650 3670 670 { lab=vssa1}
-N 4160 300 4160 330 { lab=io_clamp_high[1]}
-N 4160 390 4160 410 { lab=vssa1}
-N 4160 440 4160 460 { lab=io_clamp_low[0]}
-N 4160 520 4160 530 { lab=vssa1}
-N 4160 550 4160 560 { lab=io_clamp_high[0]}
-N 4160 620 4160 640 { lab=io_analog[4]}
-N 3630 300 3670 300 { lab=io_clamp_low[2]}
-N 3630 420 3670 420 { lab=vssa1}
-N 3630 440 3670 440 { lab=io_clamp_high[2]}
-N 3630 530 3670 530 { lab=vssa1}
-N 3630 570 3670 570 { lab=io_clamp_low[1]}
-N 3630 670 3670 670 { lab=vssa1}
-N 4130 300 4160 300 { lab=io_clamp_high[1]}
-N 4130 410 4160 410 { lab=vssa1}
-N 4130 440 4160 440 { lab=io_clamp_low[0]}
-N 4130 530 4160 530 { lab=vssa1}
-N 4130 550 4160 550 { lab=io_clamp_high[0]}
-N 4130 640 4160 640 { lab=io_analog[4]}
-N 3670 710 3670 750 { lab=io_oeb[12]}
-N 3670 810 3670 830 { lab=vssd1}
-N 3670 850 3670 870 { lab=io_oeb[16]}
-N 3670 930 3670 940 { lab=vssd1}
-N 4160 710 4160 740 { lab=io_oeb[11]}
-N 4160 800 4160 820 { lab=vssd1}
-N 4160 850 4160 870 { lab=#net1}
-N 4160 930 4160 940 { lab=vssd1}
-N 3630 710 3670 710 { lab=io_oeb[12]}
-N 3630 830 3670 830 { lab=vssd1}
-N 3630 850 3670 850 { lab=io_oeb[16]}
-N 3630 940 3670 940 { lab=vssd1}
-N 4130 710 4160 710 { lab=io_oeb[11]}
-N 4130 820 4160 820 { lab=vssd1}
-N 4130 850 4160 850 { lab=#net1}
-N 4130 940 4160 940 { lab=vssd1}
-C {example_por.sym} 3860 -310 0 0 {name=x1}
-C {example_por.sym} 3860 20 0 0 {name=x2}
-C {devices/iopin.sym} 3240 -470 0 0 {name=p1 lab=vdda1}
-C {devices/iopin.sym} 3240 -440 0 0 {name=p2 lab=vdda2}
-C {devices/iopin.sym} 3240 -410 0 0 {name=p3 lab=vssa1}
-C {devices/iopin.sym} 3240 -380 0 0 {name=p4 lab=vssa2}
-C {devices/iopin.sym} 3240 -350 0 0 {name=p5 lab=vccd1}
-C {devices/iopin.sym} 3240 -320 0 0 {name=p6 lab=vccd2}
-C {devices/iopin.sym} 3240 -290 0 0 {name=p7 lab=vssd1}
-C {devices/iopin.sym} 3240 -260 0 0 {name=p8 lab=vssd2}
-C {devices/ipin.sym} 3290 -190 0 0 {name=p9 lab=wb_clk_i}
-C {devices/ipin.sym} 3290 -160 0 0 {name=p10 lab=wb_rst_i}
-C {devices/ipin.sym} 3290 -130 0 0 {name=p11 lab=wbs_stb_i}
-C {devices/ipin.sym} 3290 -100 0 0 {name=p12 lab=wbs_cyc_i}
-C {devices/ipin.sym} 3290 -70 0 0 {name=p13 lab=wbs_we_i}
-C {devices/ipin.sym} 3290 -40 0 0 {name=p14 lab=wbs_sel_i[3:0]}
-C {devices/ipin.sym} 3290 -10 0 0 {name=p15 lab=wbs_dat_i[31:0]}
-C {devices/ipin.sym} 3290 20 0 0 {name=p16 lab=wbs_adr_i[31:0]}
-C {devices/opin.sym} 3280 80 0 0 {name=p17 lab=wbs_ack_o}
-C {devices/opin.sym} 3280 110 0 0 {name=p18 lab=wbs_dat_o[31:0]}
-C {devices/ipin.sym} 3290 150 0 0 {name=p19 lab=la_data_in[127:0]}
-C {devices/opin.sym} 3280 180 0 0 {name=p20 lab=la_data_out[127:0]}
-C {devices/ipin.sym} 3290 260 0 0 {name=p21 lab=io_in[26:0]}
-C {devices/ipin.sym} 3290 290 0 0 {name=p22 lab=io_in_3v3[26:0]}
-C {devices/ipin.sym} 3280 570 0 0 {name=p23 lab=user_clock2}
-C {devices/opin.sym} 3280 320 0 0 {name=p24 lab=io_out[26:0]}
-C {devices/opin.sym} 3280 350 0 0 {name=p25 lab=io_oeb[26:0]}
-C {devices/iopin.sym} 3250 410 0 0 {name=p26 lab=gpio_analog[17:0]}
-C {devices/iopin.sym} 3250 440 0 0 {name=p27 lab=gpio_noesd[17:0]}
-C {devices/iopin.sym} 3250 470 0 0 {name=p29 lab=io_analog[10:0]}
-C {devices/iopin.sym} 3250 500 0 0 {name=p30 lab=io_clamp_high[2:0]}
-C {devices/iopin.sym} 3250 530 0 0 {name=p31 lab=io_clamp_low[2:0]}
-C {devices/opin.sym} 3270 600 0 0 {name=p32 lab=user_irq[2:0]}
-C {devices/ipin.sym} 3290 210 0 0 {name=p28 lab=la_oenb[127:0]}
-C {devices/lab_pin.sym} 3730 -460 0 0 {name=l1 sig_type=std_logic lab=vdda1}
-C {devices/lab_pin.sym} 3770 -180 0 0 {name=l2 sig_type=std_logic lab=vssa1}
-C {devices/lab_pin.sym} 3960 -460 0 1 {name=l3 sig_type=std_logic lab=vccd1}
-C {devices/lab_pin.sym} 3950 -130 0 1 {name=l4 sig_type=std_logic lab=vccd1}
-C {devices/lab_pin.sym} 3790 -130 0 0 {name=l5 sig_type=std_logic lab=io_analog[4]}
-C {devices/lab_pin.sym} 3800 150 0 0 {name=l6 sig_type=std_logic lab=vssa1}
-C {devices/lab_pin.sym} 4130 -340 0 1 {name=l7 sig_type=std_logic lab=gpio_analog[3]}
-C {devices/lab_pin.sym} 4130 -310 0 1 {name=l8 sig_type=std_logic lab=io_out[11]}
-C {devices/lab_pin.sym} 4130 -280 0 1 {name=l9 sig_type=std_logic lab=io_out[12]}
-C {devices/lab_pin.sym} 4110 -10 0 1 {name=l10 sig_type=std_logic lab=gpio_analog[7]}
-C {devices/lab_pin.sym} 4110 20 0 1 {name=l11 sig_type=std_logic lab=io_out[15]}
-C {devices/lab_pin.sym} 4110 50 0 1 {name=l12 sig_type=std_logic lab=io_out[16]}
-C {sky130_fd_pr/res_generic_m1.sym} 3670 370 0 0 {name=R1
-W=11
-L=0.25
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 3670 490 0 0 {name=R2
-W=11
-L=0.25
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 3670 620 0 0 {name=R4
-W=11
-L=0.25
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 4160 360 0 0 {name=R5
-W=11
-L=0.25
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 4160 490 0 0 {name=R6
-W=11
-L=0.25
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 4160 590 0 0 {name=R7
-W=11
-L=0.25
-model=res_generic_m3
-mult=1}
-C {devices/lab_pin.sym} 3630 300 0 0 {name=l13 sig_type=std_logic lab=io_clamp_low[2]}
-C {devices/lab_pin.sym} 3630 440 0 0 {name=l14 sig_type=std_logic lab=io_clamp_high[2]}
-C {devices/lab_pin.sym} 3630 570 0 0 {name=l15 sig_type=std_logic lab=io_clamp_low[1]}
-C {devices/lab_pin.sym} 4130 300 0 0 {name=l16 sig_type=std_logic lab=io_clamp_high[1]}
-C {devices/lab_pin.sym} 4130 440 0 0 {name=l17 sig_type=std_logic lab=io_clamp_low[0]}
-C {devices/lab_pin.sym} 3630 420 0 0 {name=l18 sig_type=std_logic lab=vssa1}
-C {devices/lab_pin.sym} 3630 530 0 0 {name=l19 sig_type=std_logic lab=vssa1}
-C {devices/lab_pin.sym} 4130 410 0 0 {name=l20 sig_type=std_logic lab=vssa1}
-C {devices/lab_pin.sym} 4130 530 0 0 {name=l21 sig_type=std_logic lab=vssa1}
-C {devices/lab_pin.sym} 3630 670 0 0 {name=l22 sig_type=std_logic lab=vssa1}
-C {devices/lab_pin.sym} 4130 550 0 0 {name=l23 sig_type=std_logic lab=io_clamp_high[0]}
-C {devices/lab_pin.sym} 4130 640 0 0 {name=l24 sig_type=std_logic lab=io_analog[4]}
-C {sky130_fd_pr/res_generic_m1.sym} 3670 780 0 0 {name=R8
-W=0.56
-L=0.49
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 3670 900 0 0 {name=R9
-W=0.56
-L=0.31
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 4160 770 0 0 {name=R11
-W=0.56
-L=0.58
-model=res_generic_m3
-mult=1}
-C {sky130_fd_pr/res_generic_m1.sym} 4160 900 0 0 {name=R12
-W=0.56
-L=0.6
-model=res_generic_m3
-mult=1}
-C {devices/lab_pin.sym} 4130 850 0 0 {name=l25 sig_type=std_logic lab=io_oeb[15]}
-C {devices/lab_pin.sym} 3630 850 0 0 {name=l26 sig_type=std_logic lab=io_oeb[16]}
-C {devices/lab_pin.sym} 4130 710 0 0 {name=l27 sig_type=std_logic lab=io_oeb[11]}
-C {devices/lab_pin.sym} 3630 710 0 0 {name=l28 sig_type=std_logic lab=io_oeb[12]}
-C {devices/lab_pin.sym} 3630 830 0 0 {name=l29 sig_type=std_logic lab=vssd1}
-C {devices/lab_pin.sym} 3630 940 0 0 {name=l30 sig_type=std_logic lab=vssd1}
-C {devices/lab_pin.sym} 4130 820 0 0 {name=l31 sig_type=std_logic lab=vssd1}
-C {devices/lab_pin.sym} 4130 940 0 0 {name=l32 sig_type=std_logic lab=vssd1}
+N 82.5 -230 132.5 -230 { lab=VSS}
+N -520 -540 -520 -180 { lab=io_analog[0]}
+N -280 -540 -280 -180 { lab=io_analog[1]}
+N -590 -140 -190 -140 { lab=io_analog[5]}
+N -590 -380 -190 -380 { lab=io_analog[4]}
+N -430 -440 -430 -420 { lab=VSS}
+N -190 -440 -190 -420 { lab=VSS}
+N -430 -200 -430 -180 { lab=VSS}
+N -190 -200 -190 -180 { lab=VSS}
+N 132.5 -230 142.5 -230 { lab=vssa1}
+N -400 -100 -60 -100 { lab=io_analog[3]}
+N -400 -340 -60 -340 { lab=io_analog[2]}
+N -400 -420 -400 -340 { lab=io_analog[2]}
+N -160 -420 -160 -340 { lab=io_analog[2]}
+N -400 -180 -400 -100 { lab=io_analog[3]}
+N -160 -180 -160 -100 { lab=io_analog[3]}
+C {reram.sym} -250 -420 3 0 {name=RERAM1
+device=RERAM
+m=1}
+C {reram.sym} -490 -420 3 0 {name=RERAM2
+device=RERAM
+m=1}
+C {reram.sym} -250 -180 3 0 {name=RERAM3
+device=RERAM
+m=1}
+C {reram.sym} -490 -180 3 0 {name=RERAM4
+device=RERAM
+m=1}
+C {sky130/nfet_03v3_nvt.sym} -430 -400 3 0 {name=M1
+L=0.5
+W=1
+nf=1 
+mult=1
+sa=0 sb=0 sd=0
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130/nfet_03v3_nvt.sym} -190 -400 3 0 {name=M2
+L=0.5
+W=1
+nf=1 
+mult=1
+sa=0 sb=0 sd=0
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130/nfet_03v3_nvt.sym} -430 -160 3 0 {name=M3
+L=0.5
+W=1
+nf=1
+mult=1
+sa=0 sb=0 sd=0
+model=nfet_01v8
+spiceprefix=X
+}
+C {sky130/nfet_03v3_nvt.sym} -190 -160 3 0 {name=M4
+L=0.5
+W=1
+nf=1
+mult=1
+sa=0 sb=0 sd=0
+model=nfet_01v8
+spiceprefix=X
+}
+C {devices/iopin.sym} -280 -540 0 0 {name=p1 lab=io_analog[1]}
+C {devices/iopin.sym} -520 -540 0 0 {name=p2 lab=io_analog[0]}
+C {devices/iopin.sym} -580 -380 2 0 {name=p3 lab=io_analog[4]}
+C {devices/iopin.sym} -580 -140 2 0 {name=p4 lab=io_analog[5]}
+C {devices/iopin.sym} -60 -340 0 0 {name=p5 lab=io_analog[2]}
+C {devices/iopin.sym} -60 -100 0 0 {name=p6 lab=io_analog[3]}
+C {devices/iopin.sym} 125 -230 0 0 {name=p9 lab=vssa1}
+C {devices/lab_wire.sym} 82.5 -230 0 0 {name=l1 lab=VSS}
+C {devices/lab_wire.sym} -430 -200 1 0 {name=l2 lab=VSS}
+C {devices/lab_wire.sym} -430 -440 1 0 {name=l3 lab=VSS}
+C {devices/lab_wire.sym} -190 -440 1 0 {name=l4 lab=VSS}
+C {devices/lab_wire.sym} -190 -200 1 0 {name=l5 lab=VSS}
+C {devices/code_shown.sym} 55 -377.5 0 0 {name=seRAM only_toplevel=false value=".model RERAM sky130_fd_pr_reram__reram_cell"}