Skip to main content

Teaching functional circuit specification in Hydra

  • From Transistors to Computer Architecture
  • Conference paper
  • First Online:
Funtional Programming Languages in Education (FPLE 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1022))

Abstract

Hydra is a set of methods and software tools for carrying out digital circuit design using Haskell. It has been used successfully for three years in the third-year course on Computer Architecture at the University of Glasgow, with plans to extend its use to the advanced fourth-year course. Some of its innovative features are: Signal type classes; support for CMOS and NMOS design; a large family of higher order combining forms; a set of tools for simulation; a language for expressing control algorithms; and automated tools for deriving control circuits from control algorithms. The system contains a rich library of circuits, ranging from low level implementations of logic gates using pass transistors to complete processor designs. The chief benefit of using functional circuit specification to teach computer architecture is that a complete computer system design can be presented, at all levels of abstraction, with no details omitted, giving students a genuine understanding of how computers work.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Bird and P. Wadler, Introduction to Functional Programming, Prentice Hall (1988).

    Google Scholar 

  2. P. Hudak, S. Peyton Jones and P. Wadler (editors). Report on the Programming Language Haskell, A Nonstrict Purely Functional Language (Version 1.2), ACM SIGPLAN Notices 27(5) (May 1992).

    Google Scholar 

  3. S. D. Johnson. Synthesis of Digital Designs from Recursion Equations, The MIT Press (1984).

    Google Scholar 

  4. S. D. Johnson. Applicative Programming and Digital Design, 11th ACM Symp. on Principles of Programming Languages (POPL) (1984) 218–227.

    Google Scholar 

  5. A. Gupta, Formal Hardware Verification Methods: A Survey, Formal Methods in System Design, Vol. 1 No. 2/3 (1992) 151–238.

    Google Scholar 

  6. C. Mead and L. Conway, Introduction to VLSI Systems, Addison-Wesley (1980).

    Google Scholar 

  7. J. O'Donnell, Hardware description with recursion equations, 8th Int. Symp. on Computer Hardware Description Languages and their Applications (CHDL), North-Holland (1987) 363–382.

    Google Scholar 

  8. J. O'Donnell, Hydra: Hardware description in a functional language using recursion equations and high order combining forms, The Fusion of Hardware Design and Verification, G. J. Milne (ed), North-Holland (1988) 309–328.

    Google Scholar 

  9. J. O'Donnell, Generating netlists from executable circuit specifications in a pure functional language, Functional Programming: Glasgow 1992, Springer-Verlag Workshops in Computing (1993) 178–194.

    Google Scholar 

  10. J. O'Donnell, Bidirectional fold and scan, Functional Programming: Glasgow 1993, Springer (1994) 193–200.

    Google Scholar 

  11. M. Sheeran. muFP, A language for VLSI design, Proc. ACM Symp. on Lisp and Functional Programming, (1984) 104–112.

    Google Scholar 

  12. M. Sheeran. Designing regular array architectures using higher order functions, Proc. Conf. Functional Programming Languages and Computer Architecture (FPCA), Springer-Verlag LNCS 201 (1985) 220–237.

    Google Scholar 

  13. F. P. Prosser and D. E. Winkel, The Art of Digital Design, Prentice-Hall International (1987).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pieter H. Hartel Rinus Plasmeijer

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

O'Donnell, J. (1995). Teaching functional circuit specification in Hydra. In: Hartel, P.H., Plasmeijer, R. (eds) Funtional Programming Languages in Education. FPLE 1995. Lecture Notes in Computer Science, vol 1022. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60675-0_46

Download citation

  • DOI: https://doi.org/10.1007/3-540-60675-0_46

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60675-8

  • Online ISBN: 978-3-540-49252-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics