Abstract
System-on-Chip and other complex distributed hardware/software systems contain heterogeneous components. High-level modeling of such systems require frameworks that provide designers with the ability to express concepts of models of computation (MoC)s as modeling constructs. Many system-level modeling frameworks and corresponding modeling notations such as Ptolemy II and SystemC-H facilitate multi-MoC modeling but are based on imperative programming languages (C++, Java, etc). In such frameworks, the computation and communication aspects between the components of models get intertwined thereby hindering its amenability to formal analysis. In this work, we illustrate function-based semantic definitions of MoCs, which are formulated in a functional framework called SML-Sys. We illustrate through a number of examples how to create system models using this functional programming paradigm.
Similar content being viewed by others
References
Berry G (1999) The constructive semantics of pure Esterel. Draft Version 3
Bjesse P, Claessen K, Sheeran M, Singh S (1998) Lava: Hardware design in Haskell. In: Proceedings of ACM international conference of functional programming (ICFP), ACM SIGPLAN
Bjuréus P, Jantsch A (2000) MASCOT: A specification and cosimulation method integrating data and control flow. In: Proceedings of design and test Europe (DATE) conference
Bluespec. Bluespec’s website. http://www.bluespec.com/
Davey B, Priestly H (1990) Introduction to lattices and order. Cambridge mathematical textbooks. Cambridge University Press, Cambridge
Dennis JB (1974) First version of a data flow procedure language. In: Programming symposium, proceedings colloque sur la programmation. Lecture notes in computer science vol 19, pp 362–376
Guernic PL, Gautier T, Borgne ML, de Marie C (1991) Programming real-time applications with SIGNAL. Proc IEEE 79(9):1321–1335
Patel HD, Shukla SK (2005) Towards a heterogeneous simulation kernel for system level models: A systemc kernel for synchronous data flow models. IEEE Trans Comput Aided Des 24(8):1261–1271
Halbwachs N, Caspi P, Raymond P, Pilaud D (1991) The synchronous data flow programming language LUSTRE. Proc IEEE 79(9):1305–1320
Hoare CAR (1978) Communicating sequential processes. Commun ACM 21(8):666–676
Jantsch A (2003) Modeling embedded systems and SOC’s concurrency and time in models of computation. Morgan Kaufmann, San Mateo
Jantsch A, Sander I, Wu W (2001) The usage of stochastic processes in embedded system specifications. In: Proceedings of 9th international symposium on hardware/software codesign
Jones G, Sheeran M (1991) Relations and refinement in circuit design. In: Morgan C, Woodcock J (eds) Proceedings of the 3rd refinement workshop. Springer, Berlin
Kahn G (1974) The semantics of a simple language for parallel programming. In: Proceedings of the IFIP congress
Lamport L (1978) Time, clocks and the ordering of events in a distributed system. Commun ACM 21(7):558–565
Lee EA (1997) A denotational semantics for dataflow with firing. Technical Report UCB/ERL M97/3, Department of Electrical Engineering and Computer Science, University of California, Berkeley
Lee EA, Parks TM (1995) Dataflow process networks. Proc IEEE 83(5):773–801
Lee EA, Sangiovanni-Vincentelli AL (1996) Comparing models of computation. In: Proceedings of the international conference on computer-aided design (ICCAD), pp 234–241
Lee EA, Sangiovanni-Vincentelli AL (1998) A Framework for Comparing Models of Computation. IEEE Trans Comput Aided Des Integr Circuits Syst 17:1217–1229
Li Y, Leeser M (2000) HML, a novel hardware description language and its translation to VHDL. IEEE Trans Very Large Scale Integr (VLSI) Syst 8(1):1–8
Luk W, Wu T (1994) Toward a declarative framework for hardware-software. In: Proceedings of 3rd international workshop hardware/software co-design, pp 181–188
Matthews J, Cook B, Launchbury J (1998) Microprocessor specification in HAWK. In: Proceedings of IEEE international conference of computer languages, pp 90–101
Milner R (1989) Communication and concurrency. International series in computer science. Prentice Hall, New York
Milner R, Tofte M, Harper R, MacQueen D (1997) The definition of standard ML-revised. In: Cambridge MA. MIT Press, Cambridge
Modeling a digital equalizer (2005) http://fermat.ece.vt.edu/EWD/Digital_Equalizer.htm
Modeling a power state machine (2005) http://fermat.ece.vt.edu/EWD/Power_State_Machine.htm
OSCI. SystemC website. http://www.systemc.org/
Patel H, Shukla S (2004) SystemC kernel extensions for heterogeneous system modeling—A framework for multi-MoC modeling & simulation. Kluwer Academic, Dordrecht
Ptolemy Group. Ptolemy II website. http://ptolemy.eecs.berkeley.edu/ptolemyII/
Sander I, Jantsch A (2004) System modeling and transformational design refinement in ForSyDe. IEEE Trans Comput-Aided Des Integr Circuits Syst 23(1):17–32
Schmidt DA (1988) Denotational semantics: A methodology for language development. McGraw-Hill, New York
Sharp R, Mycroft A (2001) A higher level language for hardware synthesis. In: Proceedings of the 11th advanced research working conference on correct hardware design verification methods (CHARME)
Stoy JE (1989) Denotational semantics, 5th edn. MIT Press, Cambridge
SystemVerilog. System Verilog website. http://www.systemverilog.org/
Taha W, Hudak P, Wan Z (2001) Real-time FRP. In: Proceedings of international conference on functional programming (ICFP)
Taha W, Hudak P, Wan Z (2002) Event-driven FRP. In: Proceedings of the 4th international symposium on practical aspects of declarative languages (PADL)
Talpin J-P, Shukla SK (2005) Automated clock inference for stream function-based system level specifications. In: HLDVT ’05: proceedings of the high-level design validation and test workshop, 2005. On Tenth IEEE international. IEEE Computer Society, Washington pp 63–70
Thompson S (1999) Haskell—the craft of functional programming, 2nd edn. Addison–Wesley, Reading
UCI. SpecC website. http://www.ics.uci.edu/~specc/
Verilog. Verilog website http://www.verilog.org/
VHDL. VHDL website. http://www.vhdl.org/
Wan Z (2000) Functional reactive programming from first principles. In: Proceedings of programming language design and implementation (PLDI)
Wu W, Sander I, Jantsch A (2000) Transformational system design based on a formal computational model and skeletons. In: Proceedings of the forum on specification and design languages conference (FDL)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Mathaikutty, D.A., Patel, H.D., Shukla, S.K. et al. SML-Sys: a functional framework with multiple models of computation for modeling heterogeneous system. Des Autom Embed Syst 12, 1–30 (2008). https://doi.org/10.1007/s10617-008-9012-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-008-9012-4