MC_ring.sp: start with batch mode or interactive mode
with variable $batchmode
This commit is contained in:
parent
9ae9968902
commit
8a12c46c57
|
|
@ -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
|
||||
********************************************************************************
|
||||
|
|
|
|||
Loading…
Reference in New Issue