
















		  SimWave/Tsunami Readers






















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

























Systems	Science	Inc.	   - 2 -     SimWave/Tsunami Readers









		     SimWave/Tsunami Readers












		      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.


_________________________

XPLUS, SimWave,	Magellan, Tsunami, PinSkew, and	 Power-
Sim  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









Systems	Science	Inc.	   - 3 -     SimWave/Tsunami Readers


1.  OVERVIEW


Readers	are the	programs used  by  SimWave  and	 Tsunami  to
receive	 information  from  different  types  of simulators.
Readers	are small programs which know  how  to	interpret  a
particular  data  format. They load simulation data, convert
the data, and using a procedural interface, send the data to
SimWave.

The inputFormat	 parameter  in	the  ".simwave"	 file  tells
SimWave	which reader to	use.  SimWave will add a ".rdr"	suf-
fix to the inputFormat value and look for an executable	file
with  that  name  in  $SIMWAVEHOME/BIN.	 For example, if you
specify	  inputFormat=mach,    SimWave	  will	  use	 the
$SIMWAVEHOME/BIN/mach.rdr program to load data.

SimWave	looks for the .simwave file:

     1st in your current directory,
     2nd in your home directory	(preferred place to put	.simwave)
     3rd in the	system-wide .simwave in	$SIMWAVEHOME/LIB


If the inputFormat=none	or inputFormat=SimWave,	no reader is
used.  Instead,	 SimWave  will	expect	a  SimWave formatted
binary file.  These  files  can	 be  created  by  a  SimWave
reader,	 simply	 by  using it as a filter.  For	example, the
command:

	mach.rdr xyz > xyz.b


Creates	a  SimWave  binary  format  file  "xyz.b".   SimWave
binary	format	files can be displayed by simply by entering
"wd <filename>". For example, to view the data in "xyz.b":

	wd  xyz.b &


SimWave	passes all flags and command line arguments  to	 the
specified  reader;  the	 reader	is then	responsible for	pro-
cessing	them.  The readers described in	 this  document	 are
written	 by  SSI  and  by end users.  As more readers become
available, the usefulness of SimWave as	 a  general  purpose
waveform display continues to grow. Users may create readers
that combine actual and	expected data,	tester	information,
strobing, etc.	If you would like information describing how
_________________________
Design Technology.  HILO and System HILO are trademarks
of Genrad.  CADAT is a trademark of  Racal-Redac.   Ac-
ceLSI  is  a  trademark	of LSI Logic.  Verilog is a re-
gistered trademark of Cadence.










Systems	Science	Inc.	   - 4 -     SimWave/Tsunami Readers


you  can  develop  your	 own   readers,	  please   see	 the
"SimWave/Tsunami Integration ToolKit" documentation.

This document describes	some of	the available readers  (note
that  not  all readers are available on	all platforms).	 New
readers	are under continual development. If  you  require  a
reader for a format which is not listed, please	contact	Sys-
tems Science.


2.  Mach (MACH 1000, 1500, and 2000, XP	100 and	200)


The Mach reader	 uses  the  binary  ".or"  output  from	 the
accelerator (not the ".dpo"), the ".msym" and ".hsym" symbol
tables,	and the	".srl" recording list.	Since  it  uses	 the
binary output of the accelerator, you may use it with almost
all interfaces to the MACH/XP,	including  those  from	SSI,
Zycad,	Silicon	Compilers, HHB,	and others.  To	use the	mach
reader,	set inputFormat=mach in	the ".simwave" file.

The Mach reader	expects	at a minimum one argument, which  is
the  common  root  name	for the	files above. For example, if
the files are "gem.or",	"gem.hsym", etc, you would enter

	wd  gem	&


Optionally, you	may also specify any of	the following  flags
before the root	name of	the design:

	-S  filename root name for symbol tables (.msym, .hsym)
	-orec  filenamename of .or file to load
	-irec  filenamename of .ir file to load
	-tech  filenameroot name for technology files
	-fmt  filenamename of format file to use
	-nofmt	     do	not use	a format file
	-dispu	unitsdisplay time units	(e.g. 1ns, 100ps, etc; defaults	to 1ns)
	-start	time starting time
	-stop  time  ending time
	-flush	valuefrequency for flushing data to SimWave
	-pow	     load PowerSim data	alongside logic	data



