Timeless Truths about Sequential Circuits
We suggest the use of a declarative programming language to design and describe circuits, concentrating on the use of higher-order functions to structure and simplify designs. In order to describe sequential circuits, we use a language, µ fp, which abstracts from temporal iteration. The practicalities of vlsi design make regularity attractive, and we describe the use of familiar higher order functions to capture spatial iteration.
By reasoning about circuits rather than signals (programs rather than data) one abstracts from the sequential nature of a circuit. By reasoning about forms of circuit (higher order functions) one can devise implementation strategies for whole classes of algorithms. Reasoning about µ fp is formally quite similar to reasoning about fp.
In this paper we identify the semantic content of the formal similarity between fp and µ fp. This makes it possible to carry over from conventional functional programming those intuitions we have about algorithm design. It also makes it possible to conduct parts of a design in the simpler world of static calculations, with confidence in the correctness of the corresponding sequential circuit.
KeywordsInfinite Sequence Sequential Circuit Combinational Circuit High Order Function Equational Reasoning
Unable to display preview. Download preview PDF.
- M.J.C. Gordon, ‘Why higher order logic is a good formalism for specifying and verifying hardware’, Technical report No. 77, Cambridge University Computing Laboratory, 1985.Google Scholar
- G. Jones and W. Luk, ‘Exploring designs by circuit transformation’, in W. Moore, A. McCabe and R. Urquhart (eds.), ‘Systolic Arrays’, Bristol: Adam Huger, 1987, pp. 91–98.Google Scholar
- C.E. Leiserson and J.B. Saxe, ‘Optimising synchronous systems’, J VLSI & Comput. Syst., 1983, vol. 1 (1), pp. 41–67.Google Scholar
- M. Sheeran, ‘µFP, an Algebraic VLSI design language’, D.Phil. thesis, University of Oxford, 1983.Google Scholar
- M. Sheeran, ‘Designing regular array architectures using higher order functions’, in Proc. Int. Conference on Functional Programming Languages and Computer Architecture, Springer-Verlag LNCS 201, 1985, pp. 220–237.Google Scholar
- M. Sheeran, ‘Design and verification of regular synchronous circuits’, IEE Proceedings, vol. 133, Pt. E, No. 5, pp. 295–304 September 1986.Google Scholar
- M. Sheeran and G. Jones, ‘Relation + Higher Order Functions = Hardware Descriptions’, in IEEE Proc. Comp Euro 1987, pp. 303–306Google Scholar
- U.C. Weiser and A.L. Davis, ‘A wavefront notation tool for VLSI array design’, in H.T. Kung, R.F. Sproull and G.L. Steele (eds.), ‘VLSI systems and computations’ (Computer Science Press, 1981 ), pp. 226–234.Google Scholar