Translating discrete-time simulink to lustre

We present a method of translating discrete-time Simulink models to Lustre programs. Our method consists of three steps: type inference, clock inference, and hierarchical bottom-up translation. In the process, we explain and formalize the typing and timing mechanisms of Simulink. The method has been implemented in a prototype tool called S2L, which has been used in the context of a European research project to translate two automotive controller models provided by Audi.

[1]  Hermann Kopetz,et al.  Real-time systems , 2018, CSC '73.

[2]  Nicolas Halbwachs,et al.  Verification of Real-Time Systems using Linear Relation Analysis , 1997, Formal Methods Syst. Des..

[3]  Gabor Karsai,et al.  Semantic Translation of Simulink/Stateflow Models to Hybrid Automata Using Graph Transformations , 2004, GT-VMT@ETAPS.

[4]  Marc Pouzet,et al.  Clocks as First Class Abstract Types , 2003, EMSOFT.

[5]  Nicolas Halbwachs,et al.  Automatic testing of reactive systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[6]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[7]  Bruce H. Krogh,et al.  Computational techniques for hybrid system verification , 2003, IEEE Trans. Autom. Control..

[8]  Günter Grünsteidl,et al.  TTP - A Protocol for Fault-Tolerant Real-Time Systems , 1994, Computer.

[9]  Stavros Tripakis,et al.  From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications , 2003, LCTES '03.

[10]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[11]  Norman Scaife,et al.  Integrating model-based design and preemptive scheduling in mixed time- and event-triggered systems , 2004, Proceedings. 16th Euromicro Conference on Real-Time Systems, 2004. ECRTS 2004..

[12]  Rance Cleaveland,et al.  Automated validation of software models , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[13]  Stavros Tripakis,et al.  Translating Discrete-Time Simulink to Lustre , 2003, EMSOFT.

[14]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[15]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[16]  A. Tiwari Formal Semantics and Analysis Methods for Simulink Stateflow Models , 2001 .

[17]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[18]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[19]  Marc Pouzet,et al.  Synchronous Kahn networks , 1996, ICFP '96.

[20]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[21]  Prithviraj Banerjee,et al.  The MAGICA Type Inference Engine for MATLAB , 2003, CC.

[22]  Karl-Erik Årzén,et al.  Jitterbug and TrueTime: Analysis Tools for Real-Time Control Systems , 2002 .

[23]  B. I. Silva,et al.  Modeling and Verifying Hybrid Dynamic Systems Using CheckMate , 2001 .

[24]  Nicolas Halbwachs,et al.  Programming and verifying critical systems by means of the synchronous data-flow language LUSTRE , 1991 .

[25]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[26]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[27]  Alberto Martelli,et al.  An Efficient Unification Algorithm , 1982, TOPL.

[28]  Simin Nadjm-Tehrani,et al.  Co-simulation of Hybrid Systems: Signal-Simulink , 2000, FTRTFT.

[29]  TripakisStavros,et al.  Translating discrete-time simulink to lustre , 2005 .

[30]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[31]  Lothar Thiele,et al.  Embedded System Design using the SPI Workbench , 2000 .

[32]  George A. Perdikaris Computer Controlled Systems , 1991 .

[33]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[34]  Stavros Tripakis,et al.  Defining and translating a "safe" subset of simulink/stateflow into lustre , 2004, EMSOFT '04.

[35]  Thomas A. Henzinger,et al.  A Giotto-Based Helicopter Control System , 2002, EMSOFT.

[36]  Paul Caspi Clocks in Dataflow Languages , 1992, Theor. Comput. Sci..

[37]  Edward A. Lee,et al.  Dataflow process networks , 1995, Proc. IEEE.