Skip to main content

Designing regular array architectures using higher order functions

  • Conference paper
  • First Online:
Book cover Functional Programming Languages and Computer Architecture (FPCA 1985)

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

Abstract

Functional programmers often use higher order functions such as map, reduce and filter in writing programs. By giving such higher order functions geometric as well as behavioural interpretation, we use similar techniques to design regular array architectures. We use some higher order functions from programming and two which were introduced specifically for describing and reasoning about regular arrays. Our higher order functions obey a number of algebraic laws. This allows us to use program transformation in the design process. We transform a correct (and understandable) initial design into one which is more suitable for VLSI implementation. The algebraic laws guarantee the correctness of the final circuit.

We have demonstrated our techniques by developing a novel bit-level systolic binary multiplier.

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. J. Backus, Can Programming Be Liberated from the Von Neumann Style? A Functional Style and its Algebra of Programs, C. ACM, Vol. 21, No. 8, pp 613–641, Aug. 1978.

    Google Scholar 

  2. M. Gordon, How to Specify and Verify Hardware using Higher Order Logic, Lecture Notes, Autumn 1984.

    Google Scholar 

  3. P. Henderson, Functional Programming: Application and Implementation, Prentice-Hall, 1980.

    Google Scholar 

  4. R.J.M. Hughes, Why Functional Programming Matters, Chalmers Tekniska Hogskola, Programming Methodology Group Memo PMG-40, 1984.

    Google Scholar 

  5. S.D. Johnson, Applicative Programming and Digital Design, Proc. 11th ACM Symp. on Principles of Programming Languages, pp 218–227, Jan. 1984.

    Google Scholar 

  6. H.T. Kung, Let's Design Algorithms for VLSI Systems, Carnegie-Mellon University, Tech. Report CMU-CS-79-151, 1979.

    Google Scholar 

  7. H.T. Kung, C.E. Leiserson, Systolic Arrays for VLSI, Carnegie-Mellon University, Tech. Report CMU-CS-79-103, 1979.

    Google Scholar 

  8. H.T. Kung, W.T. Lin, An Algebra for VLSI Algorithm Design, Carnegie-Mellon University, Tech. Report CMU-CS-84-100, April 1983.

    Google Scholar 

  9. C.E. Leiserson, Systolic and Semisystolic Design (Extended Abstract), Proc. IEEE International Conference on Computer Design, 1983.

    Google Scholar 

  10. C.E. Leiserson, J.B. Saxe, Optimizing Synchronous Systems, Journal of VLSI and Computer Systems, Vol. 1, No. 1, 1983.

    Google Scholar 

  11. J.V. McCanny, J.G. McWhirter, Implementation of Signal Processing Functions using 1-bit Systolic Arrays, Electonics Letters, Vol. 18, No. 16, pp 241–245, March 1982.

    Google Scholar 

  12. J.V. McCanny, J.G. McWhirter, Completely Iterative, Pipelined Multiplier Array Suitable for VLSI, IEEE Proc., Vol. 129, Pt. G, No. 2, April 1982.

    Google Scholar 

  13. C. Mead, L. Conway, Introduction to VLSI Systems, Addison-Wesley, 1980.

    Google Scholar 

  14. D. Patel, M. Schlag, M. Ercegovac, nuFP: An Environment for the Multi-level Specification, Analysis, and Synthesis of Hardware Algorithms, in Proc. Conf. on Functional Programming Languages and Computer Architecture, Nancy, Sept. 1985.

    Google Scholar 

  15. M. Sheeran, muFP, an Algebraic VLSI Design Language, D. Phil Thesis, University of Oxford, Programming Research Group, 1983. (appears as Technical Monograph PRG-39)

    Google Scholar 

  16. M. Sheeran, muFP, a Language for VLSI Design, Proc. ACM Symp. on Lisp and Functional Programming, pp 104–112, 1984.

    Google Scholar 

  17. M. Sheeran, The Design and Verification of Regular Synchronous Circuits, submitted for publication, April 1985.

    Google Scholar 

  18. D.A. Turner, Recursion Equations as a Programming Language, in Functional Programming and its Applications, ed. J. Darlington et al., CUP, 1982.

    Google Scholar 

  19. P. Wadler, Applicative Style Programming, Program Transformation, and List Operators, Proc. Conf. on Functional Programming and Computer Architecture, pp 25–32, 1981.

    Google Scholar 

  20. U.C. Weiser, Mathematical and Graphical Tools for the Creation of Computational Arrays, Ph. D. Thesis, University of Utah, Dept. of Computer Science, Aug. 1981.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jean-Pierre Jouannaud

Rights and permissions

Reprints and permissions

Copyright information

© 1985 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sheeran, M. (1985). Designing regular array architectures using higher order functions. In: Jouannaud, JP. (eds) Functional Programming Languages and Computer Architecture. FPCA 1985. Lecture Notes in Computer Science, vol 201. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-15975-4_39

Download citation

  • DOI: https://doi.org/10.1007/3-540-15975-4_39

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-15975-9

  • Online ISBN: 978-3-540-39677-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics