Page tree
Skip to end of metadata
Go to start of metadata

Esterel-Studio is a IDE for Esterel . It contains a graphical interface to create Safe State Machines, an editor for Esterel and several tools, e.g., for verification.

Startup

Our license for Esterel Studio is only valid inside the domain informatik.uni-kiel.de. Therefore a client runnning Esterel Studio must have a permanent network connection inside that domain to be able to talk to the license server. An independent home installation is not possible.

To start Esterel Studio just call

/home/esterel/bin/estudio

and the graphical modeling tool appears.

Observe that Esterel Studio uses Esterel V7.

Examples

Examples from Esterel Technologies

The example project files delivered with Esterel Studio are located in

/home/esterel/EsterelStudio/examples

They are organized in three hierarchies with different grades of complexity: "Basic", "Intermediate", and "Advanced":

  /home/esterel/EsterelStudio/examples/Basic/Abro
  /home/esterel/EsterelStudio/examples/Basic/MooreMealy
  /home/esterel/EsterelStudio/examples/Basic/SimpleRam
  /home/esterel/EsterelStudio/examples/Intermediate/CRC
  /home/esterel/EsterelStudio/examples/Intermediate/Dopar
  /home/esterel/EsterelStudio/examples/Intermediate/Excel
  /home/esterel/EsterelStudio/examples/Intermediate/Fifo11
  /home/esterel/EsterelStudio/examples/Intermediate/ReflexGame
  /home/esterel/EsterelStudio/examples/Intermediate/RegisterBank
  /home/esterel/EsterelStudio/examples/Advanced/Elevator
  /home/esterel/EsterelStudio/examples/Advanced/Fifo22
  /home/esterel/EsterelStudio/examples/Advanced/Wristwatch

To try them out, copy a projects directory into a working directory of yours and start Esterel Studio:

   mkdir abro
   cd abro
   cp -r /home/esterel/EsterelStudio/examples/Basic/Abro/* .
   /home/esterel/bin/estudio abro.etp &

Locally Prepared Examples

There are two example directories prepared for use as templates for your own projects:

  • /home/esterel/estudio/examples/
          Native compilation and execution on the host (Unix/Linux) architecture.
              o Makefile:    Input file for the make command.
              o ABRO.etp:    Project file for Esterel Studio.
              o ABRO.scg:    SyncChart file containing the ABRO machine.
              o ABRO.h:       C header file with interface declarations.
              o ABRO_data.c:    C code with functions for signal interfacing and keyboard control. 
    
  • /home/esterel/estudio/example-legOS/
          Crosscompilation for the LEGO Mindstorms system with the alternative operating system legOS.
              o Makefile:    Input file for the make command.
              o ABRO.etp:    Project file for Esterel Studio.
              o ABRO.scg:    SyncChart file containing the ABRO machine.
              o ABRO.h:       C header file with interface declarations.
              o ABRO_data.c:    C code with functions for data processing and legOS calls. 
    

Compilation

The compilation of a project into textual Esterel and C code is started by

Project->Generate Code

The code for the former ABRO example is placed in the following directories (relative to the working directory):

   Default/Code/Temp/ABRO.strl
   Default/Code/ABRO_strl.h
   Default/Code/ABRO.c

It is possible to perform this task on the command line without startup of the full graphical interface:

/home/esterel/bin/estudio --embedded ABRO.etp

To compile the resulting Esterel file into C code execute:

/home/esterel/bin/esterel7 -v7 -Lc -W Default/Code/Temp/ABRO.strl

Generate VHDL Code

To Generate VHDL create a new "Configuration" with a handy name like "VHDL" and choose "VHDL" as "Target Language". Follow the Compilation steps.

Notes:

  • due to the fact that VHDL is case insensitive, beware of naming your identifier case sensitive
  • read the guide: Generating efficient hardware with Esterel V7 and Esterel Studio: use whenever possible temp and value-only signals to reduce the amount of registers
  • If you use BlockRam feature of the FPGA board and you get strange deadlock problems, it might help to add a NOT to the clock input pin or toggle the behavior of the clock input from falling to rising or v.v..

Makefile for the Unix target

The Makefile in /home/esterel/estudio/example compiles esterel programs for the Unix-Target.

The following targets are available (replace ABRO with the base name of your project):

  • make ABRO compiles and links the Esterel file ABRO.strl along with ABRO_data.c into an executable file ABRO.
  • make ABRO.c If you are only interested in the C code generated from the Esterel file you can use this target. It just calls the Esterel compiler to produce the C code ABRO.c from ABRO.strl.

Makefile for the legOS target

The Makefile in /home/esterel/estudio/example-legOS compiles esterel programs for the legOS-Target. It is similar to the one for Unix with some additional targets for kernel and program upload into the RCX.

The following targets are available (replace ABRO-rcx with the base name of your project):

  • make ABRO.lx compiles and links the Esterel file ABRO.strl along with ABRO_data.c into a binary image ABRO.lx. This image can be uploaded into the RCX to be executed.
  • make ABRO.c If you are only interested in the C code generated from the Esterel file you can use this target. It just calls the Esterel compiler to produce the C code ABRO.c from ABRO.strl.
  • make ABRO.dll uploads the binary image ABRO.lx into the RCX. If ABRO.lx is not existant or not up to date, then it is rebuilt.
  • make kernel just uploads the kernel into the RCX (e.g. after a crash)

Documentation

Several documents are available: Manuals for EsterelStudio and textual Esterel. For copyright reasons we can not provide HTTP links to these files. Therefore they are only locally available in the directory /home/esterel/EsterelStudio/doc.

Further information can be found at [www.esterel-technolgies.de Esterel Technologies].

Back-Animation

To animate a Safe State Machine while the program is executed, the esi file format can be used.

  • the input function should print the input whenever it calls a input function of the SSM
  • after every step of the automaton, a ";" should be printed
  • when the program is executed, select Simulation->ConnectToFile and play
  • No labels