blob: b2267ad4a0704d22ec40d134e393e02eb73b2511 [file] [log] [blame]
v {xschem version=3.0.0 file_version=1.2 }
G {}
K {}
V {}
S {}
E {}
B 2 640 -140 1440 260 {flags=graph
y1=0
y2=2
ypos1=0
ypos2=2
divy=5
subdivy=1
unity=1
x1=9.59762e-05
x2=0.000109925
divx=5
subdivx=1
node="PIXEL_OUT,col0x7x,col0x6x,col0x5x,col0x4x,col0x3x,col0x2x,col0x1x,col0x0x
read"
color="4 5"
dataset=0
unitx=u
digital=1}
B 2 640 -570 1440 -170 {flags=graph
y1=0
y2=2
ypos1=0
ypos2=2
divy=5
subdivy=1
unity=1
x1=9.59762e-05
x2=0.000109925
divx=5
subdivx=1
node=""
color=""
dataset=0
unitx=u
}
N -140 130 -120 130 {
lab=#net1}
N -140 150 -120 150 {
lab=#net2}
N -140 110 -120 110 {
lab=#net3}
N 180 250 200 250 {
lab=#net4}
N 180 230 200 230 {
lab=#net5}
N 180 210 200 210 {
lab=#net6}
N 180 190 200 190 {
lab=#net7}
N 180 170 200 170 {
lab=#net8}
N 180 150 200 150 {
lab=#net9}
N 180 130 200 130 {
lab=#net10}
N 180 110 200 110 {
lab=#net11}
N -310 150 -300 150 {
lab=GND}
N -90 20 -70 20 {
lab=GRAY_IN[7:0]}
N -920 -120 -910 -120 {
lab=VCC}
N -870 -100 -860 -100 {
lab=VCC}
N -830 -80 -820 -80 {
lab=VCC}
N -850 -120 -760 -120 {
lab=#net12}
N -800 -100 -760 -100 {
lab=#net13}
N -780 -140 -760 -140 {
lab=VDD}
N -110 -40 -70 -40 {
lab=BIAS1_OUT}
N -110 -20 -70 -20 {
lab=BIAS2_OUT}
N 0 -210 0 -190 {
lab=RAMP}
N -110 0 -70 -0 {
lab=RAMP}
N 0 -330 0 -310 {
lab=READ}
N -380 -340 -380 -320 {
lab=TEST}
N -110 -60 -70 -60 {
lab=TEST}
N 230 -60 250 -60 {
lab=OUT[7:0]}
N 80 470 100 470 {
lab=SA_VREF}
N 80 450 100 450 {
lab=OUT[7:0]}
N 400 450 420 450 {
lab=COL0[7:0]}
N 80 490 100 490 {
lab=SA_IREF_OUT}
N -120 340 -120 360 {
lab=SA_VREF}
N -110 40 -70 40 {
lab=READ}
N -300 -500 -300 -480 {
lab=#net14}
N -300 -500 -220 -500 {
lab=#net14}
N -160 -500 20 -500 {
lab=CLK}
N -390 -560 -390 -540 {
lab=#net15}
N -390 -560 -190 -560 {
lab=#net15}
N -190 -560 -190 -540 {
lab=#net15}
C {devices/vsource.sym} -60 -160 0 0 {name=V8 value=1.8 net_name=true}
C {devices/gnd.sym} -60 -130 0 0 {name=l6 lab=GND}
C {devices/vdd.sym} -60 -190 0 0 {name=l37 lab=VDD}
C {digital_prims/adc_bridge.sym} -230 150 0 0 {name=x6}
C {devices/lab_pin.sym} -300 110 0 0 {name=p24 lab=VCC}
C {digital_prims/adc_bridge.sym} -230 110 0 0 {name=x8}
C {digital_prims/adc_bridge.sym} -230 130 0 0 {name=x7}
C {devices/lab_pin.sym} 360 250 2 0 {name=l70 sig_type=std_logic lab=GRAY_IN[0]}
C {adc/8bit_graycounter.sym} 30 180 0 0 {name=x10}
C {devices/gnd.sym} -310 150 1 0 {name=l71 lab=GND}
C {devices/lab_pin.sym} 360 230 2 0 {name=l72 sig_type=std_logic lab=GRAY_IN[1]}
C {devices/lab_pin.sym} 360 210 2 0 {name=l73 sig_type=std_logic lab=GRAY_IN[2]}
C {devices/lab_pin.sym} 360 190 2 0 {name=l74 sig_type=std_logic lab=GRAY_IN[3]}
C {devices/lab_pin.sym} 360 170 2 0 {name=l75 sig_type=std_logic lab=GRAY_IN[4]}
C {devices/lab_pin.sym} 360 150 2 0 {name=l76 sig_type=std_logic lab=GRAY_IN[5]}
C {devices/lab_pin.sym} 360 130 2 0 {name=l77 sig_type=std_logic lab=GRAY_IN[6]}
C {devices/lab_pin.sym} 360 110 2 0 {name=l78 sig_type=std_logic lab=GRAY_IN[7]}
C {devices/lab_pin.sym} -300 130 0 0 {name=l79 sig_type=std_logic lab=CLK}
C {digital_prims/dac_bridge.sym} 350 110 0 0 {name=x5}
C {digital_prims/dac_bridge.sym} 350 130 0 0 {name=x9}
C {digital_prims/dac_bridge.sym} 350 150 0 0 {name=x11}
C {digital_prims/dac_bridge.sym} 350 170 0 0 {name=x12}
C {digital_prims/dac_bridge.sym} 350 190 0 0 {name=x13}
C {digital_prims/dac_bridge.sym} 350 210 0 0 {name=x14}
C {digital_prims/dac_bridge.sym} 350 230 0 0 {name=x15}
C {digital_prims/dac_bridge.sym} 350 250 0 0 {name=x16}
C {devices/lab_pin.sym} -90 20 0 0 {name=l1 sig_type=std_logic lab=GRAY_IN[7:0]}
C {devices/netlist_options.sym} -860 320 0 0 {
bus_replacement_char="xx"
}
C {devices/code_shown.sym} -850 430 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/code.sym} -400 520 0 0 {name=TT_MODELS1
only_toplevel=true
format="tcleval( @value )"
value="
** opencircuitdesign pdks install
.lib $::SKYWATER_MODELS/sky130.lib.spice tt
.global vcc
.global vdd
.global gnd
"
spice_ignore=false}
C {devices/code.sym} -400 360 0 0 {name=STIMULI1
only_toplevel=true
place=end
value="
.options gmin=10e-20
.control
save all
*dc v2 0 1.8 0.05
*plot v(test)
tran 1u 200u
write adc_layout_tb.raw
.endc
"}
C {devices/isource.sym} -880 -120 3 0 {name=I1 value=100n}
C {devices/lab_pin.sym} -920 -120 3 0 {name=p12 lab=VCC}
C {devices/isource.sym} -830 -100 3 0 {name=I3 value=40n}
C {devices/lab_pin.sym} -870 -100 3 0 {name=p3 lab=VCC}
C {devices/isource.sym} -790 -80 3 0 {name=I8 value=100n}
C {devices/lab_pin.sym} -830 -80 3 0 {name=p13 lab=VCC}
C {devices/lab_pin.sym} -460 -140 2 0 {name=l40 sig_type=std_logic lab=NB1}
C {devices/lab_pin.sym} -460 -120 2 0 {name=l55 sig_type=std_logic lab=NB2}
C {devices/lab_pin.sym} -460 -60 2 0 {name=l56 lab=BIAS2_OUT}
C {devices/lab_pin.sym} -460 -100 2 0 {name=l57 lab=SF_IB}
C {devices/lab_pin.sym} -460 -80 2 0 {name=l58 lab=BIAS1_OUT}
C {devices/lab_pin.sym} -460 -40 2 0 {name=l59 lab=SA_IREF_OUT}
C {devices/vdd.sym} -780 -140 3 0 {name=l2 lab=VDD}
C {devices/lab_pin.sym} -110 -40 0 0 {name=l3 lab=BIAS1_OUT}
C {devices/lab_pin.sym} -110 -20 0 0 {name=l4 lab=BIAS2_OUT}
C {devices/vsource.sym} 0 -160 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} 0 -130 0 0 {name=l15 lab=GND}
C {devices/lab_pin.sym} 0 -210 2 0 {name=l16 sig_type=std_logic lab=RAMP}
C {devices/lab_pin.sym} -110 0 0 0 {name=l5 sig_type=std_logic lab=RAMP}
C {devices/vsource.sym} 0 -280 0 0 {name=V7 value="PULSE(0 1.8 \{read_start\} 0.01u 0.01u \{t_read\} \{pixel_rate\})"}
C {devices/gnd.sym} 0 -250 0 0 {name=l24 lab=GND}
C {devices/lab_pin.sym} 0 -330 2 0 {name=l33 sig_type=std_logic lab=READ}
C {devices/spice_probe.sym} 0 -320 3 0 {name=p20 attrs=""}
C {devices/vsource.sym} -380 -290 0 0 {name=V1 value=900m}
C {devices/gnd.sym} -380 -260 0 0 {name=l7 lab=GND}
C {devices/lab_pin.sym} -380 -340 2 0 {name=l8 sig_type=std_logic lab=TEST}
C {devices/spice_probe.sym} -380 -330 3 0 {name=p1 attrs=""}
C {devices/lab_pin.sym} -110 -60 0 0 {name=l9 sig_type=std_logic lab=TEST}
C {devices/lab_pin.sym} 250 -60 2 0 {name=l10 sig_type=std_logic lab=OUT[7:0]}
C {devices/opin.sym} 420 450 0 0 {name=p6 lab=COL0[7:0]}
C {devices/lab_pin.sym} 80 470 0 0 {name=l34 sig_type=std_logic lab=SA_VREF}
C {devices/lab_pin.sym} 80 450 0 0 {name=l39 sig_type=std_logic lab=OUT[7:0]}
C {devices/lab_pin.sym} 80 490 0 0 {name=l41 sig_type=std_logic lab=SA_IREF_OUT}
C {devices/vsource.sym} -120 390 0 0 {name=V3 value=600m}
C {devices/gnd.sym} -120 420 0 0 {name=l11 lab=GND}
C {devices/lab_pin.sym} -120 340 2 0 {name=l12 sig_type=std_logic lab=SA_VREF}
C {devices/spice_probe.sym} -120 350 3 0 {name=p2 attrs=""}
C {devices/lab_pin.sym} -110 40 0 0 {name=l13 sig_type=std_logic lab=READ}
C {devices/vsource.sym} -300 -450 0 0 {name=V4 value="PULSE(0 1.8 \{t_start\} 0.01u 0.01u \{per/2\} \{per\})"}
C {devices/gnd.sym} -300 -420 0 0 {name=l23 lab=GND}
C {devices/vsource.sym} -390 -510 0 0 {name=V5 value="PULSE(2 0 \{read_start\} 0.01us 0.01us \{pixel_rate-t_ramp\} \{pixel_rate\})"}
C {devices/gnd.sym} -390 -480 0 0 {name=l18 lab=GND}
C {devices/lab_pin.sym} 20 -500 2 0 {name=l42 sig_type=std_logic lab=CLK}
C {devices/spice_probe.sym} -110 -500 3 0 {name=p22 attrs=""}
C {sky130_fd_pr/nfet3_01v8_lvt.sym} -190 -520 1 0 {name=M1
L=1
W=5
nf=1
mult=1
body=GND
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/vsource.sym} -130 -160 0 0 {name=V6 value=1.8 net_name=true}
C {devices/gnd.sym} -130 -130 0 0 {name=l14 lab=GND}
C {devices/vdd.sym} -130 -190 0 0 {name=l17 lab=VCC}
C {post_layout/adc_layout.sym} 80 -10 0 0 {name=x1}
C {post_layout/8bit_SA_conv_layout.sym} 250 470 0 0 {name=x2}
C {post_layout/bias_layout.sym} -610 -90 0 0 {name=x3}