STREAM: A scheme language for formally describing digital circuits
For formally reasoning about, transforming, and verifying hardware designs it is necessary to have a formal framework with a sound semantital basis. We present a language, called STREAM, with these purposes. With it, one can describe stream processing agents for modelling all kinds of concurrent systems. Two styles of composition of agents are defined: an applicative style, in which streams are named, and a functional style, with which also a topology can be defined.
The language is used for the description of digital circuits at different levels of detail. First a non-hardware-specific system level is studied. Then the register-transfer and gate level are characterized and modelled with STREAM. It is shown that apart from being able to describe loosely coupled systems in general, also synchronous and even asynchronous systems can easily be modelled.
KeywordsDigital Circuit Input Stream Output Line Output Stream Denotational Semantic
Unable to display preview. Download preview PDF.
- J. Arsac: "Foundations of Programming"; London: Academic Press 1985, APIC Studies in Data Processing 23Google Scholar
- F. L. Bauer et al. (CIP Language Group): "The Munich Project CIP — Volume I: The Wide Spectrum Language CIP-L"; Berlin: Springer 1985, Lect. Notes in Comp. Sci. 183Google Scholar
- M. Broy: "Fixed Point Theory for Communication and Concurrency", in: IFIP TC 2 Working Conference on "Formal Description of Programming Concepts II", Garmisch-Partenkirchen, June 1982Google Scholar
- M. Broy: "Semantics of Communicating Processes", Information and Control, 1983Google Scholar
- M. Broy: "Denotational Semantics of Concurrent Programs with Shared Memory", in: M. Fontet, K. Mehlhorn (eds.): "Symposium on Theoretical Aspects of Computer Science 1984", Paris, 11–13 Apr. 1984; Berlin: Springer 1984, Lect. Notes in Comp. Sci. 166, 163–173Google Scholar
- R. Bryant: "A Switch-Level Simulation Model for Integrated Logic Circuits", Lab. Computer Science, M.I.T., Ph. D. Thesis, Tech. Rep. MIT/LCS/TR-259, 1981Google Scholar
- W. Burge: "Stream Processing Functions", IBM J. Res. Devel. 19, 1975, 12–25Google Scholar
- C. Delgado Kloos: "Towards a Formalization of Digital Circuit Design", Fakultät für Mathematik und Informatik, Technische Universität München, Ph.D. Thesis, Tech. Rep. TUM-18604, Feb. 1986 (to appear in Lect. Notes in Comp. Sci., Berlin: Springer)Google Scholar
- C. Delgado Kloos, W. Dosch, B. Möller: "On the Algebraic Specification of a Language for Describing Communicating Agents", öGI/öCG Conference, Passau, Feb. 1986, 53–73Google Scholar
- C. Delgado Kloos, W. Dosch: "Transformational Development of Digital Circuit Descriptions: A Case Study", in: W. Proebster (ed.): "CompEuro 87", Hamburg, 11–15 May 1987 (to appear)Google Scholar
- J. B. Dennis: "First version of a Data Flow Procedure Language", in: B. Robinet (ed.): "Programming Symposium", Paris, 9–11 Apr. 1974; Berlin: Springer 1974, Lect. Notes in Comp. Sci. 19, 362–376Google Scholar
- D. L. Dietmeyer: "Logic Design of Digital Systems", Boston, MA: Allyn and Bacon 1978Google Scholar
- E. B. Eichelberger: "Hazard Detection in Combinational and Sequential Switching Circuits", IBM J. Res. Devel. 9, Mar. 1965, 90–99Google Scholar
- B. Möller, W. Dosch: "On the Algebraic Specification of Domains", in: H.-J. Kreowski (ed.): "Recent Trends in Data Type Specification", 3rd Workshop on Theory and Application of Abstract Data Types"; Berlin: Springer 1986, Informatik Fachberichte 116, 178–195Google Scholar
- W. Wadge, E. Ashcroft: "LUCID, the Dataflow Programming Language"; London: Academic Press 1985Google Scholar