Abstract
For the design of embedded systems, many languages are in use, which are based on different models of computation such as event-, data-, and clock-driven paradigms as well as paradigms without a clear notion of time. Systems composed of such heterogeneous components are hard to analyze so that mainly co-simulation by coupling different simulators has been considered so-far. In this article, we propose clocked guarded actions as a unique intermediate representation that can be used as a common basis for simulation, analysis, and synthesis. We show how synchronous, (untimed) asynchronous, and polychronous languages can be translated to clocked guarded actions to demonstrate that our intermediate representation is powerful enough to capture rather different models of computation. Having a unique and composable intermediate representation of these components at hand allows one a simple composition of these components. Moreover, we show how clocked guarded actions can be used for verification by symbolic model checking and simulation by SystemC.
Similar content being viewed by others
Notes
References
Arvind (2003) Bluespec: a language for hardware design, simulation, synthesis and verification invited talk. In: Formal methods and models for codesign (MEMOCODE), Mont Saint-Michel, France. IEEE Comput Soc, New York, pp 249–254
Benveniste A, Bournai P, Gautier T, Le Guernic P (1985) SIGNAL: A data flow oriented language for signal processing. Research report 378, INRIA, Rennes, France
Benveniste A, Caillaud B, Carloni LP, Sangiovanni-Vincentelli AL (2005) Tag machines. In: Wolf W (ed) Embedded software (EMSOFT), Jersey City, New Jersey, USA. ACM, New York, pp 255–263
Benveniste A, Caspi P, Edwards S, Halbwachs N, Le Guernic P, de Simone R (2003) The synchronous languages twelve years later. Proc IEEE 91(1):64–83
Berry G (1991) A hardware implementation of pure Esterel. In: Formal methods in VLSI design, Miami, Florida, USA
Berry G (1997) Synchronous languages for hardware and software reactive systems. In: Delgado Kloos C, Cerny E (eds) International conference on hardware description languages and their applications (CHDL), Toledo, Spaine. Chapman & Hall, London, p 3
Berry G (1998) The foundations of Esterel. In: Plotkin G, Stirling C, Tofte M (eds) Proof, language and interaction: essays in honour of Robin Milner. MIT Press, Cambridge
Berry G (1999) The constructive semantics of pure Esterel
Berry G, Cosserat L (1985) The Esterel synchronous programming language and its mathematical semantics. In: Brookes SD, Roscoe AW, Winskel G (eds) Seminar on concurrency (CONCUR), Pittsburgh, Pennsylvania, USA. LNCS, vol 197. Springer, Berlin, pp 389–448
Bombana M, Bruschi F (2003) SystemC-VHDL co-simulation and synthesis in the HW domain. In: Design, automation and test in Europe (DATE), Munich, Germany. IEEE Comput Soc, New York, pp 20101–20105
Boussinot F, de Simone R (1991) The Esterel language. Proc IEEE 79(9):1293–1304
Brandt J, Gemünde M, Schneider K (2010) From synchronous guarded actions to SystemC. In: Dietrich M (ed) Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen (MBMV), Dresden, Germany, pp 187–196. Fraunhofer Verlag
Brandt J, Gemünde M, Schneider K, Shukla S, Talpin J-P (2011) Integrating system descriptions by clocked guarded actions. In: Morawiec A, Hinderscheit J, Ghenassia O (eds) Forum on specification and design languages (FDL), Oldenburg, Germany. IEEE Comput Soc, New York, pp 1–8
Brandt J, Schneider K (2011) Separate translation of synchronous programs to guarded actions. Internal report 382/11, Department of Computer Science, University of Kaiserslautern, Kaiserslautern, Germany
Brandt J, Schneider K, Edwards SA (2012) Translating SHIM to guarded actions. Technical report 387/12. University of Kaiserslautern, Kaiserslautern, Germany
Brandt J, Schneider K, Shukla SK (2010) Translating concurrent action oriented specifications to synchronous guarded actions. In: Lee J, Childers BR (eds) Languages, compilers, and tools for embedded systems (LCTES), Stockholm, Sweden. ACM, New York, pp 47–56
Caspi P, Halbwachs N, Pilaud D, Plaice JA (1987) LUSTRE: A declarative language for programming synchronous systems. In: Principles of programming languages (POPL), Munich, Germany. ACM, New York, pp 178–188
Cassandras CG, Lafortune S (2008) Introduction to discrete event systems, 2nd edn. Springer, Berlin
Chandy KM, Misra J (1989) Parallel program design. Addison-Wesley, Austin
Chatelain A, Mathys Y, Placido G, La Rosa A, Lavagno L (2001) High-level architectural co-simulation using Esterel and C. In: Hardware-software codesign (CODES), Copenhagen, Denmark
Dershowitz N, Okada M, Sivakumar G (1988) Canonical conditional rewrite systems. In: Lusk EL, Overbeek RA (eds) Conference on automated deduction (CADE), Argonne, Illinois, USA. LNCS, vol 310. Springer, Berlin, pp 538–549
Dijkstra EW (1975) Guarded commands, nondeterminacy and formal derivation of programs. Commun ACM 18(8):453–457
Dill DL (1996) The Murphi verification system. In: Alur R, Henzinger TA (eds) Computer aided verification (CAV), New Brunswick, New Jersey, USA. LNCS, vol 1102. Springer, Berlin, pp 390–393
Edwards SA, Tardieu O (2005) SHIM: a deterministic model for heterogeneous embedded systems. In: Wolf W (ed) Embedded software (EMSOFT), Jersey City, New Jersey, USA. ACM, New York, pp 264–272
Eker J, Janneck JW (2002) CAL actor language—language report. EECS Department, University of California at Berkeley
Eker J, Janneck JW, Lee EA, Liu J, Liu X, Ludvig J, Neuendorffer S, Sachs S, Xiong Y (2003) Taming heterogeneity—the Ptolemy approach. Proc IEEE 91(1):127–144
Gamatie A (2010) Designing embedded systems with the SIGNAL programming language. Springer, Berlin
Gamatié A, Gautier T, Le Guernic P, Talpin JP (2007) Polychronous design of embedded real-time applications. ACM Transactions on Software Engineering and Methodology (TOSEM) 16(2)
Girault A, Lee B, Lee EA (1999) Hierarchical finite state machines with multiple concurrency models. IEEE Trans Comput-Aided Des Integr Circuits Syst 18(6):742–760
Gramlich B, Wirth C (1996) Confluence of terminating conditional rewrite systems revisited. In: Ganzinger H (ed) Rewriting techniques and applications (RTA), New Brunswick, New Jersey, USA. LNCS, vol 1103. Springer, Berlin, pp 245–259
Gössler G, Sangiovanni-Vincentelli A (2002) Compositional modeling in Metropolis. In: Sangiovanni-Vincentelli AL, Sifakis J (eds) Embedded software (EMSOFT), Grenoble, France. LNCS, vol 2491. Springer, Berlin, pp 93–107
Halbwachs N (1993) Synchronous programming of reactive systems. Kluwer, Dordrecht
Halbwachs N (1998) The declarative code DC, version 1.2a
Halbwachs N, Caspi P, Raymond P, Pilaud D (1991) The synchronous dataflow programming language LUSTRE. Proc IEEE 79(9):1305–1320
Harel D, Naamad A (1996) The STATEMATE semantics of Statecharts. ACM Trans Softw Eng Methodol 5(4):293–333
Haubelt C, Falk J, Keinert J, Schlichter T, Streubühr M, Deyhle A, Hadert A, Teich J (2007) A SystemC-based design methodology for digital signal processing systems. EURASIP J Embed Syst 2007(1):15
Herrera F, Villar E (2007) A framework for heterogeneous specification and design of electronic embedded systems in SystemC. ACM Trans Des Autom Electron Syst 12(3):1–31
Hoare CAR (1978) Communicating sequential processes. Commun ACM 21(8):666–677
Hoare CAR (1983) Communicating sequential processes. Commun ACM 26(1):100–106
Hoe JC, Arvind (1999) Hardware synthesis from term rewriting systems. Technical report CSG-MEMO 421-a, Computer Science and Artificial Intelligence Laboratory. Cambridge, Massachusetts, USA
Hoe JC, Arvind (2004) Operation-centric hardware description and synthesis. IEEE Trans Comput-Aided Des Integr Circuits Syst 23(9):1277–1288
IEEE (2005) IEEE standard hardware description language based on the Verilog hardware description language. In: IEEE Std, pp 1394–2005
IEEE (2005) IEEE standard SystemC language reference manual. In: IEEE Std, New York, New York, USA, December, pp 1666–2005
IEEE (2008) IEEE standard VHDL language reference manual. In: IEEE Std, pp 1076–2008
Jantsch A (2004) Modeling embedded systems and SoCs. Morgan Kaufmann, Los Altos
Jantsch A (2006) Models of computation for networks on chip. In: Application of concurrency to system design (ACSD), Turku, Finland. IEEE Comput Soc, New York, pp 165–178
Kaplan S (1984) Conditional rewrite rules. Theor Comput Sci 33:175–193
Koo TJ, Liebman J, Ma C, Horowitz B, Sangiovanni-Vincentelli A, Sastry S (2002) Platform-based embedded software design for multi-vehicle multi-modal systems. In: Sangiovanni-Vincentelli AL, Sifakis J (eds) Embedded software (EMSOFT), Grenoble, France. LNCS, vol 2491. Springer, Berlin, pp 32–45
Le Guernic P, Gauthier T, Le Borgne M, Le Maire C (1991) Programming real-time applications with SIGNAL. Proc IEEE 79(9):1321–1336
Lee EA, Messerschmitt DG (1987) Static scheduling of synchronous data flow programs for digital signal processing. IEEE Trans Comput 36(1):24–35
Lee EA, Messerschmitt DG (1987) Synchronous data flow. Proc IEEE 75(9):1235–1245
Lee EA, Parks T (1995) Dataflow process networks. Proc IEEE 83(5):773–801
Lee EA, Sangiovanni-Vincentelli A (1996) Comparing models of computation. In: International conference on computer-aided design (ICCAD), San Jose, California, USA. ACM/IEEE Comput Soc, New York, pp 234–241
Lee EA, Sangiovanni-Vincentelli A (1998) A framework for comparing models of computation. IEEE Trans Comput-Aided Des Integr Circuits Syst 17(12):1217–1229
Passerone C, Lavagno L, Chiodo M, Sangiovanni-Vincentelli AL (1997) Fast Hardware/Software co-simulation for virtual prototyping and trade-off analysis. In: Design automation conference (DAC), Anaheim, California, USA. ACM, New York, pp 389–394
Patel HD, Shukla SK, Bergamaschi RA (2007) Heterogeneous behavioral hierarchy extensions for SystemC. IEEE Trans Comput-Aided Des Integr Circuits Syst 26(4):765–780
Poigné A, Holenderski L (1995) Boolean automata for implementing pure Esterel. In: Arbeitspapiere, vol 964. GMD, Sankt Augustin, Germany
Rocheteau F, Halbwachs N (1992) Implementing reactive programs on circuits: a hardware implementation of LUSTRE. In: de Bakker JW, Huizing C, de Roever WP, Rozenberg G (eds) Real-time: theory in practice, Mook, The Netherlands. LNCS, vol 600. Springer, Berlin, pp 195–208
Rowson JA (1994) Hardware/Software co-simulation. In: Design automation conference (DAC), San Diego, California, USA. ACM, Berlin, pp 439–440
ESPRIT Project (1997) Safety critical embedded systems (SACRES). The declarative code DC+, version 1.4, November
Sander I, Jantsch A, Lu Z (2003) Development and application of design transformations in ForSyDe. In: Design, automation and test in Europe (DATE), Munich, Germany. IEEE Comput Soc, New York, pp 10364–10369
Sangiovanni-Vincentelli AL, Carloni LP, De Bernardinis F, Sgroi M (2004) Benefits and challenges for platform-based design. In: Malik S, Fix L, Kahng AB (eds) Design automation conference (DAC), San Diego, California, USA. ACM, New York, pp 409–414
Schneider K (2001) Embedding imperative synchronous languages in interactive theorem provers. In: Application of concurrency to system design (ACSD), Newcastle Upon Tyne, England, UK. IEEE Comput Soc, New York, pp 143–154
Schneider K (2009) The synchronous programming language Quartz. Internal report 375. Department of Computer Science, University of Kaiserslautern, Kaiserslautern, Germany, December
Schneider K, Brandt J, Schuele T (2006) A verified compiler for synchronous programs with local declarations. Electron Notes Theor Comput Sci 153(4):71–97
Singh G, Shukla SK (2007) Algorithms for low power hardware synthesis from concurrent action oriented specifications CAOS. Int J Embed Syst 3(1/2):83–92
Todesco ARW, Meng THY (1996) Symphony: a simulation backplane for parallel mixed-mode co-simulation of VLSI systems. In: Design automation conference (DAC), Las Vegas, Nevada, USA. ACM, New York, pp 149–154
Zebelein C, Falk J, Haubelt C, Teich J (2008) Classification of general data flow actors into known models of computation. In: Formal methods and models for codesign (MEMOCODE), Anaheim, California, USA. IEEE Comput Soc, New York, pp 119–128
Zivojnovic V, Meyr H (1996) Compiled HW/SW co-simulation. In: Design automation conference (DAC), Las Vegas, Nevada, USA. ACM, New York, pp 690–695.
Author information
Authors and Affiliations
Corresponding author
Additional information
Submitted to special issue on languages, models and model based design for embedded systems.
Rights and permissions
About this article
Cite this article
Brandt, J., Gemünde, M., Schneider, K. et al. Representation of synchronous, asynchronous, and polychronous components by clocked guarded actions. Des Autom Embed Syst 18, 63–97 (2014). https://doi.org/10.1007/s10617-012-9087-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-012-9087-9