simeye - simulation signal displayer and editor |
simeye [X options] [-IRLeh] [-l|-m|-c|-P] [-a|-b] [name] |
Beside the standard X Toolkit options (e.g. to set the display, the geometry, and the foreground color of the program), the following other options may be specified: |
-freestateColor color |
Specifies the color for signal values that are in free state. |
-high_lowColor color |
Specifies the color for signal values that are logic O or logic I. |
-undefinedColor color |
Specifies the color for signal values that are logic X. |
-voltsColor color |
Specifies the color for analog signal values. |
-pointerColor color |
Specifies another color for the pointer (default: canvas.foreground). |
-std_bg color |
Specifies another color for the standard background (default: grey). |
-I |
Start simeye in input (editing) mode. |
||
-R |
Start simeye in input (editing) mode and set circuit name and command file name in order to prepare a simulation run. |
||
-L |
Load window settings each time when new signals are read. |
||
-e |
Do not add or use extension of specified name. |
||
-h |
Display only help information. |
||
-l |
Use sls-logic as simulation type (default). |
||
-m |
Use sls-timing as simulation type. |
||
-c |
Use spice as simulation type. |
||
-P |
Use pstar as simulation type. |
||
-a |
Use analog representation for sls signals. |
||
-b |
Use digital representation for sls signals (default). |
Simeye is an X Windows (OSF/Motif) based simulation user interface for viewing the results of the sls(1ICD), spice(1ICD) and pstar(Philips) simulators. The program can be used to inspect the graphical representation of the output signals of the simulators and it can be used to edit input signals that are described in the SLS command file format (see: User's Manual). Moreover, from simeye simulations can be run by starting either the sls, spice, or pstar simulator (Note: spice via the script nspice(1ICD)). The following program argument may be specified: |
name |
This name specifies the name of the cell or file for which simulation signals are displayed and/or edited. |
In NELSIS Release 3 or when both views STIMULI and SIMOUT do not exist, the name argument should be a file name. If the name contains no '.' in it, the name is assumed to be a cell name. In that case a standard extension is added, based on the specified option (precedence order: -I, -c, -a). Give option -e, if no extension must be added. If a file name is specified with a standard extension (from first '.' position), this extension type is used (has precedence of options). Give option -e, if you do not want this feature.
When both views STIMULI and SIMOUT do exist (NELSIS Release 4), the name argument should be a cell name. An option must be given to decide which stream must be opened (default: -b, SIMOUT stream "res"). If a name with a standard extension is given (from first '.' position), this extension type is used (has precedence of options). This extension is then stripped off the given name to find the cell name. Give option -e, if you do not want this feature.
The standard extensions are:
".res" |
for sls digital (output) signals (option -b). |
||
".plt" |
for sls analog or waveform (output) signals (option -a). |
||
".ana" |
for spice analog (output) signals (option -c). |
||
".list" |
for pstar analog (output) signals (option -P). |
||
".cmd" |
for simulator commands and input signals (option -I). |
Note that the spice and pstar output file should contain the signals of a transient analysis in tabular format. When running the program spice directly this is achieved by using the card ".print tran ..." in the spice input file. When running nspice, this is achieved by using sls "plot ..." commands in the command file. When running the program pstar directly this is achieved by using "print: ..." commands in the pstar input file.
Commands are organized in six PullDown Menu's (i.e.
File, Edit, Simulate, View,
Options and Help). This MenuBar buttons can
also be activated by typing the <Meta> key and
the mnemonic character (the mnemonic is the character that
is underlined). Commands in the PullDown Menu's can
also be activated by only typing a mnemonic character (Note:
This mnemonic can be turned off, if you are using
accelerator keys). |
New |
Start editing of a completely new command file or cell "cmd" stream after an OK-confirmation has been given. |
||
Open |
Read cell command file or stream for editing. If this cell or this command file does not exist, simeye will try to read a default command file called "simeye.def.d". First, it tries to read this file from the current directory and second it tries to read this file from the process directory. |
||
Save |
Save (update) the edited command file or stream under the same file or cell name after an OK-confirmation has been given. |
||
Save As |
Save the edited command file cell under a different file or cell name after an OK-confirmation has been given. |
||
Read |
Read a new cell signal (simulation results) file or stream. If the 'read' Digital or Analog setting is activated an sls "res" or "plt" output file/stream is read. If the 'read' Spice setting is activated the spice "ana" output file is read. If the 'read' Pstar setting is activated the pstar "list" output file is read. |
Read Append |
Append the cell signal (simulation results) file/stream to the current signals. Only Digital signals can be appended to Digital signals and Analog signals to Analog signals (see Read). |
Hardcopy |
Generate a hardcopy of the current screen and send it to the printer by making an X Windows pixel dump (fast, but of low resolution). |
||
|
Make a PostScript-file of the current screen and send it to the printer after an OK-confirmation has been given (slow, but of high resolution). |
||
Exit |
Exit the program after an OK-confirmation has been given. |
Add |
Create a new signal. The user has to enter the name of the new signal, and the signal will be placed at the bottom of the window. |
||
Change |
Change (edit) a particular signal by inserting a new logical level for a particular time interval (t1, t2). The signal description may eventually already be defined for this interval. The insertion of the new logical level is done in two steps: During the first click of the mouse the signal, the new logical level and t1 are selected. During the second click t2 is selected and the new signal description is drawn. To insert an interval that has a free state one should hold the <Shift> key pressed down while making the first selection. |
||
Delete |
Delete one or more signals by selecting them with the cursor. |
||
EraseAll |
Erase all signals after an OK-confirmation has been given. |
||
Move |
With this command the order of the signals can be changed or one signal can be placed over another signal in order to compare them. First the signal that is moved or that is placed over another signal is selected, and then the new position of the signal is selected. To place the selected signal over another signal one should hold the <Shift> key down while selecting the new position. When displaying spice or pstar results, up to 6 signals can placed over each other. To remove a signal that is placed over another signal, initially select the signal with the <Shift> key held down. |
||
Copy |
Copy the signal description from one signal to another signal. |
||
ReName |
Change or show the (full) name of the selected signal. |
||
Yank |
Store a (part of a) signal description in the buffer. |
||
Put |
Insert a copy of the signal description that is in the buffer onto a particular position. The user has to select the signal to which the contents of the buffer is added and the time from which on the new signal description is valid. The new signal description may (partly) override the existing signal description for the selected signal. Furthermore, the user is asked to type how may periods of the stored signal part are added. If a value -1 is specified, the selected signal will become a periodical signal and (seemingly) an infinite number of periods are added. In that case, when the simulation end time is enlarged, the signal description will automatically be extended according to the periodicity of the signal description. A periodical signal is indicated by means of a tilde (~) immediately to the right of the signal description. |
||
Grid |
Specify the smallest unit for the x-axis (= time axis). |
||
Speed |
Speed up the signals by some factor. If a value < 1 is specified, the signals will be slowed down. |
||
T_end |
Update the end time of the input signals (= end time of simulation). |
Run |
Start the simulation run as set in Prepare menu. A simulation may be aborted by typing <Control>C in the simeye window (place the cursor in the simeye window and type the character C while holding down the <Control> key). |
||
Edit |
Edit the current command file set in the Prepare menu. |
||
Prepare |
Prepare a simulation by using either the sls, spice or the pstar simulator after an OK-confirmation has been given. |
When 'type' pstar is set a pstar simulation is performed. The pstar simulator is run by calling the program npstar. After simulation the "list" pstar output file is read. When 'type' spice is set a spice simulation is performed. The spice simulator is run by calling the program nspice. After simulation the "ana" spice output file is read. When 'type' sls-logic (level 1 or 2) or sls-timing (level 3) is set, an sls simulation at that level is performed. When the sls simulator is run, also intermediate simulation results are displayed (only if the view SIMOUT is not used). At the end, in both cases, the final simulation results are displayed. Which results are displayed for sls ("res" or "plt") depends on the 'read' Digital or Analog setting. |
Command |
Display the current simulation command. |
Measure |
Move a vertical scanline over the display window, according to the position of the pointer, and show the value of the corresponding x position (and y position). When clicking the middle (or right) button of the mouse, one may toggle between displaying in the right margin (if the number of signals is not too large) the y values of the signals at the selected x position. To store the value of a particular position, click the left button of the mouse. This position will then be subtracted from the next positions of the scanline, so as to measure delay times and/or voltage differences. |
||
Redraw |
Redraw the current window. |
||
Values |
Display the value points (for analog simulation results). |
||
Full |
Draw all present signals from the beginning of the simulation time till the end of the simulation time. |
||
ZoomIn |
Zoom in on the current window. When the <Shift> key is held down and the window contains only one analog signal, also a zoom-in on the y-axis of the signal is performed. The ScrollBars can be used to move the current window left-, right-, up- or down-wards respectively. |
||
ZoomOut |
Zoom out on the current window. Use zoom out if you want to add new signal states (Change command) to signals on the right side of the screen. |
Load Window |
Load the current window settings (i.e. start-time, stop-time and the names of the signals that are displayed) from a file (default: "simeye.set"). The name of this file can be specified in the configuration file. |
Save Window |
Save the current window settings (i.e. start-time, stop-time and the names of the signals that are displayed) in a file (default: "simeye.set"). The name of this file can be specified in the configuration file. |
DetailZoomON |
When the DetailZoomON option is set (see also DETAIL_ZOOM_ON) the zoom-in function is also defined for the y-axis of a (single analog) signal. |
AutoLoadWin |
When the AutoLoadWin option is set (or by the command line option -L), the program simeye loads the saved window settings each time a Read or Simulate command is performed. See also the Load Window and Save Window commands. |
AutoSaveEdit |
When the AutoSaveEdit option is set the program simeye saves automatically the command file (if changed) when a Run command is given. |
Manual |
When the Manual command is clicked, the program xman with the manual page of simeye is popped up in a window. Select the "quit" command in the "options" menu to exit this program. |
For simulation with both sls and spice, simeye uses a command file called "cell.cmd" or a stream "cmd" from the STIMULI view (NELSIS Release 4). This file should contain a description of the input signals, values for the simulation control variables, and a listing of the terminals for which output should be generated. This is explained in more detail in the users manuals of the sls simulator and the spice simulator. The "set" commands (signals) in this file/stream may be edited by enabling the Edit PullDown Menu of simeye. The new signal descriptions will then be written back to the command file when updating the command file. However, when the file contains a "set" command that is followed by the keyword "no_edit" between comment signs, the signal description of this "set" command can not be modified. Additionally, when the command file contains on a separate line between comment signs the keyword "auto_set", simeye will automatically turn-on or turn-off these 'non-editable' "set" commands according to whether or not the node the command refers to is part of the terminal list of the cell that is simulated (by Simulate command). This feature may for example be useful to specify default signals for one or more input terminals. When the file contains on a separate line between comment signs the keyword "auto_print" ("auto_plot"), simeye will automatically add a "print" ("plot") statement to the command file for each terminal of the cell that is simulated. The new "print" ("plot") commands will have a keyword "auto" between comment signs following the keyword "print" ("plot"). An example of a default command file that can be used for sls and spice simulations is: |
/* auto_set */ set /* no_edit */ vdd = h*~ set /* no_edit */ vss = l*~ set /* no_edit */ phi1 = (l*110 h*80 l*10)*~ set /* no_edit */ phi2 = (l*10 h*80 l*110)*~ option sigunit = 1n option outacc = 10p option simperiod = 4000 option level = 3 /* *% tstep 0.1n trise 0.5n tfall 0.5n *% *% */ /* auto_print */ /* auto_plot */ |
At start-up of the program, simeye will read some information from a configuration file called ".simeyerc". First, it tries to find this file in the current directory. Second, it tries to find this file in the home directory of the user. Thirdly, it looks for this file in process directory. The configuration file may contain the following keywords, followed by a specification on the same line if the keyword ends with ':'; |
SLS: |
Specifies the command for running the sls simulator. |
SLS_LOGIC_LEVEL: |
Specifies the level of simulation when "sls-logic" is selected (use 1 or 2). |
SLS_LOGIC_SIGNAL: |
Specifies the default signal representation for sls-logic simulations (use A for Analog or D for Digital). |
SLS_TIMING_SIGNAL: |
Specifies the default signal representation for sls-timing simulations (use A for Analog or D for Digital). |
SPICE: |
Specifies the command for running the spice simulator (use nspice or a derivative of it). |
|
PSTAR: |
Specifies the command for running the pstar simulator (use npstar or a derivative of it). |
XDUMP_FILE: |
Specifies the name of the X Windows dump file that is generated when the Hardcopy command (print button of old simeye) is clicked. |
PRINT: |
Specifies the command that is executed when the Hardcopy command (print button of old simeye) is clicked in order to process the X Windows dump file (e.g. to convert the window dump to PostScript and to send the output to a laser-printer). |
PRINT_LABEL: |
Specifies an optional label that is placed in upper left corner of the display window when an X Windows dump is generated. |
SETTINGS_FILE: |
Specifies the name of the file in (from) which the window settings are stored (loaded) when using the Save Window command (Load Window command or -L option). |
DETAIL_ZOOM_ON |
If this keyword is specified in the configuration file, the zoom-in function is also defined for the y-axis of a (single analog) signal. In this case it is not necessary to hold the <Shift> key down (see command ZoomIn). |
TRY_NON_CAPITAL_ON |
If this keyword is specified in the configuration file and simeye fails to open a command file that starts with a capital letter, the program will try to open the same command file but now starting with a non-capital letter. If this succeeds and when performing a simulation, simeye will first run the program arrexp on a copy of the command file to expand one dimensional array node names into single node names (e.g. a[1..3] is converted into a_1_ a_2_ a_3_). |
In the above specifications, the strings '$circuit' and '$stimuli' must be used to refer to the selected cell or file name for simulation commands, '$file' may be used to refer to the current file on screen (use '$cell' for this name without extension (maximum = 22 chars)), '$date' and '$time' may be used to refer to the current date and time, and '$user' may be used to refer to your login name. Example of a configuration file (default values are shown): SLS: sls $circuit $stimuli SLS_LOGIC_LEVEL: 2 SPICE: nspice $circuit $stimuli PSTAR: npstar $circuit $stimuli XDUMP_FILE: simeye.wd PRINT: xpr -device ps -output $cell.ps (continued) simeye.wd; lp $cell.ps; rm simeye.wd $cell.ps PRINT_LABEL: $user $file $date $time SETTINGS_FILE: simeye.set |
Note that for NELSIS Release 4 the simeye program uses automatically views STIMULI and SIMOUT if both views exist. View STIMULI is used for the command files (stream "cmd"), and view SIMOUT is used for the sls and spice simulation results (streams "res", "plt" and "ana"). Note that, if both views exist, the spice simulator is run by the script runspice and pstar is run by the script runpstar. |
.simeyerc |
(default) configuration file |
HOME/.simeyerc |
(altern.) configuration file |
ICDPATH/share/lib/process/process/.simeyerc |
(altern.) configuration file |
ICDPATH/share/lib/process/process/.simeyerc |
(altern.) configuration file |
cell.res |
(default) input file (SLS logic results) |
cell.plt |
(opt.) input file (SLS analog results) |
cell.ana |
(opt.) input file (SPICE analog results) |
cell.list |
(opt.) input file (PSTAR analog results) |
cell.cmd |
(opt.) command file |
*.cxx |
temporary files |
simeye.def.d |
(default) template for command file |
ICDPATH/share/lib/process/process/simeye.def.d |
(altern.) template for command file |
ICDPATH/share/lib/process/process/simeye.def.d |
(altern.) template for command file |
ICDPATH/share/lib/.X2PSfontmapfile |
for PostScript output |
simeye.eps |
(default) print output file |
simeye.set |
(default) window-settings file |
sim.diag |
simulation diagnostics |
pr.diag |
print diagnostics |
Some examples of ".Xdefaults" values are: simeye*.borderColor: white simeye*StatusArea*.foreground: yellow simeye*cellDialog*.foreground: cyan simeye*iDialog*.foreground: red simeye*pDialog*.foreground: red simeye*qDialog*.foreground: red simeye*commands*.foreground: white simeye*commands*.background: black simeye*canvas.background: black simeye*canvas.foreground: white simeye*canvas.height: 400 simeye*canvas.width: 800 simeye.freestateColor: red simeye.high_lowColor: cyan simeye.undefinedColor: blue simeye.valuesColor: red simeye.voltsColor: green simeye.voltsColor2: blue simeye.voltsColor3: red simeye.voltsColor4: orange simeye.voltsColor5: magenta simeye.voltsColor6: darkgoldenrod simeye.pointerColor: yellow simeye.std_bg: grey80 Use the following set of accelerator key bindings: simeye.keymnemonic: False simeye*Add.accelerator: <Key>a simeye*Add.acceleratorText: a simeye*Change.accelerator: <Key>c simeye*Change.acceleratorText: c simeye*Command.accelerator: Shift<Key>c simeye*Command.acceleratorText: C simeye*Copy.accelerator: <Key>o simeye*Copy.acceleratorText: o simeye*Delete.accelerator: <Key>d simeye*Delete.acceleratorText: d simeye*Edit.accelerator: <Key>e simeye*Edit.acceleratorText: e simeye*EraseAll.accelerator: Ctrl<Key>e simeye*EraseAll.acceleratorText: ^e simeye*Exit.accelerator: <Key>x simeye*Exit.acceleratorText: x simeye*Full.accelerator: <Key>f simeye*Full.acceleratorText: f simeye*Grid.accelerator: <Key>g simeye*Grid.acceleratorText: g simeye*Hardcopy.accelerator: Ctrl<Key>h simeye*Hardcopy.acceleratorText: ^h simeye*Load Window.accelerator: Shift<Key>l simeye*Load Window.acceleratorText: L simeye*Manual.accelerator: <Key>F1 simeye*Manual.acceleratorText: F1 simeye*Measure.accelerator: Shift<Key>m simeye*Measure.acceleratorText: M simeye*Move.accelerator: <Key>m simeye*Move.acceleratorText: m simeye*New.accelerator: Ctrl<Key>n simeye*New.acceleratorText: ^n simeye*Open.accelerator: Ctrl<Key>o simeye*Open.acceleratorText: ^o simeye*Prepare.accelerator: <Key>p simeye*Prepare.acceleratorText: p simeye*Print.accelerator: Ctrl<Key>p simeye*Print.acceleratorText: ^p simeye*Put.accelerator: <Key>u simeye*Put.acceleratorText: u simeye*ReName.accelerator: <Key>n simeye*ReName.acceleratorText: n simeye*Read Append.accelerator: Ctrl<Key>q simeye*Read Append.acceleratorText: ^q simeye*Read.accelerator: Ctrl<Key>r simeye*Read.acceleratorText: ^r simeye*Redraw.accelerator: Ctrl<Key>f simeye*Redraw.acceleratorText: ^f simeye*Run.accelerator: <Key>r simeye*Run.acceleratorText: r simeye*Save As.accelerator: Ctrl<Key>a simeye*Save As.acceleratorText: ^a simeye*Save Window.accelerator: Shift<Key>s simeye*Save Window.acceleratorText: S simeye*Save.accelerator: Ctrl<Key>s simeye*Save.acceleratorText: ^s simeye*Speed.accelerator: <Key>s simeye*Speed.acceleratorText: s simeye*T_end.accelerator: <Key>t simeye*T_end.acceleratorText: t simeye*Values.accelerator: <Key>v simeye*Values.acceleratorText: v simeye*Yank.accelerator: <Key>y simeye*Yank.acceleratorText: y simeye*ZoomIn.accelerator: <Key>z simeye*ZoomIn.acceleratorText: z simeye*ZoomOut.accelerator: Shift<Key>z simeye*ZoomOut.acceleratorText: Z |
sls(1ICD), spice(1ICD), nspice(1ICD), |