ss2lus

  • Software distribution and licensing: Public binary distribution
  • Software maturity: Basic usage works, terse documentation.
  • Software Maintenance and Evolution: No maintenance, no future plans
Simulink/Stateflow to Lustre

The main objective of this project is to allow the translation of Simulink/Stateflow (trademarks of The Mathworks Inc.) into the synchronous programming language Lustre allowing its associated compilers, model-checkers and abtract interpretation tools to be applied to Simulink designs. The project is divided into two, more-or-less independent tools, Simulink2Lustre and Stateflow2Lustre and a simple script is provided to allow the two to be combined into a single program capable of translating Simulink charts with Stateflow components.

  Simulink to Lustre

Simulink2Lustre is implemented in Java and works with MATLAB Revisions 12 and 13. Since it does not make sense for Lustre to implement all of Simulink’s functionality, only a subset of the possible simulation parameters are supported. In particular, only fixed-step solvers can be used. For the same reason, only a subset of Simulink’s discrete time library is translated. Stateflow to Lustre Stateflow2Lustre is implemented in Objective Caml and works with MATLAB Revisions 13 and 14. Again, only a subset of possible Stateflow designs are supported since Stateflow allows unbounded recursion through a variety of mechanisms which are not compatible with Lustre’s synchronous semantics. Stateflow2Lustre attempts to support the translation process with a number of features designed to implement imperative constructs in Lustre. The user manual is available online or as ps or pdf.

  Distribution

Before downloading the distribution, check the README file for system requirements. At the very least you will need a version of MATLAB with the Simulink module, the Java runtime environment >= 1.4.0 and a Lustre compiler or analysis tool.

Note that the tools are not maintained and distributed "as they are" for research purpose.

Download.

  Publications

  • P. Caspi, A. Curic, A. Maignan, C. Sofronis, S. Tripakis and P. Niebert From Simulink to SCADE/Lustre to TTA: A Layered Approach for Distributed Embedded Applications In Proc. LCTES 2003, San Diego, CA, June 2003 Published by ACM-SIGPLAN.
  • P. Caspi, A. Curic, A. Maignan, C. Sofronis, S. Tripakis Translating Discrete-Time Simulink to Lustre. EMSOFT’03, Philadelphia, October 2003.
  • N. Scaife, C. Sofronis, P. Caspi, S. Tripakis, and F. Maraninchi Defining and translating a "safe" subset of Simulink/Stateflow into Lustre. 4th ACM International Conference on Embedded Software (EMSOFT’04), Pisa, Italy, September 2004.
  • N. Scaife and P. Caspi Integrating Model-Based Design and Preemptive Scheduling in Mixed Time- and Event-Triggered Systems. In 16th Euromicro Conference on Real-Time Systems (ECRTS’04), pages 119-126, Catania, Italy, June-July 2004.
  • N. Scaife and P. Caspi Integrating Model-based Design and Preemptive Scheduling in Mixed Time- and Event-Triggered Systems. Verimag Technical Report number TR-2004-12, Jul 2004.
  • N. Scaife, C. Sofronis, P. Caspi, S. Tripakis and F. Maraninchi Defining and translating a "safe" subset of Simulink/Stateflow into Lustre. Verimag Technical Report number TR-2004-16, Jul 2004.

  Acknowledgements

This project was funded by the IST under the Framework 5 initiative: NEXT-TTA High-Confidence Architecture for Distributed Control Applications. IST-2001-32111 RISE Reliable Innovative Software for Embedded Systems. IST-2001-38117

This project was also funded by Région Rhône-Alpes.

The following people were associated with the project:

  • Paul Caspi (RISE Directeur de Projet)
  • Florence Maraninchi (RISE Responsable)
  • Stavros Tripakis (NEXT-TTA/RISE Responsable)
  • Norman Scaife (RISE Chargé de Projet)
  • Christos Sofronis (Étudiant Doctorat)

We thank the Région Rhône-Alpes for the support of this thesis.