next_inactive up previous

SESAME Users Guide

Joseph Coffland

April 5, 2006

Copyright ©2004, University of Amsterdam. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included with this documentation, GNU Free Documentation License.


1 A Brief Overview of SESAME

SESAME is a project at the University of Amsterdam which stands for Simulation of Embedded Systems Architectures for Multi-level Exploration. SESAME employs event driven cosimulation to simulate embedded systems. SESAME follows the Y-Chart methodology for embedded system design. Y-Chart recognizes distinct application, architecture and mapping layers within an embedded system simulation. Unlike standard cosimulations applications in SESAME are simulated separately from their architectures. This separation provides several benefits including reuse of application models with different architectures and the ability to optimize an architecture for more than one application.

SESAME uses Kahn Process Networks (KPN) for application simulation. KPNs expose the parallelism and communication behavior of an application. They also guarantee deterministic, deadlock free execution. As an application simulation is run it generates event traces which describe the applications behavior. The KPN application simulator used in SESAME is called PNRunner or Process Network Runner.

These event traces are mapped on to an architecture simulation via the virtual layer. The virtual layer has also been referred to as the synchronization layer because it synchronizes trace events from different application processes according their mapping on to the architecture model. However, it is also responsible for event scheduling and trace reordering.

SESAME uses an discreet event simulator called pearl to simulate both the architecture and the mapping layer. Architecture simulations respond to application events they receive via the mapping layer by simulating their timing consequences.

When the simulation is finished the user can analyze the measured simulation results and use this information to improve or refine the application simulation, the architecture simulation, the mapping or all three. Thus, the user runs through iterations of simulating and refining the simulation model until satisfied with the embedded system's performance.

The remainder of this document describes the structure of the SESAME software and provides information on how the software system works as a whole. Documents which describe how to use the individual parts of the software system are referenced.

2 Quick Start Guide

This section contains instructions for those who know what they are doing and want to get started with the software ASAP. More detailed instructions are provided in the next section.

  1. If you don't have Perl, Xerces C++ or GraphViz install them.
  2. Download the sesame-builder-x.x.x.tar.gz package and unpack it.
  3. Set the install directory with ./configure --prefix=<directory>. This is not necessary. The default is to install in the package directory, but you cannot easily change it later with out rebuilding everything.
  4. Build and install the distribution with make.
  5. Make sure the installed bin directory is on your PATH.
  6. Run ymleditor-x.x.x/ymleditor ymleditor-x.x.x/examples/mjpeg/mjpeg.yml to start the YMLEditor and open the MJPEG example.
  7. Build and run the example by selecting Run from the Build menu or access the online help from the Help menu.

3 Installing and Running

3.1 Prerequisites

You may already have gcc 3.2.2 or better, the GNU build tools and perl installed on your system. Follow the instructions on the website for installing Xerces C++.

3.2 Downloading the Distribution

SESAME is now distributed as one large package. Download sesame-builder-x.x.x.tar.gz from the SESAME download page, where x-x-x is the latest version.

3.3 Unpack

Untar and ungzip the sesame-builder-x.x.x.tar.gz file. For example with GNU tar:

  tar xzvf sesame-builder-x.x.x.tar.gz

This will create the directory sesame-builder-x.x.x. Change to this directory.

3.4 Setup Your Environment

If Xerces C++ is not installed in a default system library path such as /usr/lib then you must set the XERCESCROOT environment variable to the root directory of your Xerces C++ installation. On systems where ld does not support the -rpath option you will also have add $XERCESCROOT/lib to your library path. On Solaris and Linux this can be achieved by adding this path to the LD_LIBRARY_PATH environment variable. An example using bash and where Xerces C++ is install in /usr/local follows:

  export XERCESCROOT=/usr/local
  export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

3.5 Configure the Installation Directory

By default SESAME Builder will install SESAME and its dependencies in the root directory of the SESAME Builder package. To install SESAME and its dependencies somewhere else use the following command in the SESAME Builder root directory:

  ./configure --prefix=<directory>

Note: You cannot easily change this directory later with out rebuilding everything.

3.6 Building And Installing

Once your environment is setup correctly, you can build and install SESAME in the SESAME Builder directory simply by running:


If the packages do not build correctly, try to fix the problem and rerun make. The script will continue where it left off.

If the build was successful then SESAME should be properly install in configured installation directory.

3.7 Running the IDE (YMLEditor)

cd ymleditor-x.x.x in the SESAME Builder package. Assure that the install SESAME programs and Java version 1.4 or later are on your PATH. Run sesamesim-config --version and java -version to verify these settings.

Additionally, for auto-routing to work which is necessary to view unrouted graphs properly you must have dot, a graph routing program which is part of ATT's GraphViz software, installed and on your PATH.

Now run ./ymleditor.

3.8 Running the MJPEG Example

With the YMLEditor open the file ymleditor-x.x.x/examples/mjpeg/mjpeg.yml. Select Run from the Build menu. This will build and run the example. The output of the simulation will be visible in the terminal in which you ran YMLEditor.

Alternatively, you can open the MJPEG example from the comand line by running ./ymleditor examples/mjpeg/mjpeg.yml from the ymleditor directory. Run ./ymleditor help for more information about the YMLEditor's command line options.

4 SESAME Software and Documentation Overview

Clicking on a box in the image below will bring you to the documentation for that software component.

4.1 Main Components

The main components of the SESAME software are outlined below with links to appropriate documentation:

4.2 Man Pages

Links to all available Unix man pages are provided below.
PNRunner(1) Application Simulator
ymlpearl(1) Architecture Simulator
ymlpearlexec(1) Architecture Simulation Executable
ymlpp(1) YML preprocessor
SESAMERunner(1) SESAME Cosimulation Runner
AppVirtualMapGenerator(1) YML Processor
ArchitectureCompiler(1) YML Processor
VirtualLayerGenerator(1) YML Processor
PNRunnerYMLTool(1) PNRunner YML Tool
PearlYMLTool(1) Pearl YML Tool

4.3 Source Code Documentation

Source code and API documentation are also available.

5 Web Site

The SESAME software website can be found at

6 Software License

All of the SESAME software is available under the terms of the GNU Public License (GPL). If you require a different license please contact to discuss commercial options.

next_inactive up previous
Joseph Coffland 2006-04-05