From 8a12c46c57c47127ce60c6fdd7607ac74bee169d Mon Sep 17 00:00:00 2001 From: h_vogt Date: Tue, 29 Mar 2016 21:54:25 +0200 Subject: [PATCH] MC_ring.sp: start with batch mode or interactive mode with variable $batchmode --- examples/Monte_Carlo/MC_ring.sp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/examples/Monte_Carlo/MC_ring.sp b/examples/Monte_Carlo/MC_ring.sp index 58e5c141f..884c04782 100644 --- a/examples/Monte_Carlo/MC_ring.sp +++ b/examples/Monte_Carlo/MC_ring.sp @@ -1,5 +1,9 @@ Perform Monte Carlo simulation in ngspice -* 25 stage Ring-Osc. BSIM3 +* 25 stage Ring-Osc. BSIM3 with statistical variation of various model parameters +* cd into ngspice/examples/Monte_Carlo +* start in interactive mode 'ngspice MC_ring.sp' with several plots for output +* or start in batch mode, controlled by .control section (Control mode) +* with 'ngspice -b -r MC_ring.raw -o MC_ring.log MC_ring.sp'. vin in out dc 0.5 pulse 0.5 0 0.1n 5n 1 1 1 vdd dd 0 dc 3.3 @@ -138,6 +142,15 @@ cout buf ss 0.2pF let run = run + 1 end ***** plotting ********************************************************** +if $?batchmode + echo + echo Plotting not available in batch mode + echo Write linearized vout0 to vout{$mc_runs} to rawfile $rawfile + echo + write $rawfile {$plot_out}.allv + rusage + quit +else * plot {$plot_out}.allv plot {$plot_out}.vout0 $ just plot the tran output with nominal parameters * setplot $plot_fft @@ -173,11 +186,12 @@ cout buf ss 0.2pF end * plot the histogram set plotstyle=combplot - plot yvec-1 vs xvec $ subtract 1 because with started with unitvec containing ones + plot yvec-1 vs xvec $ subtract 1 because we started with unitvec containing ones * calculate jitter let diff40 = (vecmax(halfffts) - vecmin(halfffts))*1e-6 echo echo Max. jitter is "$&diff40" MHz +end rusage .endc ********************************************************************************