blob: 008837081fea18071d973deee7117834be772fb7 [file] [log] [blame]
** sch_path: /home/simon/code/asic/analog/test/test_low_pvt_source.sch
**.subckt test_low_pvt_source
V2 VDD GND 1.8
V1 VDD V_iout 0
xisource V_iout VDD GND isource_flat
I0 V_iout V_iout 10u
**** begin user architecture code
*.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
* .include ../../tia.spice
* .include ../../filter_diff.spice
* .include ../../cmm_sense3.spice
.include pex_isource.spice
* .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice hl
.lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice.tt.red tt
* .lib /home/simon/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice.tt.red tt
**** end user architecture code
**.ends