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.
Preview
Unable to display preview. Download preview PDF.
References
R. Bird and P. Wadler, Introduction to Functional Programming, Prentice Hall (1988).
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).
S. D. Johnson. Synthesis of Digital Designs from Recursion Equations, The MIT Press (1984).
S. D. Johnson. Applicative Programming and Digital Design, 11th ACM Symp. on Principles of Programming Languages (POPL) (1984) 218–227.
A. Gupta, Formal Hardware Verification Methods: A Survey, Formal Methods in System Design, Vol. 1 No. 2/3 (1992) 151–238.
C. Mead and L. Conway, Introduction to VLSI Systems, Addison-Wesley (1980).
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.
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.
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.
J. O'Donnell, Bidirectional fold and scan, Functional Programming: Glasgow 1993, Springer (1994) 193–200.
M. Sheeran. muFP, A language for VLSI design, Proc. ACM Symp. on Lisp and Functional Programming, (1984) 104–112.
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.
F. P. Prosser and D. E. Winkel, The Art of Digital Design, Prentice-Hall International (1987).
Author information
Authors and Affiliations
Editor information
Rights 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