This shows you the differences between two versions of the page.
— |
geda:ngnutmeg_mp [2012/02/20 15:14] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== ngnutmeg man-page ====== | ||
+ | <code>NUTMEG(1) NUTMEG(1) | ||
+ | |||
+ | |||
+ | NAME | ||
+ | nutmeg - spice post-processor | ||
+ | |||
+ | SYNOPSIS | ||
+ | nutmeg [ - ] [ -n ] [ -t term ] [ datafile ... ] | ||
+ | |||
+ | DESCRIPTION | ||
+ | Nutmeg is a post processor for SPICE - it takes the raw output file | ||
+ | created by spice -r and plots the data on a graphics terminal or a | ||
+ | workstation display. Note that the raw output file is different from | ||
+ | the data that SPICE writes to the standard output. | ||
+ | |||
+ | Arguments are: | ||
+ | |||
+ | - Don’t try to load the default data file ("rawspice") if no other | ||
+ | files are given. | ||
+ | |||
+ | -n (or --no-spiceinit) | ||
+ | Don’t try to source the file ".spiceinit" upon startup. Normally | ||
+ | nutmeg tries to find the file in the current directory, and if | ||
+ | it is not found then in the user’s home directory. | ||
+ | |||
+ | -t term (or --term=term) | ||
+ | The program is being run on a terminal with mfb name term. | ||
+ | |||
+ | -h (or --help) | ||
+ | Display a verbose help on the arguments available to the pro- | ||
+ | gram. | ||
+ | |||
+ | -v (or --version) | ||
+ | Display a version number and copyright information of the pro- | ||
+ | gram. | ||
+ | |||
+ | Further arguments are taken to be data files in binary or ascii format | ||
+ | (see sconvert(1)) which are loaded into nutmeg. If the file is in | ||
+ | binary format, it may be only partially completed (useful for examining | ||
+ | SPICE ouput before the simulation is finished). One file may contain | ||
+ | any number of data sets from different analyses. | ||
+ | |||
+ | Nutmeg data is in the form of vectors: time, voltage, etc. Each vector | ||
+ | has a type, and vectors can be operated on and combined algebraicly in | ||
+ | ways consistent with their types. Vectors are normally created when a | ||
+ | data file is read in (see the load command below), and when the initial | ||
+ | datafile is loaded. They can also be created with the let command. | ||
+ | |||
+ | An expression is an algebraic formula involving vectors and scalars (a | ||
+ | scalar is a vector of length 1), and the following operations: | ||
+ | |||
+ | +, -, *, %, /, ^, and ,. | ||
+ | |||
+ | % is the modulo operator, and the comma operator has two meanings: if | ||
+ | it is present in the argument list of a user-definable function, it | ||
+ | serves to seperate the arguments. Otherwise, the term x , y is synony- | ||
+ | mous with x + j(y). | ||
+ | |||
+ | Also available are the logical operations & (and), | (or), ! (not), and | ||
+ | the relational operations <, >, >=, <=, =, and <> (not equal). If used | ||
+ | in an algebraic expression they work like they would in C, producing | ||
+ | values of 0 or 1. The relational operators have the following syn- | ||
+ | onyms: "gt" is >, "lt" is <, "ge" is >=, "le" is <=, "ne" is <>, "eq" | ||
+ | is =, "and" is &, "or" is |, and "not" is !. These are useful when < | ||
+ | and > might be confused with IO redirection (which is almost always). | ||
+ | |||
+ | The following functions are available: | ||
+ | |||
+ | mag(vector) - The magnitude of vector. | ||
+ | |||
+ | ph(vector) - The phase of vector. | ||
+ | |||
+ | j(vector) - i (sqrt(-1)) times vector. | ||
+ | |||
+ | real(vector) - The real component of vector. | ||
+ | |||
+ | imag(vector) - The imaginary part of vector. | ||
+ | |||
+ | db(vector) - 20 * log10(mag(vector)). | ||
+ | |||
+ | log(vector) - The logarithm (base 10) of the vector. | ||
+ | |||
+ | ln(vector) - The natural logarithm (base e) of vector. | ||
+ | |||
+ | exp(vector) - e to the vector power. | ||
+ | |||
+ | abs(vector) - The absolute value of vector. | ||
+ | |||
+ | sqrt(vector) - The square root of vector. | ||
+ | |||
+ | sin(vector) - The sin of vector. | ||
+ | |||
+ | cos(vector) - The cosine of vector. | ||
+ | |||
+ | tan(vector) - The tangent of vector. | ||
+ | |||
+ | atan(vector) - The inverse tangent of vector. | ||
+ | |||
+ | norm(vector) - The vector normalized to 1 (i.e, the largest mag- | ||
+ | nitude of any component will be 1). | ||
+ | |||
+ | rnd(vector) - A vector with each component a random integer | ||
+ | between 0 and the absolute value of the vectors’s corresponding | ||
+ | component. | ||
+ | |||
+ | mean(vector) - The result is a scalar (a length 1 vector) that | ||
+ | is the mean of the elements of vector. | ||
+ | |||
+ | vector(number) - The result is a vector of length number, with | ||
+ | elements 0, 1, ... number - 1. If number is a vector then just | ||
+ | the first element is taken, and if it isn’t an integer then the | ||
+ | floor of the magnitude is used. | ||
+ | |||
+ | length(vector) - The length of vector. | ||
+ | |||
+ | interpolate(plot.vector) - The result of interpolating the named | ||
+ | vector onto the scale of the current plot. This function uses | ||
+ | the variable polydegree to determine the degree of interpola- | ||
+ | tion. | ||
+ | |||
+ | A vector may be either the name of a vector already defined, a float- | ||
+ | ing- point number (a scalar), or a list like [elt1 elt2 ... eltn], | ||
+ | which is a vector of length n. A number may be written in any format | ||
+ | acceptable to SPICE, such as 14.6MEG or -1.231E-4. Note that you can | ||
+ | either use scientific notation or one of the abbreviations like MEG or | ||
+ | G, but not both. As with SPICE, a number may have trailing alphabetic | ||
+ | characters after it. | ||
+ | |||
+ | The notation expr [lower upper], where lower and upper are numbers, | ||
+ | denotes the range of elements from expr between lower and upper. The | ||
+ | notation expr [num] denotes the num’th element of expr. If upper is | ||
+ | lower than lower, the order of the elements in the vector is reversed. | ||
+ | In all other cases, [ and ] serve to surround literal vectors as | ||
+ | described above. (You may have to use a lot of parentheses to make | ||
+ | sure that you get what you want. For instance, you have to type print | ||
+ | (foo) ([1 2]) to print the two vectors. Otherwise it will be inter- | ||
+ | preted as a function call or a vector with an index.) Note that the | ||
+ | expression foo[10 20][5] will not yield the 15th element of foo, but | ||
+ | rather the 5th. In general only the last index suffix on an expression | ||
+ | will take effect. | ||
+ | |||
+ | To reference vectors in a plot that is not the current plot (see the | ||
+ | setplot command, below), the notation plotname.vecname can be used. | ||
+ | |||
+ | Either a plotname or a vector name may be the wildcard all. If the | ||
+ | plotname is all, matching vectors from all plots are specified, and if | ||
+ | the vector name is all, all vectors in the specified plots are refer- | ||
+ | enced. Note that you may not use binary operations on expressions | ||
+ | involving wildcards - it is not obvious what all + all should denote, | ||
+ | for instance. | ||
+ | |||
+ | Thus some (contrived) examples of expressions are: | ||
+ | |||
+ | cos(TIME) + db(v(3)) | ||
+ | |||
+ | sin(cos(log([1 2 3 4 5 6 7 8 9 10]))) | ||
+ | |||
+ | TIME * rnd(v(9)) - 15 * cos(vin#branch) ^ [7.9e5 8] | ||
+ | |||
+ | not ((ac3.FREQ[32] & tran1.TIME[10]) gt 3) | ||
+ | |||
+ | Nutmeg commands are as follows: | ||
+ | |||
+ | plot exprs [ylimit ylo yhi] [xlimit xlo xhi] [xindices xilo xihi] | ||
+ | [xcompress comp] [xdelta xdel] [ydelta ydel] [xlog] [ylog] [vs xname] | ||
+ | [xlabel word] [ylabel word] [title word] [samep] | ||
+ | Plot the given exprs on the screen (if you are on a graphics | ||
+ | terminal). The xlimit and ylimit arguments determine the high | ||
+ | and low x- and y-limits of the axes, respectively. The xindices | ||
+ | arguments determine what range of points are to be plotted - | ||
+ | everything between the xilo’th point and the xihi’th point is | ||
+ | plotted. The xcompress argument specifies that only one out of | ||
+ | every comp points should be plotted. If an xdelta or a ydelta | ||
+ | parameter is present, it specifies the spacing between grid | ||
+ | lines on the X- and Y-axis. These parameter names may be abbre- | ||
+ | viated to xl, yl, xind, xcomp, xdel, and ydel respectively. The | ||
+ | xname argument is an expression to use as the scale on the x- | ||
+ | axis. If xlog or ylog are present, the X or Y scale respec- | ||
+ | tively will be logarithmic. The xlabel and ylabel arguments | ||
+ | cause the specified labels to be used for the X and Y axes, | ||
+ | respectively. If samep is given, the values of the other param- | ||
+ | eters (other than xname) from the previous plot, hardcopy, or | ||
+ | asciiplot command will be used unless re-defined on the command | ||
+ | line. Finally, the title argument will be used in the place of | ||
+ | the plot name at the bottom of the graph. | ||
+ | |||
+ | hardcopy file plotargs | ||
+ | Just like plot, except creates a file called file containing the | ||
+ | plot. The file is an image in plot(5) format, and can be | ||
+ | printed by either the plot(1) program or lpr with the -g flag. | ||
+ | |||
+ | asciiplot plotargs | ||
+ | Produce a line printer plot of the vectors. The plot is sent to | ||
+ | the standard output, so you can put it into a file with asci- | ||
+ | iplot args ... > file. The set options width, height, and | ||
+ | nobreak determine the width and height of the plot, and whether | ||
+ | there are page breaks, respectively. Note that you will have | ||
+ | problems if you try to asciiplot something with an X-scale that | ||
+ | isn’t monotonic (i.e, something like sin(TIME) ), because asci- | ||
+ | iplot uses a simple-minded sort of linear interpolation. | ||
+ | |||
+ | define function(arg1, arg2, ...) expression | ||
+ | Define the user-definable function with the name function and | ||
+ | arguments arg1, arg2, ... to be expression, which may involve | ||
+ | the arguments. When the function is later used, the arguments it | ||
+ | is given are substituted for the formal arguments when it is | ||
+ | parsed. If expression is not present, any definition for func- | ||
+ | tion is printed, and if there are no arguments to define then | ||
+ | all currently active definitions are printed. Note that you may | ||
+ | have different functions defined with the same name but differ- | ||
+ | ent arities. Some useful definitions are: | ||
+ | |||
+ | define max(x,y) (x > y) * x + (x <= y) * y | ||
+ | define min(x,y) (x < y) * x + (x >= y) * y | ||
+ | |||
+ | undefine function ... | ||
+ | Definitions for the named user-defined functions are deleted. | ||
+ | |||
+ | let name = expr | ||
+ | Creates a new vector called name with the value specified by | ||
+ | expr, an expression as described above. If expr is [] (a zero- | ||
+ | length vector) then the vector becomes undefined. If there are | ||
+ | no arguments, let is the same as display. | ||
+ | |||
+ | print [col] [line] expr ... | ||
+ | Prints the vector described by the expression expr. If the col | ||
+ | argument is present, print the vectors named side by side. If | ||
+ | line is given, the vectors are printed horizontally. col is the | ||
+ | default, unless all the vectors named have a length of one, in | ||
+ | which case line is the default. The options width, length, and | ||
+ | nobreak are effective for this command (see asciiplot). If the | ||
+ | expression is all, all of the vectors available are printed. | ||
+ | Thus print col all > file will print everything in the file in | ||
+ | SPICE2 format. The scale vector (time, frequency) will always | ||
+ | be in the first column unless the variable noprintscale is true. | ||
+ | |||
+ | load [filename] ... | ||
+ | Loads the raw data in either binary or ascii format from the | ||
+ | files named. The default filename is rawspice, or the argument | ||
+ | to the -r flag if there was one. | ||
+ | |||
+ | source filename | ||
+ | Reads commands from the file filename. Lines beginning with the | ||
+ | character * are considered comments and ignored. | ||
+ | |||
+ | help [all] [command ...] | ||
+ | Prints help. If the argument all is given, a short description | ||
+ | of everything you could possibly type is printed. If commands | ||
+ | are given, descriptions of those commands are printed. Other- | ||
+ | wise help for only a few major commands is printed. | ||
+ | |||
+ | display [varname ...] | ||
+ | Prints a summary of currently defined vectors, or of the names | ||
+ | specified. The vectors are sorted by name unless the variable | ||
+ | nosort is set. The information given is the name of the vector, | ||
+ | the length, the type of the vector, and whether it is real or | ||
+ | complex data. Additionally, one vector will be labeled [scale]. | ||
+ | When a command such as plot is given without a vs argument, this | ||
+ | scale is used for the X-axis. It is always the first vector in a | ||
+ | rawfile, or the first vector defined in a new plot. If you unde- | ||
+ | fine the scale (i.e, let TIME = []), a random remaining vector | ||
+ | will become the scale. | ||
+ | |||
+ | setplot [plotname] | ||
+ | Set the current plot to the plot with the given name, or if no | ||
+ | name is given, prompt the user with a menu. (Note that the | ||
+ | plots are named as they are loaded, with names like tran1 or | ||
+ | op2. These names are shown by the setplot and display commands | ||
+ | and are used by diff, below.) If the "New plot" item is | ||
+ | selected, the current plot will become one with no vectors | ||
+ | defined. Note that here the word "plot" refers to a group of | ||
+ | vectors that are the result of one SPICE run. When more than | ||
+ | one file is loaded in, or more than one plot is present in one | ||
+ | file, nutmeg keeps them seperate and only shows you the vectors | ||
+ | in the current plot. | ||
+ | |||
+ | settype type vector ... | ||
+ | Change the type of the named vectors to type. Type names can be | ||
+ | found in the manual page for sconvert. | ||
+ | |||
+ | diff plot1 plot2 [vec ...] | ||
+ | Compare all the vectors in the specified plots, or only the | ||
+ | named vectors if any are given. There are different vectors in | ||
+ | the two plots, or any values in the vectors differ significantly | ||
+ | the difference is reported. The variables abstol, reltol, and | ||
+ | vntol are used to determine what "significantly" means (see the | ||
+ | SPICE3 User’s Manual). | ||
+ | |||
+ | quit Quit nutmeg. | ||
+ | |||
+ | bug Send a bug report. (If you have defined BUGADDR, the mail will | ||
+ | go there.) | ||
+ | |||
+ | write [file] [exprs] | ||
+ | Writes out the expr’s to file. First vectors are grouped | ||
+ | together by plots, and written out as such. (I.e, if the | ||
+ | expression list contained three vectors from one plot and two | ||
+ | from another, then two plots will be written, one with three | ||
+ | vectors and one with two.) Additionally, if the scale for a | ||
+ | vector isn’t present, it is automatically written out as well. | ||
+ | The default format is ascii, but this can be changed with the | ||
+ | set filetype command. The default filename is rawspice, or the | ||
+ | argument to the -r flag on the command line, if there was one, | ||
+ | and the default expression list is all. | ||
+ | |||
+ | shell [args ...] | ||
+ | Fork a shell, or execute the arguments as a command to the | ||
+ | shell. | ||
+ | |||
+ | alias [word] [text ...] | ||
+ | Causes word to be aliased to text. History substitutions may be | ||
+ | used, as in C-shell aliases. | ||
+ | |||
+ | unalias [word ...] | ||
+ | Removes any aliases present for the words. | ||
+ | |||
+ | history [number] | ||
+ | Print out the history, or the last number commands typed at the | ||
+ | keyboard. Note: in version 3a7 and earlier, all commands | ||
+ | (including ones read from files) were saved. | ||
+ | |||
+ | set [word] [word = value] ... | ||
+ | Set the value of word to be value, if it is present. You can | ||
+ | set any word to be any value, numeric or string. If no value is | ||
+ | given then the value is the boolean ’true’. The value of word | ||
+ | may be inserted into a command by writing $word. If a variable | ||
+ | is set to a list of values that are enclosed in parentheses | ||
+ | (which must be seperated from their values by white space), the | ||
+ | value of the variable is the list. The variables meaningful to | ||
+ | nutmeg (of which there are too many) are: | ||
+ | |||
+ | abstol | ||
+ | The absolute tolerance used by the diff command. | ||
+ | |||
+ | appendwrite | ||
+ | Append to the file when a write command is issued, if | ||
+ | one already exists. | ||
+ | |||
+ | colorN | ||
+ | These variables determine the colors used, if X is | ||
+ | being run on a color display. N may be between 0 and | ||
+ | 15. Color 0 is the background, color 1 is the grid and | ||
+ | text color, and colors 2 through 15 are used in order | ||
+ | for vectors plotted. The value of the color variables | ||
+ | should be names of colors, which may be found in the | ||
+ | file /usr/lib/rgb.txt. | ||
+ | |||
+ | combplot | ||
+ | Plot vectors by drawing a vertical line from each point | ||
+ | to the X-axis, as opposed to joining the points. Note | ||
+ | that this option is subsumed in the plottype option, | ||
+ | below. | ||
+ | |||
+ | cpdebug | ||
+ | Print cshpar debugging information. (Must be complied | ||
+ | with the -DCPDEBUG flag.) | ||
+ | |||
+ | debug | ||
+ | If set then a lot of debugging information is printed. | ||
+ | (Must be compiled with the -DFTEDEBUG flag.) | ||
+ | |||
+ | device | ||
+ | The name (/dev/tty??) of the graphics device. If this | ||
+ | variable isn’t set then the user’s terminal is used. To | ||
+ | do plotting on another monitor you will probably have | ||
+ | to set both the device and term variables. (If device | ||
+ | is set to the name of a file, nutmeg will dump the | ||
+ | graphics control codes into this file -- this is useful | ||
+ | for saving plots.) | ||
+ | |||
+ | echo | ||
+ | Print out each command before it is executed. | ||
+ | |||
+ | filetype | ||
+ | This can be either ascii or binary, and determines what | ||
+ | the format of rawfiles will be. The default is ascii. | ||
+ | |||
+ | fourgridsize | ||
+ | How many points to use for interpolating into when | ||
+ | doing fourier analysis. | ||
+ | |||
+ | gridsize | ||
+ | If this variable is set to an integer, this number will | ||
+ | be used as the number of equally spaced points to use | ||
+ | for the Y-axis when plotting. Otherwise the current | ||
+ | scale will be used (which may not have equally spaced | ||
+ | points). If the current scale isn’t strictly mono- | ||
+ | tonic, then this option will have no effect. | ||
+ | |||
+ | hcopydev | ||
+ | If this is set, when the hardcopy command is run the | ||
+ | resulting file is automatically printed on the printer | ||
+ | named hcopydev with the command lpr -Phcopydev -g file. | ||
+ | |||
+ | hcopydevtype | ||
+ | This variable specifies the type of the printer output | ||
+ | to use in the hardcopy command. If hcopydevtype is not | ||
+ | set, plot (5) format is assumed. The standard distri- | ||
+ | bution currently recognizes postscript as an alterna- | ||
+ | tive output format. When used in conjunction with | ||
+ | hcopydev, hcopydevtype should specify a format sup- | ||
+ | ported by the printer. | ||
+ | |||
+ | height | ||
+ | The length of the page for asciiplot and print col. | ||
+ | |||
+ | history | ||
+ | The number of events to save in the history list. | ||
+ | |||
+ | nfreqs | ||
+ | The number of frequencies to compute in the fourier | ||
+ | command. (Defaults to 10.) | ||
+ | |||
+ | nobreak | ||
+ | Don’t have asciiplot and print col break between pages. | ||
+ | |||
+ | noasciiplotvalue | ||
+ | Don’t print the first vector plotted to the left when | ||
+ | doing an asciiplot. | ||
+ | |||
+ | noclobber | ||
+ | Don’t overwrite existing files when doing IO redirec- | ||
+ | tion. | ||
+ | |||
+ | noglob | ||
+ | Don’t expand the global characters ‘*’, ‘?’, ‘[’, and | ||
+ | ‘]’. This is the default. | ||
+ | |||
+ | nogrid | ||
+ | Don’t plot a grid when graphing curves (but do label | ||
+ | the axes). | ||
+ | |||
+ | nomoremode | ||
+ | If nomoremode is not set, whenever a large amount of | ||
+ | data is being printed to the screen (e.g, the print or | ||
+ | asciiplot commands), the output will be stopped every | ||
+ | screenful and will continue when a carriage return is | ||
+ | typed. If nomoremode is set then data will scroll off | ||
+ | the screen without hesitation. | ||
+ | |||
+ | nonomatch | ||
+ | If noglob is unset and a global expression cannot be | ||
+ | matched, use the global characters literally instead of | ||
+ | complaining. | ||
+ | |||
+ | nosort | ||
+ | Don’t have display sort the variable names. | ||
+ | |||
+ | noprintscale | ||
+ | Don’t print the scale in the leftmost column when a | ||
+ | print col command is given. | ||
+ | |||
+ | numdgt | ||
+ | The number of digits to print when printing tables of | ||
+ | data (fourier, print col). The default precision is 6 | ||
+ | digits. On the VAX, approximately 16 decimal digits | ||
+ | are available using double precision, so numdgt should | ||
+ | not be more than 16. If the number is negative, one | ||
+ | fewer digit is printed to ensure constant widths in | ||
+ | tables. | ||
+ | |||
+ | plottype | ||
+ | This should be one of normal, comb, or point:chars. | ||
+ | normal, the default, causes points to be plotted as | ||
+ | parts of connected lines. comb causes a comb plot to | ||
+ | be done (see the description of the combplot variable | ||
+ | above). point causes each point to be plotted seper- | ||
+ | ately - the chars are a list of characters that will be | ||
+ | used for each vector plotted. If they are omitted then | ||
+ | a default set is used. | ||
+ | |||
+ | polydegree | ||
+ | The degree of the polynomial that the plot command | ||
+ | should fit to the data. If polydegree is N, then nutmeg | ||
+ | will fit a degree N polynomial to every set of N points | ||
+ | and draw 10 intermediate points in between each end- | ||
+ | point. If the points aren’t monotonic, then it will try | ||
+ | rotating the curve and reducing the degree until a fit | ||
+ | is achieved. | ||
+ | |||
+ | polysteps | ||
+ | The number of points to interpolate between every pair | ||
+ | of points available when doing curve fitting. The | ||
+ | default is 10. (This should really be done automati- | ||
+ | cally.) | ||
+ | |||
+ | program | ||
+ | The name of the current program (argv[0]). | ||
+ | |||
+ | prompt | ||
+ | The prompt, with the character ‘!’ replaced by the cur- | ||
+ | rent event number. | ||
+ | |||
+ | rawfile | ||
+ | The default name for rawfiles created. | ||
+ | |||
+ | reltol | ||
+ | The relative tolerance used by the diff command. | ||
+ | |||
+ | rhost | ||
+ | The machine to use for remote SPICE-3 runs, instead of | ||
+ | the default one. (See the description of the rspice | ||
+ | command, below.) | ||
+ | |||
+ | rprogram | ||
+ | The name of the remote program to use in the rspice | ||
+ | command. | ||
+ | |||
+ | slowplot | ||
+ | Stop between each graph plotted and wait for the user | ||
+ | to type return before continuing. | ||
+ | |||
+ | sourcepath | ||
+ | A list of the directories to search when a source com- | ||
+ | mand is given. The default is the current directory | ||
+ | and the standard spice library (/usr/local/lib/spice, | ||
+ | or whatever LIBPATH is #defined to in the source. | ||
+ | |||
+ | spicepath | ||
+ | The program to use for the aspice command. The default | ||
+ | is /cad/bin/spice. | ||
+ | |||
+ | term | ||
+ | The mfb name of the current terminal. | ||
+ | |||
+ | units | ||
+ | If this is degrees, then all the trig functions will | ||
+ | use degrees instead of radians. | ||
+ | |||
+ | unixcom | ||
+ | If a command isn’t defined, try to execute it as a UNIX | ||
+ | command. Setting this option has the effect of giving | ||
+ | a rehash command, below. This is useful for people who | ||
+ | want to use nutmeg as a login shell. | ||
+ | |||
+ | verbose | ||
+ | Be verbose. This is midway between echo and debug / | ||
+ | cpdebug. | ||
+ | |||
+ | vntol | ||
+ | The absolute voltage tolerance used by the diff com- | ||
+ | mand. | ||
+ | |||
+ | width | ||
+ | The width of the page for asciiplot and print col. | ||
+ | |||
+ | xbrushheight | ||
+ | The height of the brush to use if X is being run. | ||
+ | |||
+ | xbrushwidth | ||
+ | The width of the brush to use if X is being run. | ||
+ | |||
+ | xfont | ||
+ | The name of the X font to use when plotting data and | ||
+ | entering labels. The plot may not look entirely great | ||
+ | if this is a variable-width font. | ||
+ | |||
+ | |||
+ | unset [word] ... | ||
+ | Unset the variables word. | ||
+ | |||
+ | shift [varname] [number] | ||
+ | If varname is the name of a list variable, it is shifted to the | ||
+ | left by number elements. (I.e, the number leftmost elements are | ||
+ | removed.) The default varname is argv, and the default number | ||
+ | is 1. | ||
+ | |||
+ | rusage [resource ...] | ||
+ | Print resource usage statistics. If any resources are given, | ||
+ | just print the usage of that resource. Currently valid | ||
+ | resources are: | ||
+ | |||
+ | elapsed | ||
+ | The amount of time elapsed since the last rusage elaped | ||
+ | call. | ||
+ | |||
+ | faults | ||
+ | Number of page faults and context switches (BSD only). | ||
+ | |||
+ | space | ||
+ | Data space used. | ||
+ | |||
+ | time | ||
+ | CPU time used so far. | ||
+ | |||
+ | everything | ||
+ | All of the above. | ||
+ | |||
+ | cd [directory] Change the current working directory to directory, or | ||
+ | to the user’s home directory if none is given. | ||
+ | |||
+ | aspice [output-file] | ||
+ | Start a SPICE-3 run, and when it is finished load the | ||
+ | data. The raw data is kept in a temporary file. If out- | ||
+ | put-file is specified then the diagnostic output is | ||
+ | directed into that file, otherwise it is thrown away. | ||
+ | |||
+ | jobs Report on the asynchronous SPICE-3 jobs currently run- | ||
+ | ning. Nutmeg checks to see if the jobs are finished | ||
+ | every time you execute a command. If it is done then | ||
+ | the data is loaded and becomes available. | ||
+ | |||
+ | rspice [input file] | ||
+ | Runs a SPICE-3 remotely taking the input file as a | ||
+ | SPICE-3 input deck, or the current circuit if no argu- | ||
+ | ment is given. Nutmeg waits for the job to complete, | ||
+ | and passes output from the remote job to the user’s | ||
+ | standard output. When the job is finished the data is | ||
+ | loaded in as with aspice. If the variable rhost is set, | ||
+ | nutmeg will connect to this host instead of the default | ||
+ | remote SPICE-3 server machine. Note that this command | ||
+ | will only work if your system administrator is running | ||
+ | a SPICE-3 daemon on the remote host. If the variable | ||
+ | rprogram is set, then rspice will use this as the path- | ||
+ | name to the program to run. | ||
+ | |||
+ | echo [stuff...] Echos the arguments. | ||
+ | |||
+ | fourier fundamental_frequency [value ...] | ||
+ | Does a fourier analysis of each of the given values, | ||
+ | using the first 10 multiples of the fundamental fre- | ||
+ | quency (or the first nfreqs, if that variable is set - | ||
+ | see below). The output is like that of the .four card. | ||
+ | The values may be any valid expression. The values are | ||
+ | interpolated onto a fixed-space grid with the number of | ||
+ | points given by the fourgridsize variable, or 200 if it | ||
+ | is not set. The interpolation will be of degree poly- | ||
+ | degree if that variable is set, or 1. If polydegree is | ||
+ | 0, then no interpolation will be done. This is likely | ||
+ | to give erroneous results if the time scale is not | ||
+ | monotonic, though. | ||
+ | |||
+ | version [version id] | ||
+ | Print out the version of nutmeg that is running. If | ||
+ | there are arguments, it checks to make sure that the | ||
+ | arguments match the current version of SPICE. (This is | ||
+ | mainly used as a Command: line in rawfiles.) | ||
+ | |||
+ | rehash Recalculate the internal hash tables used when looking | ||
+ | up UNIX commands, and make all UNIX commands in the | ||
+ | user’s PATH available for command completion. This is | ||
+ | useless unless you have set unixcom first (see above). | ||
+ | |||
+ | The following control structures are available: | ||
+ | |||
+ | while condition | ||
+ | statement | ||
+ | ... | ||
+ | end | ||
+ | |||
+ | While condition, an arbitrary algebraic expression, is true, execute | ||
+ | the statements. | ||
+ | |||
+ | repeat [number] | ||
+ | statement | ||
+ | ... | ||
+ | end | ||
+ | |||
+ | Execute the statements number times, or forever if no argument is | ||
+ | given. | ||
+ | |||
+ | dowhile condition | ||
+ | statement | ||
+ | ... | ||
+ | end | ||
+ | |||
+ | The same as while, except that the condition is tested after the | ||
+ | statements are executed. | ||
+ | |||
+ | foreach var value ... | ||
+ | statement | ||
+ | ... | ||
+ | end | ||
+ | |||
+ | The statements are executed once for each of the values, each time with | ||
+ | the variable var set to the current one. (var can be accessed by the | ||
+ | $var notation - see below). | ||
+ | |||
+ | if condition | ||
+ | statement | ||
+ | ... | ||
+ | else | ||
+ | statement | ||
+ | ... | ||
+ | end | ||
+ | |||
+ | If the condition is non-zero then the first set of statements are exe- | ||
+ | cuted, otherwise the second set. The else and the second set of state- | ||
+ | ments may be omitted. | ||
+ | |||
+ | label word | ||
+ | |||
+ | If a statement of the form goto word is encountered, control is trans- | ||
+ | fered to this point, otherwise this is a no-op. | ||
+ | |||
+ | goto word | ||
+ | |||
+ | If a statement of the form label word is present in the block or an | ||
+ | enclosing block, control is transfered there. Note that if the label | ||
+ | is at the top level, it must be before the goto statement (i.e, a for- | ||
+ | ward goto may occur only within a block). | ||
+ | |||
+ | continue | ||
+ | |||
+ | If there is a while, dowhile, or foreach block enclosing this state- | ||
+ | ment, control passes to the test, or in the case of foreach, the next | ||
+ | value is taken. Otherwise an error results. | ||
+ | |||
+ | break | ||
+ | |||
+ | If there is a while, dowhile, or foreach block enclosing this state- | ||
+ | ment, control passes out of the block. Otherwise an error results. | ||
+ | |||
+ | Of course, control structures may be nested. When a block is entered | ||
+ | and the input is the terminal, the prompt becomes a number of >’s | ||
+ | equalling the number of blocks the user has entered. The current con- | ||
+ | trol structures may be examined with the debugging command cdump. | ||
+ | |||
+ | If a word is typed as a command, and there is no built-in command with | ||
+ | that name, the directories in the sourcepath list are searched in order | ||
+ | for the file. If it is found, it is read in as a command file (as if | ||
+ | it were sourced). Before it is read, however, the variables argc and | ||
+ | argv are set to the number of words following the filename on the com- | ||
+ | mand line, and a list of those words respectively. After the file is | ||
+ | finished, these variables are unset. Note that if a command file calls | ||
+ | another, it must save its argv and argc since they will get altered. | ||
+ | Also, command files may not be re-entrant since there are no local | ||
+ | variables. (Of course, the procedures may explicitly manipulate a | ||
+ | stack...) This way one can write scripts analogous to shell scripts | ||
+ | for nutmeg and . Note that for the script to work with , it must begin | ||
+ | with a blank line (or whatever you like, since it will be thrown away) | ||
+ | and then a line with .control on it. This is an unfortunate result of | ||
+ | the source command being used for both circuit input and command file | ||
+ | execution. Note also that this allows the user to merely type the name | ||
+ | of a circuit file as a command, and it will be automatically run. | ||
+ | |||
+ | There are various command scripts installed in | ||
+ | /usr/local/lib/spice/scripts (or whatever the path is on your machine), | ||
+ | and the default sourcepath includes this directory, so you can use | ||
+ | these command files (almost) like builtin commands. | ||
+ | |||
+ | Nutmeg will use either X or MFB, depending on whether it finds the | ||
+ | variable DISPLAY in the environment. If you are using X on a worksta- | ||
+ | tion, it should already be present, but if you want to display graphics | ||
+ | on a different machine than the one you are running nutmeg on, DISPLAY | ||
+ | should be of the form machine:0. | ||
+ | |||
+ | If X is being used, the cursor may be positioned at any point on the | ||
+ | screen when the window is up and characters typed at the keyboard will | ||
+ | be added to the window at that point. The window may then be sent to a | ||
+ | printer using the xpr(1) program. | ||
+ | |||
+ | There are a number of pre-defined constants in nutmeg. They are: | ||
+ | pi pi | ||
+ | e The base of natural logarithms | ||
+ | c The speed of light | ||
+ | i The square root of -1 | ||
+ | kelvin Absolute 0 in Centigrade | ||
+ | echarge The charge on an electron | ||
+ | boltz Boltzman’s constant | ||
+ | planck Planck’s constant (h) | ||
+ | |||
+ | |||
+ | These are all in MKS units. If you have another variable with a name | ||
+ | that conflicts with one of these then it takes precedence. | ||
+ | |||
+ | Nutmeg occasionally checks to see if it is getting close to running out | ||
+ | of space, and warns the user if this is the case. (This is more likely | ||
+ | to be useful with the SPICE front end.) | ||
+ | |||
+ | C-shell type quoting with "" and ’’, and backquote substitution may be | ||
+ | used. Within single quotes, no further substitution (like history sub- | ||
+ | stitution) is done, and within double quotes, the words are kept | ||
+ | together but further substitution is done. Any text between backquotes | ||
+ | is replaced by the result of executing the text as a command to the | ||
+ | shell. | ||
+ | |||
+ | Tenex-style (’set filec’ in the 4.3 C-shell) command, filename, and | ||
+ | keyword completion is possible: If EOF (control-D) is typed after the | ||
+ | first character on the line, a list of the commands or possible argu- | ||
+ | ments is printed. (If it is alone on the line it will exit nutmeg.) If | ||
+ | escape is typed, then nutmeg will try to complete what the user has | ||
+ | already typed. To get a list of all commands, the user should type | ||
+ | <space> ^D. | ||
+ | |||
+ | The values of variables may be used in commands by writing $varname | ||
+ | where the value of the variable is to appear. The special variables $$ | ||
+ | and $< refer to the process ID of the program and a line of input which | ||
+ | is read from the terminal when the variable is evaluated, respectively. | ||
+ | If a variable has a name of the form $&word, then word is considered a | ||
+ | vector (see above), and its value is taken to be the value of the vari- | ||
+ | able. If $foo is a valid variable, and is of type list, then the | ||
+ | expression $foo[low-high] represents a range of elements. Either the | ||
+ | upper index or the lower may be left out, and the reverse of a list may | ||
+ | be obtained with $foo[len-0]. Also, the notation $?foo evaluates to 1 | ||
+ | if the variable foo is defined, 0 otherwise, and $#foo evaluates to the | ||
+ | number of elements in foo if it is a list, 1 if it is a number or | ||
+ | string, and 0 if it is a boolean variable. | ||
+ | |||
+ | History substitutions, similar to C-shell history substitutions, are | ||
+ | also available - see the C-shell manual page for all of the details. | ||
+ | |||
+ | The characters ~, {, and } have the same effects as they do in the C- | ||
+ | Shell, i.e., home directory and alternative expansion. It is possible | ||
+ | to use the wildcard characters *, ?, [, and ] also, but only if you | ||
+ | unset noglob first. This makes them rather useless for typing algebraic | ||
+ | expressions, so you should set noglob again after you are done with | ||
+ | wildcard expansion. Note that the pattern [^abc] will match all charac- | ||
+ | ters except a, b, and c. | ||
+ | |||
+ | IO redirection is available - the symbols >, >>, >&, >>&, and < have | ||
+ | the same effects as in the C-shell. | ||
+ | |||
+ | You may type multiple commands on one line, seperated by semicolons. | ||
+ | |||
+ | If you want to use a different mfbcap file than the default (usually | ||
+ | ~cad/lib/mfbcap), you have to set the environment variable MFBCAP | ||
+ | before you start nutmeg. The -m option and the mfbcap variable no | ||
+ | longer work. | ||
+ | |||
+ | VMS NOTES | ||
+ | Nutmeg can be run under VAX/VMS. Some features like command, etc com- | ||
+ | pletion, expansion of *, ?, and [], backquote substitution, the shell | ||
+ | command, and so forth do not work. (In fact command completion only | ||
+ | works on 4.2 or 4.3 BSD.) | ||
+ | |||
+ | Nutmeg will look for start-up commands in the file spice.rc in the cur- | ||
+ | rent directory. | ||
+ | |||
+ | The standard suffix for rawspice files in VMS is ".raw". | ||
+ | |||
+ | You will have to respond to the -more- prompt during plot with a car- | ||
+ | riage return instead of any key as you can do on UNIX. | ||
+ | |||
+ | SEE ALSO | ||
+ | sconvert(1), spice(1), mfb(3), writedata(3) | ||
+ | |||
+ | AUTHOR | ||
+ | Wayne Christopher (faustus@cad.berkeley.edu) | ||
+ | |||
+ | BUGS | ||
+ | The label entry facilities are very primitive - after all, nutmeg isn’t | ||
+ | a graphics editor (yet). You must be careful to type very slowly when | ||
+ | entering labels -- nutmeg checks the X event queue once every second, | ||
+ | and can get very confused if characters arrive faster than that. | ||
+ | |||
+ | If you redefine colors after creating a plot window with X, and then | ||
+ | cause the window to be redrawn, it will not to the right thing. | ||
+ | |||
+ | When defining aliases like | ||
+ | |||
+ | alias pdb plot db( ’!:1’ - ’!:2’ ) | ||
+ | |||
+ | you must be careful to quote the argument list substitutions in this | ||
+ | manner. If you quote the whole argument it might not work properly. | ||
+ | |||
+ | In a user-defined function, the arguments cannot be part of a name that | ||
+ | uses the plot.vec syntax. I.e, | ||
+ | |||
+ | define poke(duck) cos(tran1.duck) | ||
+ | |||
+ | won’t do the right thing. | ||
+ | |||
+ | If you type plot all all, or otherwise use a wildcard reference for one | ||
+ | plot twice in a command, bad things will happen. | ||
+ | |||
+ | The asciiplot command doesn’t deal with log scales or the delta key- | ||
+ | words. | ||
+ | |||
+ | There are probably some features that nutmeg doesn’t have yet. | ||
+ | |||
+ | CAVEATS | ||
+ | Often the names of terminals recognised by MFB are different from those | ||
+ | in /etc/termcap. Thus you may have to reset your terminal type with the | ||
+ | command | ||
+ | |||
+ | set term = termname | ||
+ | |||
+ | where termname is the name in the mfbcap file. | ||
+ | |||
+ | The hardcopy command is useless on VMS and other systems without the | ||
+ | plot command, unless the user has a program that understands plot(5) | ||
+ | format. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 4th Berkeley Distribution 27 April 1987 NUTMEG(1) | ||
+ | </code> |