Skip to main content

Functional Design Using Behavioural and Structural Components

  • Conference paper
  • First Online:
Formal Methods in Computer-Aided Design (FMCAD 2002)

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

Included in the following conference series:

Abstract

In previous work we have demonstrated how the functional language SAFL can be used as a behavioural hardware description language. Other work (such as μFP and Lava) has demonstrated that functional languages are apposite for structural hardware description.

One of the strengths of systems such as VHDL and Verilog is their ability to mix structural- and behavioural-level primitives in a single specification. Motivated by this observation, we describe a unified framework in which a stratified functional language is used to specify hardware across different levels of abstraction: Lava-style structural expansion is used to generate acyclic combinatorial circuits; these combinatorial fragments are composed at the SAFL-level. We demonstrate the utility of this programming paradigm by means of a realistic case-study. Our tools have been used to specify, simulate and synthesise a DES encryption/ decryption circuit. Area-time performance figures are presented.

Finally, we show how similar integration techniques can be used to embed languages such as Magma/Lava into industrial HDLs such as Verilog and VHDL. Our methodology offers significant advantages over the “Perlscript” technique so commonly employed in practice.

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. Haskell98 report. Available from http://www.haskell.org/.

  2. Bjesse, P., Claessen, K., Sheeran, M., and Singh, S. Lava: Hardware description in Haskell. In Proceedings of the 3rd International Conference on Functional Programming (1998), SIGPLAN, ACM.

    Google Scholar 

  3. Bose, B. DDD: A transformation system for digital design derivation. Tech. Rep. 331, Computer Science Department, Indiana University, 1991.

    Google Scholar 

  4. Claessen, K., and Sands, D. Observable sharing for functional circuit description. In Advances in Computing Science ASIAN’99; 5th Asian Computing Science Conference (1999), vol. 1742 of LNCS, Springer Verlag, pp. 62–73.

    Google Scholar 

  5. Classen, K., Sheeran, M., and Singh, S. The design and verification of a sorter core. In Proceedings of the 11th Advanced Working Conference on Correct Hardware Design and Verification Methods (2001), vol. 2144 of LNCS, Springer-Verlag, pp. 355–369.

    Chapter  Google Scholar 

  6. De Micheli, G. Synthesis and Optimization of Digital Circuits. McGraw-Hill Inc., 1994.

    Google Scholar 

  7. IEEE. Verilog HDL language reference manual. IEEE Standard 1364-2001.

    Google Scholar 

  8. EEE. Standard VHDL Reference Manual, 1993. IEEE Standard 1076-1993.

    Google Scholar 

  9. Kaps, J.-P., and Paar, C. Fast DES implementation for FPGAs and its application to a universal key-search machine. In Selected Areas in Cryptography (1998), vol. 1556 of Lecture Notes in Computer Science, Springer Verlag, pp. 234–247.

    Chapter  Google Scholar 

  10. Matthews, J., Cook, B., and Launchbury, J. Microprocessor specification in Hawk. In Proceedings of the IEEE International Conference on Computer Languages (1998).

    Google Scholar 

  11. Milner, R., Tofte, M., Harper, R., and MacQueen, D. The Definition of Standard ML (Revised). MIT Press, 1997.

    Google Scholar 

  12. Mycroft, A., and Sharp, R. A statically allocated parallel functional language. In Proceedings of the International Conference on Automata, Languages and Programming (2000), vol. 1853 of LNCS, Springer-Verlag.

    Chapter  Google Scholar 

  13. Mycroft, A., and Sharp, R. Hardware/software co-design using functional languages. In Proceedings of TACAS (2001), vol. 2031 of LNCS, Springer-Verlag.

    Google Scholar 

  14. Mycroft, A., and Sharp, R. Higher-level techniques for hardware description and synthesis. To appear. International Journal on Software Tools for Technology Transfer (STTT) (2002).

    Google Scholar 

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

    Google Scholar 

  16. O’Donnell, J. Generating netlists from executable circuit specifications in a pure functional language. In Functional Programming, Workshops in Computing, Proceedings, (1992), Springer-Verlag, pp. 178–194.

    Google Scholar 

  17. Paulson, L. ML for the working programmer. Cambridge University Press, 1996.

    Google Scholar 

  18. Schneier, B. Applied cryptography: protocols, algorithms, and sourcecode in C John Wiley and Sons, New York, 1994.

    Google Scholar 

  19. Sharp, R., and Mycroft, A. Soft scheduling for hardware. In Proceedings of the 8th International Static Analysis Symposium (2001), vol. 2126 of LNCS, Springer-Verlag.

    Google Scholar 

  20. Sheeran, M. muFP, a language for VLSI design. In Proceedings of the ACM Symposium on LISP and Functional Programming (1984).

    Google Scholar 

  21. Wadler, P. Monads for functional programming. In Advanced Functional Programming (1995), vol. 925 of LNCS, Springer-Verlag.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sharp, R. (2002). Functional Design Using Behavioural and Structural Components. In: Aagaard, M.D., O’Leary, J.W. (eds) Formal Methods in Computer-Aided Design. FMCAD 2002. Lecture Notes in Computer Science, vol 2517. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36126-X_20

Download citation

  • DOI: https://doi.org/10.1007/3-540-36126-X_20

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-00116-4

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics