
















			  SimWave




		       User's Manual


















		    Systems Science Inc.
	      1860 Embarcadero Rd., Suite 260
		Palo Alto, California 94303
		       (415) 812-1800
























Systems	Science	Inc.	   - 2 -   SimWave 2.4 User's Manual









			     SimWave




			  User's Manual












		      Systems Science Inc.
		 1860 Embarcadero Rd., Suite 260
		   Palo	Alto, California 94303
			 (415) 812-1800






	      Copyright	 1989 Systems Science Inc.



     This software and	the  concepts  embodied	 in  it	 are
     proprietary  and confidential in nature, and are not to
     be	used, duplicated in whole or in	part,  modified,  or
     disclosed	in  any	 manner, for any purpose whatsoever,
     without prior written permission from  Systems  Science
     Inc.  Systems Science Inc.	assumes	no liability for any
     use of this software, and provides	no warranty  of	 any
     kind  for	the  software,	its  documentation,  or	 the
     correctness of the	results. Receipt  of  this  material
     shall be considered acceptance of the conditions speci-
     fied herein.


_________________________










Systems	Science	Inc.	   - 3 -   SimWave 2.4 User's Manual








			TABLE OF CONTENTS




































_________________________
XPLUS,	SimWave,  RTL-Spreadsheet,  Magellan,  Tsunami,
PinSkew, and PowerSim are trademarks of	Systems	Science
Inc.; Mach, XP,	 and  Zycad  are  trademarks  of  Zycad
Corp.; UNIX is a trademark of AT&T; X-Windows System is
a trademark  of	 M.I.T.;  PowerMill  and  TimeMill  are
trademarks  of EPIC Design Technology.	HILO and System
HILO are trademarks of Genrad.	CADAT is a trademark of
Racal-Redac.   AcceLSI	is  a  trademark  of LSI Logic.
Verilog	is a registered	trademark of Cadence.










Systems	Science	Inc.	   - 4 -   SimWave 2.4 User's Manual




		     1.		      OVERVIEW
		     2.		      INSTALLING SIMWAVE
		     2.1.		  Loading the SimWave software
		     2.2.		  Enabling SimWave
		     3.		      GETTING STARTED
		     4.		      REFERENCE	SECTION
		     4.1.		  SUB-WINDOWS CONTENTS
		     4.2.		  PULL-DOWN MENU COMMANDS
		     4.2.1.		  Zoom
		     4.2.1.1.			  Zoom In/Out
		     4.2.1.2.			  Zoom Into
		     4.2.1.3.			  Zoom Normal
		     4.2.2.		  Base
		     4.2.3.		  Timing and Text Messages
		     4.2.3.1.			  Checking Setup/Hold/MPW/Set-Reset
		     4.2.3.2.			  Displaying Messages
		     4.2.4.		  Setup
		     4.2.4.1.			  Setup	Window
		     4.2.4.2.			  Setup	Time Grid
		     4.2.4.3.			  Setup	Value Grid
		     4.2.4.4.			  Time Scrolling
		     4.2.4.5.			  Trace	Scrolling
		     4.2.4.6.			  Show Time Grid
		     4.2.4.7.			  Show Value Grid
		     4.2.4.8.			  Show Violations, Spikes, and Strobes
		     4.2.4.9.			  Show Strengths
		     4.2.4.10.			  Show Messages
		     4.2.4.11.			  Highlight Overlaps
		     4.2.4.12.			  Unicolor Signals
		     4.2.5.		  Hardcopy Output
		     4.2.5.1.			  Single-page file
		     4.2.5.2.			  Multi-page file
		     4.2.5.3.			  Configure
		     4.2.6.		  Multiple Windows
		     4.2.6.1.			  Regular Mixed	Mode Windows
		     4.2.6.2.			  Plot Windows
		     4.2.6.3.			  Closing Windows
		     4.2.7.		  Triggers (break points)
		     4.2.7.1.			  Creating triggers
		     4.2.7.2.			  Using	Triggers





















Systems	Science	Inc.	   - 5 -   SimWave 2.4 User's Manual




		     4.3.		  MOUSE	OPERATIONS
		     4.3.1.		  Selecting Single/Multiple Signals
		     4.3.2.		  Moving, Grouping, and	Deleting Signals
		     4.3.3.		  Horizontal Scrolling / Moving	/ Scaling
		     4.3.4.		  Value	of Signals at Cursor
		     4.3.5.		  Expanding a Signal Value
		     4.3.6.		  Vertical Scrolling
		     4.3.7.		  Resizing / Moving the	Windows
		     4.3.8.		  Highlighting
		     4.3.9.		  Changing Base
		     4.3.10.			  Showing Strengths
		     4.3.11.			  Integer Base
		     4.3.12.			  Floating Point Format
		     4.4.		  TEXT COMMANDS
		     4.4.1.		  History and Screen Editing
		     4.4.2.		  Online Help
		     4.4.3.		  Displaying Signals/Buses/Vectors
		     4.4.4.		  Defining Buses and Vectors
		     4.4.5.		  Expanding Buses
		     4.4.6.		  Windows with specified Geometry
		     4.4.7.		  Viewing a Specified Time Interval
		     4.4.8.		  Changing the Time Grid
		     4.4.9.		  Changing the Value Grid
		     4.4.10.			  Saving Displayed Signal List
		     4.4.11.			  Command Scripts
		     4.4.12.			  Clearing Signals
		     4.4.13.			  Swapping Signal Sets
		     4.4.14.			  Terminating
		     4.4.15.			  Additional Commands
		     5.		      REMOTE DISPLAY
		     6.		      CUSTOMIZING SIMWAVE
		     6.1.		  Keyboard equivalences	/ Menus
		     6.2.		  Changing Colors and Stipples
		     7.		      CAPABILITIES
		     7.1.		  Supported Hardware
		     7.2.		  Software Compatibility
		     7.3.		  Main Features
		     8.		      RELEASE NOTES FOR	VERSION	2.3
		     8.1.		  Enhancements
		     8.2.		  Major	Bug Fixes
		     8.3.		  Changes to the .simwave file
		     8.4.		  Notes	for version 2.3B
		     8.5.		  Notes	for version 2.3C
		     8.6.		  Notes	for version 2.3D
		     8.7.		  Notes	for version 2.3E
		     8.8.		  Notes	for version 2.3F
		     8.9.		  Notes	for version 2.3G
		     8.10.		  Notes	for version 2.3H
		     8.11.		  Notes	for version 2.3I
		     9.		      RELEASE NOTES FOR	VERSION	2.4
		     9.1.		  Enhancements
		     9.2.		  Major	Bug Fixes









Systems	Science	Inc.	   - 6 -   SimWave 2.4 User's Manual


		     9.3.		  Changes to the .simwave file
		     10.	      APPENDIX:	RTL-Spreadsheet
		     11.	      APPENDIX:	DEFAULT	.simwave FILE
		     12.	      APPENDIX:	EXAMPLES OF POSTSCRIPT OUTPUT



























































Systems	Science	Inc.	   - 7 -   SimWave 2.4 User's Manual


1.  OVERVIEW


SimWave	interactively displays	digital	 and  analog  signal
waveforms  on  workstations  and  produces hardcopy for	per-
manent documentation. It uses  X-Windows  for  display,	 and
PostScript  for	printing.  Operations are controlled through
a friendly, customizable interface.  SimWave is	used by	com-
mercial	 digital  and  analog simulators and by	a variety of
proprietary simulation and test	tools.


     o+	Circuit	development  can  be  accelerated  by  using
     fast, clear graphic displays.
     o+	Waveform displays make complex relationships  easier
     to	understand.
     o+	Circuit	operation can be documented and	described to
     others.
     o+	Logic and timing problems can be found easily, using
     triggers and breakpoints.
     o+	Integrators can	use SimWave's Integration Toolkit to
     enhance other tools.



SimWave	can be used as a stand-alone  tool,  or	 it  can  be
encapsulated  in  other	tools, through its procedural inter-
face. The procedural  interface	 manages  all  inter-process
communication  (IPC)  and  allows  developers to display any
kind of	data through  SimWave.	 Developers  can  build	 two
types of interfaces to SimWave:


	(a) "readers" which are	used when SimWave is run stand-alone
	(b) "encapsulations" of	SimWave	within other tools



The "SimWave/Tsunami Readers" document describes a number of
readers	 and  how  to  use them.  Readers are small programs
which allow SimWave to upload data  files  in  a  particular
format.	  In  contrast,	 encapsulations	 do  not rely on any
intermediate files and	communicate  directly  with  SimWave
through	IPC.

2.  INSTALLING SIMWAVE


This section is	intended for  the  system  administrator  or
other persons who will install and enable the software.

2.1.  Loading the SimWave software











Systems	Science	Inc.	   - 8 -   SimWave 2.4 User's Manual


SimWave	is supplied on 1/4" tape cartridges, 8mm  tape	car-
tridges,  and  3 1/2" floppies.	 SimWave should	be installed
by the System Administrator or by a  user  who	is  familiar
with  UNIX.   The SimWave software will	occupy less than 5Mb
of disk	space.	Superuser permission is	not required.

The directories	contained in each tape	are  listed  on	 the
tape  label.  The  SimWave  software  will be in a directory
named "wav<version>", where <version> is the version  number
of the software.  With the exception of	HP/Apollo Domain OS,
the tapes will be in UNIX "tar"	format.

Change to a directory which can	hold the  SimWave  directory
permanently;  then read	the SimWave directory from tape.  Go
into the SimWave directory and set the permissions  so	that
all users can read and execute everything within the SimWave
directory (chmod  -R  a+rX  .),	but so they can't  overwrite
them  (chmod   -R   a-w	 .). Inform users of the location of
the SimWave directory; they will need  this  information  to
set the	SIMWAVEHOME environment	variable.

2.2.  Enabling SimWave


Passwords can be obtained  using  SSI's	 Online	 EnablingTM.
This  system is	available 24 hours a day, 7 days a week, and
is  automatic.	It  is	 accessed   through   a	  modem	  at
415.812.1830,  or through e-mail to enable@systems.com.	 The
Online EnablingTM takes	requests  for  licenses	 and  grants
licenses  without human	intervention.  Users without a modem
or e-mail can fax  (415.812.1820)  or  phone  (415.812.1800)
enabling information to	Systems	Science.

There are three	types of SSI  licenses:	 pre-enabled,  node-
locked,	and floating. In addition, SimWave is OEM'd by other
CAE vendors, some of which have	linked their  own  licensing
mechanisms.

Given the wide range of	licensing options, specific  licens-
ing  steps  are	described separately, as appropriate for the
type of	license	and vendor.

3.  GETTING STARTED


If the software	is not installed yet, please see the INSTAL-
LATION	Section.  SimWave has many capabilities	and provides
multiple ways to perform a particular operation, like chang-
ing  the time interval.	 This section shows only a few basic
features.  Once	you are	comfortable with the basics,  please
see the	REFERENCE section to learn about other features.  We
also suggest you go through  the  SimWave  Class  Exercises.
The exercises are self teaching	and describe more "advanced"
features of SimWave.









Systems	Science	Inc.	   - 9 -   SimWave 2.4 User's Manual


This section demonstrates how to use a	stand-alone  version
of  SimWave  to	 view  data  files.   However,	the features
described here also apply when using a	version	 of  SimWave
which is encapsulated by another tool.

To begin, find where the  software  is	loaded.	  Edit	your
.login file and	add the	following two lines at the bottom:


	setenv	SIMWAVEHOME  <path-to-where-software-is-loaded>
	set  path  =  ($path $SIMWAVEHOME/BIN)



For example, if	the software is	loaded in /usr/local/wav2.4,
you should enter:


	setenv	SIMWAVEHOME  /usr/local/wav2.4
	set  path  =  ($path $SIMWAVEHOME/BIN)



If you are using Systems Science's Floating  Licensing,	 add
one more line to your .login file:


	setenv	SIMWAVELIC  ssi_license



Now, "source" the .login file or logout	and login  again  to
reset your command search path.

The stand-alone	version	of SimWave is  normally	 invoked  by
the  wd	 image in $SIMWAVEHOME/BIN. However, if	your copy of
SimWave	is encapsulated	by another  tool,  you	may  not  be
licensed  to  run  the	stand-alone version.  If this is the
case, you should invoke	wddemo instead of  wd  when  running
the  examples  in  this	section. wddemo	allows you to run an
un-licensed demonstration version of SimWave.

This startup section assumes you are running and  displaying
SimWave	 on  your  local host. If not, please see the REMOTE
DISPLAY	section	for information	about remote display.



Copy the $SIMWAVEHOME/SAMPLES directory	to your	home  direc-
tory,  go into your private copy of SAMPLES, and use SimWave
to view	the data in "gem.wd":












Systems	Science	Inc.	   - 10	-  SimWave 2.4 User's Manual




	cp  -r	$SIMWAVEHOME/SAMPLES  ~
	cd  ~/SAMPLES
	wd gem.wd &



A SimWave window will appear on	your screen.  Resize  it  to
any  size  you	like. Then move	the pointer into the SimWave
window and type:


	help



SimWave	will list all the text commands.  Now,	display	 all
signals	by typing:


	display	*
	view 0 2000



Your SimWave window should appear similar to  the  following
figure.



































Systems	Science	Inc.	   - 11	-  SimWave 2.4 User's Manual

































































Systems	Science	Inc.	   - 12	-  SimWave 2.4 User's Manual


Now pan	through	time, by dragging the time scrollbar.  Click
and  hold the middle button on the time	scrollbar. Note	that
when you move the pointer, the time boundaries on  the	left
and right of the trace window change. As soon as you release
the button, the	traces are updated for the new	time  inter-
val.

Zooming	in/out can be performed	with the  "zoom"  menu,	 but
most  users  zoom  by  "stretching" and	"shrinking" the	time
scrollbar.  Click and drag the left  mouse  button  (in	 the
time  scrollbar)  to  move  the	left edge of the time scroll
bar.  Click and	drag the right mouse  button  (in  the	time
scrollbar) to move the right edge of the time scroll bar.

Click on any waveform to place a  cursor.  The	top  of	 the
trace window shows the time at the cursor and the right	side
of the window show values at the cursor.

To find	the time difference between two	edges, press CTRL-D.
Now move the pointer close to some edge	and click any button
(the selection "snaps" to the edge).  Move the pointer close
to  an edge in another signal and click	and hold any button.
This shows the times of	each edge and  the  time  difference
between	  the	edges.	  The  selected	 edges	will  remain
highlighted until the button is	released.

Turn on	a time grid by pressing	CTRL-G.

Move a signal by clicking on its name and dragging the	name
up  or	down.	The  trace will	end up where you release the
button.

To  see	 SimWave's  vertical  scrolling	 and  self-adjusting
waveform heights, display many signals by typing


	display	 *  *  *  *  *



Now you	can scroll the signal list up and down	by  clicking
and  dragging  the vertical scrollbar on the left.  When you
release	the button, the	waveforms are updated.

Create and display a new bus by	typing


	bus mybus *ptr
	dis mybus



Note how the display command was automatically completed for
you.  Configure	the mybus waveform by CTRL-clicking on mybus









Systems	Science	Inc.	   - 13	-  SimWave 2.4 User's Manual


in the signal list. A dialog box will be created.  Using the
dialog	box,  change  the  base	 to  binary,  and change the
display	color to green (click on the  green  square  in	 the
color palette).	 Close the dialog box by clicking on "OK".

Define a trigger by typing


	trigger	myevent	( clk1 ^ 1 ) & ( mybus = 0xc )



Now repeatedly pull down the triggers menu, and	select	each
item  in  the menu.  Note how the cursor jumps to times	when
the trigger is true.
















































Systems	Science	Inc.	   - 14	-  SimWave 2.4 User's Manual


Now quit SimWave by typing


	quit



SimWave	can display logic waveforms, analog  waveforms,	 and
enumerated  type  waveforms.   Now  you	 will  learn  how to
display	and manipulate analog waveforms. Use SimWave to	look
at the analog.wd file:


	wd analog.wd &



Move the pointer into the new SimWave window and display all
signals	by typing


	display	*



Open up	a plot window by typing


	plot



Plot windows allow overlapping display of analog  waveforms.
Move  the plot window to side of the original window.  Click
and drag the "Vdd", "i23", and "i17" signals to	the new	plot
window.	  Click	on the signal names in the original window's
signal list and, holding the mouse button down,	drag them to
the  new  plot	window and release the mouse button.  In the
plot window type


	view 0 5000
	range -2.0 3.0



The range command  determines  the  bounds  of	the  y-axis.
Press CTRL-V to	turn on	the value grid and CTRL-G to turn on
the time grid.	Scale the "i17"	signal by typing


	vscale 0.25 i17











Systems	Science	Inc.	   - 15	-  SimWave 2.4 User's Manual


In the plot window pull	down the zoom menu  and	 select	 the
"into"	item.	A  cross-hair pointer will appear. Click and
drag the pointer across	 the  middle  of  the  waveforms.  A
"rubber-band"  box  tracks  the	 pointer  and  indicates the
region into which SimWave will "zoom".	Release	 the  button
and  SimWave  will update the waveforms, zooming in both the
time and value domains.

Now quit, and proceed to display the other  ".wd"  files  in
the SAMPLES directory.

With what you know now,	you should be able  to	use  SimWave
productively.  However,	this section describes only the	most
basic commands in order	to get you started quickly. To	find
out  more about	SimWave's capabilities please see the REFER-
ENCE and CUSTOMIZING Sections.	If  you	 are  interested  in
displaying  your own proprietary data or interfacing SimWave
with your own simulator,  please  see  the  "SimWave/Tsunami
Integration ToolKit" document.












































Systems	Science	Inc.	   - 16	-  SimWave 2.4 User's Manual


4.  REFERENCE SECTION

4.1.  SUB-WINDOWS CONTENTS


When SimWave is	started, it opens a window,  whose  position
and  size  may	be  changed  at	 any later time.  Additional
SimWave	windows	can then  be  opened  with  the	 "open"	 and
"plot"	commands.   Whenever the pointer is inside a SimWave
window,	the window  becomes  active,  and  commands  can  be
issued to it.  Text typed anywhere in an active	window,	will
go to its ">>" prompt in the footnote  sub-window  (bottom),
except when a dialog box is opened.

The SimWave window is split into several  regions:  a  trace
section,  a footnote, and a banner. The	banner displays	some
general	information, and has  the  pull-down  menu  headers.
The  footnote is a small text sub-window used to request and
display	certain	information by using keyboard-based commands
and  scripts.  The footnote contains a scrollbar so that one
can review previous commands and messages.  The	 trace	sec-
tion  is  split	 into several sub-sections which display the
following information:


     - left  border:  Contains	the  names  of	the  signals
     (nodes/vectors/buses)  displayed.	The  width  of	this
     field automatically adjusts to the	length of the  long-
     est  signal  name,	 up to a user-specified	maximum	(see
     .simwave, or invoke the "setup window"  item  from	 the
     window  menu).  It	 also  contains	a vertical scrollbar
     which is used to peruse through large sets	of  signals.
     The  scrollbar is positioned and sized in proportion to
     the sub-set of currently visible signals.	By moving it
     up	and down one can quickly scroll	through	the signals.


     - right border: Values of the signals under the cursor:
     in	 binary,  hex,	or octal for digital signals, and in
     the appropriate scale  and	 units	for  analog  signals
     (e.g.  mV,	 uV,  mA,  kW,	fA,  etc.). For	user defined
     types, and	for enumerated types, the appropriate string
     value will	show.  The width of this field automatically
     adjusts,  to  take	 into  account	the  width  of	 the
     displayed buses and enumerated values.


     - top border: The time boundaries of the  current	view
     of	 the  data  are	shown at the left and right sides of
     the top border.  The  time	 at  which  the	 cursor	 was
     clicked last, shows in the	middle of the top border.


     - center: The center of the trace window  is  used	 for









Systems	Science	Inc.	   - 17	-  SimWave 2.4 User's Manual


     displaying	the waveforms.


     - bottom: Time scrollbar, that allows users to stretch,
     shrink  or	 move  the  region  of time displayed in the
     trace window.  This enables one to	zoom in	and out	 and
     to	"pan" through the displayed waveforms.


4.2.  PULL-DOWN	MENU COMMANDS


Pressing any mouse button in one of the	banner menus  (upper
right  corner)	will  pull  down  the corresponding menu. To
select an item in the menu, move the pointer  to  the  item,
and  then  release  the	 mouse	button.	  The action will be
either be carried out, or a dialog box will appear prompting
for further input.

Some menu items	have a "toggle"	action.	 A small check	mark
appears	 alongside  these items	when the item is toggled on.
Each time you select the item in the  menu,  the  item	will
toggle	on  and	off and	the check mark will appear or disap-
pear.

Dialog boxes provide a number of  different  mechanisms	 for
entering  data including text entries.	You can	double click
in a text entry	field to clear its contents and	begin enter-
ing  new  data.	  You  can also	single click in	a text entry
field to set the entry point (this allows you to  backspace,
and modify a previous entry).

To the right of	each menu item	will  appear  any  keyboard-
equivalent defined for the menu	item.  A keyboard-equivalent
is a single keystroke which is shorthand for that menu item.
If  the	keyboard-equivalent contains a character preceded by
a "^", the menu	item is	invoked	by typing the character	with
the control key	pressed.  For example, the "delta time"	item
can be invoked by just entering	CTRL-d	instead	 of  pulling
down  the  timing  menu. If the	character is not preceded by
"^", the menu item is simply invoked by	typing	the  charac-
ter.   Novice  users  will  prefer  the	pull-down menus, but
advanced users will find keyboard-equivalences a much faster
way of initiating a command.

The keyboard equivalences, menu	items, menu  headers,  etc.,
can  be	 changed  by  users, by	modifying their	own .simwave
file (an ascii file with many setup entries,  including	 the
keyboard-equivalences).	  SimWave  looks for this file first
in your	current	directory, then	in your	home directory,	 and
lastly	in  $SIMWAVEHOME/LIB.  Make yourself a private copy,
and review all the customization possibilities,	to suit	 the
interface to your needs.










Systems	Science	Inc.	   - 18	-  SimWave 2.4 User's Manual


The pull-down menus are	self-explanatory, and the  best	 way
to  master them	is to try each one of them.  What follows is
an overview of the pull-menus commands as they are typically
set up in a standard ".simwave"	file.


4.2.1.	Zoom



Zoom commands allow you	to change the current view (the	time
interval currently displayed).	The current view may also be
changed	with the "view"	command	and by clicking	on the	time
boundaries.    For    more   information   see	 "Horizontal
Scrolling/Moving/Scaling" in the MOUSE OPERATION section  of
this manual.

4.2.1.1.  Zoom In/Out


     in: Zooms in magnifies the	time interval by a factor of
     2
     out: Zooms	out reduces the	time interval by a factor of
     2


4.2.1.2.  Zoom Into


     into: Zooms  into	magnifies  the	time  interval.	  It
     creates  a	special	cross-hair cursor, that	when clicked
     marks the left-upper corner of the	zoom-into  box,	 and
     when  dragged  and	 released  defines  the	 lower-right
     corner.  The left and right sides of the zoom-into	 box
     define  the  start	 and  end  of the new time interval.
     Zoom into works on	all types of signals, and it is	par-
     ticularly useful for examining analog signals in "plot"
     windows (described	later).	 With "plot"  windows  "zoom
     into"  scales  the	 current  view	both in	the time and
     values domain.  It	 is  convenient	 to  analyze  noise,
     transients, ripples, etc.

     A powerful	feature	of zoom-into command is	the  ability
     to	 start	the  zoom-into	command	 in  one window, but
     specify the zoom-into box in  a  second  window.	This
     will  still  zoom	the  1st  window,  but allows you to
     specify the time boundaries from the 2nd  window.	This
     is	 especially useful if you have two windows, one	win-
     dow to view local events  at  a  fine  time  scale	 and
     another  window containing	a global view (with too	much
     detail).  You would start a zoom-into  command  in	 the
     first window and pick the events you wish to examine in
     detail from the second window  with  the  global  view.
     This  feature makes it is easy to quickly "poke" around









Systems	Science	Inc.	   - 19	-  SimWave 2.4 User's Manual


     through the entire	simulation data.


4.2.1.3.  Zoom Normal


     normal: Zooms normal resets  the  time  interval.	Upon
     startup  the  time-width of a "normal" window is speci-
     fied in the ".simwave" file.  If after many zoom in/out
     operations	 you wish to quickly return to what you	con-
     sider normal, use this command.  The  time-width  of  a
     "normal"  window  may also	be redefined with the "setup
     window" item in the window	menu.


4.2.2.	Base


The default base for displaying	buses and  vectors  is	hex.
The  base menu allows you to change the	base on	any selected
buses to binary, octal,	or hexadecimal.	 A bus or  buses  is
first  selected, and then the new base for display is chosen
from the base pull-down	menu.  Selecting is done by clicking
on  a  bus  name  (or  SHIFT-clicking to add to	the selected
list).


4.2.3.	Timing and Text	Messages

4.2.3.1.  Checking Setup/Hold/MPW/Set-Reset


     delta time: Calculates the	difference (in time) between
     any two edges of the same or different waveforms (typi-
     cal keyboard equivalent: "CTRL-d"). It doesn't  require
     you  to align a cursor exactly with an edge, because it
     will search and find the closest edge.

     After "delta time"	is selected, the cursor	will  become
     an	arrow pointing left: click the arrow to	the right of
     the first edge. Now the arrow points right, and you can
     select  any  other	edge (in the same or another signal)
     by	clicking to the	left of	the second edge.   The	time
     of	 the  two  edges as well as their difference will be
     shown in the footnote.  As	long as	the  button  remains
     depressed,	 a  line  is  shown between the	two selected
     edges, and	the timing information is  displayed.	Once
     it	is released, the highlighted edges return to normal,
     but the information stays on the footnote.


4.2.3.2.  Displaying Messages











Systems	Science	Inc.	   - 20	-  SimWave 2.4 User's Manual


     violation ?: a small cross	on top of a trace  indicates
     that a message of some type is associated with the	sig-
     nal.  The tool which sends	SimWave	the signal  data  is
     responsible  for defining text messages and associating
     them with signals.	 To see	a message select  "violation
     ?",  the  cursor  becomes	a  small  box,	which can be
     clicked on	the message marker to obtain  full  informa-
     tion  (e.g.:  "setup  violation  on  signal xxx at	time
     nnn"). Note, SimWave does not decide what is  a  viola-
     tion,  and	 it  just provides a means for the simulator
     (or any other tool) to associate  arbitrary  text	mes-
     sages  with  the  waveforms.  Typically this feature is
     used for violations, but it may be	used for other	pur-
     poses.

4.2.4.	Setup


4.2.4.1.  Setup	Window


     setup window: This	item allows  one  to  configure	 the
     window  and  set  a  number  of default values.  Values
     which can be set include: how many	lines of text to put
     in	the footnote (defaults to 4); how many characters to
     display for a signal name (defaults  to  15);  and	 the
     normal  time (zoom	normal will always zoom	to this	time
     interval).

     Plot windows also allow one to  set  the  window  value
     range, the	minimum	and maximum of the y-axis.


4.2.4.2.  Setup	Time Grid


     setup time	grid: creates a	dialog box which allows	 you
     to	 configure the time grid.  If the "automatic" box is
     chosen, the time grid will	be automatically  sized	 and
     aligned  with  the	 time window (e.g. if the time boun-
     daries are	103 to 205, the	grid will be aligned at	110,
     120,  etc).  If the "automatic" box is not	chosen,	then
     the offset	and step for the time grid may be entered.


4.2.4.3.  Setup	Value Grid


     setup value grid: creates a dialog	box which allows you
     to	 configure the value grid.  The	value grid is a	hor-
     izontal grid which	may be displayed  in  plot  windows.
     If	 the  "automatic" box is chosen, the value grid	will
     be	automatically sized and	aligned	with  the  range  of
     the  window  (e.g.	 if  the  window  goes from 0.0uA to









Systems	Science	Inc.	   - 21	-  SimWave 2.4 User's Manual


     20.0uA, the grid will be aligned at 0.0uA,	5.0uA, etc).
     If	 the  "automatic" box is not chosen, then the offset
     and step for the value grid may be	entered.

4.2.4.4.  Time Scrolling


     time scroll: can be toggled on/off, and  determines  if
     new  signal  data	is always made visible (by scrolling
     time). A  user  may  view	and  examine  signals  while
     SimWave  is  still	 receiving  signal  data.   If "time
     scroll" is	toggled	on, then SimWave will  automatically
     scroll time after receiving new signal data so that the
     newest signal data	is visible (i.e. the waveforms	will
     march  across  the	 display  as SimWave receives signal
     data).

     Note, unless the  "reader",  and/or  other	 tool  which
     sends  data  to  SimWave  makes use of this feature, it
     will not be apparent.

4.2.4.5.  Trace	Scrolling


     trace scroll: can be toggled on/off, and determines  if
     displaying	 additional  signals  scrolls  up  the trace
     list.  When there are more	traces than will  fit  in  a
     window, the user may use the vertical scroll-bar on the
     left to scroll through  the  traces.   When  displaying
     additional	 signals, new traces will always be added at
     the bottom	of the trace list.   If	 "trace	 scroll"  is
     toggled  on, then SimWave will automatically scroll the
     traces up (if necessary) so that the signals just added
     are visible.

     Note that SimWave has auto-scaling; signals are  scaled
     between  a	minimum	height and maximum height set by the
     .simwave file.  So	within a very wide margin,  you	 may
     add  or  remove  signals and SimWave will automatically
     scale them	so that	they all fit in	the trace window.

4.2.4.6.  Show Time Grid


     show time grid: can be toggled on/off, and	will show an
     oscilloscope-style	  grid.	   The	grid  step  will  be
     displayed in the upper left corner	of  the	 trace	sub-
     window.   Grid times are displayed	at the bottom of the
     trace section.

4.2.4.7.  Show Value Grid


     show value	grid: can be toggled on/off, and will show a









Systems	Science	Inc.	   - 22	-  SimWave 2.4 User's Manual


     horizontal	 value grid. The grid step will	be displayed
     in	the upper right	corner of the trace sub-window.	  In
     hardcopy  printouts, which	allow for smaller fonts, the
     grid values will be printed in a ruler at the right  of
     the graph.

4.2.4.8.  Show Violations, Spikes, and Strobes


     show violations  and  show	 spikes	 toggle	 on/off	 the
     display of	violations and spikes.

     The terms "violations" and	"spikes" can be	 misleading.
     The  reader  or  tool which encapsulates SimWave deter-
     mines how the violations and spike	icons will be  used.
     For  example,  violation  icons can be used to annotate
     text messages to waveforms, and the spike icons can  be
     used  to  indicate	strobes.  Of course, violation icons
     can also be used to indicate a  timing  violation,	 and
     spike icons can be	used to	indicate a zero	width pulse.

     Small cross icons are used	to show	 violations  on	 the
     waveform, and small arrow icons are used to show spikes
     in	the waveform.  The direction of	the arrow  indicates
     the  direction of the spike. SimWave does not decide if
     spikes or violations have occurred, and it	relies	only
     on	 the information sent by the reader of encapsulating
     tool.  SimWave only displays the spikes and  violations
     defined by	the simulator and sent to SimWave.

     Since violations vary greatly in type the text  associ-
     ated  with	 a  violation  might  not  fit on top of the
     waveform, only icons are shown. If	you want to see	 the
     full  text	 associated with a particular violation, you
     need to first select (from	the timing menu) the "viola-
     tion  ?" entry (the cursor	will become a small square),
     and then click the	square on the  violation:  the	full
     text  message  will appear	in the footnote.  To display
     the violation messages along with the traces  see	Show
     Messages below.

4.2.4.9.  Show Strengths


     show strengths: toggles on/off the	display	of  strength
     information.  If your simulator records strength infor-
     mation, you  may  enable  or  disable  the	 display  of
     strength  information.   When  the	 display of strength
     information is enabled, colors (or	stipple	patterns for
     mono-chrome  displays)  will  be  used  to	display	full
     strength information, and the right border	(which shows
     values  under the cursor) will display signal strengths
     along with	values.










Systems	Science	Inc.	   - 23	-  SimWave 2.4 User's Manual


4.2.4.10.  Show	Messages


     show mesages toggles on/off the  display  of  the	text
     message  associated  with a violation.  When turned on,
     the text messages are shown on top	of their correspond-
     ing waveforms, directly above the violation icon.	When
     turned off	(the default), only  the  icons	 are  shown.
     Showing  the messages above a waveform cause the verti-
     cal  distance  between  signals   (trace-gap)   to	  be
     increased	in  order  to make room	for the	messages, so
     that fewer	signals	will fit on the	screen.

     Since most	users wish  to	maximize  the  area  of	 the
     screen  devoted  to  signals, a small font	is typically
     used to display the messages.  However, any font can be
     specified	using  the  "messagesFont"  variable  in the
     ".simwave"	file.

4.2.4.11.  Highlight Overlaps


     highlight overlaps	toggles	on/off the  highlighting  of
     overlapped	 signal	transitions.  If the number of tran-
     sitions per time exceeds the limited screen resolution,
     those  transitions	 will be displayed one on top of the
     other (they overlap).  When  this	happens	 (typically,
     when displaying large time	intervals), it is not possi-
     ble to determine how many transitions occur in  a	par-
     ticular  time  interval.	By  turning on the highlight
     overlaps function,	users are alerted  that	 part  of  a
     signal's  transitions  are	 being	overlapped, and	thus
     require a larger magnification (by, for example,  zoom-
     ing  in) to see a more accurate version of	the informa-
     tion.

4.2.4.12.  Unicolor Signals


     unicolor signals toggles on/off the use of	 colors	 (or
     line  styles in monochrome	displays) for different	sig-
     nal values	or strengths.  When turned on,	each  signal
     is	 displayed  in a single	color, which can be modified
     using the color palette by	CTRL-clicking on the  signal
     name.

4.2.5.	Hardcopy Output


These options control the generation of	 a  PostScript	file
suitable  for producing	a high-quality printout	of the trace
window.	The generated file can be  loaded  by  any  desk-top
publishing   system   capable  of  reading  PostScript,	 and
integrated with	other documentation, or	it  can	 be  printed









Systems	Science	Inc.	   - 24	-  SimWave 2.4 User's Manual


directly.  To print the	file in	a laser	printer, the typical
command	will be	(if this doesn't work, find from your system
administrator the way it is set	up in your site): lpr-Pps

4.2.5.1.  Single-page file


     Will print	exactly	 what  you  have  displayed  in	 the
     screen in one page.  This command offers a	default	file
     name that may be changed, the file	name is	usually	gen-
     erated by concatenating ".ps" to the design name.

4.2.5.2.  Multi-page file


     Will print	at the	scale  you  have  displayed  in	 the
     screen,  but  in many pages.  Will	pop-up a dialog	box,
     and you will be able to indicate the starting and	end-
     ing times for the printout.

4.2.5.3.  Configure


     This option brings	up a pop-up window that	 allows	 you
     to	specify	what information is included in	the hardcopy
     output, such as a banner that may include the  name  of
     the  design and/or	date, a	time grid, an outline around
     the page, and whether  spikes,  violations,  or  colors
     (line styles) should be included in the output.


4.2.6.	Multiple Windows


This menu allows viewing simulation data through  additional
windows.   Moving  traces  with	 the mouse and the zoom-into
command	work across windows (e.g.  you	can  select  signals
from one window	and drag them to another one).

4.2.6.1.  Regular Mixed	Mode Windows


     open: opens a new window, where you  can  display	both
     analog  and digital signals. It becomes active when the
     pointer is	inside it. You can display any set  of	sig-
     nals in any scale or time you wish.

4.2.6.2.  Plot Windows


     plot: opens an analog window in which all	signals	 are
     overlapped.  This	is  useful  when you wish to look at
     crossover points, compare waveforms carefully, etc.  If
     signals  have  units with different magnitudes (e.g. uA









Systems	Science	Inc.	   - 25	-  SimWave 2.4 User's Manual


     and mV ), then the	"vscale"  command  can	be  used  to
     scale  a  signal's	 data  so  that	it is visible.	Each
     waveform will appear with a different color (or stipple
     in	 black/white).	On the left, each signal in the	plot
     will be underlined	with its color.	 You may change	 the
     color ordering in the ".simwave" file.

4.2.6.3.  Closing Windows


     close: closes (deletes) a specific	window.	This command
     is	typically bound	to the key equivalence CTRL-C.


4.2.7.	Triggers (break	points)


This is	an  optional  feature,	which  may  or	may  not  be
licensed  for your host.  If SimWave displays the "triggers"
menu, your system has the triggers feature.

SimWave	 can  create  complex	break	points	 dynamically
(triggers),  which  can	 be  used  to analyze the simulation
results	very quickly. Once the break points are	defined, the
user  can  search  back	 and  forth  through  the  data	 for
interesting events, with the certainty of not  missing	any-
thing.


4.2.7.1.  Creating triggers


Triggers are created in	the footnote by	entering:


		trigger	<name> <expression>

For example, entering:


		trigger	T1 ( (abc = 0 )	& (xyz = 1) )

will define a trigger which is true when signal	abc has	 the
value 0	and zyz	has the	value 1.

The expression can be very simple, using  just	one  of	 the
following operators:
















Systems	Science	Inc.	   - 26	-  SimWave 2.4 User's Manual




		=	equality: for signals, buses, enumerated types,	strengths, and constants.
		#	difference: idem

		>	greater: for analog signals, strengths,	user defined and enumerated types
		<	smaller: idem

		~	contains: for buses.
		^	edge trigger: for changes in binary signals.


Or the expression can  be  more	 complex,  built  from	sub-
expressions by using:


	()	to enclose subexpressions
	&	boolean	AND of two expressions
	|	boolean	OR of two expressions


The "="	and "#"	operators can be used to compare any pair of
signals	 of  the same type and to compare the values of	sig-
nals to	constants.

Binary signals may be compared to the one of  the  following
constants: 0,1,X,Z.

When "=" or "#"	is used	to compare a bus signal	 to  a	con-
stant,	the  constant  may begin with a	zero (0) and must be
followed by a letter designating the base of  the  constant,
"b"  for  binary,  "o" for octal, "x" for hex.	For example,
"0b11010111" is	a legal	binary constant, "0o377" is a  legal
octal constant,	and "0xffea" is	a legal	hex constant. Binary
constants may also contain a wild card character, "*"  which
matches	 one of	anything. For example, the following trigger
is true	when the 8 bit bus "busA" contains 9 in	the  highest
nibble:

	trigger	T2 ( busA = 0b1001**** )

Note, when comparing a bus signal to a constant, the "=" and
"#"  operators only compare as many bits as specified in the
constant. For example, the following trigger is	 true  when-
ever  the  least  significant  four  bits  of  "busA"  equal
"0b1001", even if "busA" is  comprised	of  more  than	four
bits.

	trigger	T2 ( busA = 0b1001 )

When "=" is used on analog signals, it will find the  cross-
over points.  Note, this facility provides for a generalized
waveform comparison: just define a trigger  to	compare	 any
two  signals,  buses,  or  vectors,  and then search to	find









Systems	Science	Inc.	   - 27	-  SimWave 2.4 User's Manual


where they differ, or find they	match throughout.  For exam-
ple,  the  trigger  "abc  #  xyz"  will	 search	for the	time
periods	when signal abc	differs	from signal xyz.

When referring to a  binary  signal  which  has	 a  strength
information,  one  can refer to	its logic level	only, or one
can refer to its logic level and strength  (e.g.  1/3).	  In
inequalities,  one can leave the logic level out.  For exam-
ple "xyz < /3" would mean "find	when the signal	 xyz  has  a
strength  lower	 than  3.  The	"/"  is	 the  typical  logic
level/strength separator, but any character can	be used	(the
separator  character  is  specified  in	 the .simwave file).
Note, not all interfaces  to  SimWave  pass  along  strength
information,  so  your binary signals may contain just plain
logic values.

The ">"	and "<"	operators can be used for:  analog  signals;
strengths   of	 binary	 signals;  and	the  ordinal  of  an
enumerated value.  For example,	each enumerated	value  could
be an opcode, with its actual hex value	corresponding to the
ordinal	of the enumerated value. You could then	 search	 for
the opcodes by name (enumerated	value),	or by hex value.

The "~"	operator is used to find if any	bit of a bus is	 set
to  a  given  value  (<bus>  ~ <binary-value>).	Typically it
would be used to find Z	or X (e.g. "busA ~ X").

The "^"	operator is used to  find  transitions	to  a  given
binary	value  (<signal> ^ <binary-value>). For	example, the
trigger	"xyz ^ 0" will search for the times when signal	 xyz
is changing to a 0.

The ~ and ^ operators can be used together to determine	if a
bus  contains an undesirable value at the time at which	some
edge indicates the data	is being used.	 For  example,	con-
sider  a  register file	that reads a bus named "data" on the
rising edge of a "read"	signal,	one could find	if  it	ever
loads an X, with the trigger: "data~X &	read^1".

Note, if expressions are complex, it may  be  worthwhile  to
make  a	script which defines all your triggers,	so that	they
may be redefined any number of times.	When  a	 trigger  is
first  defined,	 it is by default "enabled".  After triggers
have been defined  they	 can  be  "disabled"  and  "enabled"
dynamically,  independently  of	 their	definition, and	on a
pre-window basis.



4.2.7.2.  Using	Triggers


Once you have defined one or more triggers, you	 can  select
the "triggers" item in the "triggers" menu, and	a dialog box









Systems	Science	Inc.	   - 28	-  SimWave 2.4 User's Manual


will show  you	which  triggers	 are  active.  Clicking	 the
pointer	 on  the box next to trigger's name will toggle	that
trigger	on/off.	 This  allows  you  to	have  more  triggers
defined	 than  you  are	using for a given search, and to re-
enable them when it is appropriate.  For example, you  might
first  trigger	for  a	given opcode, and only then enable a
second trigger that searches for a  more  localized  problem
(instead of having to find the second trigger many times).

The  "next"  and  "previous"  submenus	(or  their  keyboard
equivalents,  "."  and ",") allow you to search	for the	next
and previous time point	that satisfies the currently enabled
triggering conditions.

The "next end" and "previous end" do the same, but  set	 the
cursor at the end of the interval which	satisfies the condi-
tion (differently from software, where a  breakpoint  occurs
at  a  "point",	 here,	a condition may	be satisfied over an
interval). Try it, and it will be obvious.


4.3.  MOUSE OPERATIONS


4.3.1.	Selecting Single/Multiple Signals


     To	select a signal, click on its  name  in	 the  signal
     list  on the left of the waveforms.  To select multiple
     signals, hold the shift key down while selecting  names
     in	 the signal list. Clicking on a	selected signal	will
     de-select it.

4.3.2.	Moving,	Grouping, and Deleting Signals


     To	move a signal, select it and drag it to	the  desired
     position (i.e. click on the name, and without releasing
     the mouse button, drag the	"pointing" icon	to  the	 new
     position).	 The  signal  will be inserted and the other
     signals will be repositioned to make space	for it.	  If
     you  have	opened	multiple  SimWave  windows  with the
     "open" command, you may also drag the signal to another
     SimWave  window.	Note that moving a signal to another
     window will remove	it from	the original window.   Also,
     if	the signals are	dragged	into the footnote (text	win-
     dow), the signals	themselves  are	 not  moved;  rather
     their  names  are	inserted  at the current text-cursor
     position as if they had been typed	in.

     To	delete a signal	simply click on	the signal name	 and
     drag it outside the SimWave window.  Any deleted signal
     can be redisplayed	later with the display command.










Systems	Science	Inc.	   - 29	-  SimWave 2.4 User's Manual


     To	re-group a set of signals and/or move  them,  select
     the  signals  and	drag  them to the new position (they
     will be grouped together and moved	 to  the  new  posi-
     tion).


4.3.3.	Horizontal Scrolling / Moving /	Scaling


     Signals can be viewed at different	times and with	dif-
     ferent time scales: by using the zoom commands from the
     zoom menu,	by operating scrollbar with the	 mouse,	 and
     by	entering the time boundaries.  Mouse buttons operate
     the scrollbar as follows:


     Left/Right	Arrow: The traces are scrolled left/right by
     half  the	current	 time interval (move back/forward in
     time).


     Scrollbar:	Clicking the left button on the	left portion
     of	 the  scrollbar	allows the left	time boundary of the
     window to move,  allowing	you  to	 zoom  in/out  arbi-
     trarily.	The  right time	boundary remains fixed.	 You
     can see the time boundaries shown	in  the	 top  border
     (numbers  on  the left and	right) automatically updated
     while you stretch/shrink the scrollbar.  When the mouse
     button  is	released, the waveforms	will be	redrawn	with
     the new time boundaries.

     The right button operates on the right portion  of	 the
     scrollbar	in  an analogous way (it sets the right	time
     boundary).	 The middle button (or both buttons in	a  2
     button  mouse)  moves  the	whole view back	and forth in
     time, while maintaining the current scale.

     Absolute Times: You may click directly in the box where
     the left/right time boundaries are	displayed at the top
     of	the traces, and	enter the actual values	you want  to
     become  the new left/right	boundaries (you	may also use
     the "view <start> [<end>]"	text command).

4.3.4.	Value of Signals at Cursor


     Clicking the pointer on a waveform	in the trace section
     moves  the	cursor to that position, and shows the simu-
     lated time	that corresponds to the	cursor	position  in
     the  center  of the top border.  The values of the	sig-
     nals at this time are shown in the	right border.












Systems	Science	Inc.	   - 30	-  SimWave 2.4 User's Manual


4.3.5.	Expanding a Signal Value


     Holding down the shift or the Control key while  click-
     ing  on  a	waveform will expand the value of the signal
     at	the time that corresponds to  the  position  of	 the
     click, and	display	this expanded value in the footnote.
     This operation does not move the cursor.

     How a signal value	is expanded depends on the  type  of
     signal  selected  by  the	click.	 If  the signal	is a
     binary signal wich	includes strength  information	then
     the   logic  value	 plus  the  strength  are  displayed
     (regardless of whether "show strengths" are enabled  or
     not).   If	 the  signal  is an enumerated type then the
     name of the enumeration value at the time of the  click
     is	displayed.  If the signal is a bus then	the value of
     each bit of the  bus  at  the  time  of  the  click  is
     displayed	(regardless  of	the base used to display the
     bus).  In addition, if the	bus includes enumerated-type
     bits  then	 the name of the enumeration, instead of its
     logical-composition value,	is displayed.  If the signal
     is	 an  analog  signal  then the value of the signal is
     displayed using up	to 10 significant digits.

     This function is particularly  useful  for	 determining
     the  values  of buses that	are displayed in bases other
     than binary,  or  whose  value  does  not	fit  in	 the
     waveform.


4.3.6.	Vertical Scrolling


     When you display signals in a SimWave window, they	will
     occupy  a	vertical space that is configurable with the
     ".simwave"	file. In the ".simwave"	file you can specify
     both  a  maximum  height  (the  ideal size	at which you
     would like	to see it) and a minimum height	(below which
     you  can't	figure out what's going	on) for	both digital
     and analog	signals.  SimWave will	automatically  scale
     signals  (vertically)  within  these  limits.  When you
     display more signals than will fit	in the	window,	 the
     ones  that	 do  not fit are not shown, and	the vertical
     scrollbar becomes shorter than the	window.	 By dragging
     the  vertical  scrollbar up or down, the remaining	sig-
     nals become visible.

     SimWave provides additional mechanisms  for  viewing  a
     large number of signals.  For example, you	can open any
     number of additional windows with different signals, at
     different	vertical  scalings. You	can also create	com-
     mand scripts which	swap  signal  sets  in	a  fast	 and
     organized	way  (see "Swapping Signal Sets" in the	TEXT









Systems	Science	Inc.	   - 31	-  SimWave 2.4 User's Manual


     COMMANDS section).

4.3.7.	Resizing / Moving the Windows


     If	you are	not using a  standard  window  manager,	 and
     have  set	up in your ".simwave" file WindowManager=on,
     SimWave will allow	you to move  the  window  by  click-
     dragging  the  top	 or  to	 change	 its  size by click-
     dragging the small	square in the upper left  corner  of
     the window.


4.3.8.	Highlighting


     CTRL-clicking on a	signal name  pops-up  a	 dialog	 box
     where  you	 may  choose from a palette any	highlighting
     color for a trace.


4.3.9.	Changing Base


     CTRL-clicking on a	bus name pops-up a dialog box  where
     you  may change the base to binary, octal,	hexadecimal,
     decimal, or ascii.

4.3.10.	 Showing Strengths


     CTRL-click	on a signal name pops-up a dialog box, where
     (if the signal has	strength information) you can toggle
     on/off the	use of colors for  different  strengths	 (or
     for different user	defined	types).

     If	you are	using colors for highlighting purposes,	 and
     wish  to  know  the  full strength	information (or	user
     types associated with the signal),	 at  a	given  time,
     just  click  on  the  trace to set	the cursor, and	then
     click on the signal's value in the	right  border.	 The
     first click will cause the	value under the	cursor to be
     displayed in the right  border,  and  clicking  on	 the
     value  in	the  border will expand	the value to include
     strengths (or user	types).	 Alternately, you can obtain
     the  value	 and strength information of a signal at any
     particular	 time  by  CTRL-clicking  in  the   signal's
     waveform.

4.3.11.	 Integer Base


     SimWave provides support for various types	 of  signals
     and  variables,  including	 integer  and floating point









Systems	Science	Inc.	   - 32	-  SimWave 2.4 User's Manual


     variables.	 Typically, an integer signal  is  displayed
     as	 a  signed-decimal  number.    This  setting  can be
     changed by	CTRL-clicking on an integer  signal's  name,
     which  pops-up  a	dialog box that	allows you to change
     the base used to display  the  signal.   The  available
     bases  are:  Binary, Octal, Hexadecimal, and signed and
     unsigned Decimal. In addition  to	the  base,  you	 can
     specify   the   minimum   number	of  digits  (in	 the
     corresponding base) to be displayed.  By  default,	 the
     minimum number of digits is one.

4.3.12.	 Floating Point	Format


     To	select a display format, CTRL-click on	a  floating-
     point signal's name; this will pop-up a dialog box	that
     allows  changing  the  format  and	 precision  used  to
     display  the  signal  values.   SimWave  provides	four
     floating point formats: Float,  Exponent,	Engineering,
     and G.



     Float:  The  number   is	displayed   in	 the   style
     "[-]ddd.ddd",  where  the	number of digits is equal to
     the precision.  If	the number  of	digits	exceeds	 the
     precision	then  the number is displayed using exponen-
     tial notation with	 a  precision  of  seven.   Trailing
     zeros  are	 removed  and  a  floating  point  is always
     present, followed by at least one decimal.


     Exponent:	The  number  is	 displayed  in	 the   style
     "[-]d.ddde+/-dd",	where  there  is  always  one  digit
     before the	decimal	point and the number  of  digits  is
     equal to the precision.  Trailing zeros are not removed
     and the exponent always contains two digits.


     Engineering: The  number  is  displayed  in  the  style
     "[-]ddd.ddU",  where  the	number of digits is equal to
     the precision, and	 "U"  is  a  single  character	that
     represents	 the  multiplicative  power of ten, as indi-
     cated in the table	below.	Trailing zeros	are  removed
     and  a  decimal point appears only	if its followed	by a
     digit.


		     m	     -3	 (milli)	     K	     +3	 (Kilo)
		     u	     -6	 (micro)	     M	     +6	 (Mega)
		     n	     -9	 (nano)		     G	     +9	 (Giga)
		     p	     -12 (pico)		     T	     +12 (Tera)
		     f	     -15 (femto)	     P	     +15 (Peta)
		     a	     -18 (atto)		     E	     +18 (Exa)









Systems	Science	Inc.	   - 33	-  SimWave 2.4 User's Manual


     G:	This format is similar to unix's printf	"%g"  style.
     The  number  is  displayed	 in Float format or Exponent
     format, with the precision	 specifying  the  number  of
     significant  digits.   The	 format	 used depends on the
     value: Exponent format is used only if the	exponent  is
     less  than	 -3 or greater than the	precision.  Trailing
     zeroes are	removed, and a decimal point appears only if
     it	is followed by a digit.

     The following table illustrates  the  number  displayed
     using the different formats:




















































Systems	Science	Inc.	   - 34	-  SimWave 2.4 User's Manual


     expand box; c l l l c l l l.  _  precisionFloatExponen-
     tEngineeringG	 _	3    0.066.31e-0263.1m0.0631
     4	  0.0055.273e-035.273m0.0052730
     5	  5407.05.4070e+035.407K5407   6    0.000021.79844e-
     0517.9844u1.79844e-05
     7	  123456.71.234567e+05123.4567K123456.7
     9	  84814800.08.48148000e+0784.8148M84814800 _
























































Systems	Science	Inc.	   - 35	-  SimWave 2.4 User's Manual


4.4.  TEXT COMMANDS


There are operations for which	pull-down  menus  are  best,
operations  for	 which	dialog	boxes are best,	and finally,
operations which are best left	as  text  commands.  SimWave
attempts  to  reach  the  best	combination, by	choosing the
right type of command for each type of interaction,  includ-
ing  the  "lowly"  text	commands.  Text	commands can also be
used by	other applications to control SimWave.	For example,
a simulator can	startup	SimWave, and then send text commands
to SimWave,  telling  SimWave  to  display  signals,  define
buses, etc.

Text entered anywhere in the  SimWave  window  automatically
ends  up  at  the ">>" prompt of the footnote.	All commands
can be abbreviated (automatic command completion),  as	long
as  enough is typed to disambiguate them (e.g. one can enter
d for display, or bu for bus ).	 Wildcards may	be  used  to
refer  to  groups of signals. For example "p*ext" stands for
all signals starting in	"p", and ending	in "ext". Ranges can
be specified such as in	addr[7-0].

4.4.1.	History	and Screen Editing


     The text window has support  for  history	and  editing
     capabilities.   The  type	of interaction is similar to
     that of the tcsh or the kern shells.  The default bind-
     ing  of  the  editing keys	is similar to that of Emacs.
     To	find the  specific  bindings,  or  to  change  them,
     please see	the $SIMWAVEHOME/.simwave.

4.4.2.	Online Help


     Entering "?" or "help" will show all commands. Entering
     "?	 <command>"  will provide more information about the
     specific command.

     To	get more information on	 a  displayed  trace,  enter
     "info <name>".  For example, if the "info"	command	were
     passed the	name of	a bus, it would	show the bus's size,
     the  names	 of  the  original signals that	were bundled
     into the bus, etc..

4.4.3.	Displaying Signals/Buses/Vectors


     Entering "display <signal_list>" (or "d <signal_list>")
     will  add the waveforms for <signal_list> at the bottom
     of	the display window. A signal may be displayed multi-
     ple  times.   Entering  "d	*" will	display	all recorded
     signals.









Systems	Science	Inc.	   - 36	-  SimWave 2.4 User's Manual


4.4.4.	Defining Buses and Vectors


     Enter "bus	<bus_name> <signal_list>" to  create  a	 new
     bus.   The	signal list can	contain	binary signals (with
     or	without	strengths) and other buses.

     Wildcards may be  used  instead  of  or  combined	with
     explicit  signal  names.  For  example, "bus xbus *ext"
     will create the bus "xbus"	with all the signals  ending
     in	"ext".

     Note that "*ext" does not let you choose the  order  of
     the  bits.	 To  order the bits, you may use ranges. For
     example, "bus SIGXT sig[7-0]" will	create a bus  called
     SIGXT  with  the  signals	sig7 down to  sig0.  You may
     also use embedded ranges. For example, A[1-5]xyz refers
     to	signals	A1xyz up to A5xyz.

     You must prefix the SimWave metacharacters: ~, =, #, ^,
     [,	 or  ] with a back-slash if they are used as part of
     your signal names.	 For example, if you have a  set  of
     signals  called  A[1] to A[8], you	can refer to them as
     "A\[[1-8]\]".

     SimWave allows you	to define both	buses  and  vectors.
     The  difference  between buses and	vectors	is that	vec-
     tors are composed only of scalar signals,	while  buses
     may  be  composed of any combination of scalar signals,
     vectors, and other	buses.	Hence,	"vectors"  are	most
     useful  when  grouping together signals with wildcards.
     The inclusion of previously defined  buses	 that  would
     match the wildcard	is automatically avoided (e.g.:	"vec
     ybus x*" will put in "ybus" all  the  signals  starting
     with  "x",	 but  not  the	previously defined bus named
     "xbus").

4.4.5.	Expanding Buses


     Entering "info <bus_name>"	will show the width  of	 the
     bus/vector,  and  the  original name of each bit of the
     bus. Then,	to display the components of  the  bus,	 the
     name  of  each  bit  of  the bus may be selected in the
     footnote and pasted at the	end of a "display" command.


4.4.6.	Windows	with specified Geometry


     Although users will normally use the pull-down menus to
     open  new	windows,  one can open windows with the	com-
     mands "open [<xgeometry>]"	 and  "plot  [<xgeometry>]".
     This  is  useful  if another application is sending the









Systems	Science	Inc.	   - 37	-  SimWave 2.4 User's Manual


     command, or if one	has a script, which includes opening
     another window for	displaying some	set of signals.


4.4.7.	Viewing	a Specified Time Interval


     Typically users will move in time with  the  scrollbar.
     However, if another application (e.g. a debugger) wants
     to	display	a certain time interval,  it  can  send	 the
     text  command  "view  <start> [<end>]". This causes the
     window to display that particular time interval.

     If	the <end> is not specified, the	scale  will  not  be
     changed,  and the left time boundary will be shifted to
     the <start> time. If the <start> is "-", the  scale  is
     also  not	changed, and the right time boundary will be
     shifted to	the <end> time.	Requests  that	would  cause
     the left or right time boundary to	go beyond the limits
     of	the simulation data will be accepted,  but  modified
     so	the limits are not exceeded.


4.4.8.	Changing the Time Grid


     The offset	and step of the	time grid maybe	changed	with
     the grid command:


	     grid <offset_time>	<step_time>

     The offset	and  step  may	also  be  changed  with	 the
     "setup"  menu  (see  "Setup Time Grid" in the PULL-DOWN
     MENU section for more information).  The command  "grid
     -auto"  tells  SimWave  to	 automatically calculate the
     offset and	step for the  time  grid.   The	 "TimeGrid",
     "AutoGrid",  "GridOffset",	and "GridStep" parameters in
     the .simwave file determine the  initial  configuration
     of	the time grid.


4.4.9.	Changing the Value Grid


     The offset	and step of the	 value	grid  maybe  changed
     with the vgrid command:


	     vgrid <offset> <step>

     The offset	and  step  may	also  be  changed  with	 the
     "setup"  menu  (see "Setup	Value Grid" in the PULL-DOWN
     MENU section for more information).  The command "vgrid









Systems	Science	Inc.	   - 38	-  SimWave 2.4 User's Manual


     -auto"  tells  SimWave  to	 automatically calculate the
     offset and	step for the value  grid.   The	 "TimeGrid",
     "AutoGrid",  "GridOffset",	 and  "GridStep"  The "Auto-
     ValueGrid",  "ValueGridOffset",  "ValueGridStep",	 and
     "ValueGrid"  parameters  in the .simwave file determine
     the initial configuration of the value grid.


4.4.10.	 Saving	Displayed Signal List


     The list of currently displayed signals may be saved in
     a file with the "save" command:


	  save <filename>

     <filename>	will contain a SimWave command script  which
     preserves	the  ordering  of the displayed	signals. The
     command script can	be executed at any time	(by the	exec
     text command) to re-display the signals.


4.4.11.	 Command Scripts


     Enter exec<filename> to run the text  commands  in	 the
     file  <filename>.	When  debugging	a design, it is	con-
     venient to	have a small script  that  will	 define	 all
     aliases,  buses,  and  vectors, and display them in the
     desired order.

     If	a command script has the extension ".wav", it is not
     necessary	to  use	 the  "exec" command (e.g.: entering
     "myscript"	 is  equivalent	 to  "exec   myscript.wav").
     Hence,  you  can  make your own scripts work as if	they
     were native SimWave commands.


4.4.12.	 Clearing Signals


     To	clear all signals from	the  display  window,  enter
     "clear"  (or  "clear  *").	To clear individual signals,
     use the mouse to select them, and drag them outside the
     window, or	enter "clear <signal_list>".

     You may always redisplay a	cleared	signal at any  later
     time.  Clearing  a	 signal	 just removes it temporarily
     from the display, but does	not  erase  any	 information
     associated	with it.












Systems	Science	Inc.	   - 39	-  SimWave 2.4 User's Manual


4.4.13.	 Swapping Signal Sets


     To	swap between different (possibly  overlapping)	sets
     of	 signals, define alternate command scripts, each one
     beginning with "clear",  and  containing  display	com-
     mands.  Invoking  any  of	these scripts will display a
     different set of signals. In principle,  this  is	much
     better  than  scrolling  through large signal sets. For
     example, you might	be debugging a portion of a  design,
     and wish to look at different buses at different times.
     You might have one	script called "cntr.wav" that  shows
     the   control   signals,	and  another  script  called
     "busX.wav"	that show signals in bus "X". Then,  instead
     of	 scrolling through a huge, flat, set of	signals, you
     would simply enter	"cntr" (as  if	it  were  a  SimWave
     native  command), or "busX", to display the appropriate
     information.


4.4.14.	 Terminating


     Enter "quit". It is the only  command  that  cannot  be
     abbreviated, to avoid accidents.


4.4.15.	 Additional Commands


     SimWave provides additional  text	commands  which	 are
     fully  explained  in SimWave's on-line help.  In order,
     to	get a much better feel for the	power,	flexibility,
     and ease of use of	this tool we suggest you "play"	with
     it	for a while.


5.  REMOTE DISPLAY


X applications (such as	SimWave)  can  display	remotely  by
executing  in one machine, called the applicationserver, and
displaying  results   in   another   machine,	called	 the
displayserver.

You must make sure that	the ethernet addresses of  both	 the
display	 and  host  machines appear in the /etc/hosts files,
and that you have their	names  in  both	 of  your  ~/.rhosts
files.	To  verify  that this is the case, make	sure you can
run a remote shell from	the  SimWave  host  to	the  display
machine	and vice versa.

The display server must	run X, and  must  be  able  to	talk
through	 TCP/IP	 Ethernet with the application server.	Some









Systems	Science	Inc.	   - 40	-  SimWave 2.4 User's Manual


machines that can work as display servers include: SUN,	 HP,
DEC,  SGI, Sony, RS6000, NCD, MacIntosh, PCs, etc.  Enter in
the display server:

	xhost +
	rsh <application_server_name>
	setenv DISPLAY <disp_server_name>:0


For example, if	<disp_server_name> were	called	"zeus",	 you
would typically	enter:

 "setenv DISPLAY zeus:0".




6.  CUSTOMIZING	SIMWAVE


SimWave	can  be	 used  as  a  general  purpose,	 stand-alone
waveform  display, or it can be	integrated into	other tools.
When encapsulated by another tool, SimWave appears to  be  a
graphic	window of the tool itself.  The	tool (e.g. a simula-
tor) displays data with	SimWave	and controls all the SimWave
operations  through a procedural interface. In this case, no
intermediate files are created,	and  the  tool	and  SimWave
communicate  through  IPC.  For	 more  information,  see the
"SimWave/Tsunami Integration ToolKit" documentation.

When run as a stand-alone  tool,  SimWave  uses	 readers  to
read/convert different kinds of	data. The inputFormat param-
eter in	the .simwave file specifies which  reader  is  used.
The "SimWave/Tsunami Readers" document describes a number of
readers	and how	to use them.

The actual look	and  feel  of  the  SimWave  graphical	user
interface  can	also  be modified to a great extent with the
".simwave" configuration file.	For example, colors,  menus,
grids,	keyboard  equivalences,	 etc.  can all be customized
with the ".simwave" file.  SimWave has internal	defaults for
configuration  parameters, and you can override	these inter-
nal defaults by	changing parameter values in the  ".simwave"
file.	SimWave	looks for the ".simwave" file in the follow-
ing order:

(1) your current directory,
(2) your login directory (recommended place for	it to be)
(3) $SIMWAVEHOME/LIB (installation defaults).


The parameters which most users	will  change  are  described
elsewhere  in  the  manual.  However, the .simwave file	con-
tains many other parameters that  knowledgeable	 users	will









Systems	Science	Inc.	   - 41	-  SimWave 2.4 User's Manual


find self-explanatory and may want to modify.

6.1.  Keyboard equivalences / Menus


In  the	 ".simwave"  file,  you	 may  change  the   keyboard
equivalences  for menu actions.	 This allows you to use	your
favorite keystrokes to initiate	SimWave	commands.  Pull-down
menu  items  can  also	be  rearranged	or  renamed  in	 the
".simwave" file.  In the ".simwave" file you can change	many
other  default	parameters  such as the	number of textlines,
the width of the signal	name subwindow,	colors,	stipple	pat-
terns, etc..

6.2.  Changing Colors and Stipples


SimWave	has default colors  for	 the  different	 components,
such  as  the  cursor, traces, spikes, etc. You	change these
colors in the .simwave file and	set them as desired. See the
file  "/usr/lib/X11/rgb.txt"  for  the	set of defined color
names.

Stipple	patterns are used for PostScript  printout  and	 for
black/white  displays. These are specified as hex numbers in
the .simwave file. Each	stipple	pattern	consists of 16 bits,
in  4 hex digits. A 1 corresponds to an	ON pixel, and a	0 to
an OFF pixel. Sometimes, depending on the physical mechanism
that  is  used	for rasterization, a particular	stipple	will
not be satisfactory. If	this is	the  case,  you	 may  define
different patterns by changing the corresponding hex numbers
in .simwave.

7.  CAPABILITIES

7.1.  Supported	Hardware


SimWave	can display waveforms in  any  workstation  with  X-
Windows, or on X terminals.

The  architectures  currently  supported  are	SPARC,	 x86
(NCR3300),  HP400,  HP700, and IBM RS6000. Note	that as	long
as you have just one of	these hosts in your network, you can
display	with SimWave on	any machine that supports X-windows,
including X-terminals.

SimWave	produces hardcopy output on any	PostScript  compati-
ble printer.


7.2.  Software Compatibility











Systems	Science	Inc.	   - 42	-  SimWave 2.4 User's Manual


SimWave	can display the	output files produced by many indus-
try  standard  simulators,  including Zycad Corporation's XP
accelerators EPIC Design Technology's TimeMill and PowerMill
simulators, Harris/MCC VHDL, Cadence's Verilog,	and numerous
special	purpose	tools.

Using the SimWave/Tsunami Integration Toolkit, any tool	 can
be made	compatible with	SimWave	without	too much effort.


7.3.  Main Features


Digital

	- Binary signals, buses, vectors, enumerated types
	- 4 level display for logic value of digital signals (0,1,X,Z)
	- Support for 16 strength levels (user selectable colors / stipples)
	- Support for VHDL enumerated, integer,	floating pt., and physical types
	- User defined character mnemonics for logic values and	strengths
	- User defined enumerated types	(with arbitrary	string values)
	- Binary, octal, and hex modes for buses
	- Spikes, violations, strobes, special markers
	- Dynamic bus &	vector creation	(to group flattened data)




Analog & Mixed

	- Mixed	display	of analog and digital signals side by side
	- Auto-scaling of analog signals
	- Windows oriented to analog signals
	- Value	& time grids
	- Full support of units
	- Multiple display styles (comb, join, smooth splines, histogram)
	- Auto-assignment of colors (or	stipples) for each curve


User Interface

	- Interactive and Post-processing modes
	- Multiple independent windows
	- Variable window size
	- Vertical/horizontal and scaling
	- Pull-down menus and dialog boxes
	- On-line help
	- User definable, single keystroke, menu equivalents.
	- Interactive configuration (or	through	a setup	file)
	- Command scripts
	- Both color and B/W supported
	- Wildcards and	ranges accepted	in all commands
	- Automatic command completion
	- Display waveforms on any X-Windows workstation or terminal









Systems	Science	Inc.	   - 43	-  SimWave 2.4 User's Manual


	- Display through an Ethernet to any workstation on a net


Display

	- Reorder/add/remove signals/buses
	- Move signals/buses across windows
	- Move in time and/or rescale using stretchable	scrollbar
	- Continuous zooming in/out; zoom into region
	- Panning
	- Trace	highlighting


Timing and Analysis

	- Interactive trigger definition
	- Triggering on	 arbitrary combinations	of events
	- Triggering on	edges, values, comparisons between signals, etc
	- Triggering on	logic levels, strengths, analog	values,	bus values, etc
	- Interactive trigger enabling and disabling
	- Triggering on	multiple triggers
	- Check	time between edges of any pair of signals
	- Self scaling or user defined time grids
	- Expand bus values
	- Waveform comparison


Hardcopy

	- Single/multi-page PostScript output for laser-printers
	- PostScript output can	also be	uploaded by documentation packages


Integrators

	- SimWave can be used as is, or	reconfigured with an integration toolkit
	- Integration toolkit provides a procedural interface
	- Modular design allows	usage with multiple tools
	- Other	tools can use SimWave to display their output interactively
	- SimWave will accept remote commands issued by	other tools
	- Graphically update simulation	results	as the simulation advances
	- Post-process results contained in files
	- Display and compare output and expected results from different sources




















Systems	Science	Inc.	   - 44	-  SimWave 2.4 User's Manual


8.  RELEASE NOTES FOR VERSION 2.3


8.1.  Enhancements



     Provides a	scrollbar for  the  footnote  sub-window  so
     that one can review previous commands and messages.  In
     addition, the footnote sub-window now supports  command
     history and substitution.

     The minimum vertical spacing between traces can be	 set
     with the "traceGap" parameter in the .simwave file.

     Violations	can now	be printed in the  PostScript  hard-
     copy.

     SimWave can now start up displaying a plot	window	ini-
     tially.   The "initialWindow" parameter in	the .simwave
     file specifies if SimWave should start up with a  mixed
     window (normal digital/analog display) or a plot window
     (analog only display).

     The value grid is now user	settable  in  plot  windows.
     The  value	 grid  may be set via the "vgrid" command or
     the "setup	value grid" item in  the  setup	 menu.	 The
     "AutoValueGrid",	"ValueGridOffset",  "ValueGridStep",
     and "ValueGrid" parameters	in the .simwave	file  deter-
     mine how the grid will appear upon	startup.

     The vertical range	(y-axis	 minimum  and  maximum)	 for
     plot  windows  is	now user settable.  The	"AutoRange",
     "RangeMinVal",  and  "RangeMaxVal"	 parameters  in	 the
     .simwave  file determine the range	upon startup.  After
     start up, the range may be	changed	with the "setup	win-
     dow"  item	 in  the  setup	menu or	the "range" command.
     The syntax	for the	range command is:


	     range  min	 max

     Analog signals can	now be scaled with the new  "vscale"
     command. Scaling will multiply all	data for a signal(s)
     by	a constant factor.  The	command	is  most  useful  in
     plot  windows  when  comparing analog signals with	dif-
     ferent magnitudes or units	(e.g. uA and mV	).  The	sig-
     nal  in uA's can be multiplied by 1000 so that it visi-
     ble on the	same scale as the signal in mV's.  The	syn-
     tax for the vscale	command	is:


	     vscale  factor  <signals>










Systems	Science	Inc.	   - 45	-  SimWave 2.4 User's Manual


8.2.  Major Bug	Fixes



     The OR operator, "|", now works for all trigger expres-
     sions.

     Edge triggers, "^", now find the very first edge  of  a
     signal.

     Data up to	32  bits  (2^32)  can  be  viewed  with	 the
     scrollbar.	  Previously  one could	view data up to	2^32
     with the "view" command, but the scrollbar	only allowed
     viewing up	to 2^31.

     The "zoom into" command now works at very high  resolu-
     tions.   Previously  the "zoom into" command would	cor-
     rupt the time boundaries if one tried to zoom into	 too
     small a region of time.

     Double clicking in	a text entry field (in a dialog	box)
     now  clears  the  field  correctly.   Previously a	user
     could double click	in a text entry	field and the  field
     would  appear to be cleared, but SimWave would read any
     subsequent	user entries from the field incorrectly.

     Setting "TimeGrid = on" in	 .simwave  file	 now  causes
     SimWave to	start with the time grid visible.


8.3.  Changes to the .simwave file



     Version 2.2 .simwave files	are not	compatible with	Ver-
     sion  2.3.	  Please  replace  your	Version	2.2 .simwave
     files with	the .simwave file shipped with Version 2.3.

     The default keyboard equivalence  for  the	 EqPrintFile
     parameter has been	changed	from "^p" to "^f".

     The "show time grid" menu item has	been moved from	 the
     timing menu to the	window menu.

     The  "EnableStrengths"  parameter	has   been   renamed
     "ShowStrengths";  the "EqEnableStrengths" parameter has
     been renamed "EqShowStrengths"; and the "ShowStrengths"
     parameter has been	renamed	"Strengths".

     The "LastCommand" and "EqLastCommand"  parameters	have
     been  deleted because the following parameters now	con-
     trol the command substitution and	line  editing  func-
     tions available with the new footnote sub-window:










Systems	Science	Inc.	   - 46	-  SimWave 2.4 User's Manual


expand box; l s	s l s s	l s s l	s s c |	c | c l	 |  l  |  l.
possible parameter values:
	'^'<char> => ctrl <char>
	'$'<char> => meta <char>
	none turns off capability =  Parameter	     Default
Value	Comment	= StartOfLine	  ^A	  # move to start of
line _ EndOfLine       ^E      #  move	to  end	 of  line  _
BackChar	^B	#     move    back    1	   char	   _
BackWord	"$b   $B" #   move    back    1	   word	   _
ForwardChar	^F	#    move    forward	1   char   _
ForwardWord	"$f   $F" #   move   forward   1   word	   _
DelForwChar	^D	#     delete	forward	   char	   _
DelForwWord	"$d   $D" #   delete	forward	   word	   _
DelBackChar	"^H    ^?" #	delete	 backward   char   _
DelBackWord	"$^H $^?"	#  delete  backward  word  _
InterruptCmd	^C	# interrupt command and	abort line _
EnterLine	"^J	 ^M" #	    accept	line	   _
ReprintLine	^L	#	redisplay	line	   _
ReverseSearch	^R	# reverse search for (next) char (or
^R)  _	ForwardSearch	^S	#  forward search for (next)
char (or ^S) _ Transpose       ^T      #  transpose  last  2
characters  _  KillLine	       ^U      #  kill entire line _
KillToChar	^K	#   kill   to	 (next)	   char	   _
Yank	^Y	#     yank     kill	buffer	  _    Meta-
Char	    ^[	    #	     meta	 character	   _
AbortCmd	^G	# abort	previous search, KillToChar,
or Meta	_ FirstHist	  $,	  # first history  _  LastH-
ist	   $.	   #	      last	   history	   _
NextHist	^N	#	next	    history	   _
PrevHist	^P	#	previous      history	   _
Expand	"$$"	# expand/substitute history/word,  etc..   _
WordDelimiters	"  ;,' _ CmdCompletion	 on	 # turn	com-
mand completion	on or off _  RingBell	     on	     #	turn
bell  ringing on errors	on or off _ history 20	    # Number
of text	lines to saved in history _




























Systems	Science	Inc.	   - 47	-  SimWave 2.4 User's Manual


8.4.  Notes for	version	2.3B



     The range command has been	extended to operate on	ana-
     log  signals  which  are displayed	in normal (non-plot)
     SimWave windows. The syntax is:


	     range  min	 max  <signals>


     Each of the listed	signals	will be	 displayed  in	hor-
     izontal "tracks" which have the vertical boundaries min
     and max.



     The "time scroll" item in the  "setup"  pull-down	menu
     has  been	fixed.	 In  earlier versions of SimWave the
     time scrolling feature could be turned  off  but  could
     not  be  turned  back  on.	 See "Time Scrolling" in the
     PULL-DOWN MENU section of this manual.


8.5.  Notes for	version	2.3C



     Users can now type	directly into a	dialog box when	run-
     ning SimWave under	Sun's OpenWindows software.  SimWave
     2.3B and earlier versions did not	allow  the  user  to
     type  directly  into  the text entry fields of a dialog
     box.  Dialog boxes	which contain text entry fields	 are
     created  when:  the  print	menu is	selected; the "setup
     window" item in the setup menu is selected; the pointer
     is	clicked	on the time boundaries.

     The trigger operators for equality,  "=",	and  differ-
     ence,  "#",  now  work when comparing a bus signal	to a
     constant value.  This did not work	in SimWave 2.3B	 and
     earlier versions.

     The vertical scrollbar arrows have	been fixed.  Earlier
     versions  of  SimWave  could  fail	 to redraw the trace
     sub-window	after the user clicks the pointer in one  of
     the  vertical  scrollbar arrows.  Typically, the signal
     names would be scrolled, but the  signal  traces  them-
     selves  would  be	erased	and  not redrawn. This error
     occurs very infrequently and is most likely to be visi-
     ble with SimWave 2.3B.

     The following change should be noted by developers	 who
     use   the	SimWave	 Integration  Toolkit.	 Interactive









Systems	Science	Inc.	   - 48	-  SimWave 2.4 User's Manual


     interfaces	developed with the Integration Toolkit	sup-
     plied with	SimWave	2.3B and earlier versions invoke the
     SimWave program located  at  /usr/ssi/wav/BIN/wd.	More
     specifically, the StartSimWave and	WDStart	functions in
     the Integration library forked the	program	 located  at
     /usr/ssi/wav/BIN/wd.   The	Integration Toolkit supplied
     with SimWave  2.3C	 (and  with  future  versions)	will
     invoke  the  "wd"	program	 found	in the user's search
     path.


8.6.  Notes for	version	2.3D



     The trigger operator  for	contains,  "~",	 now  works.
     This did not work in SimWave 2.3, 2.3B, and 2.3C.


8.7.  Notes for	version	2.3E



     Users can now display data	with a time offset up to  48
     bits  (2^48).   In	 order to take advantage of this new
     capability	the "reader"  which  loads  your  data	into
     SimWave  must  support  48	bit time offsets.  Users are
     still limited to loading and viewing 2^32 time units of
     data. For example,	one can	load simulation	results	from
     time=11000000000 to time=14000000000.

     SimWave now draws time grid labels	 whenever  the	time
     grid is displayed.	 If grid lines are too close to	draw
     every grid	label, then SimWave  will  draw	 alternating
     grid labels.

     Operation of the  time  scrollbar	has  been  improved.
     Earlier  versions	of  SimWave could fail to redraw the
     trace sub-window after the	user clicks the	 pointer  in
     the  time	scrollbar.   Typically,	 the time boundaries
     would be changed,	but  the  signal  traces  themselves
     would be erased and not redrawn. This error occurs	very
     infrequently and is most  likely  to  be  visible	with
     SimWave 2.3B, 2.3C, and 2.3D.

     SimWave error reporting  has  been	 improved.   SimWave
     will  notify the user if a	reader is either: not found,
     not executable, exits with	non-zero  status,  or  exits
     with  a core dump.	 In addition, SimWave will print all
     error messages generated by a reader.  Earlier versions
     of	SimWave	would not always print the entire error	mes-
     sage generated by a reader.

     SimWave  operation	 on  monochrome	 displays  has	been









Systems	Science	Inc.	   - 49	-  SimWave 2.4 User's Manual


     improved.	 In earlier versions of	SimWave, grid lines,
     value cursor, spikes, and violations were	not  visible
     if	 the "traceBackground" was set to "white" on a mono-
     chrome display.  PostScript  plots	 produced  on  mono-
     chrome  displays would also print signals with strength
     information with incorrect	line styles.   SimWave	2.3E
     fixes these problems.

     Under some	circumstances, earlier versions	 of  SimWave
     would not redraw the very last pixel of a line segment.
     SimWave 2.3E fixes	this problem.

     The SimWave "view"	command	 would	not  work  correctly
     when  the	simulation data	loaded by SimWave had a	non-
     zero starting time	(i.e. the leftmost possible time was
     non-zero).	 SimWave 2.3E fixes this problem.

     Developers	who  use  the  SimWave	Integration  Toolkit
     should take note of the following changes:



	  Interactive interfaces developed with	the Integra-
	  tion	Toolkit	supplied with SimWave 2.3E and later
	  versions will	attempt	to invoke the  SimWave	pro-
	  gram	  located   in	 "/usr/ssi/wav/BIN/wd".	  If
	  "/usr/ssi/wav/BIN/wd"	 does  not  exist  then	 the
	  SimWave  program in the user's search	path will be
	  invoked.

	  When SimWave is started it will first	look  for  a
	  reader  in  "/usr/ssi/wav/BIN".   If the reader is
	  not in "/usr/ssi/wav/BIN" SimWave  will  look	 for
	  the reader in	the user's search path.

	  Users	of the Procedural Interface functions in the
	  SimWave   Integration	  Toolkit,   may   now	call
	  "WDStart" repeatedly	to  start  multiple  SimWave
	  processes.   Each  call  to "WDStart"	must be	fol-
	  lowed	by a call to "WDEnd"  before  the  "WDStart"
	  function may be called again.


8.8.  Notes for	version	2.3F



     The time grid is now user configurable.  The time	grid
     may  be  set  with	 the "grid" text command or with the
     "setup time grid" item in the setup menu.	 See  "Setup
     Time  Grid" in the	PULL-DOWN MENU section and "Changing
     the Time Grid" in the TEXT	COMMANDS  section.   If	 you
     have  installed  copies  of the ".simwave"	file in	your
     home directory  or	 in  your  design  directories,	 you









Systems	Science	Inc.	   - 50	-  SimWave 2.4 User's Manual


     should  modify  these  copies  or replace them with the
     "/usr/ssi/wav/LIB/.simwave" file shipped  with  SimWave
     2.3F.



	  The .simwave file has	been changed to	support	user
	  configurable	time  grids.   The "menu4" parameter
	  has been changed, and	these 5	new parameters	have
	  been	added to the ".simwave"	file: "EqGridSetup",
	  "GridSetup",	 "AutoGrid",	"GridOffset",	 and
	  "GridStep".  The  "/usr/ssi/wav/LIB/.simwave"	file
	  shipped with SimWave 2.3F contains the  new  value
	  for  the  "menu4" parameter and the default values
	  for the 5 new	parameters.


     SimWave 2.3F command  lines  can  contain	much  longer
     lists.   If  SimWave  runs	 out  of  buffer  space	when
     expanding the wildcards (*) and ranges ([]) in the	com-
     mand line,	it will	print a	message	similar	to :


	     sorry, .... is too	long!



     This warning was most likely to occur when	 defining  a
     bus  containing  a	 list  of  signals  with long names.
     SimWave 2.3F has a	much larger buffer  space,  and	 the
     user is unlikely to exceed	the new	limits.

     SimWave bus constants no longer require a leading	"0".
     Bus  constants  are described in the "Triggers" portion
     of	the PULL-DOWN menu section.

     SimWave 2.3E and earlier versions could core dump if  a
     user  redefined a bus which was selected (i.e. its	name
     was highlighted).	SimWave	2.3F fixes this	problem.

     Certain window managers allow users to  "maximize"	 the
     size  of  a  window.  SimWave 2.3E	and earlier versions
     would "maximize" the SimWave window such  that  it	 was
     ~10  times	bigger than the	display.  SimWave 2.3F opens
     a window only as large as the display.

     Developers	who  use  the  SimWave	Integration  Toolkit
     should take note of the following changes:



	  Two new procedural interface functions are  avail-
	  able:	  "WDBigBusDef"	 and  "WDBigBusVal".   These
	  functions allow users	to define and set values for









Systems	Science	Inc.	   - 51	-  SimWave 2.4 User's Manual


	  buses	 with  up  to 200 bits.	These functions	also
	  allow	users to define	buses such that	the bits  in
	  the bus have initial values other than 0 or 1. For
	  example, one may want	the bits of bus	to have	 the
	  initial value	Z (high	impedance).

	  The Procedural Interface function "WDAbsTime"	 now
	  works	 correctly  when  "WDStart" is called with a
	  non-zero starting time.

	  The "WDBusVal" and "WDBusBits" functions have	been
	  fixed.   The	"WDBusVal" and "WDBusBits" functions
	  would, at times, ignore new values for the bits of
	  the  bus.  For example, a call to "WDBusVal" would
	  tell SimWave to change the bits of a bus from	 all
	  0's to all 1's, but only half	of the bits would be
	  changed.


8.9.  Notes for	version	2.3G



     SimWave now provides a horizontal scrollbar for  signal
     names.   The  horizontal scrollbar	allows users to	view
     the portions of signal names which	do not	fit  in	 the
     signal  name sub-window.  Arbitrarily long	names can be
     viewed.  Earlier versions	of  SimWave  would  truncate
     signal  names that	were longer than the "maxNameLength"
     parameter in the ".simwave" file.



     The displayed signal list can now be saved	with the new
     "save"  text  command.   See  "Saving  Displayed Signal
     List" the TEXT COMMANDS section.


8.10.  Notes for version 2.3H



     SimWave now draws overlapping transitions much  faster.
     Traces  with  many	 transitions  may  be drawn up to 40
     times faster.


8.11.  Notes for version 2.3I



     A "color" text command has	been added.  The  format  of
     the new command is:
	     color <color name>	<signal	list>









Systems	Science	Inc.	   - 52	-  SimWave 2.4 User's Manual


     SimWave 2.3I fixes	a problem with SUN's OpenWindows  3.
     OpenWindows  3  would not draw grid lines in a "dashed"
     style; rather, grid lines were always drawn in a  solid
     line style.

     SimWave  2.3I  produces  improved	PostScript   output.
     PostScript	 output	 is  now  loadable  into  FrameMaker
     without changes.

     SimWave 2.3I fixes	a problem with the  initial  drawing
     of	 the  SimWave window.  In SimWave versions 2.3A-H, a
     new SimWave window	could remain blank after being	ini-
     tially  mapped  on	 the  display.	This was an uncommon
     occurrence	and manually refreshing	the window would fix
     the problem.

     SimWave 2.3I improves viewing of data  during  interac-
     tive simulations.	The time scrollbar is no longer	con-
     stantly redrawn during an interactive  simulation	when
     "time  scroll"  in	 the  setup  menu is turned off.  In
     addition, an update flag is drawn in  the	lower  right
     corner  of	 the  SimWave  window when time	scrolling is
     turned off.  This reminds the user	that additional	 may
     have  arrived.  Clicking on the update flag or toggling
     "time scroll" back	on will	read and display  the  addi-
     tional data.

     SimWave 2.3I fixes	a problem when viewing data  with  a
     non-zero start time.  In some environments, SimWave may
     use a non-zero start time,	i.e.  data before the  start
     time  will	not be viewable.  If SimWave uses a non-zero
     start time, user specified	times may be rejected (times
     entered  for  the	changing the view or the time grid).
     SimWave will print	this message:

	     Incorrect time specification

     Developers	who  use  the  SimWave	Integration  Toolkit
     should take note of the following changes:



	  A bug	in the	WDStart	 function  has	been  fixed.
	  Every	 call  to  the WDStart function	starts a new
	  SimWave process and opens a  new  SimWave  window.
	  If  an interface makes multiple calls	to WDStart (
	  and one or more of the previously created  SimWave
	  windows  has	been  quit ), WDStart would enter an
	  infinite loop.














Systems	Science	Inc.	   - 53	-  SimWave 2.4 User's Manual


9.  RELEASE NOTES FOR VERSION 2.4


9.1.  Enhancements



     SimWave now supports the display of bus values in ASCII
     and decimal formats.  See "Changing Base" in the "MOUSE
     OPERATIONS" section for more information.

     SimWave can create	new RTL-Spreadsheet  windows.	RTL-
     Spreadsheets present data at a higher level of abstrac-
     tion than waveforms. Block	diagrams and  registers	 are
     used  to  display	and  analyze simulation	output.	 See
     "APPENDIX A: RTL-Spreadsheet" for more information.

     SimWave provides overlap detection.   When	 the  number
     transitions  of  a	 signal	per time exceeds the limited
     screen resolution,	those transitions will be  displayed
     one on top	of the other (they overlap).  When this	hap-
     pens (typically, when displaying large time intervals),
     SimWave will draw the overlapping transitions in a	dif-
     ferent color. This	feature	can be turned  off  by	tog-
     gling the "highlight overlaps" item in the	"setup"	menu
     or	by setting the "Overlaps" parameter in the  .simwave
     file  to "off".  See "Highlight Overlaps" in the "PULL-
     DOWN MENU COMMANDS" section for more information.


9.2.  Major Bug	Fixes



     SimWave 2.3 would terminate abnormally when  displaying
     binary  signals  that  had	 many  transitions between a
     driven value (0 or	1) and a tri-state or unknown  value
     (Z	or X).


9.3.  Changes to the .simwave file



     Version 2.3 .simwave files	are not	compatible with	Ver-
     sion  2.4.	  To  take  advantage of the enhancements in
     Version 2.4, please replace your Version  2.3  .simwave
     files with	the .simwave file shipped with Version 2.4.















Systems	Science	Inc.	   - 54	-  SimWave 2.4 User's Manual


10.  APPENDIX: RTL-Spreadsheet


10.1.  Overview


The RTL-Spreadsheet presents data at  a	 higher	 abstraction
level than waveforms. You create block diagrams	and view the
simulation  output  in	these	block	diagrams.    Whereas
waveforms  show	 a  history  of	 simulation output, the	RTL-
Spreadsheet shows snapshots of the  simulation	output	(and
state) at different times.

For example, when debugging a simulation of  a	microproces-
sor,  you  can	create	a diagram showing the key registers,
stack pointer, and other important components.	When you are
simulating  at	this  level, perhaps debugging microcode, or
looking	at machine instructions, it  is	 ideal	to  look  at
values within a	diagram	that shows the flow of information.

The RTL-Spreadsheet diagram is created with  straightforward
text  commands,	 before	or after a simulation.	The commands
describe the labels and	values to be displayed.

For  a	demonstration  of  the	RTL-Spreadsheet	 go  to	 the
"$SIMWAVEHOME/SAMPLES/rtl"  directory  and read	the "README"
file.


10.2.  Usage



The following describes	the new	SimWave	 text  commands	 for
the  RTL-Spreadsheet.	RTL-Spreadsheet's  are	created	 and
modified by entering commands in a SimWave window.  The	com-
mands can be entered either interactively or with a script.


10.2.1.	 Opening an RTL-Spreadsheet



     ropen [<xgeometry>] [<name>]


This command  opens  an	 RTL-Spreadsheet  window.  The	RTL-
Spreadsheet window will	be synchronized	with the correspond-
ing SimWave window (the	window in which	the "ropen" was	exe-
cuted).	The values in the RTL-Spreadsheet will correspond to
the location of	the cursor in the SimWave window.  When	 the
cursor	is  moved  in  the SimWave window, the values in the
RTL-Spreadsheet	will be	updated.










Systems	Science	Inc.	   - 55	-  SimWave 2.4 User's Manual


<xgeometry> is the preferred geometry (in X Windows  format)
for  the  RTL-Spreadsheet  window.  For	 example, <geometry>
could be "=800x600+100+100".

<name> will be used as the window name.	Most window managers
will  display  this name in the	frame encapsulating the	win-
dow. The name is also displayed	by some	 managers  when	 the
window is in iconic form.

NOTE:

When a	SimWave	 window	 is  closed  (destroyed),  all	RTL-
Spreadsheet's  which  were  opened  from that SimWave window
will also be closed.

If a SimWave window opens  more	 than  one  RTL-Spreadsheet,
they will all be synchronized with that	SimWave	window.


10.2.2.	 Adding	a line to an RTL-Spreadsheet



     rdisplay <format string> [<signal list>]


This command displays text and	signal	values	in  an	RTL-
Spreadsheet.   <format string> is very similar to the format
used by	the "C"	language "printf" function.   <signal  list>
is a list of signal names separated by white space.

<format	string>	 contains  ordinary  characters,  which	 are
printed	 unchanged  in the RTL-Spreadsheet. It can also	con-
tain conversion	specifiers, which cause	the  conversion	 and
printing  of  the next successive signal (in <signal list>).
Conversion specifiers in the <format  string>  describe	 how
the  value  of the signal is printed.  Conversion specifiers
include:


	%x	hexadecimal
	%d	decimal
	%o	octal
	%b	binary
	%s	ascii



Between	the '%'	character and the conversion character there
maybe, in order:













Systems	Science	Inc.	   - 56	-  SimWave 2.4 User's Manual





	A minus	sign which specifies left adjustment of	 the
	converted argument

	A number which specifies the  minimum  field  width.
	The converted argument will be printed in a field at
	least this width. If the argument is right  adjusted
	(the default), the argument is padded on the left if
	necessary.  If the argument is	left  adjusted,	 the
	argument is padded on the right	if necessary.

	A period which separates  the  minimum	field  width
	from the maximum field width.

	A number which specifies the  maximum  field  width.
	The converted argument will be printed in a field no
	more than this width. If the argument is  right	 ad-
	justed	(the  default),	the argument is	truncated on
	the left if necessary.	If the argument	is left	 ad-
	justed,	 the  argument	is truncated on	the right if
	necessary.



Usage is simple.  For example, if  you	have  signals  named
"IO_4"	and  "IO_5"  and their current values are "0110" and
"1111",	the command:


     rdisplay "IO_4=%b IO_5=%b"	IO_4 IO_5


will display "IO_4=0110	IO_5=1111" in  the  RTL-Spreadsheet.
The command:


     rdisplay "IO_4=%.2b IO_5=%6b" IO_4	IO_5


will display "IO_4=10 IO_5=  1111" in the RTL-Spreadsheet.

The RTL-Spreadsheet is "line" oriented,	like a text  window.
By  using  the \n character in <format string>,	a "rdisplay"
command	can print on multiple lines. For example,  the	com-
mand:


     rdisplay "	IO_4 = %b\n IO_5 = %b" IO_4 IO_5


will display "IO_4=0110" on one	line and display "IO_5=1111"
on the next line.









Systems	Science	Inc.	   - 57	-  SimWave 2.4 User's Manual


Successive "rdisplay" commands are always printed on succes-
sive  lines  in	the RTL-Spreadsheet (even if <format string>
does not contain a \n character).

NOTE:

If a SimWave window opens  more	 than  one  RTL-Spreadsheet,
"rdisplay" commands only apply to the last one opened.


10.3.  Customization



Because	the RTL-Spreadsheet  is	 a  Motif  application,	 the
resources  (fonts and colors) are set through the X server's
resource database, rather than through the ".simwave" file.

If you would like to change the	resources, you will need  to
use   the   RTL-Spreadsheet   resource	 file,	 located  in
"$SIMWAVEHOME/LIB/RTLresources".  Typically a copy  of	this
file  is  put  in the "/usr/lib/X11/app-defaults" directory.
This guarantees	that the next time you startup	your  window
system,	the "/usr/lib/X11/app-defaults/RTLresources" will be
used.

To change the resources	dynamically (without re-starting the
window system),	use the	command:


     xrdb RTLresources


However, the resources will change back	 to  their  defaults
the  next  time	 the window system is re-started if you	have
not  put  a  copy  of  RTLresources  in	  "/usr/lib/X11/app-
defaults".


























Systems	Science	Inc.	   - 58	-  SimWave 2.4 User's Manual


11.  APPENDIX: DEFAULT .simwave	FILE






























































Systems	Science	Inc.	   - 59	-  SimWave 2.4 User's Manual


12.  APPENDIX: EXAMPLES	OF POSTSCRIPT OUTPUT



























































