blob: 34a4ec6d7250d480959b0157c774c3fe102e2727 [file] [log] [blame]
v {xschem version=3.0.0 file_version=1.2 }
G {}
K {}
V {}
S {}
E {}
T {64uA} -480 50 0 0 0.2 0.2 {}
T {needed delta approx. 100mV} 400 50 0 0 0.2 0.2 {}
T {current consumption ~2mA} 400 70 0 0 0.2 0.2 {}
T {dummy} -330 90 0 0 0.3 0.3 {}
N 240 0 240 30 { lab=VM4D}
N 240 30 480 30 { lab=VM4D}
N 480 0 480 30 { lab=VM4D}
N -580 280 380 280 { lab=VN}
N 380 -30 380 280 { lab=VN}
N 380 -30 480 -30 { lab=VN}
N 240 -30 380 -30 { lab=VN}
N 270 260 270 280 { lab=VN}
N 270 180 270 200 { lab=VN}
N 270 30 270 120 { lab=VM4D}
N 230 150 230 230 { lab=I_Bias}
N -520 230 -440 230 { lab=VN}
N -520 230 -520 280 { lab=VN}
N -520 150 -440 150 { lab=VN}
N -520 150 -520 230 { lab=VN}
N -440 260 -440 280 { lab=VN}
N -440 180 -440 200 { lab=VN}
N -440 120 -400 120 { lab=I_Bias}
N -400 120 -400 150 { lab=I_Bias}
N -400 150 -400 230 { lab=I_Bias}
N -440 80 -440 120 { lab=I_Bias}
N 270 230 350 230 { lab=VN}
N 350 230 350 280 { lab=VN}
N 270 150 350 150 { lab=VN}
N 350 150 350 230 { lab=VN}
N 200 -200 240 -200 { lab=VM1D}
N 200 -230 200 -200 { lab=VM1D}
N -70 -390 480 -390 { lab=VP}
N 240 -230 310 -230 { lab=VP}
N 310 -390 310 -230 { lab=VP}
N 410 -230 480 -230 { lab=VP}
N 410 -390 410 -230 { lab=VP}
N 480 -200 520 -200 { lab=VM6D}
N 520 -230 520 -200 { lab=VM6D}
N 480 -200 480 -60 { lab=VM6D}
N 240 -200 240 -60 { lab=VM1D}
N 520 -30 550 -30 { lab=In_p}
N 170 -30 200 -30 { lab=In_n}
N 480 -280 480 -260 { lab=VP}
N 480 -390 480 -340 { lab=VP}
N 520 -310 520 -230 { lab=VM6D}
N 240 -310 310 -310 { lab=VP}
N 240 -390 240 -340 { lab=VP}
N 240 -280 240 -260 { lab=VP}
N 200 -310 200 -230 { lab=VM1D}
N 410 -310 480 -310 { lab=VP}
N 240 -340 240 -330 { lab=VP}
N 980 -230 1060 -230 { lab=VP}
N 980 -390 980 -230 { lab=VP}
N 480 -390 980 -390 { lab=VP}
N 980 -390 1060 -390 { lab=VP}
N 1210 -230 1290 -230 { lab=VP}
N 1290 -390 1290 -230 { lab=VP}
N 1060 -390 1290 -390 { lab=VP}
N 380 280 1280 280 { lab=VN}
N 1060 -200 1060 130 { lab=VM11D}
N 1060 240 1060 280 { lab=VN}
N 1060 210 1060 240 { lab=VN}
N 1060 130 1060 180 { lab=VM11D}
N 1210 -200 1210 180 { lab=VM12D}
N 1100 170 1100 210 { lab=VM11D}
N 1060 170 1100 170 { lab=VM11D}
N 1170 170 1170 210 { lab=VM11D}
N 1210 210 1210 240 { lab=VN}
N 1210 240 1210 280 { lab=VN}
N 1100 170 1170 170 { lab=VM11D}
N 1100 -230 1100 -170 { lab=VM1D}
N 240 -170 1100 -170 { lab=VM1D}
N 1170 -230 1170 -150 { lab=VM6D}
N 480 -150 1170 -150 { lab=VM6D}
N 1290 -390 1430 -390 { lab=VP}
N 1430 -390 1430 -260 { lab=VP}
N 1430 -260 1430 -230 { lab=VP}
N 1280 280 1430 280 { lab=VN}
N 1430 170 1430 280 { lab=VN}
N 1430 140 1430 170 { lab=VN}
N 1430 -200 1430 110 { lab=VM17D}
N 1390 -230 1390 140 { lab=VM12D}
N 1210 -40 1390 -40 { lab=VM12D}
N 1570 -260 1570 -230 { lab=VP}
N 1570 140 1570 170 { lab=VN}
N 1570 -200 1570 110 { lab=VM13D}
N 1530 -230 1530 140 { lab=VM17D}
N 1430 280 1570 280 { lab=VN}
N 1570 170 1570 280 { lab=VN}
N 1570 -390 1570 -260 { lab=VP}
N 1430 -390 1570 -390 { lab=VP}
N 580 -260 580 -230 { lab=VP}
N 580 -390 580 -260 { lab=VP}
N 520 -230 540 -230 { lab=VM6D}
N 140 -260 140 -230 { lab=VP}
N 140 -390 140 -260 { lab=VP}
N 180 -230 200 -230 { lab=VM1D}
N 140 -150 480 -150 { lab=VM6D}
N 1570 -40 1630 -40 { lab=VM13D}
N 1430 -40 1530 -40 { lab=VM17D}
N 660 -390 660 -200 { lab=VP}
N 70 -390 70 -200 { lab=VP}
N 140 -200 140 -150 { lab=VM6D}
N 580 -200 580 -170 { lab=VM1D}
N 230 230 230 300 { lab=I_Bias}
N -400 300 230 300 { lab=I_Bias}
N -400 230 -400 300 { lab=I_Bias}
N -30 -150 140 -150 { lab=VM6D}
N -270 -170 240 -170 { lab=VM1D}
N 1100 -320 1100 -230 { lab=VM1D}
N 1060 -290 1060 -260 { lab=VP}
N 980 -320 1060 -320 { lab=VP}
N 1060 -390 1060 -350 { lab=VP}
N 1170 -320 1170 -230 { lab=VM6D}
N 1210 -290 1210 -260 { lab=VP}
N 1210 -320 1290 -320 { lab=VP}
N 1210 -390 1210 -350 { lab=VP}
N 240 -330 240 -280 { lab=VP}
N 480 -340 480 -280 { lab=VP}
N 1060 -350 1060 -290 { lab=VP}
N 1210 -350 1210 -290 { lab=VP}
N 1720 -260 1720 -230 { lab=VP}
N 1720 140 1720 170 { lab=VN}
N 1720 -200 1720 110 { lab=Out}
N 1680 -230 1680 140 { lab=VM13D}
N 1720 170 1720 280 { lab=VN}
N 1720 -390 1720 -260 { lab=VP}
N 1570 280 1720 280 { lab=VN}
N 1570 -390 1720 -390 { lab=VP}
N 1630 -40 1680 -40 { lab=VM13D}
N 1720 -100 1780 -100 { lab=Out}
N 270 200 270 260 { lab=VN}
N -440 200 -440 260 { lab=VN}
N -330 150 -330 280 { lab=VN}
N -290 150 -210 150 { lab=VN}
N -210 150 -210 280 { lab=VN}
N -290 180 -290 280 { lab=VN}
N -290 120 -210 120 { lab=VN}
N -210 120 -210 150 { lab=VN}
C {devices/iopin.sym} -70 -390 2 0 {name=p1 lab=VP}
C {devices/iopin.sym} -580 280 2 0 {name=p2 lab=VN}
C {devices/ipin.sym} 550 -30 0 1 {name=p3 lab=In_p}
C {devices/ipin.sym} 170 -30 0 0 {name=p5 lab=In_n}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 220 -30 0 0 {name=M1
L=0.15
W=2
nf=1
mult=2
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_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 220 -230 0 0 {name=M2
L=0.15
W=2
nf=1
mult=2
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} 250 150 0 0 {name=M4
L=0.3
W=2
nf=1
mult=2*8
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 500 -30 0 1 {name=M6
L=0.15
W=2
nf=1
mult=2
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_01v8_lvt
spiceprefix=X
}
C {devices/ipin.sym} -440 80 0 0 {name=p6 lab=I_Bias}
C {sky130_fd_pr/nfet_01v8.sym} -420 150 0 1 {name=M7
L=0.3
W=2
nf=1
mult=2
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 500 -230 0 1 {name=M3
L=0.15
W=2
nf=1
mult=2
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 1080 -230 0 1 {name=M8
L=0.15
W=2
nf=1
mult=4
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 1190 -230 0 0 {name=M9
L=0.15
W=2
nf=1
mult=4
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} 1080 210 0 1 {name=M11
L=0.15
W=2
nf=1
mult=3
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} 1190 210 0 0 {name=M12
L=0.15
W=2
nf=1
mult=3
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 1410 -230 0 0 {name=M14
L=0.15
W=2
nf=1
mult=2
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 1550 -230 0 0 {name=M16
L=0.15
W=2
nf=1
mult=4
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_01v8
spiceprefix=X
}
C {devices/lab_wire.sym} 240 -90 0 1 {name=l1 sig_type=std_logic lab=VM1D}
C {devices/lab_wire.sym} 480 -90 0 0 {name=l2 sig_type=std_logic lab=VM6D}
C {devices/lab_wire.sym} 1060 -50 0 1 {name=l3 sig_type=std_logic lab=VM11D}
C {devices/lab_wire.sym} 1210 -60 0 1 {name=l4 sig_type=std_logic lab=VM12D}
C {devices/lab_wire.sym} 1430 -60 0 1 {name=l5 sig_type=std_logic lab=VM17D}
C {devices/lab_wire.sym} 270 100 0 1 {name=l6 sig_type=std_logic lab=VM4D}
C {devices/ngspice_get_value.sym} 1210 0 0 0 {name=r1 node="v(xctl1.VM12D)"
descr="v(xctl1.VM12D)"}
C {devices/ngspice_get_value.sym} 1430 0 0 0 {name=r2 node="v(xctl1.VM13D)"
descr="v(xctl1.VM13D)"}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 1550 140 0 0 {name=M13
L=0.15
W=2
nf=1
mult=2
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_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} 1410 140 0 0 {name=M17
L=0.15
W=2
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 160 -230 0 1 {name=M15
L=0.15
W=0.5
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_01v8
spiceprefix=X
}
C {devices/opin.sym} 1780 -100 0 0 {name=p7 lab=Out}
C {sky130_fd_pr/pfet_01v8.sym} 1700 -230 0 0 {name=M19
L=0.15
W=2
nf=1
mult=4
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 1700 140 0 0 {name=M20
L=0.15
W=2
nf=1
mult=2
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_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet_01v8.sym} 560 -230 0 0 {name=M5
L=0.15
W=0.5
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8.sym} -310 150 0 0 {name=M10
L=0.3
W=2
nf=1
mult=2
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_01v8
spiceprefix=X
}
C {devices/lab_wire.sym} 1570 -60 0 1 {name=l7 sig_type=std_logic lab=VM13D}