created a schematic cell and testbench for the sawgen
diff --git a/xschem/sawgen-fet-sky130.sch b/xschem/sawgen-fet-sky130.sch index 1f02f63..3cf1f3e 100644 --- a/xschem/sawgen-fet-sky130.sch +++ b/xschem/sawgen-fet-sky130.sch
@@ -4,54 +4,54 @@ V {} S {} E {} -T {7k8} 500 -650 0 0 0.2 0.2 {} -N 400 -670 420 -670 { lab=#net1} +T {7k8} 500 -530 0 0 0.2 0.2 {} +N 400 -550 420 -550 { lab=VSS} N 440 -860 440 -810 { lab=VDD} N 440 -840 440 -810 { lab=VDD} -N 480 -780 490 -780 { lab=cur} -N 480 -780 490 -780 { lab=cur} -N 490 -780 560 -780 { lab=cur} +N 480 -780 490 -780 { lab=Ri} +N 480 -780 490 -780 { lab=Ri} +N 490 -780 560 -780 { lab=Ri} N 600 -860 600 -810 { lab=VDD} -N 510 -780 510 -730 { lab=cur} -N 440 -730 510 -730 { lab=cur} -N 600 -730 730 -730 { lab=saw} -N 730 -730 730 -710 { lab=saw} -N 770 -680 970 -680 { lab=vt} -N 840 -680 840 -650 { lab=vt} -N 730 -620 800 -620 { lab=vd} -N 730 -650 730 -620 { lab=vd} -N 730 -620 730 -600 { lab=vd} -N 840 -590 840 -520 { lab=#net1} -N 930 -730 950 -730 { lab=#net1} -N 930 -600 950 -600 { lab=#net1} +N 510 -780 510 -730 { lab=Ri} +N 440 -730 510 -730 { lab=Ri} +N 600 -730 730 -730 { lab=Csaw} +N 730 -730 730 -710 { lab=Csaw} +N 840 -680 840 -650 { lab=Vt} +N 730 -620 800 -620 { lab=Vd} +N 730 -650 730 -620 { lab=Vd} +N 730 -620 730 -600 { lab=Vd} +N 840 -590 840 -520 { lab=VSS} +N 930 -730 950 -730 { lab=VSS} +N 930 -600 950 -600 { lab=VSS} N 970 -860 970 -760 { lab=VDD} -N 970 -700 970 -680 { lab=vt} -N 970 -680 970 -630 { lab=vt} -N 970 -570 970 -520 { lab=#net1} -N 440 -750 440 -720 { lab=cur} -N 440 -720 440 -700 { lab=cur} -N 440 -640 440 -620 { lab=#net1} -N 600 -750 600 -700 { lab=saw} -N 600 -700 600 -670 { lab=saw} -N 870 -710 870 -680 { lab=vt} +N 970 -700 970 -680 { lab=Vb} +N 970 -680 970 -630 { lab=Vb} +N 970 -570 970 -520 { lab=VSS} +N 440 -750 440 -720 { lab=Ri} +N 440 -720 440 -700 { lab=Ri} +N 440 -520 440 -500 { lab=VSS} +N 600 -750 600 -700 { lab=Csaw} +N 600 -700 600 -670 { lab=Csaw} N 440 -900 440 -860 { lab=VDD} N 360 -900 440 -900 { lab=VDD} N 600 -900 600 -860 { lab=VDD} N 440 -900 600 -900 { lab=VDD} N 970 -900 970 -860 { lab=VDD} N 600 -900 970 -900 { lab=VDD} -N 440 -620 440 -440 { lab=#net1} -N 440 -440 970 -440 { lab=#net1} -N 970 -520 970 -440 { lab=#net1} -N 840 -520 840 -440 { lab=#net1} -N 730 -480 730 -440 { lab=#net1} -N 600 -610 600 -440 { lab=#net1} -N 930 -600 930 -440 { lab=#net1} -N 400 -670 400 -620 { lab=#net1} -N 400 -620 440 -620 { lab=#net1} -N 930 -730 930 -600 { lab=#net1} -N 360 -440 440 -440 {} -C {devices/lab_pin.sym} 600 -720 0 0 {name=l12 sig_type=std_logic lab=saw} +N 440 -440 970 -440 { lab=VSS} +N 970 -520 970 -440 { lab=VSS} +N 840 -520 840 -440 { lab=VSS} +N 730 -480 730 -440 { lab=VSS} +N 600 -610 600 -440 { lab=VSS} +N 930 -600 930 -440 { lab=VSS} +N 400 -550 400 -500 { lab=VSS} +N 400 -500 440 -500 { lab=VSS} +N 930 -730 930 -600 { lab=VSS} +N 360 -440 440 -440 { lab=VSS} +N 440 -500 440 -440 { lab=VSS} +N 440 -700 440 -660 { lab=Ri} +N 440 -620 440 -580 { lab=Rb} +N 770 -680 840 -680 { lab=Vt} C {sky130_fd_pr/pfet3_g5v0d10v5.sym} 460 -780 0 1 {name=M5 L=0.8 W=16 @@ -82,13 +82,12 @@ model=pfet_g5v0d10v5 spiceprefix=X } -C {sky130_fd_pr/res_high_po_0p35.sym} 440 -670 0 0 {name=R8 +C {sky130_fd_pr/res_high_po_0p35.sym} 440 -550 0 0 {name=R8 W=0.35 L=20 model=res_high_po_0p35 spiceprefix=X mult=1} -C {devices/lab_pin.sym} 440 -720 0 0 {name=l5 sig_type=std_logic lab=cur} C {sky130_fd_pr/pfet3_g5v0d10v5.sym} 750 -680 0 1 {name=M1 L=0.8 W=16 @@ -131,13 +130,6 @@ model=res_high_po_0p35 spiceprefix=X mult=1} -C {devices/capa.sym} 600 -640 0 0 {name=C1 -m=1 -value=1n -footprint=1206 -device="ceramic capacitor"} -C {devices/lab_pin.sym} 730 -630 0 0 {name=l6 sig_type=std_logic lab=vd} -C {devices/lab_pin.sym} 870 -710 0 0 {name=l14 sig_type=std_logic lab=vt} C {sky130_fd_pr/diode.sym} 730 -570 2 0 {name=D1 model=diode_pw2nd_05v5 area=1 @@ -148,3 +140,11 @@ } C {devices/ipin.sym} 360 -900 0 0 {name=p1 lab=VDD} C {devices/ipin.sym} 360 -440 0 0 {name=p2 lab=VSS} +C {devices/iopin.sym} 0 -20 0 0 { name=p3 lab=cur } +C {devices/iopin.sym} 0 -40 0 0 { name=p4 lab=VSS } +C {devices/iopin.sym} 440 -620 0 1 { name=p5 lab=Rb} +C {devices/iopin.sym} 440 -660 0 1 { name=p6 lab=Ri} +C {devices/iopin.sym} 600 -670 0 1 { name=p7 lab=Csaw} +C {devices/iopin.sym} 840 -680 0 0 { name=p8 lab=Vt} +C {devices/iopin.sym} 970 -660 0 0 { name=p9 lab=Vb} +C {devices/iopin.sym} 730 -610 0 1 { name=p10 lab=Vd}
diff --git a/xschem/sawgen-fet-sky130.sym b/xschem/sawgen-fet-sky130.sym index 9aa820e..d998527 100644 --- a/xschem/sawgen-fet-sky130.sym +++ b/xschem/sawgen-fet-sky130.sym
@@ -21,24 +21,24 @@ L 5 60 30 90 30 {} B 5 -152.5 -12.5 -147.5 -7.5 {name=vdd dir=inout} -B 5 -152.5 7.5 -147.5 12.5 {name=vdd +B 5 -152.5 7.5 -147.5 12.5 {name=Ri dir=inout} -B 5 -152.5 27.5 -147.5 32.5 {name=vdd +B 5 -152.5 27.5 -147.5 32.5 {name=Rb dir=inout} -B 5 -152.5 47.5 -147.5 52.5 {name=vdd +B 5 -152.5 47.5 -147.5 52.5 {name=vss dir=inout} -B 5 -62.5 97.5 -57.5 102.5 {name=vdd +B 5 -62.5 97.5 -57.5 102.5 {name=Vd dir=inout} -B 5 -32.5 97.5 -27.5 102.5 {name=vdd +B 5 -32.5 97.5 -27.5 102.5 {name=vt dir=inout} -B 5 -2.5 97.5 2.5 102.5 {name=vdd +B 5 -2.5 97.5 2.5 102.5 {name=vb dir=inout} -B 5 87.5 27.5 92.5 32.5 {name=vdd +B 5 87.5 27.5 92.5 32.5 {name=Csaw dir=inout} T {@symname} -68 -26 0 0 0.3 0.3 {} T {@name} 25 -42 0 0 0.2 0.2 {} -T {VDD} -120 -20 0 0 0.2 0.2 {} -T {VSS} -120 40 0 0 0.2 0.2 {} +T {vdd} -120 -20 0 0 0.2 0.2 {} +T {vss} -120 40 0 0 0.2 0.2 {} T {Ri} -120 0 0 0 0.2 0.2 {} T {Csaw} 30 20 0 0 0.2 0.2 {} T {Vd} -60 60 0 0 0.2 0.2 {}
diff --git a/xschem/sawgen-fet-sky130_tb.sch b/xschem/sawgen-fet-sky130_tb.sch index 83c4dcb..516af99 100644 --- a/xschem/sawgen-fet-sky130_tb.sch +++ b/xschem/sawgen-fet-sky130_tb.sch
@@ -4,40 +4,22 @@ V {} S {} E {} -T {7k8} 500 -650 0 0 0.2 0.2 {} -N 150 -760 150 -740 { lab=VDD} -N 150 -680 150 -660 { lab=GND} -N 110 -680 110 -640 { lab=GND} -N 110 -680 150 -680 { lab=GND} -N 400 -670 420 -670 { lab=GND} -N 440 -860 440 -810 { lab=VDD} -N 440 -840 440 -810 { lab=VDD} -N 480 -780 490 -780 { lab=cur} -N 480 -780 490 -780 { lab=cur} -N 490 -780 560 -780 { lab=cur} -N 600 -860 600 -810 { lab=VDD} -N 510 -780 510 -730 { lab=cur} -N 440 -730 510 -730 { lab=cur} -N 600 -730 730 -730 { lab=saw} -N 730 -730 730 -710 { lab=saw} -N 770 -680 970 -680 { lab=vt} -N 840 -680 840 -650 { lab=vt} -N 730 -620 800 -620 { lab=vd} -N 730 -650 730 -620 { lab=vd} -N 730 -620 730 -600 { lab=vd} -N 840 -590 840 -520 { lab=GND} -N 930 -730 950 -730 { lab=GND} -N 930 -600 950 -600 { lab=GND} -N 970 -860 970 -760 { lab=VDD} -N 970 -700 970 -680 { lab=vt} -N 970 -680 970 -630 { lab=vt} -N 970 -570 970 -520 { lab=GND} -N 440 -750 440 -720 { lab=cur} -N 440 -720 440 -700 { lab=cur} -N 440 -640 440 -620 { lab=GND} -N 600 -750 600 -700 { lab=saw} -N 600 -700 600 -670 { lab=saw} -N 870 -710 870 -680 { lab=vt} +N 40 -720 40 -700 { lab=VDD} +N 40 -640 40 -620 { lab=GND} +N 290 -630 290 -620 { lab=GND} +N 290 -630 320 -630 { lab=GND} +N 290 -700 290 -690 { lab=VDD} +N 290 -690 320 -690 { lab=VDD} +N 300 -670 320 -670 { lab=cur} +N 300 -670 300 -650 { lab=cur} +N 300 -650 320 -650 { lab=cur} +N 440 -580 440 -560 { lab=Vt} +N 440 -560 470 -560 { lab=Vt} +N 470 -580 470 -560 { lab=Vt} +N 590 -590 590 -580 { lab=GND} +N 560 -650 590 -650 { lab=saw} +N 410 -580 410 -560 { lab=Vd} +N 590 -650 630 -650 { lab=saw} C {devices/code_shown.sym} -880 -90 0 0 {name=s1 only_toplevel=false value=" .model BSS84 VDMOS(pchan Rg=3 Vto=-2.1 Rd=2.4 Rs=1.8 Rb=3 Kp=.2 Cgdmax=.04n Cgdmin=.001n Cgs=.02n Cjo=.01n Is=2p mfg=Philips Vds=-50 Ron=6000m Qg=1n) .model 2N7002 VDMOS(Rg=3 Vto=1.6 Rd=0 Rs=.75 Rb=.14 Kp=.17 mtriode=1.25 Cgdmax=80p Cgdmin=12p Cgs=50p Cjo=50p Is=.04p mfg=Fairchild Vds=60 Ron=2 Qg=1.5n) @@ -63,119 +45,24 @@ C {devices/code_shown.sym} -10 -470 0 0 {name=s2 only_toplevel=false value=".ic V(saw)=0 .control tran 10n 200u -plot V(saw) V(cur) V(vt) V(vd) +plot V(saw) V(cur) V(vt) V(vd) //V(Vt) V(vd) //plot V(vd) //plot I(Vb) .endc"} -C {devices/vdd.sym} 150 -760 0 0 {name=l3 lab=VDD} -C {devices/gnd.sym} 150 -660 0 0 {name=l4 lab=GND} -C {devices/vsource.sym} 150 -710 0 0 {name=V1 value=10} -C {devices/lab_pin.sym} 600 -720 0 0 {name=l12 sig_type=std_logic lab=saw} -C {devices/vsource.sym} 110 -610 0 0 {name=V2 value=10} -C {devices/vdd.sym} 110 -580 2 0 {name=l2 lab=VEE} -C {sky130_fd_pr/pfet3_g5v0d10v5.sym} 460 -780 0 1 {name=M5 -L=0.8 -W=16 -body=VDD -nf=1 -mult=1 -ad="'int((nf+1)/2) * W/nf * 0.29'" -pd="'2*int((nf+1)/2) * (W/nf + 0.29)'" -as="'int((nf+2)/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 -model=pfet_g5v0d10v5 -spiceprefix=X -} -C {sky130_fd_pr/pfet3_g5v0d10v5.sym} 580 -780 0 0 {name=M6 -L=0.8 -W=2 -body=VDD -nf=1 -mult=1 -ad="'int((nf+1)/2) * W/nf * 0.29'" -pd="'2*int((nf+1)/2) * (W/nf + 0.29)'" -as="'int((nf+2)/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 -model=pfet_g5v0d10v5 -spiceprefix=X -} -C {sky130_fd_pr/res_high_po_0p35.sym} 440 -670 0 0 {name=R8 -W=0.35 -L=20 -model=res_high_po_0p35 -spiceprefix=X -mult=1} -C {devices/gnd.sym} 400 -670 0 0 {name=l15 lab=GND} -C {devices/gnd.sym} 440 -620 0 0 {name=l18 lab=GND} -C {devices/vdd.sym} 440 -860 0 0 {name=l19 lab=VDD} -C {devices/vdd.sym} 600 -860 0 0 {name=l20 lab=VDD} -C {devices/lab_pin.sym} 440 -720 0 0 {name=l5 sig_type=std_logic lab=cur} -C {sky130_fd_pr/pfet3_g5v0d10v5.sym} 750 -680 0 1 {name=M1 -L=0.8 -W=16 -body=VDD -nf=1 -mult=1 -ad="'int((nf+1)/2) * W/nf * 0.29'" -pd="'2*int((nf+1)/2) * (W/nf + 0.29)'" -as="'int((nf+2)/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 -model=pfet_g5v0d10v5 -spiceprefix=X -} -C {sky130_fd_pr/nfet3_g5v0d10v5.sym} 820 -620 0 0 {name=M4 -L=0.8 -W=2 -body=GND -nf=1 -mult=1 -ad="'int((nf+1)/2) * W/nf * 0.29'" -pd="'2*int((nf+1)/2) * (W/nf + 0.29)'" -as="'int((nf+2)/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 -model=nfet_g5v0d10v5 -spiceprefix=X -} -C {devices/gnd.sym} 840 -520 0 0 {name=l8 lab=GND} -C {sky130_fd_pr/res_high_po_0p35.sym} 970 -730 0 0 {name=R3 -W=0.35 -L=20 -model=res_high_po_0p35 -spiceprefix=X -mult=1} -C {devices/gnd.sym} 930 -730 0 0 {name=l9 lab=GND} -C {sky130_fd_pr/res_high_po_0p35.sym} 970 -600 0 0 {name=R4 -W=0.35 -L=20 -model=res_high_po_0p35 -spiceprefix=X -mult=1} -C {devices/gnd.sym} 930 -600 0 0 {name=l10 lab=GND} -C {devices/gnd.sym} 970 -520 0 0 {name=l11 lab=GND} -C {devices/vdd.sym} 970 -860 0 0 {name=l13 lab=VDD} -C {devices/capa.sym} 600 -640 0 0 {name=C1 +C {devices/vdd.sym} 40 -720 0 0 {name=l3 lab=VDD} +C {devices/gnd.sym} 40 -620 0 0 {name=l4 lab=GND} +C {devices/vsource.sym} 40 -670 0 0 {name=V1 value=10} +C {sawgen-fet-sky130.sym} 470 -680 0 0 {name=x1} +C {devices/vdd.sym} 290 -700 0 0 {name=l1 lab=VDD} +C {devices/gnd.sym} 290 -620 0 0 {name=l2 lab=GND} +C {devices/capa.sym} 590 -620 0 0 {name=C1 m=1 value=1n footprint=1206 device="ceramic capacitor"} -C {devices/gnd.sym} 600 -610 0 0 {name=l1 lab=GND} -C {devices/lab_pin.sym} 730 -630 0 0 {name=l6 sig_type=std_logic lab=vd} -C {devices/lab_pin.sym} 870 -710 0 0 {name=l14 sig_type=std_logic lab=vt} -C {sky130_fd_pr/diode.sym} 730 -570 2 0 {name=D1 -model=diode_pw2nd_05v5 -area=1 -} -C {sky130_fd_pr/diode.sym} 730 -510 2 0 {name=D2 -model=diode_pw2nd_05v5 -area=1 -} -C {devices/gnd.sym} 730 -480 0 0 {name=l7 lab=GND} +C {devices/gnd.sym} 590 -580 0 0 {name=l5 lab=GND} +C {devices/lab_pin.sym} 410 -560 3 0 {name=l6 sig_type=std_logic lab=Vd} +C {devices/lab_pin.sym} 450 -560 3 0 {name=l7 sig_type=std_logic lab=Vt} +C {devices/lab_pin.sym} 630 -650 2 0 {name=l8 sig_type=std_logic lab=saw} +C {devices/lab_pin.sym} 300 -660 0 0 {name=l9 sig_type=std_logic lab=cur}
diff --git a/xschem/sawgen-fet-sky130_tb.spice b/xschem/sawgen-fet-sky130_tb.spice new file mode 100644 index 0000000..c7899e8 --- /dev/null +++ b/xschem/sawgen-fet-sky130_tb.spice
@@ -0,0 +1,77 @@ +**.subckt sawgen-fet-sky130_tb +V1 VDD GND 10 +x1 VDD cur cur GND Vd Vt Vt saw sawgen-fet-sky130 +C1 saw GND 1n m=1 +**** begin user architecture code + + +.model BSS84 VDMOS(pchan Rg=3 Vto=-2.1 Rd=2.4 Rs=1.8 Rb=3 Kp=.2 Cgdmax=.04n Cgdmin=.001n Cgs=.02n ++ Cjo=.01n Is=2p mfg=Philips Vds=-50 Ron=6000m Qg=1n) +.model 2N7002 VDMOS(Rg=3 Vto=1.6 Rd=0 Rs=.75 Rb=.14 Kp=.17 mtriode=1.25 Cgdmax=80p Cgdmin=12p ++ Cgs=50p Cjo=50p Is=.04p mfg=Fairchild Vds=60 Ron=2 Qg=1.5n) + + +.model 2N3904 NPN(IS=1E-14 VAF=100 Bf=300 IKF=0.4 XTB=1.5 BR=4 CJC=4E-12 CJE=8E-12 RB=20 RC=0.1 ++ RE=0.1 TR=250E-9 TF=350E-12 ITF=1 VTF=2 XTF=3 Vceo=40 Icrating=200m mfg=Philips) + +.model 2N3906 PNP(IS=1E-14 VAF=100 BF=200 IKF=0.4 XTB=1.5 BR=4 CJC=4.5E-12 CJE=10E-12 RB=20 ++ RC=0.1 RE=0.1 TR=250E-9 TF=350E-12 ITF=1 VTF=2 XTF=3 Vceo=40 Icrating=200m mfg=Philips) + +//.include /usr/share/pdk/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__nfet_g5v0d10v5.pm3.spice +//.include /usr/share/pdk/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__res_high_po_0p35.model.spice + +.lib /usr/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt +.include /usr/share/pdk/sky130A/libs.ref/sky130_fd_sc_hvl/spice/sky130_fd_sc_hvl.spice + + +.ic V(saw)=0 +.control +tran 10n 200u +plot V(saw) V(cur) V(vt) V(vd) +//V(Vt) V(vd) +//plot V(vd) +//plot I(Vb) +.endc + +**** end user architecture code +**.ends + +* expanding symbol: sawgen-fet-sky130.sym # of pins=8 +* sym_path: +*+ /home/malvira/repos/asic/projects/vlsi-sky130-analog-caravel-test1/xschem/sawgen-fet-sky130.sym +* sch_path: +*+ /home/malvira/repos/asic/projects/vlsi-sky130-analog-caravel-test1/xschem/sawgen-fet-sky130.sch +.subckt sawgen-fet-sky130 vdd Ri Rb vss Vd vt vb Csaw +*.ipin VDD +*.ipin VSS +*.iopin cur +*.iopin VSS +*.iopin Rb +*.iopin Ri +*.iopin Csaw +*.iopin Vt +*.iopin Vb +*.iopin Vd +XM5 Ri Ri VDD VDD sky130_fd_pr__pfet_g5v0d10v5 L=0.8 W=16 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 Csaw Ri VDD VDD sky130_fd_pr__pfet_g5v0d10v5 L=0.8 W=2 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 +XR8 VSS Rb VSS sky130_fd_pr__res_high_po_0p35 W=0.35 L=20 mult=1 m=1 +XM1 Vd Vt Csaw VDD sky130_fd_pr__pfet_g5v0d10v5 L=0.8 W=16 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 Vt Vd VSS GND sky130_fd_pr__nfet_g5v0d10v5 L=0.8 W=2 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 +XR3 Vb VDD VSS sky130_fd_pr__res_high_po_0p35 W=0.35 L=20 mult=1 m=1 +XR4 VSS Vb VSS sky130_fd_pr__res_high_po_0p35 W=0.35 L=20 mult=1 m=1 +D1 Vd net1 sky130_fd_pr__diode_pw2nd_05v5 area=1 +D2 net1 VSS sky130_fd_pr__diode_pw2nd_05v5 area=1 +.ends + +.GLOBAL VDD +.GLOBAL GND +** flattened .save nodes +.end