Skip to main content

Embedding a Hardware Description Language in Template Haskell

  • Chapter
Domain-Specific Program Generation

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

Abstract

Hydra is a domain-specific language for designing digital circuits, which is implemented by embedding within Haskell. Many features required for hardware specification fit well within functional languages, leading in many cases to a perfect embedding. There are some situations, including netlist generation and software logic probes, where the DSL does not fit exactly within the host functional language. A new solution to these problems is based on program transformations performed automatically by metaprograms in Template Haskell.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Jones, S.P. (ed.): Haskell 98 language and libraries. Journal of Functional Programming 13(1), 1–255 (2003)

    Google Scholar 

  2. Johnson, S.D.: Synthesis of Digital Designs from Recursion Equations. The ACM Distinguished Dissertation Series. MIT Press, Cambridge (1984)

    Google Scholar 

  3. Jones, G., Sheeran, M.: Circuit design in Ruby. In: Staunstrup, J. (ed.) Formal Methods in VLSI Design, ch. 1. IFIP WG 10.5 Lecture Notes, pp. 13–70. North-Holland, Amsterdam (1990)

    Google Scholar 

  4. O’Donnell, J.: Hardware description with recursion equations. In: Proceedings of the IFIP 8th International Symposium on Computer Hardware Description Languages and their Applications, Amsterdam, April 1987, pp. 363–382. North-Holland, Amsterdam (1987)

    Google Scholar 

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

    Google Scholar 

  6. O’Donnell, J.: Generating netlists from executable circuit specifications in a pure functional language. In: Functional Programming, Glasgow 1992. Workshops in Computing, pp. 178–194. Springer, Heidelberg (1992)

    Google Scholar 

  7. O’Donnell, J.: From transistors to computer architecture: Teaching functional circuit specification in Hydra. In: Hartel, P.H., Plasmeijer, R. (eds.) FPLE 1995. LNCS, vol. 1022, pp. 195–214. Springer, Heidelberg (1995)

    Google Scholar 

  8. O’Donnell, J.: Overview of Hydra: A concurrent language for synchronous digital circuit design. In: Proceedings 16th International Parallel & Distributed Processing Symposium, April 2002, p. 234. IEEE Computer Society, Los Alamitos (2002); Workshop on Parallel and Distribued Scientific and Engineering Computing with Applications— PDSECA (abstract)

    Chapter  Google Scholar 

  9. O’Donnell, J., RĂ¼nger, G.: Derivation of a carry lookahead addition circuit. In: Proceedings ACM SIGPLAN Haskell Workshop (HW 2001), September 2001. Electronic Notes in Theoretical Computer Science, vol. 59(2) (2001)

    Google Scholar 

  10. Sheard, T., Jones, S.P.: Template metaprogramming for Haskell. In: Chakravarty, M.M.T. (ed.) ACM SIGPLAN Haskell Workshop 2002, October 2002, pp. 1–16. ACM Press, New York (2002)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

O’Donnell, J.T. (2004). Embedding a Hardware Description Language in Template Haskell. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds) Domain-Specific Program Generation. Lecture Notes in Computer Science, vol 3016. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25935-0_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-25935-0_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22119-7

  • Online ISBN: 978-3-540-25935-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics