1$B!'(BOverview of the software

 * Parallel logic simulation can be performed with this software.
   The key feature of this program is that the Time Warp mechanism is
   adopted for time-keeping. 

 * Target circuits should be written according to the ISCAS'89 format.

2$B!'(BEnvironment

 * Multi-PSI or PIM/m with FEPs (PSI-II/PSI-III)

3$B!'(BFile list

 * KL1 files are :
	batch.kl1	block.kl1	data.kl1	dbms.kl1
	demo_io.kl1	diag.kl1	dsp_lib.kl1	engine.kl1
	expand.kl1	fileio.kl1	global.kl1	interface.kl1
	keio.kl1	loadfgcs.kl1	main.kl1	memrep.kl1
	param.kl1	parse.kl1	partition.kl1	rn0.kl1
	table.kl1	table_cmp.kl1	truth_tbl.kl1	tw_ctrl.kl1
 * A ESP file is :
	simulation.esp

 * Prepared circuits are :
	s13207.256d12	s15850.256d12	s35932.256d16	s28417.256d12
	s38584.256d16
   They are already preprocessed.
   If you have other circuit data of ISCAS'89, you can simulate them
   after preprocessing (see 5). 

4$B!'(B Information on installation

 * On FEP (with SIMPOS) :
	Do "catalog" command. 
	The target file is "simulation.esp".
	The package name should be "simulation".

 * On the main machine (with PIMOS) :
	Do "take" command in a listener window.
	The taken file is "compile.com".

5: How to run the software

 * PREPROCESSING

    Target circuits should be partitioned by preprocessing.
    The preprocessing predicate is 
	"main:dsops(RFile,WFile,PeMax,ClstSize,DelayMin,DelayMax)"
	  or 
	"main:randiv(RFile,WFile,PeMax,DelayMin,DelayMax)".
    where, 
	RFile : is the input file name which should follow the ISCAS'89
		format. 
	WFile : is the output file name.
	PeMax : is the maximum number of processors that the partitioned
		data will pe distributed. 
	ClstSize : is the size of clusters (No.of gates in each
		cluster) generated in preprocessing. 
		The number of clusters should be much more than PeMax.
		And ClstSize should specified to satisfy this constraint.

    Note that "dsops" partitions circuits according to
    Cascading-oriented strategy, while "randiv" partitions circuits at
    random. 

 * SIMULATION

    The name of the top predicate is "main:simulation".
    After starting the program, you may be asked a couple of
    parameters. 
    If you use default parameters, you have to push the return key only. 
    But if you want to change parameters, please note the following
    infomation. 

	Filename :
	    Is the file name of target circuit data.
	    The data should be preprocessed with the partitioning program.

	Node name: 
	    Is the node name where target circuit data exists.
	    If you want to use data on the current FEP, only push
	    return key.
	    Otherwise, specify the name of remote FEP.
	Dir name :
	    Is the directory name where target circuit data exists.
	    Note that this parameter is valid only when you specify
	    the Node name explicitly.

	use pe :
	    Is the number of processors to be used.
	    The number should be the power of 2 (1,2,4,8,..).
	Clock :
	    Is a half of the clock cycle time.
	    If Clock is specified as 20, the clock cycle time is 40
	    units of time.
	TMax : 
	    is the simulation span.
	Gs :		Please ignore this parameter.
	StkLmt :
	    Is the size of history area.
	    If StkLmt is 20000, GVT operation starts when the history area
	    is occupied by 20000 input messages.
	GcCycl:
	    Is the synchrnous Gc interval.
	    If GcCycl is set to 5, a synchrnous GC operation is
	    performed every 4 GVT update operations.
	Outgate :
	    Is the name of gate whose output will be shown.
	    If you don't want to monitor the outputs, you have to
	    input "!exit"
	RTPSiz : 	Please ignore this parameter.
	Vcc :		Please ignore this parameter.
	Ground :	Please ignore this parameter.
	TWMode : 
	    Is the TC control flag. 
	    TWMode=0 		-> no Time-Ceiling control
	    0 < TWMode <TMax 	-> Constant Time-Ceiling control
	    TWMode=var 		-> Adaptive Time-Ceiling control
	REPTIMSFT : 	Please ignore this parameter.
	EvntLmt :	Please ignore this parameter.
	RlbkLmt :   	Please ignore this parameter.
	SampleNo :	Please ignore this parameter.
	PrfmMon : 
	    Is the flag for performance monitoring.
	    on  -> The transision of performance will be shown.
	    off -> The transision of performance will NOT be shown.
	Memrep :
	    Is the flag for memory consumption monitoring.
	    on  -> Memory consumption will be monitored.
	    off -> Memory consumption will NOT be monitored.
	Histgram :
	    Is the flag of monitoring messages processed at each processor.
	    on  -> Message ratio will be monitored. 
	    off -> Message ratio will NOT be monitored. 

6$B!'(BReferences

 * D.R.Jefferson,
   "Virtual Time",
   ACM Trans. on Preogramming Languages and Systems, Vol.7, No.3,
   (1985), pp. 404--425.

