diff options
author | rahulp13 | 2020-03-03 05:31:58 +0530 |
---|---|---|
committer | rahulp13 | 2020-03-03 05:31:58 +0530 |
commit | dfc268e0863c913a1b8726cd54eea3b40caf7c67 (patch) | |
tree | 1cd82634684da5ae86b558d44756189e080545d4 /Windows/spice/share/ngspice | |
parent | fd62c52150c7d1f81da8060b2f5db6b94d174ccf (diff) | |
download | eSim-dfc268e0863c913a1b8726cd54eea3b40caf7c67.tar.gz eSim-dfc268e0863c913a1b8726cd54eea3b40caf7c67.tar.bz2 eSim-dfc268e0863c913a1b8726cd54eea3b40caf7c67.zip |
upgrade ngspice to v31
Diffstat (limited to 'Windows/spice/share/ngspice')
-rw-r--r-- | Windows/spice/share/ngspice/scripts/ciderinit | 23 | ||||
-rw-r--r-- | Windows/spice/share/ngspice/scripts/devaxis | 69 | ||||
-rw-r--r-- | Windows/spice/share/ngspice/scripts/devload | 21 | ||||
-rw-r--r-- | Windows/spice/share/ngspice/scripts/setplot | 64 | ||||
-rw-r--r-- | Windows/spice/share/ngspice/scripts/spectrum | 165 | ||||
-rw-r--r-- | Windows/spice/share/ngspice/scripts/spinit | 27 |
6 files changed, 13 insertions, 356 deletions
diff --git a/Windows/spice/share/ngspice/scripts/ciderinit b/Windows/spice/share/ngspice/scripts/ciderinit deleted file mode 100644 index 56163322..00000000 --- a/Windows/spice/share/ngspice/scripts/ciderinit +++ /dev/null @@ -1,23 +0,0 @@ -*** This is a sample spice/cider initialization file. -alias pl print line -alias pc print col -alias ds display -alias hi history -alias li listing -alias p plot -alias pr print -alias q quit -alias bye quit -alias exit quit -alias so source -alias ld load -alias xg xgraph tmp -alias sp setplot -alias dl devload -alias dx devaxis -set width = 80 height = 24 nosort noaskquit nobreak -set xbrushheight = 3 xbrushwidth = 3 -set unixcom -set hcopydevtype = postscript -set pointstyle = markers -set term = vt100 diff --git a/Windows/spice/share/ngspice/scripts/devaxis b/Windows/spice/share/ngspice/scripts/devaxis deleted file mode 100644 index 7b3d23f3..00000000 --- a/Windows/spice/share/ngspice/scripts/devaxis +++ /dev/null @@ -1,69 +0,0 @@ -* initialize a device plot -.control -begin - unset axis - if $argc = 1 - set axis = $argv[1] - strcmp flag $axis "x" - if ($flag = 0) - echo "setting axis to x" - strcmp flag "$?&devaxis" "0" - if ($flag = 0) - strcmp flag "$?&xaxis" "0" - if ($flag = 0) - echo "Error: no x axis present" - else - transpose all - setscale xaxis - let devaxis = 1 - end - else - strcmp flag "$&devaxis" "-1" - if ($flag = 0) - strcmp flag "$?&xaxis" "0" - if ($flag = 0) - echo "Error: no x axis present" - else - transpose all - setscale xaxis - let devaxis = 1 - end - end - end - else - strcmp flag $axis "y" - if ($flag = 0) - echo "setting axis to y" - strcmp flag "$?&devaxis" "0" - if ($flag = 0) - strcmp flag "$?&yaxis" "0" - if ($flag = 0) - echo "Error: no y axis present" - else - setscale yaxis - let devaxis = -1 - end - else - strcmp flag "$&devaxis" "1" - if ($flag = 0) - strcmp flag "$?&yaxis" "0" - if ($flag = 0) - echo "Error: no y axis present" - else - transpose all - setscale yaxis - let devaxis = -1 - end - end - end - else - echo "Error: unknown axis" $axis - echo "usage: devaxis <x|y>" - end - end - else - echo "usage: devaxis <x|y>" - end - - unset axis flag -end diff --git a/Windows/spice/share/ngspice/scripts/devload b/Windows/spice/share/ngspice/scripts/devload deleted file mode 100644 index d007fad5..00000000 --- a/Windows/spice/share/ngspice/scripts/devload +++ /dev/null @@ -1,21 +0,0 @@ -* initialize a device plot -.control -begin - unset devfile - if $argc = 1 - set devfile = $argv[1] - load $devfile - strcmp flag "$?&y" "1" - if ($flag = 0) - let yaxis = y[0] - transpose all - let xaxis = x[0] - transpose all - setscale yaxis - end - else - echo "usage: devload <filename>" - end - - unset devfile flag -end diff --git a/Windows/spice/share/ngspice/scripts/setplot b/Windows/spice/share/ngspice/scripts/setplot deleted file mode 100644 index 38ca0da1..00000000 --- a/Windows/spice/share/ngspice/scripts/setplot +++ /dev/null @@ -1,64 +0,0 @@ -* set the current working plot -.control - -begin - unset resp - if $argc - set resp = $argv[1] - else - if $?plots = 0 - echo Error: there aren\'t any plots currently loaded. - goto bottom - else - if $#plots = 0 - echo Error: there aren\'t any plots currently loaded. - goto bottom - end - end - - if $?resp = 0 - set oldplot = $curplot - echo ' Type the name of the desired plot:' - echo '' - echo ' new New plot' - foreach pl $plots - set curplot = $pl - strcmp i $pl $oldplot - if $i = 0 - echo "Current $pl $curplottitle ({$curplotname})" - else - echo " $pl $curplottitle ({$curplotname})" - end - end - set curplot = $oldplot - echo -n '? ' - set resp = $< - end - end - - - strcmp i $resp "" - if $i = 0 - goto bottom - end - - strcmp i $resp new - if $i = 0 - set curplot = new - goto bottom - end - - foreach pl $plots - strcmp i $resp $pl - if $i = 0 - set curplot = $pl - goto bottom - end - end - - echo Error: no such plot name $resp - - label bottom - - unset resp i pl newflag oldplot -end diff --git a/Windows/spice/share/ngspice/scripts/spectrum b/Windows/spice/share/ngspice/scripts/spectrum deleted file mode 100644 index 3e394432..00000000 --- a/Windows/spice/share/ngspice/scripts/spectrum +++ /dev/null @@ -1,165 +0,0 @@ -* Fourier Series Function for SPICE -* This script is offered here for learning purposes, even if it is outdated -* and superseeded by the spec function and especially by the much faster fft function. -* You may use this script in conjunction with e.g. a ringoscillator output (see -* the ngspice manual, chapter 17). - -.control - begin - -* Variable argc delivers the number of command line parameters given by the user -* after the 'spectrum' command - if ($argc lt 4) - echo Error: Too few arguments. - echo ' 'Spectrum produces a plot containing a fourier series transformation of - echo ' 'the specified vectors - echo usage: spectrum startfreq stop step vec [[vec] ...] - goto bottom - end - -* Check if vectors 'time' and any input vector(s) are available -* argv[n] delivers the command line entries after the 'spectrum' command, -* starting with argv[1]. $argv[4-len] delivers the value of all tokens, -* starting with postion 4 till the end of the command line - if ( time eq time ) - foreach vec $argv[4-len] - if ( $vec eq $vec ) - else - goto bottom - end - end - else - echo ' 'Spectrum can not work without a time vector from a transient analysis. - goto bottom - end - - * generate a new plot entitled 'scratch', which will hold intermediate - * results and will be discarded after their evaluation. - set dt=$curplot - set title=$curplottitle - set curplot=new - set scratch=$curplot - - * A vector 'span' is created in the 'scratch' plot to hold the time difference - * of the transient simulation. {$dt}.time allows to access the 'time' vector - * from the dt plot (which is normally named 'tranx' with x a consecutoive - * integer number, depending on the amount of transient simulations already run - * in the present job. - let span={$dt}.time[length({$dt}.time)-1]-{$dt}.time[0] - -* Calculate the number of steps in all of the spectra to be evaluated below - if ($argv[3] gt 0.999/span) - let fpoints= ( $argv[2] - $argv[1] ) / $argv[3] +1 - if (fpoints < 2) - echo frequency start stop or step not correctly specified - goto reset - end - else - echo Error: time span is not long enough for a step frequency of $argv[3] Hz - goto reset - end - let lent = length({$dt}.time) - set lent = "$&lent" - let nyquist = {$lent}/2/span - if ($argv[2] gt nyquist) - echo Error: The nyquist limit is exceeded, try a frequency less than "$&nyquist" Hz - goto reset - end - set fpoints="$&fpoints" - - * generate a new plot to hold the spectra - set curplot=new - set spec=$curplot - set curplottitle=$title - set curplotname='Spectrum Analysis' - -* argv[3] is the third agrgument from the input line -* spectrum 1 1000MEG 10MEG v(out25) -* that is the delta frequency -* The fcn vector(n) creates a vector of length n, its elements have -* the values 0, 1, 2, 3, ..., n-2, n-1. Each element then is multiplied -* with the frequency step value. - let frequency=vector( $fpoints )*$argv[3] - -* Add an frequency offset to each element of vector 'frequency' -* to suppress the (typically) large dc component. - dowhile frequency[1] < ( $argv[1] + 1e-9 ) - let frequency = frequency + $argv[3] - end - -* For each input vector given on the command line, -* create a new vector for complex numbers - foreach vec $argv[4-len] - let $vec = vector( $fpoints ) + j(vector( $fpoints )) - reshape $vec [{$fpoints}] - end - -* $scratch is a plot for intermediate results, will be destroyed during cleanup -* $dt is the plot with the original data -* $spec is a plot for storing the spectrum - set curplot=$scratch - - * some test - let npers=1 - let test = span-2/$argv[3] + 1e-9 - while test > 0 - let npers = npers + 1 - let test = test-1/$argv[3] - end - - * Do the spectrum calculations - let ircle = 2*pi*max(-1,({$dt}.time-{$dt}.time[{$lent}-1])*{$argv[3]}/npers) - let win = 1 - cos(ircle) - let ircle = npers*ircle - let circle = ircle * ({$spec}.frequency[0]/$argv[3] - 1) - let k=vector( $fpoints ) - foreach k $&k - let circle = circle + ircle - foreach vec $argv[4-len] - let tmp = win*{$dt}.{$vec} - let {$spec}.{$vec}[{$k}] = 2*(mean(cos(circle)*tmp),mean(sin(circle)*tmp)) - end - end - -* plot (and write) the generated spectrum - set curplot = $spec - settype frequency frequency - foreach vec $argv[4-len] - let spectrum = mag({$vec}) - plot spectrum - write specout.out spectrum - end - -* If you have an oscillator, fimd its frequency -* as maximum of vector spectrum or goto end (uncomment next line) -* goto cleanup - set curplot=$scratch - let counter = 0 - let contents = 0 - let freqmax = 0 - let spectrum = {$spec}.spectrum - - foreach spectrum $&spectrum - if counter > 4 - if ( contents < $spectrum ) - let contents = $spectrum - set count = "$&counter" - let freqmax = {$spec}.frequency[{$count}] - end - end - let counter = counter + 1 - end - - echo - echo Osc. frequency at "$&freqmax" Hz - echo - goto cleanup - - label reset - set curplot=$dt - label cleanup - destroy $scratch - unset fpoints dt scratch spec vec k title lent - label bottom - - end diff --git a/Windows/spice/share/ngspice/scripts/spinit b/Windows/spice/share/ngspice/scripts/spinit index ed5cd0e6..d9678dc2 100644 --- a/Windows/spice/share/ngspice/scripts/spinit +++ b/Windows/spice/share/ngspice/scripts/spinit @@ -4,28 +4,27 @@ alias acct rusage all set x11lineararcs *set rndseed=12 ** ascii rawfile ** -*set filetype=ascii +set filetype=ascii ** frontend debug output ** *set ngdebug -** no asking after quit ** -set noaskquit +** asking after quit ** +*set askquit ** set the number of threads in openmp ** default (if compiled with --enable-openmp) is: 2 -*set num_threads=4 +set num_threads=4 +set interactive +set stepsizelimit strcmp __flag $program "ngspice" if $__flag = 0 -* For SPICE2 POLYs, edit the below line to point to the location -* of your codemodel. - - codemodel C:/Spice/lib/ngspice/spice2poly.cm - -* The other codemodels - codemodel C:/Spice/lib/ngspice/analog.cm - codemodel C:/Spice/lib/ngspice/digital.cm - codemodel C:/Spice/lib/ngspice/xtradev.cm - codemodel C:/Spice/lib/ngspice/xtraevt.cm +* Load the codemodels + codemodel ../lib/ngspice/spice2poly.cm + codemodel ../lib/ngspice/analog.cm + codemodel ../lib/ngspice/digital.cm + codemodel ../lib/ngspice/xtradev.cm + codemodel ../lib/ngspice/xtraevt.cm + codemodel ../lib/ngspice/table.cm end unset __flag |