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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
M. Gordon, How to Specify and Verify Hardware using Higher Order Logic, Lecture Notes, Autumn 1984.
P. Henderson, Functional Programming: Application and Implementation, Prentice-Hall, 1980.
R.J.M. Hughes, Why Functional Programming Matters, Chalmers Tekniska Hogskola, Programming Methodology Group Memo PMG-40, 1984.
S.D. Johnson, Applicative Programming and Digital Design, Proc. 11th ACM Symp. on Principles of Programming Languages, pp 218–227, Jan. 1984.
H.T. Kung, Let's Design Algorithms for VLSI Systems, Carnegie-Mellon University, Tech. Report CMU-CS-79-151, 1979.
H.T. Kung, C.E. Leiserson, Systolic Arrays for VLSI, Carnegie-Mellon University, Tech. Report CMU-CS-79-103, 1979.
H.T. Kung, W.T. Lin, An Algebra for VLSI Algorithm Design, Carnegie-Mellon University, Tech. Report CMU-CS-84-100, April 1983.
C.E. Leiserson, Systolic and Semisystolic Design (Extended Abstract), Proc. IEEE International Conference on Computer Design, 1983.
C.E. Leiserson, J.B. Saxe, Optimizing Synchronous Systems, Journal of VLSI and Computer Systems, Vol. 1, No. 1, 1983.
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.
J.V. McCanny, J.G. McWhirter, Completely Iterative, Pipelined Multiplier Array Suitable for VLSI, IEEE Proc., Vol. 129, Pt. G, No. 2, April 1982.
C. Mead, L. Conway, Introduction to VLSI Systems, Addison-Wesley, 1980.
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.
M. Sheeran, muFP, an Algebraic VLSI Design Language, D. Phil Thesis, University of Oxford, Programming Research Group, 1983. (appears as Technical Monograph PRG-39)
M. Sheeran, muFP, a Language for VLSI Design, Proc. ACM Symp. on Lisp and Functional Programming, pp 104–112, 1984.
M. Sheeran, The Design and Verification of Regular Synchronous Circuits, submitted for publication, April 1985.
D.A. Turner, Recursion Equations as a Programming Language, in Functional Programming and its Applications, ed. J. Darlington et al., CUP, 1982.
P. Wadler, Applicative Style Programming, Program Transformation, and List Operators, Proc. Conf. on Functional Programming and Computer Architecture, pp 25–32, 1981.
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.
Author information
Authors and Affiliations
Editor information
Rights 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