Models of computation and languages for embedded system design

Models of computation (MoC) are reviewed and organised with respect to the time abstraction they use. Continuous time, discrete time, synchronous and untimed MoCs are distinguished. System level models serve a variety of objectives with partially contradicting requirements. Consequently, it is argued that different MoCs are necessary for the various tasks and phases in the design of an embedded system. Moreover, different MoCs have to be integrated to provide a coherent system modelling and analysis environment. The relation between some popular languages and the reviewed MoCs is discussed to find that a given MoC is offered by many languages and a single language can support multiple MoCs. It is contended that it is of importance for the quality of tools and overall design productivity, which abstraction levels and which primitive operators are provided in a language. However, it is observed that there are various flexible ways to do this, e.g. by way of heterogeneous frameworks, coordination languages and embedding of different MoCs in the same language.

[1]  Nicolas Halbwachs,et al.  Validation of Synchronous Reactive Systems: From Formal Verification to Automatic Testing , 1999, ASIAN.

[2]  Edwin K. P. Chong,et al.  Discrete event systems: Modeling and performance analysis , 1994, Discret. Event Dyn. Syst..

[3]  Jürgen Teich,et al.  SPI - a system model for heterogeneously specified embedded systems , 2002, IEEE Trans. Very Large Scale Integr. Syst..

[4]  Axel Jantsch,et al.  Modeling of mixed control and dataflow systems in MASCOT , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[5]  Axel Jantsch,et al.  System modeling and transformational design refinement in ForSyDe [formal system design] , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[6]  Michael J. Flynn,et al.  Some Computer Organizations and Their Effectiveness , 1972, IEEE Transactions on Computers.

[7]  Gilles Kahn,et al.  Coroutines and Networks of Parallel Processes , 1977, IFIP Congress.

[8]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[9]  Axel Jantsch,et al.  Models of Embedded Computation , 2005, Embedded Systems Handbook.

[10]  Ieee Standards Board IEEE standard verilog hardware description language , 2001 .

[11]  Hilding Elmqvist,et al.  MODELICA — THE NEW OBJECT-ORIENTED MODELING LANGUAGE , 1998 .

[12]  Edward A. Lee,et al.  A behavioral type system and its application in Ptolemy II , 2004, Formal Aspects of Computing.

[13]  Sandeep K. Shukla,et al.  A Functional Programming Framework of Heterogeneous Model of Computation for System Design , 2004, Forum on Specification and Design Languages.

[14]  William W. Wadge,et al.  Lucid, a nonprocedural language with iteration , 1977, CACM.

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

[16]  R. Gregory Taylor,et al.  Models of Computation and Formal Languages , 1997 .

[17]  Donald E. Thomas,et al.  Models of Computation for Systems-on-Chips , 2005 .

[18]  Hiren D. Patel,et al.  SystemC Kernel Extensions for Hetero-geneous System Modeling , 2004 .

[19]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[20]  Stephen A. Edwards,et al.  Design of embedded systems: formal models, validation, and synthesis , 1997, Proc. IEEE.

[21]  Mark R. Greenstreet,et al.  Formal verification in hardware design: a survey , 1999, TODE.

[22]  James B. Dabney,et al.  Mastering Simulink 4 , 2001 .

[23]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[24]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

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

[26]  Rudy Lauwereins,et al.  Cyclo-static data flow , 1995, 1995 International Conference on Acoustics, Speech, and Signal Processing.

[27]  A. Hugo A Hardware Implementation of Pure Esterel , 1991 .

[28]  M.J. Flynn B72-3 Computer Structures, Readings and Examples , 1972, IEEE Transactions on Computers.

[29]  Axel Jantsch,et al.  Modeling embedded systems and SoCs - concurrency and time in models of computation , 2003, The Morgan Kaufmann series in systems on silicon.

[30]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[31]  Graham Beech,et al.  Software engineering with ada , 1983 .

[32]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[33]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[34]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[35]  Norbert Wehn,et al.  Scheduling of behavioral VHDL by retiming techniques , 1994, EURO-DAC '94.

[36]  Tsuneo Nakata,et al.  Functional verification of system on chips - practices, issues and challenges , 2002, Proceedings of ASP-DAC/VLSI Design 2002. 7th Asia and South Pacific Design Automation Conference and 15h International Conference on VLSI Design.

[37]  Gérard Berry,et al.  The constructive semantics of pure esterel , 1996 .

[38]  Edward A. Lee,et al.  Ptolemy II, Heterogeneous Concurrent Modeling and Design in JAVA , 2001 .

[39]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[40]  Edward A. Lee,et al.  A framework for comparing models of computation , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[41]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[42]  Edward A. Lee,et al.  Scheduling dynamic dataflow graphs with bounded memory using the token flow model , 1993, 1993 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[43]  Patrick Schaumont,et al.  A programming environment for the design of complex high speed ASICs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[44]  Michael C. McFarland,et al.  Formal verification of sequential hardware: a tutorial , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[45]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.

[46]  Alberto L. Sangiovanni-Vincentelli,et al.  System-level design: orthogonalization of concerns andplatform-based design , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[47]  Edward A. Lee,et al.  Hierarchical finite state machines with multiple concurrency models , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[48]  G. Winskel The formal semantics of programming languages , 1993 .

[49]  Nicolas Halbwachs,et al.  Implementing Reactive Programs on Circuits: A Hardware Implementation of LUSTRE , 1991, REX Workshop.

[50]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[51]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[52]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[53]  Sofiène Tahar,et al.  A Survey : System-ona-Chip Design and Verification , 2003 .

[54]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[55]  Christoph Grimm,et al.  SystemC-AMS requirements, design objectives and rationale , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[56]  Peter J. Ashenden,et al.  The System Designer's Guide to VHDL-AMS , 2002 .

[57]  William W. Wadge,et al.  Lucid, the dataflow programming language , 1985 .

[58]  Jürgen Teich,et al.  FunState-an internal design representation for codesign , 1999, 1999 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (Cat. No.99CH37051).

[59]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[60]  R. Jagannathan,et al.  Multidimensional programming , 1995 .

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

[62]  David B. Skillicorn,et al.  Models and languages for parallel computation , 1998, CSUR.

[63]  John E. Savage,et al.  Models of computation - exploring the power of computing , 1998 .

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

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

[66]  Florence Maraninchi,et al.  The Argos Language: Graphical Representation of Automata and Description of Reactive Systems , 2007 .

[67]  Axel Jantsch,et al.  On the roles of functions and objects in system specification , 2000, Proceedings of the Eighth International Workshop on Hardware/Software Codesign. CODES 2000 (IEEE Cat. No.00TH8518).

[68]  Axel Jantsch,et al.  Composite signal flow: a computational model combining events, sampled streams, and vectors , 2000, DATE '00.