For example,


	wd  -dispu  100ps  -start  4000	 -stop	5000  gem


will assume the	 data  is  in  gem.{or,hsym,msym,srl},	that
every  simulator tick corresponds to 100ps, and	will display
data only within the interval [4000,5000] (which  is  faster









Systems	Science	Inc.	   - 5 -     SimWave/Tsunami Readers


than  loading the full simulation data,	if you do not intend
to look	at all of it).

By default, the	mach.rdr program will use the signal defini-
tions  in the ".srl" file. If no ".srl"	exists,	then it	will
use the	definitions in the ".fmt" file.	This can be  overid-
den by the "-fmt" and "-nofmt" flags.

The "-fmt filename" flag tells the mach.rdr program  to	 use
the signal definitions in "filename".

The "-nofmt" flag tells	the mach.rdr  program  to  not	pick
signal	definitions  from a file. Instead, the mach.rdr	pro-
gram will automatically	generate names for  the	 devices  in
the ".or" file by searching the	symbol tables.

If SSI's PowerSim has been run	on  the	 design,  specifying
-pow  will  upload  the	analog power curves as a function of
time, so one can find exactly when there  are  any  problems
(e.g.  simultaneous  switching	that may cause a peak),	etc.
This allows users to analyze in	 a  very  accurate  way	 the
power consumption of their circuit.


3.  Tabular


The Tabular reader reads data in a Sentry style	tabular	for-
mat.   To use the Tabular reader, set inputFormat=tab in the
.simwave file.

The Tabular reader expects at least one	argument,  the	name
of  the	 data  file.  For example, if the data file is named
"gem.sen" you would enter "wd gem.sen".	 Optionally, you may
also  specify  any of the following flags before the name of
the data file:


	-noop  char  specify alternate no op character
	-pinct	numberchange MAX	pin count to <number> (default 4096)
	-tech  name  use name as the Zycad XPlus technology file root
	-inpu  units input time	units, overrides Zycad technology file


Legal characters  for  signal  values  are  defined  in	 the
.simwave  file.	  For  example,	 if "high=H" in	the .simwave
file, then the tabular reader will  expect  the	 vectors  in
your  data  file  to use "H" to	indicate a signal is logical
high. The time units  for  the	data  is  specified  by	 the
"timeUnits"  parameter	in  the	 .simwave  file.   Users  of
Zycad's	XPlus software	may  override  the  definitions	 for
legal  characters  and	time  units  in	the .simwave file by
specifying a technology	file with  the	-tech  flag.   If  a
Zycad  technology  file	 is specified, then the	"-inpu"	flag









Systems	Science	Inc.	   - 6 -     SimWave/Tsunami Readers


can be used to override	the "sen" units	 in  the  technology
file.


4.  VCD	(Verilog)


The VCD	reader loads Verilog value change  dump	 files	into
SimWave.   To use the VCD reader, set inputFormat=vcd in the
".simwave" file.  This reader takes only one  argument,	 the
name of	the VCD	file.  For example if your VCD file is named
"top.dump" you would execute the command:


	wd  top.dump


to load	the data in "top.dump" into SimWave.


5.  Epic Reader	(TimeMill, PowerMill)


The Epic reader	can read both TimeMill and PowerMill  output
and  display  it on the	same or	separate windows. This gives
you the	capability of examining	your analog and	digital	data
side  by  side.	  To  use it, specify in the ".simwave"	file
inputFormat=mill.  This	reader expects	one  or	 two  flags,
which tell it which logic and/or power simulation results it
should load. The files	should	come  out  of  TimeMill	 and
PowerMill respectively.	You can	view logic and power results
simultaneously,	or separately.


	wd   <flags>

where the flags	are:

	-tim  <TimeMill_output>
	-pow  <PowerMill_output>



In addition, EPIC's tools will soon generate SimWave  binary
files  directly	 as  an	 option,  both	interactively or for
post-processing.


6.  Zif	Reader (Magnum,	Magnum II, LE, SE, SDE,	AcceLSI)


The ZIF	reader will display data produced by any of the	 ZIF
based  accelerators. To	accommodate both Zilos and non-Zilos
(self integrators) using ZIF  based  products,	this  reader









Systems	Science	Inc.	   - 7 -     SimWave/Tsunami Readers


accepts	 directly  the binary ZIF output packets ("51" pack-
ets), and a generic symbol table that can be generated	very
easily.	To use this reader, specify inputFormat="zif" in the
".simwave" file.

The zif	reader works on	SUN 4 and SPARC	workstations running
SunOS,	and  on	VAX, or	MIPS machines running ULTRIX.  There
are workarounds	to display VAX/VMS data. If your data  comes
from  a	 VAX VMS, you first need to swap bytes when bringing
it to a	SUN. Your network may take care	of doing  this,	 but
if  it	doesn't,  run  the  following  program	from the ZIF
Toolkit:


	cpyzif	<old_file>  <new_file>	-if  st3  -of  sun


If you want to	check  if  the	files  is  OK,	enter  "zfck
<file>".  If  you get many "packet 51" messages, it is prob-
ably OK; if you	don't it is certainly not OK.

The zif	reader is designed to support both small  and  large
simulations. Hence it accepts flags that allow it to display
the simulation results while the data is  being	 created  or
loaded,	and flags to view just a portion  of the output	when
such files are huge (e.g. 100 Mb of simulation output).	 The
flags it accepts are:

      -p51 <name>   File with ZIF "51" output packets
      -sym <name>   File with symbol table (format: 1 line per signal, with
		    entries of the form	"<device_number> <signal_name>")
      -start <time> Ignore all value changes before this time (default:	0)
      -end <time>   Ignore all value changes after this	time (default: end)
      -upd <interval>Update screen incrementally	while loading data,
		    every "n" time units (default: do not update until the end)
      -dall	     Display data for devices not in symbol table (using dev_num)


File names must	be in upper case.  For any sizable amount of
data,  SimWave	is orders of magnitude faster than the Zilos
Monitor.  On a	SPARC  station,	 SimWave  is  able  to	load
approximately  3Mb  of	"51"  packets  a  minute.  This	data
corresponded to	displaying 900 signals through 500,000	time
units.	Once the data is loaded, you can move back and forth
in time, in fractions of a second, regardless  of  the	data
size.

If you were to display data from a  simulation	running	 for
500,000,000  time  units, but you only wanted to see data up
to 300,000 time	units, SimWave would be	invoked	as follows:


	wd  -p51  X.OUT	 -sym  X.SYM  -end  300000  -upd  15000










Systems	Science	Inc.	   - 8 -     SimWave/Tsunami Readers


As soon	as SimWave is invoked, it  will	 bring	up  a  fresh
screen,	 and  will  start accepting commands so	that you can
see the	waveforms changing as the data is being	loaded.	  If
one  enters  "display *", all signals will be displayed, and
every 15,000 time units	the  screen  will  be  updated	with
additional data.

The symbol table provides SimWave with the symbolic name  of
each  device.	The format for the symbol table	is very	sim-
ple, each line has a device number, blank(s), and a symbolic
name. For example:

     10789clk
     777 reset
     12356cpu/cntrl/reg23/out


SimWave	will display only the signals for which	there  is  a
symbol	table  entry  (unless the "-dall" flag is used), and
the remaining ones will	be ignored. Hence, if a	huge simula-
tion  was  run,	 the symbol table file can also	be used	as a
means to reduce	the amount of data that	will  be  loaded  by
SimWave,  by specifying	the mapping for	just a subset of the
recorded signals.

Self integrators of ZIF	accelerators will have	to  generate
the symbol table themselves. For ZILOS users, it can be	gen-
erated automatically.  Once you	are running ZILOS,  to	gen-
erate a	symbol table called X.SYM, enter the command:

	store cross/ noabbreviation/  nocomments/  noheader/
report/	notype/	file=X.SYM

The "/nocomments" flag	is  fully  supported  starting	with
Zilos  6.3a.   For  earlier  versions  of  Zilos, you should
remove any comments from the generated symbol table with  an
editor or script.

The "-dall" flag  allows  displaying  all  recorded  signals
(even  those  which  are not in	the symbol table, and can be
used for debugging purposes). In fact, if  the "-dall"	flag
is  used,  the	symbol table becomes optional (SimWave would
use the	device numbers as the signal names).

The "-start" flag is used to skip over some portion  of	 the
data,  and  the	 "-end"	 flag  tells  SimWave to ignore	data
beyond a certain time point.  If  the  "-upd"  flag  is	 not
used,  data can	not be viewed until SimWave finishes loading
all of it.

If the data is very large, and one wants to repeatedly	view
a  specific  portion of	it, it is possible to invoke the zif
reader to create a binary, loadable view  of  the  data,  by
entering:









Systems	Science	Inc.	   - 9 -     SimWave/Tsunami Readers


	zif.rdr	 [flags]  >  X.wd


where all flags	are the	same as	explained  above.  Then	 one
should set "inputFormat=SimWave" in ".simwave".	SimWave	will
then assume the	data is	available  in  its  internal  binary
format,	 so  it	 should	 be  invoked as	follows	(without any
flags):


	wd  X.wd


7.  Cadat Reader


These readers run on SPARC and SUN 4  machines.	  There	 are
two of them, which at some time	will be	merged.

"cadat7n":

It takes CADAT 7 ".bso",  ".bcf",  and	".cft"	files.	 The
flags it accepts are:

	-P	root name of the design
	-S	optional subset	of recorded nodes (may be hierarchical paths)

If no -S flag is passed, all recorded nodes will be loaded.

"cadat7":

Instead	of the -S flag,	it allows a


	-d	optional maximum recording depth


If no -d flag is passed	all recorded nodes will	be loaded.

SimWave	is very	fast.  To load a set of	 26,000	 signals  it
takes  about  45 seconds on a SPARC 1. To display any subset
of those, takes	just a	couple	of  seconds.   Both  readers
allow  a  "-n"	flag  which  causes  them to collect the Pin
Numbers	instead	of Pin Names.  This  reader  relies  on	 the
CADAT  "end  of	 simulation record" to stop. This means	that
you can	use it to display the results of an on-going simula-
tion,  interactively.  However,	 if you	abort the simulation
instead	of quitting, you may have to kill the  reader  manu-
ally.


8.  SSI's PowerSim-Reader











Systems	Science	Inc.	   - 10	-    SimWave/Tsunami Readers


PowerSim computes instantaneous	power  consumption  in	CMOS
chips,	as  a function of time.	It post-processes the output
using different	sampling windows, and then displays its	out-
put  using the "mach" reader.  This allows it to display its
power curves alongside the values of the digital signals and
buses. See the "mach" reader above for more information.


9.  APPENDIX: SIMWAVE INTEGRATED INTO OTHER TOOLS


The integration	libraries can be used to make  "readers"  to
upload any type	of waveform-like data into SimWave. However,
they can also be used for two other purposes: (a)  having  a
tool  output directly SimWave binary files, or (b) integrat-
ing SimWave into the tool, so that it  looks  as  a  graphic
window of the tool itself.


9.1.  Harris/MCC VHDL


This interactive tool uses SimWave as a	graphic, interactive
window,	 to display waveforms while the	user is	running	VHDL
interactively.

The user interacts with	the  VHDL  simulator  and  debugger,
which  in  turn	 takes care of controlling SimWave. The	user
does not need any special knowledge about SimWave  (although
it doesn't hurt).


9.2.  Zycad's System VHDL


This reader is in development.


9.3.  SSI's PinSkew


PinSkew	is a package that determines timing  margins  before
manufacturing,	by  skewing  each  input pin and each strobe
point independently, back and forth, over a  certain  inter-
val.

SimWave	allows PinSkew,	 to  display  the  computed  "shmoo"
plots  that  it	 generates as part of its timing sensitivity
analysis, using	SimWave	windows.

PinSkew	 uses  SimWave's  integration  library	to  generate
SimWave	 binary	 files directly.  PinSkew stores results for
SimWave	in the file named  <design>.rptwd.   Hence,  setting
inputFormat="SimWave"  in  the	.simwave  file	and invoking









Systems	Science	Inc.	   - 11	-    SimWave/Tsunami Readers


SimWave	with the name of the binary file,  allows  users  to
view PinSkew results graphically:


	wd <design>.rptwd



9.4.  Epic's PowerMill


Epic's PowerMill is a tool that	does transistor	level  power
simulation.  PowerMill uses SimWave to interactively display
its analog results.  The user interacts	directly with Power-
Mill, which takes care of invoking and controlling SimWave.













































