blob: 5ee8fa95f2700d644347175bd6f3b78868b55069 [file] [log] [blame]
v {xschem version=3.0.0 file_version=1.2 }
G {}
K {}
V {}
S {}
E {}
B 2 1630 1100 2430 1500 {flags=graph
y1=0
y2=2
ypos1=0
ypos2=2
divy=5
subdivy=1
unity=1
x1=1.04013e-05
x2=5.15548e-05
divx=5
subdivx=1
node="BUS_NAME,out_bx7x,out_bx6x,out_bx5x,out_bx4x,out_bx3x,out_bx2x,out_bx1x,out_bx0x
read"
color="4 6"
dataset=0
unitx=u
digital=1}
B 2 2490 1090 3290 1490 {flags=graph
y1=-0.8
y2=1.2
ypos1=-1.02688
ypos2=0.97312
divy=5
subdivy=1
unity=1
x1=1.04013e-05
x2=5.15548e-05
divx=5
subdivx=1
node="enable_d
clk
comp_out
test
ramp"
color="6 4 5 7 12"
dataset=0
unitx=u
digital=1}
N 1130 640 1130 660 {
lab=test}
N 1140 330 1160 330 {
lab=#net1}
N 1140 350 1160 350 {
lab=#net2}
N 1140 310 1160 310 {
lab=#net3}
N 1460 450 1480 450 {
lab=#net4}
N 1460 430 1480 430 {
lab=#net5}
N 1460 410 1480 410 {
lab=#net6}
N 1460 390 1480 390 {
lab=#net7}
N 1460 370 1480 370 {
lab=#net8}
N 1460 350 1480 350 {
lab=#net9}
N 1460 330 1480 330 {
lab=#net10}
N 1460 310 1480 310 {
lab=#net11}
N 970 350 980 350 {
lab=GND}
N 410 910 410 930 {
lab=RAMP}
N 340 910 340 930 {
lab=VCC}
N 690 1030 690 1050 {
lab=RESET}
N 840 1030 840 1050 {
lab=READ}
N 700 830 700 850 {
lab=#net12}
N 700 830 780 830 {
lab=#net12}
N 610 770 610 790 {
lab=#net13}
N 610 770 810 770 {
lab=#net13}
N 810 770 810 790 {
lab=#net13}
N 2700 680 2700 700 {
lab=#net14}
N 2700 600 2700 680 {
lab=#net14}
N 2700 600 2740 600 {
lab=#net14}
N 840 830 920 830 {
lab=CLK}
N 100 290 130 290 {lab=GND}
N 270 290 300 290 {lab=GND}
N 300 130 330 130 {lab=VCC}
N 70 130 100 130 {lab=VCC}
N 140 130 260 130 {lab=GN}
N 140 130 140 170 {lab=GN}
N 100 170 140 170 {lab=GN}
N 100 170 100 260 {lab=GN}
N 100 60 100 100 {lab=VCC}
N 200 60 300 60 {lab=VCC}
N 300 60 300 100 {lab=VCC}
N 300 320 300 340 {lab=SN}
N 200 340 300 340 {lab=SN}
N 100 320 100 340 {lab=SN}
N 200 340 200 390 {lab=SN}
N 200 40 200 60 {lab=VCC}
N 100 60 200 60 {lab=VCC}
N 100 340 200 340 {lab=SN}
N 300 190 300 260 {lab=#net15}
N 100 160 100 170 { lab=GN}
N 300 190 420 190 {
lab=#net15}
N 340 290 350 290 {
lab=RAMP}
N 50 290 60 290 {
lab=test}
N 50 240 50 290 {
lab=test}
N 350 290 350 360 {
lab=RAMP}
N 420 130 420 190 {
lab=#net15}
N 460 250 670 250 {
lab=COMP_OUT}
N 670 150 670 250 {
lab=COMP_OUT}
N 670 150 750 150 {
lab=COMP_OUT}
N 670 250 670 350 {
lab=COMP_OUT}
N 670 350 750 350 {
lab=COMP_OUT}
N 790 390 790 400 {
lab=GND}
N 790 110 790 120 {
lab=VCC}
N 790 350 900 350 {
lab=GND}
N 900 350 900 390 {
lab=GND}
N 790 150 910 150 {
lab=VCC}
N 910 110 910 150 {
lab=VCC}
N 790 110 910 110 {
lab=VCC}
N 790 390 900 390 {
lab=GND}
N 790 180 790 250 {
lab=ENABLE_D}
N 790 250 960 250 {
lab=ENABLE_D}
N 300 160 300 190 {lab=#net15}
N 460 40 460 100 {
lab=VCC}
N 460 160 460 250 {
lab=COMP_OUT}
N 790 90 790 110 {
lab=VCC}
N 790 380 790 390 {
lab=GND}
N 790 250 790 320 {
lab=ENABLE_D}
N 500 450 550 450 {
lab=test2}
N 520 420 580 420 {
lab=test2}
N 580 420 590 420 {
lab=test2}
N 520 420 520 450 {
lab=test2}
N 590 350 590 360 {
lab=VCC}
N 440 450 460 450 {
lab=GND}
N 440 450 440 480 {
lab=GND}
N 590 450 650 450 {
lab=GND}
N 650 450 650 480 {
lab=GND}
N 590 480 650 480 {
lab=GND}
N 440 480 440 540 {
lab=GND}
N 440 540 460 540 {
lab=GND}
N 460 250 460 360 {
lab=COMP_OUT}
N 460 480 460 540 {
lab=GND}
N 200 510 200 540 {
lab=GND}
N 200 480 280 480 {
lab=GND}
N 280 480 280 530 {
lab=GND}
N 200 530 280 530 {
lab=GND}
N 40 480 160 480 {
lab=test_net}
N 0 410 0 450 {
lab=test_net}
N 0 410 80 410 {
lab=test_net}
N 80 410 80 480 {
lab=test_net}
N 0 340 0 350 {
lab=VCC}
N 0 510 0 530 {
lab=GND}
N -20 480 0 480 {
lab=GND}
N -20 480 -20 520 {
lab=GND}
N -20 520 0 520 {
lab=GND}
C {devices/vsource.sym} 1130 690 0 0 {name=V3 value=DC=700m}
C {devices/gnd.sym} 1130 720 0 0 {name=l11 lab=GND}
C {devices/code.sym} -270 890 0 0 {name=STIMULI1
only_toplevel=true
place=end
value="
.control
*dc v2 200m .8 0.0001
*plot v(test)
tran 0.1u 300u
plot v(SN)
write adc_testbench.raw
options filetype=ascii
write adc_testbench.out
.endc
"}
C {devices/code.sym} -260 1060 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/lab_pin.sym} 1130 640 2 0 {name=l4 sig_type=std_logic lab=test}
C {digital_prims/adc_bridge.sym} 1050 350 0 0 {name=x1}
C {devices/lab_pin.sym} 980 310 0 0 {name=p2 lab=VCC}
C {digital_prims/adc_bridge.sym} 1050 310 0 0 {name=x3}
C {digital_prims/adc_bridge.sym} 1050 330 0 0 {name=x4}
C {devices/lab_pin.sym} 1640 450 2 0 {name=l17 sig_type=std_logic lab=GRAY_IN[0]}
C {devices/netlist_options.sym} 2230 -270 0 0 {
bus_replacement_char="xx"
}
C {adc/8bit_graycounter.sym} 1310 380 0 0 {name=x2}
C {devices/gnd.sym} 970 350 1 0 {name=l14 lab=GND}
C {devices/lab_pin.sym} 1640 430 2 0 {name=l20 sig_type=std_logic lab=GRAY_IN[1]}
C {devices/lab_pin.sym} 1640 410 2 0 {name=l32 sig_type=std_logic lab=GRAY_IN[2]}
C {devices/lab_pin.sym} 1640 390 2 0 {name=l33 sig_type=std_logic lab=GRAY_IN[3]}
C {devices/lab_pin.sym} 1640 370 2 0 {name=l34 sig_type=std_logic lab=GRAY_IN[4]}
C {devices/lab_pin.sym} 1640 350 2 0 {name=l35 sig_type=std_logic lab=GRAY_IN[5]}
C {devices/lab_pin.sym} 1640 330 2 0 {name=l36 sig_type=std_logic lab=GRAY_IN[6]}
C {devices/lab_pin.sym} 1640 310 2 0 {name=l37 sig_type=std_logic lab=GRAY_IN[7]}
C {devices/code_shown.sym} -40 890 0 0 {name=SPICE only_toplevel=false value="
.param per = 0.1u
.param t_start = 4u
.param num_bits=8
.param num_rows = 1
.param num_cols = 1
.param ramp_low=400m
.param ramp_high=1000m
.param t_read=2u
.param t_ramp = \{per * pow(2,num_bits)\}
.param read_start = \{t_start + t_ramp\}
.param pixel_rate = \{t_ramp + t_read*num_rows\}
"}
C {devices/lab_pin.sym} 340 910 0 0 {name=p4 lab=VCC}
C {devices/vsource.sym} 340 960 0 0 {name=V1 value=1.8}
C {devices/gnd.sym} 340 990 0 0 {name=l1 lab=GND}
C {devices/vsource.sym} 410 960 0 0 {name=V2 value="PULSE(\{ramp_low\} \{ramp_high\} \{t_start\} \{t_ramp\} 0.01u \{pixel_rate-t_ramp\} \{pixel_rate\})"}
C {devices/gnd.sym} 410 990 0 0 {name=l15 lab=GND}
C {devices/lab_pin.sym} 410 910 2 0 {name=l7 sig_type=std_logic lab=RAMP}
C {devices/spice_probe.sym} 410 920 3 0 {name=p18 attrs=""}
C {devices/spice_probe.sym} 340 920 1 1 {name=p19 attrs=""}
C {devices/gnd.sym} 690 1110 0 0 {name=l9 lab=GND}
C {devices/lab_pin.sym} 690 1030 2 0 {name=l12 sig_type=std_logic lab=RESET}
C {devices/vsource.sym} 690 1080 0 1 {name=V4 value="PULSE(0 1.8 \{read_start\} 0.01u 0.01u \{per\} \{pixel_rate\})"}
C {devices/spice_probe.sym} 690 1040 3 0 {name=p21 attrs=""}
C {devices/vsource.sym} 840 1080 0 0 {name=V5 value="PULSE(0 1.8 \{read_start\} 0.01u 0.01u \{t_read\} \{pixel_rate\})"}
C {devices/gnd.sym} 840 1110 0 0 {name=l66 lab=GND}
C {devices/lab_pin.sym} 840 1030 2 0 {name=l67 sig_type=std_logic lab=READ}
C {devices/spice_probe.sym} 840 1040 3 0 {name=p23 attrs=""}
C {devices/vsource.sym} 700 880 0 0 {name=V8 value="PULSE(0 1.8 \{t_start\} 0.01u 0.01u \{per/2\} \{per\})"}
C {devices/gnd.sym} 700 910 0 0 {name=l21 lab=GND}
C {sky130_fd_pr/nfet3_01v8.sym} 810 810 3 1 {name=M4
L=5
W=5
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_01v8
spiceprefix=X
}
C {devices/vsource.sym} 610 820 0 0 {name=V9 value="PULSE(4 0 \{read_start\} 0.01us 0.01us \{pixel_rate-t_ramp\} \{pixel_rate\})"}
C {devices/gnd.sym} 610 850 0 0 {name=l29 lab=GND}
C {devices/lab_pin.sym} 920 830 2 0 {name=l30 sig_type=std_logic lab=CLK}
C {devices/spice_probe.sym} 890 830 3 0 {name=p22 attrs=""}
C {devices/lab_pin.sym} 980 330 0 0 {name=l2 sig_type=std_logic lab=CLK}
C {devices/lab_pin.sym} 2740 580 0 0 {name=l73 sig_type=std_logic lab=OUT[7:0]}
C {devices/lab_pin.sym} 3040 580 2 0 {name=l74 sig_type=std_logic lab=OUT_B[7:0]}
C {devices/vsource.sym} 2700 730 0 0 {name=V6 value=600m}
C {devices/gnd.sym} 2700 760 0 0 {name=l75 lab=GND}
C {8bit_SA_converter.sym} 2890 600 0 0 {name=x38}
C {devices/spice_probe.sym} 1130 650 3 0 {name=p14 attrs=""}
C {devices/lab_pin.sym} 330 130 0 1 {name=p15 lab=VCC}
C {devices/lab_pin.sym} 70 130 0 0 {name=p16 lab=VCC}
C {devices/lab_pin.sym} 200 40 0 0 {name=p17 lab=VCC}
C {devices/lab_pin.sym} 200 360 0 0 {name=l52 lab=SN}
C {devices/lab_pin.sym} 140 160 0 1 {name=l63 lab=GN}
C {devices/gnd.sym} 130 290 0 0 {name=l64 lab=GND}
C {devices/gnd.sym} 270 290 0 0 {name=l65 lab=GND}
C {devices/lab_pin.sym} 50 240 2 1 {name=l69 sig_type=std_logic lab=test}
C {devices/lab_pin.sym} 350 360 0 0 {name=l70 sig_type=std_logic lab=RAMP}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 80 290 0 0 {name=M2
L=0.15
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} 320 290 0 1 {name=M7
L=0.15
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/pfet3_01v8_lvt.sym} 280 130 0 0 {name=M8
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} 120 130 0 1 {name=M9
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} 440 130 0 0 {name=M10
L=0.42
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/lab_pin.sym} 460 40 0 0 {name=p20 lab=VCC}
C {devices/gnd.sym} 790 400 0 0 {name=l77 lab=GND}
C {devices/lab_pin.sym} 790 90 0 0 {name=p25 lab=VCC}
C {devices/lab_pin.sym} 960 250 2 0 {name=l78 sig_type=std_logic lab=ENABLE_D}
C {sky130_fd_pr/pfet3_01v8.sym} 770 150 0 0 {name=M13
L=0.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
spiceprefix=X
}
C {sky130_fd_pr/nfet3_01v8.sym} 770 350 0 0 {name=M14
L=0.15
W=1
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_01v8
spiceprefix=X
}
C {devices/spice_probe.sym} 910 250 3 0 {name=p26 attrs=""}
C {devices/gnd.sym} 460 540 0 0 {name=l3 lab=GND}
C {digital_prims/dram_8.sym} 2080 610 0 0 {name=x5}
C {devices/lab_pin.sym} 1930 610 0 0 {name=l5 sig_type=std_logic lab=GRAY_IN[7:0]}
C {devices/lab_pin.sym} 1930 630 0 0 {name=l6 sig_type=std_logic lab=READ}
C {devices/lab_pin.sym} 1930 590 0 0 {name=l8 sig_type=std_logic lab=ENABLE_D}
C {devices/lab_pin.sym} 2230 590 2 0 {name=l10 sig_type=std_logic lab=OUT[7:0]}
C {digital_prims/dac_bridge.sym} 1630 310 0 0 {name=x16}
C {digital_prims/dac_bridge.sym} 1630 330 0 0 {name=x6}
C {digital_prims/dac_bridge.sym} 1630 350 0 0 {name=x7}
C {digital_prims/dac_bridge.sym} 1630 370 0 0 {name=x8}
C {digital_prims/dac_bridge.sym} 1630 390 0 0 {name=x9}
C {digital_prims/dac_bridge.sym} 1630 410 0 0 {name=x10}
C {digital_prims/dac_bridge.sym} 1630 430 0 0 {name=x11}
C {digital_prims/dac_bridge.sym} 1630 450 0 0 {name=x12}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 480 450 0 1 {name=M5
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/isource.sym} 590 390 0 0 {name=I2 value=40n}
C {sky130_fd_pr/nfet_01v8_lvt.sym} 570 450 0 0 {name=M6
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/gnd.sym} 590 480 0 0 {name=l16 lab=GND}
C {devices/lab_pin.sym} 590 350 0 0 {name=p3 lab=VCC}
C {devices/lab_pin.sym} 530 450 3 0 {name=l19 sig_type=std_logic lab=test2}
C {devices/spice_probe.sym} 540 420 3 0 {name=p5 attrs=""}
C {devices/ammeter.sym} 460 390 0 0 {name=Vmeas1}
C {devices/lab_pin.sym} 580 250 1 0 {name=l22 sig_type=std_logic lab=COMP_OUT}
C {devices/spice_probe.sym} 510 250 1 1 {name=p7 attrs=""}
C {devices/spice_probe.sym} 140 340 2 0 {name=p6 attrs=""}
C {devices/spice_probe.sym} 220 130 2 0 {name=p9 attrs=""}
C {devices/spice_probe.sym} 300 220 2 0 {name=p11 attrs=""}
C {devices/lab_pin.sym} 130 480 3 0 {name=l24 sig_type=std_logic lab=test_net}
C {devices/ammeter.sym} 200 420 0 0 {name=Vmeas4}
C {devices/gnd.sym} 200 540 0 0 {name=l26 lab=GND}
C {devices/isource.sym} 0 380 0 0 {name=I5 value=100n}
C {devices/lab_pin.sym} 0 340 0 0 {name=p12 lab=VCC}
C {devices/gnd.sym} 0 520 0 0 {name=l27 lab=GND}
C {sky130_fd_pr/nfet3_01v8.sym} 180 480 0 0 {name=M1
L=1
W=0.42
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_01v8
spiceprefix=X
}
C {sky130_fd_pr/nfet3_01v8.sym} 20 480 0 1 {name=M3
L=1
W=0.42
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_01v8
spiceprefix=X
}
C {devices/spice_probe.sym} 110 480 2 0 {name=p1 attrs=""}
C {devices/vsource.sym} 2740 650 0 0 {name=V7 value=500m}
C {devices/gnd.sym} 2740 680 0 0 {name=l13 lab=GND}