simulator( 'spectre ) design( "/home/paelke/simulation/tb_lsb_segment_calibration/spectre/schematic/netlist/netlist") resultsDir( "/home/paelke/simulation/tb_lsb_segment_calibration/spectre/schematic" ) modelFile( '("$ICPRO_DIR/resources/22FDSOI/Models/Spectre/models/design_wrapper.lib.scs" "tt_pre") ) analysis('dc ?saveOppoint t ) analysis('tran ?stop "1u" ?errpreset "conservative" ?tranNoise "Transient Noise" ?trannoisemethod "default" ?noisefmax "10G" ?noisefmin "10k" ?noiseseed "47" ?noisescale "1" ?noisetmin "" ?noiseupdate "" ?noiseonoff "" ?noiseinst "" ) desVar( "Vout_Iref" 450m ) desVar( "Vds" 800m ) desVar( "Vbias_cas_int" 600m ) desVar( "Cb_storage" 1p ) desVar( "Vb_lsb" 408m ) desVar( "CAL_EN" 1 ) desVar( "Cm" 10f ) desVar( "Ierror" 0 ) desVar( "wireopt" 11 ) desVar( "Ibias" 80u ) desVar( "Imsb" 20u ) desVar( "Tcal_lsb" 20u ) desVar( "Vb_off" 0 ) desVar( "Vout" 800m ) envOption( 'analysisOrder list("dc" "noise" "tran") ) option( 'dc_pivot_check "yes" 'pivotdc "yes" 'temp "100.0" ) option( ?categ 'turboOpts 'disableVddOverride nil 'numThreads "16" 'mtOption "Manual" 'apsplus t 'uniMode "APS" ) saveOption( ?simOutputFormat "psfxl" ) saveOption( 'currents "selected" ) saveOption( 'nestlvl "2" ) saveOption( 'save "lvlpub" ) save( 'v "/BBCAL_CS6/source1_int_node_0V45" "/BBCAL_CS5/source1_int_node_0V45" "/BBCAL_CS4/source1_int_node_0V45" "/BBCAL_CS3/source1_int_node_0V45" "/BBCAL_CS2/source1_int_node_0V45" "/BBCAL_CS1/source1_int_node_0V45" "/BBCAL_CS0/source1_int_node_0V45" "/BBCAL_CS6/source2_int_node_0V45" "/BBCAL_CS5/source2_int_node_0V45" "/BBCAL_CS4/source2_int_node_0V45" "/BBCAL_CS3/source2_int_node_0V45" "/BBCAL_CS2/source2_int_node_0V45" "/BBCAL_CS1/source2_int_node_0V45" "/BBCAL_CS0/source2_int_node_0V45" ) save( 'i "/DCSW6_PROBE_IOUTP/MINUS" "/DCSW4_PROBE_IOUTP/MINUS" "/DCSW5_PROBE_IOUTP/MINUS" "/DCSW3_PROBE_IOUTP/MINUS" "/DCSW2_PROBE_IOUTP/MINUS" "/DCSW1_PROBE_IOUTP/MINUS" "/DCSW0_PROBE_IOUTP/MINUS" "/LSBREF/R0/in" "/IOUT_PROBE_CS6/PLUS" "/IOUT_PROBE_CS5/PLUS" "/IOUT_PROBE_CS4/PLUS" "/IOUT_PROBE_CS3/PLUS" "/IOUT_PROBE_CS2/PLUS" "/IOUT_PROBE_CS1/PLUS" "/IOUT_PROBE_CS0/PLUS" ) temp( 100.0 ) run() DC\:CS2_V_source2_int_node = VDC("/BBCAL_CS2/source2_int_node_0V45") plot( DC\:CS2_V_source2_int_node ?expr '( "DC:CS2_V_source2_int_node" ) ) I_total = average(clip(IT("/LSBREF/R0/in") 9.5e-05 0.000195)) plot( I_total ?expr '( "I_total" ) ) snapshot\:DCSW0_Ierr_total = (average(clip(IT("/DCSW0_PROBE_IOUTP/MINUS") 9.5e-05 0.000195)) - (I_total / 128)) plot( snapshot\:DCSW0_Ierr_total ?expr '( "snapshot:DCSW0_Ierr_total" ) ) snapshot\:CS3_Ierr_postcal = average(clip((IT("/IOUT_PROBE_CS3/PLUS") - (I_total / 16)) 9.6e-05 9.9e-05)) plot( snapshot\:CS3_Ierr_postcal ?expr '( "snapshot:CS3_Ierr_postcal" ) ) snapshot\:CS2_Ierr_precal = average(clip((IT("/IOUT_PROBE_CS2/PLUS") - (I_total / 32)) 1.1e-05 1.4e-05)) plot( snapshot\:CS2_Ierr_precal ?expr '( "snapshot:CS2_Ierr_precal" ) ) v\ \/LSB_CAL_CLK\;\ tran\ \(V\) = vtime('tran "/LSB_CAL_CLK") plot( v\ \/LSB_CAL_CLK\;\ tran\ \(V\) ?expr '( "v /LSB_CAL_CLK; tran (V)" ) ) snapshot\:CS0_Ierr_postcal = average(clip((IT("/IOUT_PROBE_CS0/PLUS") - (I_total / 128)) 9.6e-05 9.9e-05)) plot( snapshot\:CS0_Ierr_postcal ?expr '( "snapshot:CS0_Ierr_postcal" ) ) DC\:CS1_V_source1_int_node = VDC("/BBCAL_CS1/source1_int_node_0V45") plot( DC\:CS1_V_source1_int_node ?expr '( "DC:CS1_V_source1_int_node" ) ) tran\:Ierr_CS5 = (IT("/IOUT_PROBE_CS5/PLUS") - 1e-05) plot( tran\:Ierr_CS5 ?expr '( "tran:Ierr_CS5" ) ) tran\:Ierr_CS0 = (IT("/IOUT_PROBE_CS0/PLUS") - 3.125e-07) plot( tran\:Ierr_CS0 ?expr '( "tran:Ierr_CS0" ) ) DC\:CS4_V_source2_int_node = VDC("/BBCAL_CS4/source2_int_node_0V45") plot( DC\:CS4_V_source2_int_node ?expr '( "DC:CS4_V_source2_int_node" ) ) v\ \/BBCAL_CS3\/CS3_CON_S1_L\;\ tran\ \(V\) = vtime('tran "/BBCAL_CS3/CS3_CON_S1_L") plot( v\ \/BBCAL_CS3\/CS3_CON_S1_L\;\ tran\ \(V\) ?expr '( "v /BBCAL_CS3/CS3_CON_S1_L; tran (V)" ) ) snapshot\:DCSW1_Ierr_total = (average(clip(IT("/DCSW1_PROBE_IOUTP/MINUS") 9.5e-05 0.000195)) - (I_total / 64)) plot( snapshot\:DCSW1_Ierr_total ?expr '( "snapshot:DCSW1_Ierr_total" ) ) snapshot\:CS0_Ierr_precal = average(clip((IT("/IOUT_PROBE_CS0/PLUS") - (I_total / 128)) 1.1e-05 1.4e-05)) plot( snapshot\:CS0_Ierr_precal ?expr '( "snapshot:CS0_Ierr_precal" ) ) \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#1 = 0 plot( \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#1 ?expr '( "#############################1" ) ) i\ \/IOUT_PROBE_CS1\/PLUS\;\ tran\ \(I\) = itime('tran "/IOUT_PROBE_CS1/PLUS") plot( i\ \/IOUT_PROBE_CS1\/PLUS\;\ tran\ \(I\) ?expr '( "i /IOUT_PROBE_CS1/PLUS; tran (I)" ) ) v\ \/BBCAL_CS3\/CS3_CAL_S1_L\;\ tran\ \(V\) = vtime('tran "/BBCAL_CS3/CS3_CAL_S1_L") plot( v\ \/BBCAL_CS3\/CS3_CAL_S1_L\;\ tran\ \(V\) ?expr '( "v /BBCAL_CS3/CS3_CAL_S1_L; tran (V)" ) ) i\ \/IOUT_PROBE_CS3\/PLUS\;\ tran\ \(I\) = itime('tran "/IOUT_PROBE_CS3/PLUS") plot( i\ \/IOUT_PROBE_CS3\/PLUS\;\ tran\ \(I\) ?expr '( "i /IOUT_PROBE_CS3/PLUS; tran (I)" ) ) i\ \/V6\/PLUS\;\ dc\ \(I\) = i("/V6/PLUS" ?result "dc") plot( i\ \/V6\/PLUS\;\ dc\ \(I\) ?expr '( "i /V6/PLUS; dc (I)" ) ) i\ \/IOUT_PROBE_CS5\/PLUS\;\ tran\ \(I\) = itime('tran "/IOUT_PROBE_CS5/PLUS") plot( i\ \/IOUT_PROBE_CS5\/PLUS\;\ tran\ \(I\) ?expr '( "i /IOUT_PROBE_CS5/PLUS; tran (I)" ) ) snapshot\:CS4_Ierr_postcal = average(clip((IT("/IOUT_PROBE_CS4/PLUS") - (I_total / 8)) 9.6e-05 9.9e-05)) plot( snapshot\:CS4_Ierr_postcal ?expr '( "snapshot:CS4_Ierr_postcal" ) ) snapshot\:DCSW4_Ierr_total = (average(clip(IT("/DCSW4_PROBE_IOUTP/MINUS") 9.5e-05 0.000195)) - (I_total / 8)) plot( snapshot\:DCSW4_Ierr_total ?expr '( "snapshot:DCSW4_Ierr_total" ) ) DC\:CS3_V_source2_int_node = VDC("/BBCAL_CS3/source2_int_node_0V45") plot( DC\:CS3_V_source2_int_node ?expr '( "DC:CS3_V_source2_int_node" ) ) DC\:CS3_V_source1_int_node = VDC("/BBCAL_CS3/source1_int_node_0V45") plot( DC\:CS3_V_source1_int_node ?expr '( "DC:CS3_V_source1_int_node" ) ) i\ \/IOUT_PROBE_CS4\/PLUS\;\ tran\ \(I\) = itime('tran "/IOUT_PROBE_CS4/PLUS") plot( i\ \/IOUT_PROBE_CS4\/PLUS\;\ tran\ \(I\) ?expr '( "i /IOUT_PROBE_CS4/PLUS; tran (I)" ) ) DC\:CS6_V_source2_int_node = VDC("/BBCAL_CS6/source2_int_node_0V45") plot( DC\:CS6_V_source2_int_node ?expr '( "DC:CS6_V_source2_int_node" ) ) output\ noise\;\ V\ \/\ sqrt\(Hz\) = getData("out" ?result "noise") plot( output\ noise\;\ V\ \/\ sqrt\(Hz\) ?expr '( "output noise; V / sqrt(Hz)" ) ) \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#2 = 0 plot( \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#2 ?expr '( "#############################2" ) ) v\ \/LSB_RESET_L\;\ tran\ \(V\) = vtime('tran "/LSB_RESET_L") plot( v\ \/LSB_RESET_L\;\ tran\ \(V\) ?expr '( "v /LSB_RESET_L; tran (V)" ) ) snapshot\:CS6_Ierr_postcal = average(clip((IT("/IOUT_PROBE_CS6/PLUS") - (I_total / 2)) 9.6e-05 9.9e-05)) plot( snapshot\:CS6_Ierr_postcal ?expr '( "snapshot:CS6_Ierr_postcal" ) ) tran\:Ierr_CS4 = (IT("/IOUT_PROBE_CS4/PLUS") - 5e-06) plot( tran\:Ierr_CS4 ?expr '( "tran:Ierr_CS4" ) ) \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#4 = 0 plot( \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#4 ?expr '( "#############################4" ) ) DC\:CS2_V_source1_int_node = VDC("/BBCAL_CS2/source1_int_node_0V45") plot( DC\:CS2_V_source1_int_node ?expr '( "DC:CS2_V_source1_int_node" ) ) i\ \/BBCAL_CS3\/IPROBE_CS2\/PLUS\;\ tran\ \(I\) = itime('tran "/BBCAL_CS3/IPROBE_CS2/PLUS") plot( i\ \/BBCAL_CS3\/IPROBE_CS2\/PLUS\;\ tran\ \(I\) ?expr '( "i /BBCAL_CS3/IPROBE_CS2/PLUS; tran (I)" ) ) snapshot\:DCSW6_Ierr_total = (average(clip(IT("/DCSW6_PROBE_IOUTP/MINUS") 9.5e-05 0.000195)) - (I_total / 2)) plot( snapshot\:DCSW6_Ierr_total ?expr '( "snapshot:DCSW6_Ierr_total" ) ) v\ \/BBCAL_CS3\/CS3_RESET_L_int\;\ tran\ \(V\) = vtime('tran "/BBCAL_CS3/CS3_RESET_L_int") plot( v\ \/BBCAL_CS3\/CS3_RESET_L_int\;\ tran\ \(V\) ?expr '( "v /BBCAL_CS3/CS3_RESET_L_int; tran (V)" ) ) DC\:CS6_V_source1_int_node = VDC("/BBCAL_CS6/source1_int_node_0V45") plot( DC\:CS6_V_source1_int_node ?expr '( "DC:CS6_V_source1_int_node" ) ) tran\:Ierr_CS3 = (IT("/IOUT_PROBE_CS3/PLUS") - 2.5e-06) plot( tran\:Ierr_CS3 ?expr '( "tran:Ierr_CS3" ) ) i\ \/BBCAL_CS1\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) = (32 * itime('tran "/BBCAL_CS1/IPROBE_CS1/PLUS")) plot( i\ \/BBCAL_CS1\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) ?expr '( "i /BBCAL_CS1/IPROBE_CS1/PLUS; tran (I)" ) ) \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#3 = 0 plot( \#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#3 ?expr '( "#############################3" ) ) DC\:CS1_V_source2_int_node = VDC("/BBCAL_CS1/source2_int_node_0V45") plot( DC\:CS1_V_source2_int_node ?expr '( "DC:CS1_V_source2_int_node" ) ) DC\:CS4_V_source1_int_node = VDC("/BBCAL_CS4/source1_int_node_0V45") plot( DC\:CS4_V_source1_int_node ?expr '( "DC:CS4_V_source1_int_node" ) ) tran\:Ierr_CS1 = (IT("/IOUT_PROBE_CS1/PLUS") - 6.25e-07) plot( tran\:Ierr_CS1 ?expr '( "tran:Ierr_CS1" ) ) snapshot\:DCSW5_Ierr_total = (average(clip(IT("/DCSW5_PROBE_IOUTP/MINUS") 9.5e-05 0.000195)) - (I_total / 4)) plot( snapshot\:DCSW5_Ierr_total ?expr '( "snapshot:DCSW5_Ierr_total" ) ) i\ \/V4\/MINUS\;\ dc\ \(I\) = i("/V4/MINUS" ?result "dc") plot( i\ \/V4\/MINUS\;\ dc\ \(I\) ?expr '( "i /V4/MINUS; dc (I)" ) ) v\ \/BBCAL_CS3\/CS3_CAL_S2_L\;\ tran\ \(V\) = vtime('tran "/BBCAL_CS3/CS3_CAL_S2_L") plot( v\ \/BBCAL_CS3\/CS3_CAL_S2_L\;\ tran\ \(V\) ?expr '( "v /BBCAL_CS3/CS3_CAL_S2_L; tran (V)" ) ) DC\:CS0_V_source1_int_node = VDC("/BBCAL_CS0/source1_int_node_0V45") plot( DC\:CS0_V_source1_int_node ?expr '( "DC:CS0_V_source1_int_node" ) ) v\ \/BBCAL_CS3\/BULK_S1\;\ tran\ \(V\) = vtime('tran "/BBCAL_CS3/BULK_S1") plot( v\ \/BBCAL_CS3\/BULK_S1\;\ tran\ \(V\) ?expr '( "v /BBCAL_CS3/BULK_S1; tran (V)" ) ) DC\:CS5_V_source1_int_node = VDC("/BBCAL_CS5/source1_int_node_0V45") plot( DC\:CS5_V_source1_int_node ?expr '( "DC:CS5_V_source1_int_node" ) ) tran\:Ierr_CS2 = (IT("/IOUT_PROBE_CS2/PLUS") - 1.25e-06) plot( tran\:Ierr_CS2 ?expr '( "tran:Ierr_CS2" ) ) snapshot\:CS5_Ierr_precal = average(clip((IT("/IOUT_PROBE_CS5/PLUS") - (I_total / 4)) 1.1e-05 1.4e-05)) plot( snapshot\:CS5_Ierr_precal ?expr '( "snapshot:CS5_Ierr_precal" ) ) snapshot\:DCSW2_Ierr_total = (average(clip(IT("/DCSW2_PROBE_IOUTP/MINUS") 9.5e-05 0.000195)) - (I_total / 32)) plot( snapshot\:DCSW2_Ierr_total ?expr '( "snapshot:DCSW2_Ierr_total" ) ) DC\:CS0_V_source2_int_node = VDC("/BBCAL_CS0/source2_int_node_0V45") plot( DC\:CS0_V_source2_int_node ?expr '( "DC:CS0_V_source2_int_node" ) ) snapshot\:CS1_Ierr_precal = average(clip((IT("/IOUT_PROBE_CS1/PLUS") - (I_total / 64)) 1.1e-05 1.4e-05)) plot( snapshot\:CS1_Ierr_precal ?expr '( "snapshot:CS1_Ierr_precal" ) ) snapshot\:CS3_Ierr_precal = average(clip((IT("/IOUT_PROBE_CS3/PLUS") - (I_total / 16)) 1.1e-05 1.4e-05)) plot( snapshot\:CS3_Ierr_precal ?expr '( "snapshot:CS3_Ierr_precal" ) ) snapshot\:CS4_Ierr_precal = average(clip((IT("/IOUT_PROBE_CS4/PLUS") - (I_total / 8)) 1.1e-05 1.4e-05)) plot( snapshot\:CS4_Ierr_precal ?expr '( "snapshot:CS4_Ierr_precal" ) ) v\ \/BBCAL_CS3\/CS3_CON_S2_L\;\ tran\ \(V\) = vtime('tran "/BBCAL_CS3/CS3_CON_S2_L") plot( v\ \/BBCAL_CS3\/CS3_CON_S2_L\;\ tran\ \(V\) ?expr '( "v /BBCAL_CS3/CS3_CON_S2_L; tran (V)" ) ) DC\:CS5_V_source2_int_node = VDC("/BBCAL_CS5/source2_int_node_0V45") plot( DC\:CS5_V_source2_int_node ?expr '( "DC:CS5_V_source2_int_node" ) ) snapshot\:DCSW3_Ierr_total = (average(clip(IT("/DCSW3_PROBE_IOUTP/MINUS") 9.5e-05 0.000195)) - (I_total / 16)) plot( snapshot\:DCSW3_Ierr_total ?expr '( "snapshot:DCSW3_Ierr_total" ) ) i\ \/IOUT_PROBE_CS0\/PLUS\;\ tran\ \(I\) = itime('tran "/IOUT_PROBE_CS0/PLUS") plot( i\ \/IOUT_PROBE_CS0\/PLUS\;\ tran\ \(I\) ?expr '( "i /IOUT_PROBE_CS0/PLUS; tran (I)" ) ) i\ \/BBCAL_CS2\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) = (16 * itime('tran "/BBCAL_CS2/IPROBE_CS1/PLUS")) plot( i\ \/BBCAL_CS2\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) ?expr '( "i /BBCAL_CS2/IPROBE_CS1/PLUS; tran (I)" ) ) tran\:Ierr_CS6 = (IT("/IOUT_PROBE_CS6/PLUS") - 2e-05) plot( tran\:Ierr_CS6 ?expr '( "tran:Ierr_CS6" ) ) snapshot\:CS5_Ierr_postcal = average(clip((IT("/IOUT_PROBE_CS5/PLUS") - (I_total / 4)) 9.6e-05 9.9e-05)) plot( snapshot\:CS5_Ierr_postcal ?expr '( "snapshot:CS5_Ierr_postcal" ) ) i\ \/IOUT_PROBE_CS2\/PLUS\;\ tran\ \(I\) = itime('tran "/IOUT_PROBE_CS2/PLUS") plot( i\ \/IOUT_PROBE_CS2\/PLUS\;\ tran\ \(I\) ?expr '( "i /IOUT_PROBE_CS2/PLUS; tran (I)" ) ) i\ \/BBCAL_CS0\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) = (64 * itime('tran "/BBCAL_CS0/IPROBE_CS1/PLUS")) plot( i\ \/BBCAL_CS0\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) ?expr '( "i /BBCAL_CS0/IPROBE_CS1/PLUS; tran (I)" ) ) snapshot\:CS2_Ierr_postcal = average(clip((IT("/IOUT_PROBE_CS2/PLUS") - (I_total / 32)) 9.6e-05 9.9e-05)) plot( snapshot\:CS2_Ierr_postcal ?expr '( "snapshot:CS2_Ierr_postcal" ) ) snapshot\:CS1_Ierr_postcal = average(clip((IT("/IOUT_PROBE_CS1/PLUS") - (I_total / 64)) 9.6e-05 9.9e-05)) plot( snapshot\:CS1_Ierr_postcal ?expr '( "snapshot:CS1_Ierr_postcal" ) ) snapshot\:CS6_Ierr_precal = average(clip((IT("/IOUT_PROBE_CS6/PLUS") - (I_total / 2)) 1.1e-05 1.4e-05)) plot( snapshot\:CS6_Ierr_precal ?expr '( "snapshot:CS6_Ierr_precal" ) ) i\ \/BBCAL_CS3\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) = (8 * itime('tran "/BBCAL_CS3/IPROBE_CS1/PLUS")) plot( i\ \/BBCAL_CS3\/IPROBE_CS1\/PLUS\;\ tran\ \(I\) ?expr '( "i /BBCAL_CS3/IPROBE_CS1/PLUS; tran (I)" ) ) i\ \/IOUT_PROBE_CS6\/PLUS\;\ tran\ \(I\) = itime('tran "/IOUT_PROBE_CS6/PLUS") plot( i\ \/IOUT_PROBE_CS6\/PLUS\;\ tran\ \(I\) ?expr '( "i /IOUT_PROBE_CS6/PLUS; tran (I)" ) ) plot( VDC("/net051") ) plot( IDC("/N19/d") ) plot( VDC("/Vb_cal") ) plot( VDC("/source_ref_in") ) plot( VDC("/cs_outnet") ) plot( VDC("/cm_innet") ) plot( (64 * IT("/IOUT_PROBE_CS0/PLUS")) ) plot( (32 * IT("/IOUT_PROBE_CS1/PLUS")) ) plot( (16 * IT("/IOUT_PROBE_CS2/PLUS")) ) plot( (8 * IT("/IOUT_PROBE_CS3/PLUS")) ) plot( (4 * IT("/IOUT_PROBE_CS4/PLUS")) ) plot( (2 * IT("/IOUT_PROBE_CS5/PLUS")) ) plot( (1 * IT("/IOUT_PROBE_CS6/PLUS")) )