Designing regular array architectures using higher order functions

  • Mary Sheeran
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 201)


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.


Clock Cycle Systolic Array Functional Programming Full Adder Regular Array 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Backus 78]
    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. [Gordon 84]
    M. Gordon, How to Specify and Verify Hardware using Higher Order Logic, Lecture Notes, Autumn 1984.Google Scholar
  3. [Henderson 80]
    P. Henderson, Functional Programming: Application and Implementation, Prentice-Hall, 1980.Google Scholar
  4. [Hughes 84]
    R.J.M. Hughes, Why Functional Programming Matters, Chalmers Tekniska Hogskola, Programming Methodology Group Memo PMG-40, 1984.Google Scholar
  5. [Johnson 84]
    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. [Kung 79]
    H.T. Kung, Let's Design Algorithms for VLSI Systems, Carnegie-Mellon University, Tech. Report CMU-CS-79-151, 1979.Google Scholar
  7. [Kung, Leiserson 79]
    H.T. Kung, C.E. Leiserson, Systolic Arrays for VLSI, Carnegie-Mellon University, Tech. Report CMU-CS-79-103, 1979.Google Scholar
  8. [Kung, Lin 83]
    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. [Leiserson 83]
    C.E. Leiserson, Systolic and Semisystolic Design (Extended Abstract), Proc. IEEE International Conference on Computer Design, 1983.Google Scholar
  10. [Leiserson, Saxe 83]
    C.E. Leiserson, J.B. Saxe, Optimizing Synchronous Systems, Journal of VLSI and Computer Systems, Vol. 1, No. 1, 1983.Google Scholar
  11. [McCanny, McWhirter 82a]
    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. [McCanny, McWhirter 82b]
    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. [Mead, Conway 80]
    C. Mead, L. Conway, Introduction to VLSI Systems, Addison-Wesley, 1980.Google Scholar
  14. [Patel et al. 85]
    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. [Sheeran 83]
    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. [Sheeran 84]
    M. Sheeran, muFP, a Language for VLSI Design, Proc. ACM Symp. on Lisp and Functional Programming, pp 104–112, 1984.Google Scholar
  17. [Sheeran 85]
    M. Sheeran, The Design and Verification of Regular Synchronous Circuits, submitted for publication, April 1985.Google Scholar
  18. [Turner 82]
    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. [Wadler 81]
    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. [Wesier 81]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • Mary Sheeran
    • 1
  1. 1.Programming Research GroupOxford University Computing LaboratoryOxfordUK

Personalised recommendations