Fixed errors in files, generated SPICE netlists and cell files
diff --git a/cells/xschem/ASYNC1.cell b/cells/xschem/ASYNC1.cell
new file mode 100644
index 0000000..c596843
--- /dev/null
+++ b/cells/xschem/ASYNC1.cell
@@ -0,0 +1,16 @@
+.AUTOGENERATED by spice2cell script from ASYNC1.spice
+.inputs CN C B A
+.outputs 
+.ORDER "MOSFET Gate Drain Source"
+nmos B CN net3
+pmos A net4 VDD
+pmos B CN net4
+pmos A net1 VDD
+pmos B net1 VDD
+pmos C CN net1
+pmos CN C VDD
+nmos C CN net2
+nmos A net3 GND
+nmos B net2 GND
+nmos A net2 GND
+nmos CN C GND
diff --git a/cells/xschem/ASYNC1.sch b/cells/xschem/ASYNC1.sch
index 40a9822..f3924ab 100644
--- a/cells/xschem/ASYNC1.sch
+++ b/cells/xschem/ASYNC1.sch
@@ -7,20 +7,20 @@
 N 290 180 400 180 {lab=VDD}
 N 400 180 520 180 {lab=VDD}
 N 430 150 430 180 {lab=VDD}
-N 290 300 290 340 {lab=cn}
-N 290 340 290 370 {lab=cn}
-N 290 340 430 340 {lab=cn}
-N 430 340 430 370 {lab=cn}
+N 290 300 290 340 {lab=CN}
+N 290 340 290 370 {lab=CN}
+N 290 340 430 340 {lab=CN}
+N 430 340 430 370 {lab=CN}
 N 400 240 520 240 {lab=#net1}
 N 430 240 430 280 {lab=#net1}
 N 620 180 620 240 {lab=VDD}
 N 520 180 620 180 {lab=VDD}
-N 430 340 580 340 {lab=cn}
-N 580 270 580 340 {lab=cn}
-N 580 340 580 410 {lab=cn}
-N 390 310 390 400 {lab=c}
-N 390 360 620 360 {lab=c}
-N 620 300 620 380 {lab=c}
+N 430 340 580 340 {lab=CN}
+N 580 270 580 340 {lab=CN}
+N 580 340 580 410 {lab=CN}
+N 390 310 390 400 {lab=C}
+N 390 360 620 360 {lab=C}
+N 620 300 620 380 {lab=C}
 N 490 490 620 490 {lab=GND}
 N 400 490 490 490 {lab=GND}
 N 290 490 400 490 {lab=GND}
@@ -28,7 +28,7 @@
 N 430 430 490 430 {lab=#net2}
 N 620 440 620 490 {lab=GND}
 N 420 490 420 500 {lab=GND}
-N 250 340 290 340 {lab=cn}
+N 250 340 290 340 {lab=CN}
 C {devices/nmos.sym} 270 400 0 0 {name=m1 model=enbsim3 m=1 w=1u l=0.18u}
 C {devices/pmos.sym} 270 210 0 0 {name=x1 model=epbsim3 m=1 w=2u l=0.18u nfing=1 srcefirst=1 del=10}
 C {devices/pmos.sym} 270 270 0 0 {name=x0 model=epbsim3 m=1 w=2u l=0.18u nfing=1 srcefirst=1 del=10}
@@ -43,13 +43,13 @@
 C {devices/nmos.sym} 600 410 0 0 {name=m5 model=enbsim3 m=1 w=1u l=0.18u}
 C {devices/gnd.sym} 420 500 0 0 {name=l1 lab=GND}
 C {devices/vdd.sym} 430 150 0 0 {name=l0 lab=VDD}
-C {devices/lab_pin.sym} 250 210 0 0 {name=l2 sig_type=std_logic lab=A}
-C {devices/lab_pin.sym} 250 270 0 0 {name=l3 sig_type=std_logic lab=B}
-C {devices/lab_pin.sym} 360 210 0 0 {name=l4 sig_type=std_logic lab=A}
-C {devices/lab_pin.sym} 480 210 0 0 {name=l5 sig_type=std_logic lab=B}
-C {devices/lab_pin.sym} 620 330 0 0 {name=l6 sig_type=std_logic lab=c}
-C {devices/lab_pin.sym} 250 340 0 0 {name=l7 sig_type=std_logic lab=cn}
-C {devices/lab_pin.sym} 250 400 0 0 {name=l8 sig_type=std_logic lab=B}
-C {devices/lab_pin.sym} 250 460 0 0 {name=l9 sig_type=std_logic lab=A}
-C {devices/lab_pin.sym} 360 460 0 0 {name=l10 sig_type=std_logic lab=B}
-C {devices/lab_pin.sym} 450 460 0 0 {name=l11 sig_type=std_logic lab=A}
+C {devices/ipin.sym} 250 210 0 0 {name=p2 sig_type=std_logic lab=A}
+C {devices/ipin.sym} 250 270 0 0 {name=p3 sig_type=std_logic lab=B}
+C {devices/ipin.sym} 360 210 0 0 {name=p4 sig_type=std_logic lab=A}
+C {devices/ipin.sym} 480 210 0 0 {name=p5 sig_type=std_logic lab=B}
+C {devices/opin.sym} 620 330 0 0 {name=p6 sig_type=std_logic lab=C}
+C {devices/opin.sym} 250 340 0 1 {name=p7 sig_type=std_logic lab=CN}
+C {devices/ipin.sym} 250 400 0 0 {name=p8 sig_type=std_logic lab=B}
+C {devices/ipin.sym} 250 460 0 0 {name=p9 sig_type=std_logic lab=A}
+C {devices/ipin.sym} 360 460 0 0 {name=p10 sig_type=std_logic lab=B}
+C {devices/ipin.sym} 450 460 0 0 {name=p11 sig_type=std_logic lab=A}
diff --git a/cells/xschem/ASYNC1.spice b/cells/xschem/ASYNC1.spice
new file mode 100644
index 0000000..9a75418
--- /dev/null
+++ b/cells/xschem/ASYNC1.spice
@@ -0,0 +1,28 @@
+**.subckt ASYNC1 A B A B C CN B A B A
+*.ipin A
+*.ipin B
+*.ipin A
+*.ipin B
+*.opin C
+*.opin CN
+*.ipin B
+*.ipin A
+*.ipin B
+*.ipin A
+m1 CN B net3 enbsim3 m=1
+x1 net4 A VDD epbsim3 m=1
+x0 CN B net4 epbsim3 m=1
+x2 net1 A VDD epbsim3 m=1
+x3 net1 B VDD epbsim3 m=1
+x4 CN C net1 epbsim3 m=1
+x5 C CN VDD epbsim3 m=1
+m0 CN C net2 enbsim3 m=1
+m2 net3 A GND enbsim3 m=1
+m3 net2 B GND enbsim3 m=1
+m4 net2 A GND enbsim3 m=1
+m5 C CN GND enbsim3 m=1
+**.ends
+.GLOBAL GND
+.GLOBAL VDD
+** flattened .save nodes
+.end
diff --git a/cells/xschem/ASYNC2.cell b/cells/xschem/ASYNC2.cell
new file mode 100644
index 0000000..729b6c7
--- /dev/null
+++ b/cells/xschem/ASYNC2.cell
@@ -0,0 +1,12 @@
+.AUTOGENERATED by spice2cell script from ASYNC2.spice
+.inputs CN C B A
+.outputs 
+.ORDER "MOSFET Gate Drain Source"
+nmos C CN GND
+pmos A net1 VDD
+pmos B CN net1
+pmos CN C VDD
+pmos C CN VDD
+nmos B CN net2
+nmos A net2 GND
+nmos CN C GND
diff --git a/cells/xschem/ASYNC2.sch b/cells/xschem/ASYNC2.sch
index 003ee4a..b6b07ae 100644
--- a/cells/xschem/ASYNC2.sch
+++ b/cells/xschem/ASYNC2.sch
@@ -110,7 +110,7 @@
 model=pfet_01v8
 spiceprefix=X
 }
-C {sky130_fd_pr/nfet_01v8.sym} 210 350 0 0 {name=M2
+C {sky130_fd_pr/nfet3_01v8.sym} 210 350 0 0 {name=M2
 L=0.15
 W=1
 nf=1 
@@ -124,7 +124,7 @@
 model=nfet_01v8
 spiceprefix=X
 }
-C {sky130_fd_pr/nfet_01v8.sym} 210 410 0 0 {name=M3
+C {sky130_fd_pr/nfet3_01v8.sym} 210 410 0 0 {name=M3
 L=0.15
 W=1
 nf=1 
@@ -138,7 +138,7 @@
 model=nfet_01v8
 spiceprefix=X
 }
-C {sky130_fd_pr/nfet_01v8.sym} 390 410 0 0 {name=M4
+C {sky130_fd_pr/nfet3_01v8.sym} 390 410 0 0 {name=M4
 L=0.15
 W=1
 nf=1 
diff --git a/cells/xschem/ASYNC2.spice b/cells/xschem/ASYNC2.spice
new file mode 100644
index 0000000..5d401b8
--- /dev/null
+++ b/cells/xschem/ASYNC2.spice
@@ -0,0 +1,36 @@
+**.subckt ASYNC2 A B B A CN C
+*.ipin A
+*.ipin B
+*.ipin B
+*.ipin A
+*.opin CN
+*.opin C
+XM5 CN C GND GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM1 net1 A VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM6 CN B net1 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM7 C CN VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM8 CN C VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM2 CN B net2 GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM3 net2 A GND GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM4 C CN GND GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+**.ends
+.GLOBAL VDD
+.GLOBAL GND
+** flattened .save nodes
+.end
diff --git a/cells/xschem/ASYNC3.cell b/cells/xschem/ASYNC3.cell
new file mode 100644
index 0000000..4d3d7a2
--- /dev/null
+++ b/cells/xschem/ASYNC3.cell
@@ -0,0 +1,16 @@
+.AUTOGENERATED by spice2cell script from ASYNC3.spice
+.inputs CN C B A
+.outputs 
+.ORDER "MOSFET Gate Drain Source"
+nmos B CN net2
+nmos A net2 GND
+nmos A CN net1
+nmos CN C GND
+nmos B net1 GND
+nmos C net2 net1
+pmos B CN net3
+pmos A net3 VDD
+pmos B net4 VDD
+pmos A CN net4
+pmos CN C VDD
+pmos C net4 net3
diff --git a/cells/xschem/ASYNC3.sch b/cells/xschem/ASYNC3.sch
index 665cd14..b37f80f 100644
--- a/cells/xschem/ASYNC3.sch
+++ b/cells/xschem/ASYNC3.sch
@@ -215,7 +215,7 @@
 C {devices/ipin.sym} 400 300 2 0 {name=p6 lab=A}
 C {devices/ipin.sym} 400 360 2 0 {name=p7 lab=A}
 C {devices/ipin.sym} 400 420 2 0 {name=p8 lab=B}
-C {devices/iopin.sym} 260 230 3 0 {name=p9 lab=C}
-C {devices/iopin.sym} 270 430 1 0 {name=p10 lab=C}
-C {devices/iopin.sym} 100 330 2 0 {name=p11 lab=CN}
-C {devices/iopin.sym} 570 340 0 0 {name=p12 lab=C}
+C {devices/opin.sym} 260 230 3 0 {name=p9 lab=C}
+C {devices/opin.sym} 270 430 1 0 {name=p10 lab=C}
+C {devices/opin.sym} 100 330 2 0 {name=p11 lab=CN}
+C {devices/opin.sym} 570 340 0 0 {name=p12 lab=C}
diff --git a/cells/xschem/ASYNC3.spice b/cells/xschem/ASYNC3.spice
new file mode 100644
index 0000000..9127929
--- /dev/null
+++ b/cells/xschem/ASYNC3.spice
@@ -0,0 +1,54 @@
+**.subckt ASYNC3 A B B A B A A B C C CN C
+*.ipin A
+*.ipin B
+*.ipin B
+*.ipin A
+*.ipin B
+*.ipin A
+*.ipin A
+*.ipin B
+*.opin C
+*.opin C
+*.opin CN
+*.opin C
+XM1 CN B net2 GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM2 net2 A GND GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM3 CN A net1 GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM4 C CN GND GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM5 net1 B GND GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM6 net2 C net1 GND sky130_fd_pr__nfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM7 CN B net3 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM8 net3 A VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM9 net4 B VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM10 CN A net4 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM11 C CN VDD VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+XM12 net4 C net3 VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 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=0 sb=0 sd=0 mult=1 m=1 
+**.ends
+.GLOBAL VDD
+.GLOBAL GND
+** flattened .save nodes
+.end