Skip to main content

Generating Netlists from Executable Circuit Specifications in a Pure Functional Language

  • Conference paper
Functional Programming, Glasgow 1992

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

It is easy to write a circuit specification in a pure functional language so that execution of the specification simulates the circuit. It’s harder to make an executable specification generate the circuit’s netlist without using impure language features. The difficulty is that a circuit specification evaluates to a graph isomorphic to the circuit, so the specification of a circuit with feedback will evaluate to a circular (or infinite) graph. That prevents a naïve graph traversal algorithm written in a pure functional language from terminating. This paper solves the problem by requiring the circuit specification to name components explicitly. With suitable higher order functions, the naming can be achieved without placing an undue burden on the circuit designer. This approach clarifies the distinction between transformations that preserve both the behaviour and structure of a circuit and transformations that preserve the behaviour while possibly changing the structure. It also demonstrates one way to manipulate circular graphs in a pure functional language.

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. R. T. Boute, “System semantics: principles, application and implementation,”, ACM Trans. Programming Languages and Systems, 10 1 (Jan. 1988) 118–155.

    Article  Google Scholar 

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

    Google Scholar 

  3. J. T. 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), Amsterdam: North-Holland (1988) 309–328.

    Google Scholar 

  4. J. T. O’Donnell and C. V. Hall, “Hydra: A digital circuit design system,” Report SA/TR-4/89, Sabbagh Associates Inc., Bloomington IN (March 1989).

    Google Scholar 

  5. M. Sheeran, “Describing hardware algorithms in Ruby,” Declarative Sys-terns, North-Holland (1990) 289–303.

    Google Scholar 

  6. S. Singh, “Implementation of a nonstandard interpretation system,” Functional Programming, Glasgow 1989, Workshops in Computing, Springer-Verlag (1990) 206–224.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1993 British Computer Society

About this paper

Cite this paper

O’Donnell, J.T. (1993). Generating Netlists from Executable Circuit Specifications in a Pure Functional Language. In: Launchbury, J., Sansom, P. (eds) Functional Programming, Glasgow 1992. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3215-8_16

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3215-8_16

  • Publisher Name: Springer, London

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

  • Online ISBN: 978-1-4471-3215-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics