CSIM Examples Directory:

Included in recent CSIM installations are sets of examples which are a good starting point for learning to use the tools and develop new models. At GES-Morestown and ATL-Camden, these are located in the ~chein/csim/demo_examples directory. Included under this directory are several CSIM example/demonstration models.

Sub-Directories:

	demo0 - A simplest example.  Two boxes of the same type
		send messages to each other.  (Does not use ATL's
		PM-Lib, just basic CSIM capabilities.)
		This model is merely illustrative of basic concepts
		and does not model any real thing.

	demo1 - Actual performance model of 72-processor system.
		This model uses an old (simple) version of ATL's
		PM-lib models.  The application is the RASSP
		Benchmark-4, SAR Highclass processing system.

	demo2 - Purely algorithmic model example.  This example
		shows how the fledgling vector-lib models can be
		used under CSIM to do purely algorithmic simulation.
		(It does not use ATL's PM-Lib.)  It shows how to
		use some of the graphing and image-display gadgets.

	demo3 - An example performance model of a fictitious 72 processor
		mesh-connected system, with a fictitious hierarchical
		application flow-graph.  This model uses an old (simple) 
		version of ATL's PM-lib models.

	demo4 - Another example performance model.  This models a 
		system containing >200 processors through a Raceway
		backplane.  Uses same application flow-graph as demo3.


General Instructions:
To work with the demos, do the following:

 1. Source the setup file in this directory.
	This sets the needed environment variable that tells where
	the CSIM tools are.

		source ~chein/csim/demo_examples/setup

 2. Copy the respective demo directory to your own area.
	This contains the ".sim" and perhaps ".dfg" files for the
	respective demo model.
	(For example, you could make a copy of all the demo's by:
		  mkdir /tmp/test
		  cp -r ~chein/csim/demo_examples/demo* /tmp/test
         Then move to each demo directory:
		  cd /tmp/test/demo0
	)

 3. Invoke the GUI and open the model.
	Either:		gui model.sim
	Or:		gui
			(then use file/open/open-new-file to open model.sim)
	Where "model.sim" is whatever the model is called. See specifics below.

 4. Peruse or edit the model.  (First time, best to do nohing.)

 5a. Build the simulation, by hitting  Tools/Build-hw  under the Tools menu.

    For demo's 1, 3, and 4, which use the ATL PM-Lib and have software applications:
	Build the routing table:
	  5b. Select  Tools / Build-Routing-Table.
	Schedule the DFG by:
	  5c. Open the DFG under the  File/Open  menu.
	  5d. Build the software under the  Tools/Build-sw  menu.

 6. Run the simulation, by hitting  Tools/Run  under the Tools menu.
      	A simulation control panel will appear, and you can run the
	simulation, change viewing options, etc.

    For demo's 1, 3, and 4, which use the ATL PM-Lib, time-line histories
	will be produced, and you can view them by selecting: 
	Tools/Proc-Timeline and Tools/Proc+Comm-Timeline.


Specific instructions for each demo:


 Demo0 - The model is called: "test.sim".
	 Build it and run it.  Text printouts from the models will appear
	 in your text window.  

	 This model does not have its own explicit calls to animate
         activities in the boxes or on the links, so you may want to
	 set box and link animation modes to use one of the built-in modes.

	 Select:  Animation / Animation-Types / 1.Nodes-Individual-Events
	 and:     Animation / Animation-Types / 1.Links-Individual-Events

	 Then you can see the boxes and links flash as the simulation runs.


 Demo1 - The main hardware model is called:  "arch4.sim".
	 (It includes the pm-lib.)
	 The application DFG is called: "hiclass4.dfg".
	 (This DFG is very simple and contains no hierarchy.)

	 This model does not have its own explicit calls to animate
	 activities on the links, so you will want to set the link
	 animation mode to use one of the built-in modes, select:
	 
	  Animation / Animation-Types / 2.Links-Concurrent-Activities

	 To speed-up the animation, you can reduce the update of the
	 time-display by selecting:

	  Animation / Time-Display / Update-Once-Every-1,000-Time-Advances

	 You can navigate the box hierarchy to see activities down inside 
	 individual boxes.  However, you may want to flatten the hierarchy 
	 of some or all of the boxes by selecting by clicking or dragging
	 a rubber-band around them so they are selected with tick-marks, and
	 then hitting menu:  View / Flatten-Selected-Subgraphs .  


 Demo2 - The main model is called: "demo2.sim".
	 (It includes library files for the math and vector library
	  elements.)  Build the simulation and run it.  You can navigate
	 the hierarchy as it runs.


 Demo3 - The hardware model is called:  "demo3.sim".
	 (It contains topology and behavior descriptions all in one file.)
	 The application DFG is called: "demo3.dfg".
	 (This DFG contains hierarchy.)

	 Alternate variations of the basic DFG are included in files:
	 "demo3b.dfg" and "demo3c.dfg".  These basically have more
	 iterations of data and produce more interesting visualizations
	 because the simulations driven by them run longer.  But the basic
	 "demo3.dfg" is good for producing a simple time-line graph.

	 As in demo1, this model does not have its own explicit calls to animate
         activities on the links, so you will want to set the link
         animation mode to use one of the built-in modes, select:
         
          Animation / Animation-Types / 2.Links-Concurrent-Activities


 Demo4 - The main hardware model is called:  "arch.sim".
	 (It includes various PM-Lib models, such as bus.sim and pe.sim
	  that are kept in separate files, which is actually the more
	  traditional way it is done on real projects).
	 The application DFG is called: "app1.dfg".

	 This model contains special calls to animate special events on
	 the links and in the boxes.  So you do not have to change the
	 animation modes.  The architecture was pre-flattened for 
	 demonstration purposes, so you do not have to flatten this one.

	 Because of the crowded-ness of the architecture, you will want to
	 turn-off the port-names.  Select:  View / Show-Port-Names.

	 When the simulation first starts, the "monitor.sim" model asks a
	 question to the screen about what verbosity level to use.
	 The question appears in the text window from which you launched
	 the simulation or GUI.  I suggest answering with zero.  Higher
	 verbosity levels will yield copious information revealing the
	 details being simulated.  (Sometimes very interesting.)

	 Explanation of link animation:
	  In this model of a Mercury Raceway network, the modeler 
	  chose to show new attempts for connections through the network
	  by lighting links along a requested path in yellow.  (They are
	  normally violet when unused.)  If the requested path is successfully
	  granted, the links are turned green to indicate the presence of
	  data flowing through them.  If the requested path cannot be
	  granted because of contention with another ongoing communication
	  on a link, the contented link will be high-lighted red to indicate
	  contention, the requested path will be returned to violet until
	  the next re-try.  

	  As the simulation model runs, you will see the links blinking, 
	  changing colors, data flowing, and occasional red flashes as 
	  contentions occur.  If you stop the simulation, or step through it
	  by a small amount, perhaps 10 or 20 time-units at a step, you can
	  catch individual communications being made, contented, and broken
	  as they complete.