blob: 762bf3d224c6bd3a949509c7c610c2ca335f8de4 [file] [log] [blame]
v {xschem version=3.0.0 file_version=1.2 }
G {}
K {}
V {}
S {}
E {}
N -730 -530 -730 -520 { lab=VDD}
N -730 -520 -730 -500 { lab=VDD}
N -790 -460 -790 -430 { lab=GND}
N -690 -320 -690 -310 { lab=VDD}
N -690 -250 -690 -240 { lab=GND}
N -690 -480 -550 -480 { lab=V_iout}
N -550 -480 -550 -420 { lab=V_iout}
N -550 -360 -550 -340 { lab=V_iout}
N -790 -500 -730 -500 { lab=VDD}
N -790 -480 -690 -480 { lab=V_iout}
N -550 -570 -550 -540 { lab=VDD}
N -550 -420 -550 -360 { lab=V_iout}
N -670 -450 -600 -450 { lab=V_iout}
N -600 -450 -600 -390 { lab=V_iout}
N -670 -390 -600 -390 { lab=V_iout}
N -600 -390 -550 -390 { lab=V_iout}
C {devices/code.sym} -220 -460 0 0 {name=SPICE
only_toplevel=true
value="
*.options savecurrents
.option warn=1
.control
set wr_vecnames
set wr_singlescale
set hcopydevtype=svg
set ITL1=10000
let min_temp=0
let var_temp = min_temp
let max_temp=100
let temp_step=100
option temp=20
op
write test_low_pvt_source.raw
print var_temp i(v1)
* i(v.xisource.v1)
run
reset
dowhile var_temp <= max_temp
option temp=$&var_temp
op
* wrdata 'result_\{$&var_temp\}deg.csv' v(V_vout)
let var_temp = var_temp + temp_step
run
echo 'Result will follow ...'
print var_temp i(v1)
* i(v.xisource.v1)
if i(v.xisource.v1) > 1e-6
echo 'Large current'
write 'result_op_\{$&var_temp\}deg.raw'
end
*tran 100n 100u
*MEAS tran isource AVG i(v.xisource.v1) from=50u to=100u
reset
end
* reset
* option temp=0
* op
* run
* print v(v_vout) i(v1)
* let var_vout_0deg=v(v_vout)
* reset
* option temp=100
* op
* run
* print v(v_vout) i(v1)
* let var_vout_100deg=v(v_vout)
* print var_vout_100deg-var_vout_0deg
* tran 100n 100u
* plot i(v.xisource.v1)
* MEAS tran isource AVG i(v.xisource.v1) from=50u to=100u
* noise i(v1) I0 dec 1000 10 100G
* print all
* wrdata result_noise.csv inoise_total onoise_total
* setplot noise1
* plot onoise_spectrum
* noise i(v1) I0 dec 1000 2MEG 2G
* print all
* wrdata result_noise.csv inoise_total onoise_total
* setplot noise3
* plot onoise_spectrum
.endc
"}
C {devices/vdd.sym} -730 -530 0 0 {name=l11 lab=VDD}
C {devices/code.sym} -220 -290 0 0 {name=INCLUDE
only_toplevel=true
format="tcleval( @value )"
value="
* .include ../../tia.spice
* .include ../../filter_diff.spice
* .include ../../cmm_sense3.spice
.include low_pvt_source.spice
"}
C {devices/code.sym} -220 -120 0 0 {name=MODELS
only_toplevel=true
format="tcleval( @value )"
value="
* .lib \\\\$::SKYWATER_MODELS\\\\/sky130.lib.spice hl
.lib \\\\$::SKYWATER_MODELS\\\\/sky130.lib.spice.tt.red tt
* .lib /home/simon/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice.tt.red tt
"}
C {devices/vdd.sym} -690 -320 0 0 {name=l7 lab=VDD}
C {devices/vsource.sym} -690 -280 0 0 {name=V2 value=1.8
}
C {devices/gnd.sym} -690 -240 0 0 {name=l8 lab=GND}
C {devices/lab_wire.sym} -550 -430 0 1 {name=l12 sig_type=std_logic lab=V_iout}
C {devices/ngspice_get_value.sym} -550 -390 0 0 {name=r4 node="v(V_iout)"
descr="v(V_iout)"}
C {devices/vsource.sym} -550 -510 0 0 {name=V1 value=0
*#UB#}
C {devices/gnd.sym} -790 -430 0 0 {name=l1 lab=GND}
C {/home/simon/code/asic/analog/bias/low_pvt_source.sym} -940 -480 0 0 {name=xisource}
C {devices/vdd.sym} -550 -570 0 0 {name=l2 lab=VDD}
C {devices/isource.sym} -670 -420 0 0 {name=I0 value=10u}