blob: 02fa516a267a14a3447f7e6d3f57c367813938e6 [file] [log] [blame]
v {xschem version=3.0.0 file_version=1.2 }
G {}
K {}
V {}
S {}
E {}
N -120 -70 -120 -40 { lab=PLUS}
N 20 -70 20 -40 { lab=vbias}
N 120 -70 120 -40 { lab=CSA}
N -120 710 -120 770 { lab=#net1}
N -120 200 170 200 { lab=VDD}
N -120 830 -120 880 { lab=#net2}
N 170 830 170 880 { lab=#net2}
N -60 420 130 420 { lab=#net3}
N -60 420 -60 480 { lab=#net3}
N -120 480 -60 480 { lab=#net3}
N -60 980 -20 980 { lab=NB1}
N -80 420 -60 420 { lab=#net3}
N -120 450 -120 480 { lab=#net3}
N 170 450 170 550 { lab=#net4}
N 20 880 170 880 { lab=#net2}
N -120 880 20 880 { lab=#net2}
N -60 280 130 280 { lab=#net5}
N -60 280 -60 340 { lab=#net5}
N -120 340 -60 340 { lab=#net5}
N -80 280 -60 280 { lab=#net5}
N -120 310 -120 340 { lab=#net5}
N 170 310 170 390 { lab=#net6}
N -120 200 -120 250 {
lab=VDD}
N -120 340 -120 390 {
lab=#net5}
N 170 200 170 250 {
lab=VDD}
N 170 550 170 650 {
lab=#net4}
N -120 480 -120 650 {
lab=#net3}
N 10 680 130 680 {
lab=VBIAS}
N 10 640 10 680 {
lab=VBIAS}
N 170 710 170 770 {
lab=#net7}
N -80 680 10 680 {
lab=VBIAS}
N 170 550 320 550 {
lab=#net4}
N 20 1010 20 1040 {
lab=GND}
N -180 800 -160 800 {
lab=VREF}
N 20 880 20 950 {
lab=#net2}
N 20 980 60 980 {
lab=GND}
N 210 800 220 800 {
lab=AMP_IN}
N -120 800 -80 800 {
lab=GND}
N 220 800 240 800 {
lab=AMP_IN}
N 110 150 160 150 {
lab=GND}
N -90 150 -50 150 {
lab=VDD}
N -80 800 -30 800 {
lab=GND}
N 90 800 170 800 {
lab=GND}
N 360 550 380 550 {
lab=GND}
N 360 200 360 520 {
lab=VDD}
N 360 950 360 980 { lab=GND}
N 360 620 360 890 {
lab=AMP_OUT}
N 360 920 400 920 {
lab=GND}
N 360 580 360 620 {
lab=AMP_OUT}
N 270 920 320 920 {
lab=NB2}
N 360 630 450 630 {
lab=AMP_OUT}
N -580 600 -580 660 {
lab=GND}
N -580 520 -580 540 {
lab=NB1}
N -580 570 -540 570 {
lab=GND}
N -580 480 -580 520 {
lab=NB1}
N -660 520 -660 570 {
lab=NB1}
N -660 570 -620 570 {
lab=NB1}
N -660 520 -580 520 {
lab=NB1}
N -660 380 -660 520 {
lab=NB1}
N -290 600 -290 660 {
lab=GND}
N -290 570 -250 570 {
lab=GND}
N -290 520 -290 540 {
lab=NB2}
N -360 570 -330 570 {
lab=NB2}
N -360 520 -360 570 {
lab=NB2}
N -360 520 -290 520 {
lab=NB2}
N -420 570 -360 570 {
lab=NB2}
N -290 510 -290 520 {
lab=NB2}
N 240 -70 240 -40 { lab=AMP_IN}
C {devices/vsource.sym} -190 -10 0 0 {name=V1 value=1.8 net_name=true}
C {devices/vsource.sym} -120 -10 0 0 {name=V2 only_toplevel=true value="DC=0.60"}
C {devices/lab_pin.sym} -120 -70 0 1 {name=l10 sig_type=std_logic lab=PLUS}
C {devices/vsource.sym} 20 -10 0 0 {name=V3 only_toplevel=true value="DC=1"}
C {devices/lab_pin.sym} 20 -70 0 1 {name=l15 sig_type=std_logic lab=vbias}
C {devices/gnd.sym} -190 20 0 0 {name=l23 lab=GND}
C {devices/gnd.sym} -120 20 0 0 {name=l25 lab=GND}
C {devices/gnd.sym} 20 20 0 0 {name=l26 lab=GND}
C {devices/vsource.sym} 120 -10 0 0 {name=V4 only_toplevel=true value="DC=0.35"}
C {devices/lab_pin.sym} 120 -70 0 1 {name=l30 sig_type=std_logic lab=CSA}
C {devices/gnd.sym} 120 20 0 0 {name=l13 lab=GND}
C {devices/vdd.sym} -190 -40 0 0 {name=l29 lab=VDD}
C {sky130_fd_pr/pfet3_01v8_lvt.sym} -100 420 0 1 {name=M8
L=2
W=1
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_01v8_lvt
spiceprefix=X
}
C {devices/vdd.sym} 20 200 0 0 {name=l3 lab=VDD}
C {devices/ngspice_probe.sym} -60 480 0 0 {name=r3}
C {sky130_fd_pr/pfet3_01v8_lvt.sym} 150 280 0 0 {name=M10
L=1
W=1
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_01v8_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet3_01v8_lvt.sym} -100 280 0 1 {name=M11
L=1
W=1
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_01v8_lvt
spiceprefix=X
}
C {devices/ngspice_probe.sym} -60 340 0 0 {name=r10}
C {devices/gnd.sym} 20 1040 0 0 {name=l9 lab=GND}
C {devices/lab_pin.sym} 60 980 0 1 {name=l1 sig_type=std_logic lab=GND}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 0 980 0 0 {name=M16
L=1
W=1.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_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} -140 800 0 0 {name=M4
L=0.15
W=7
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_lvt
spiceprefix=X
}
C {sky130_fd_pr/pfet3_01v8_lvt.sym} 150 420 0 0 {name=M5
L=2
W=1
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_01v8_lvt
spiceprefix=X
}
C {devices/ipin.sym} -180 800 0 0 {name=p1 lab=VREF}
C {devices/ipin.sym} 240 800 2 0 {name=p2 lab=AMP_IN}
C {devices/ipin.sym} -60 980 0 0 {name=p3 lab=NB1
}
C {devices/ipin.sym} 10 640 0 0 {name=p5 lab=VBIAS}
C {devices/ipin.sym} -80 150 0 0 {name=p8 lab=VDD}
C {devices/lab_pin.sym} 160 150 3 1 {name=l2 sig_type=std_logic lab=GND}
C {devices/ipin.sym} 120 150 0 0 {name=p9 lab=GND}
C {devices/lab_pin.sym} -50 150 2 0 {name=l5 sig_type=std_logic lab=VDD}
C {sky130_fd_pr/nfet_01v8_lvt.sym} -100 680 0 1 {name=M1
L=0.8
W=1
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_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 190 800 0 1 {name=M3
L=0.15
W=7
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_lvt
spiceprefix=X
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 150 680 0 0 {name=M6
L=0.8
W=1
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_lvt
spiceprefix=X
}
C {devices/lab_pin.sym} -30 800 0 1 {name=l4 sig_type=std_logic lab=GND}
C {devices/lab_pin.sym} 90 800 2 1 {name=l7 sig_type=std_logic lab=GND}
C {devices/lab_pin.sym} -120 680 2 1 {name=l6 sig_type=std_logic lab=GND}
C {devices/lab_pin.sym} 170 680 0 1 {name=l11 sig_type=std_logic lab=GND}
C {devices/opin.sym} 450 630 0 0 {name=p4 lab=AMP_OUT}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 340 550 0 0 {name=M2
L=1
W=1
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_lvt
spiceprefix=X
}
C {devices/vdd.sym} 360 200 0 0 {name=l22 lab=VDD}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 340 920 0 0 {name=M15
L=1.2
W=1
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_lvt
spiceprefix=X
}
C {devices/lab_pin.sym} 380 550 0 1 {name=l12 sig_type=std_logic lab=GND}
C {devices/lab_pin.sym} 400 920 0 1 {name=l14 sig_type=std_logic lab=GND}
C {devices/gnd.sym} 360 980 0 0 {name=l16 lab=GND}
C {devices/ipin.sym} 270 920 1 0 {name=p7 lab=NB2
}
C {sky130_fd_pr/nfet_01v8_lvt.sym} -600 570 0 0 {name=M7
L=1.2
W=1
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_lvt
spiceprefix=X
}
C {devices/ngspice_probe.sym} -580 510 0 0 {name=r2}
C {devices/lab_pin.sym} -540 570 0 1 {name=l17 sig_type=std_logic lab=GND}
C {devices/lab_pin.sym} -580 660 0 1 {name=l18 sig_type=std_logic lab=GND}
C {devices/isource.sym} -580 450 0 0 {name=I0 value=400n}
C {devices/vdd.sym} -580 420 0 0 {name=l19 lab=VDD}
C {devices/lab_pin.sym} -660 380 0 1 {name=l20 sig_type=std_logic lab=NB1}
C {devices/vdd.sym} -290 450 0 0 {name=l21 lab=VDD}
C {devices/isource.sym} -290 480 0 0 {name=I4 value=30n}
C {sky130_fd_pr/nfet_01v8_lvt.sym} -310 570 0 0 {name=M9
L=1.2
W=1
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_lvt
spiceprefix=X
}
C {devices/lab_pin.sym} -250 570 0 1 {name=l32 sig_type=std_logic lab=GND}
C {devices/lab_pin.sym} -290 660 0 1 {name=l36 sig_type=std_logic lab=GND}
C {devices/lab_pin.sym} -420 570 0 0 {name=l37 sig_type=std_logic lab=NB2}
C {devices/code.sym} -460 880 0 0 {name=STIMULI1
only_toplevel=true
place=end
value="
.options gmin=0.0000000000000000000001
*.options savecurrents
.control
save all
tran 1m 50m
*plot v(test)
plot v(pix_out)
*noise v(PIX_OUT) V8 dec 10 1 1Meg
*setplot noise2
*print onoise_total
*noise v(PIX_OUT) V8 dec 10 1 1Meg
*setplot noise2
*print onoise_total
.endc
"}
C {devices/code.sym} -460 700 0 0 {name=TT_MODELS1
only_toplevel=true
format="tcleval( @value )"
value="
** opencircuitdesign pdks install
.lib $::SKYWATER_MODELS/sky130.lib.spice tt
"
spice_ignore=false}
C {devices/vsource.sym} 240 -10 0 0 {name=V5 only_toplevel=true value="DC=0.6"}
C {devices/lab_pin.sym} 240 -70 0 1 {name=l8 sig_type=std_logic lab=AMP_IN}
C {devices/gnd.sym} 240 20 0 0 {name=l24 lab=GND}