Abstract
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.
- Agrawal, A., Simon, G., and Karsai, G. 2004. Semantic translation of Simulink/Stateflow models to hybrid automata using graph transformations. In Workshop on Graph Transformation and Visual Modeling Techniques, Barcelona, Spain.]]Google Scholar
- Åström, K. and Wittenmark, B. 1984. Computer Controlled Systems. Prentice-Hall, Englewood Cliffs, NJ.]]Google Scholar
- Caspi, P. 1992. Clocks in dataflow languages. Theoretical Computer Science 94, 125--140.]] Google Scholar
Digital Library
- Caspi, P., Pilaud, D., Halbwachs, N., and Plaice, J. 1987. Lustre: a declarative language for programming synchronous systems. In 14th ACM Symp. POPL.]] Google Scholar
Digital Library
- Caspi, P. and Pouzet, M. 1996. Synchronous Kahn networks. In ACM SIGPLAN International Conference on Functional Programming. 226--238.]] Google Scholar
Digital Library
- Caspi, P., Curic, A., Maignan, A., Sofronis, C., and Tripakis, S. 2003a. Translating discrete-time Simulink to Lustre. In Embedded Software (EMSOFT'03). LNCS, Vol. 2855. Springer, NY.]]Google Scholar
- Caspi, P., Curic, A., Maignan, A., Sofronis, C., Tripakis, S., and Niebert, P. 2003b. From Simulink to SCADE/Lustre to TTA: a layered approach for distributed embedded applications. In Languages, Compilers, and Tools for Embedded Systems (LCTES'03). ACM.]] Google Scholar
Digital Library
- Cervin, A., Henriksson, D., Lincoln, B., and Årzén, K.-E. 2002. Jitterbug and Truetime: Analysis tools for real-time control systems. In 2nd Workshop on Real-Time Tools.]]Google Scholar
- Chutinan, A. and Krogh, B. 2003. Computational techniques for hybrid system verification. IEEE Trans. Automatic Control 48, 1.]]Google Scholar
Cross Ref
- Colaço, J. and Pouzet, M. 2003. Clocks as first class abstract types. In Embedded Software (EMSOFT'03). LNCS, Vol. 2855. Springer, NY.]]Google Scholar
- Guernic, P. L., Gautier, T., Borgne, M. L., and Maire, C. L. 1991. Programming real-time applications with Signal. Proc. of the IEEE 79, 9, 1321--1336.]]Google Scholar
Cross Ref
- Halbwachs, N., Caspi, P., Raymond, P., and Pilaud, D. 1991. The synchronous dataflow programming language Lustre. Proceedings of the IEEE 79, 9 (Sept.).]]Google Scholar
Cross Ref
- Halbwachs, N., Proy, Y.-E., and Roumanoff, P. 1997. Verification of real-time systems using linear relation analysis. Formal Methods in System Design 11, 2 (August), 157--185.]] Google Scholar
Digital Library
- Henzinger, T., Horowitz, B., and Kirsch, C. M. 2001. Giotto: A time-triggered language for embedded programming. In EMSOFT'01. LNCS, Vol. 2211. Springer, NY.]] Google Scholar
Digital Library
- Hudak, P., Jones, S. P., and Wadler, P. 1990. Report on the programming language haskell, a non strict purely functional language (version 1.2). ACM SIGPLAN Notices 27, 5.]] Google Scholar
Digital Library
- Jersak, M., Ziegenbein, D., Wolf, F., Richter, K., Ernst, R., Cieslog, F., Teich, J., Strehl, K., and Thiele, L. 2000. Embedded system design using the SPI workbench. In Proc. of the 3rd International Forum on Design Languages.]]Google Scholar
- Joisha, P. and Banerjee, P. 2003. The MAGICA type inference engine for MATLAB. In Compiler Construction (CC). LNCS 2622, Springer, NY.]]Google Scholar
- Kahn, G. 1974. The semantics of a simple language for parallel programming. In Proc. of the IFIP Congress.]]Google Scholar
- Kirsch, C., Sanvido, M., Henzinger, T., and Pree, W. 2002. A Giotto-based helicopter control system. In EMSOFT'02. LNCS 2491, Springer, NY.]] Google Scholar
Digital Library
- Kopetz, H. 1997. Real-Time Systems Design Principles for Distributed Embedded Applications. Kluwer, Academic Publ., Boston, MA.]] Google Scholar
Digital Library
- Kopetz, H. and Grunsteidl, G. 1994. TTP---a protocol for fault-tolerant real-time systems. IEEE Computer 27, 1 (Jan.), 14--23.]] Google Scholar
Digital Library
- Lee, E. and Messerschmitt, D. 1987. Synchronous data flow. Proceedings of the IEEE 75, 9, 1235--1245.]]Google Scholar
Cross Ref
- Lee, E. and Parks, T. 1995. Dataflow process networks. Proceedings of the IEEE 83, 5 (May), 773--799.]]Google Scholar
Cross Ref
- Martelli, A. and Montanari, U. 1982. An efficient unification algorithm. ACM Trans. on Progr. Lang. and Systems 4, 2.]] Google Scholar
Digital Library
- Milner, R. 1978. A theory of type polymorphism in programming. Journal of Computer and System Sciences 17, 384--375.]]Google Scholar
Cross Ref
- Neema, S. 2001. Simulink and Stateflow data model. Tech. rep., ISIS, Vanderbilt University, Nashville, TN.]]Google Scholar
- Pierce, B. 2002. Types and Programming Languages. MIT Press, Cambridge, MA.]] Google Scholar
Digital Library
- Ratel, C., Halbwachs, N., and Raymond, P. 1991. Programming and verifying critical systems by means of the synchronous data-flow programming language Lustre. In ACM-SIGSOFT Conference on Software for Critical Systems.]] Google Scholar
Digital Library
- Raymond, P., Weber, D., Nicollin, X., and Halbwachs, N. 1998. Automatic testing of reactive systems. In 19th IEEE Real-Time Systems Symposium. Madrid, Spain.]] Google Scholar
Digital Library
- Robinson, J. 1965. A machine-oriented logic based on the resolution principle. Journal of the ACM 12, 1.]] Google Scholar
Digital Library
- Scaife, N. and Caspi, P. 2004. Integrating model-based design and preemptive scheduling in mixed time- and event-triggered systems. In Euromicro conference on Real-Time Systems (ECRTS'04).]] Google Scholar
Digital Library
- Scaife, N., Sofronis, C., Caspi, P., Tripakis, S., and Maraninchi, F. 2004. Defining and translating a “safe” subset of Simulink/Stateflow into Lustre. In 4th ACM International Conference on Embedded Software (EMSOFT'04).]] Google Scholar
Digital Library
- Silva, B., Richeson, K., Krogh, B., and Chutinan, A. 2000. Modeling and verifying hybrid dynamical systems using CheckMate. In ADPM.]]Google Scholar
- Sims, S., Butts, K., Cleaveland, R., and Ranville, S. 2001. Automated validation of software models. In ASE.]] Google Scholar
Digital Library
- Tiwari, A. 2002. Formal semantics and analysis methods for Simulink Stateflow models. Tech. rep., SRI International.]]Google Scholar
- Tudoret, S., Nadjm-Tehrani, S., Benveniste, A., and Stromberg, J.-E. 2000. Co-simulation of hybrid systems: Signal-Simulink. In FTRTFT. LNCS, Vol. 1926. Springer, NY.]] Google Scholar
Digital Library
Index Terms
Translating discrete-time simulink to lustre
Recommendations
Defining and translating a "safe" subset of simulink/stateflow into lustre
EMSOFT '04: Proceedings of the 4th ACM international conference on Embedded softwareThe Simulink/Stateflow toolset is an integrated suite enabling model-based design and has become popular in the automotive and aeronautics industries. We have previously developed a translator called Simtolus from Simulink to the synchronous language ...
From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications
Special Issue: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool support for embedded systems (San Diego, CA).We present a layered end-to-end approach for the design and implementation of embedded software on a distributed platform. The approach comprises a high-level modeling and simulation layer (Simulink), a middle-level programming and validation layer (...
From Lustre to Simulink: Reverse Compilation for Embedded Systems Applications
Model-based design is now unavoidable when building embedded systems and, more specifically, controllers. Among the available model languages, the synchronous dataflow paradigm, as implemented in languages such as MATLAB Simulink or ANSYS SCADE, has ...






Comments