Skip to main content

Designing arithmetic circuits by refinement in Ruby

  • Conference paper
  • First Online:
Mathematics of Program Construction (MPC 1992)

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

Included in the following conference series:

Abstract

This paper presents in some detail the systematic derivation of a static bit-level parallel algorithm to implement multiplication of integers, that is to say one which might be implemented as an electronic circuit. The circuit is well known, but the derivation shows that its design can be seen as the consequence of decisions made (and explained) in terms of the abstract algorithm. The systematic derivation serves both as an explanation of the circuit, and as a demonstration that it is correct ‘by construction’. We believe that the technique is applicable to a wide range of similar algorithms.

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. R. C. Backhouse, P. J. de Bruin, P. Hoogendijk, G. Malcolm, E. Voermans and J. C. S. P. van der Woude, A relational theory of datatypes, unpublished.

    Google Scholar 

  2. Richard Bird, Ain Introduction to the Theory of Lists, in M. Broy (ed.), Logic of programming and calculi of discrete design, NATO advanced study institutes, Series F: Computer and systems sciences, Springer-Verlag, 1987. pp. 5–42.

    Google Scholar 

  3. Richard Bird, Lectures on constructive functional programming, in M. Broy (ed.), Constructive methods in computing science, NATO advanced study institutes, Series F: Computer and systems sciences, Springer-Verlag, 1989.

    Google Scholar 

  4. D. Borrione and A. Salem, Proving an on-line multiplier with OBJ and TACHE: a practical experience, in [6].

    Google Scholar 

  5. S-K. Chin, Verified synthesis functions for negabinary arithmetic hardware, in [6].

    Google Scholar 

  6. L. J. M. Claesen, Applied formal methods for correct VLSI design, North-Holland, 1989.

    Google Scholar 

  7. Rogardt Heldal, Carsten Kehler Holst, Phil Wadler (eds.), Functional programming, Glasgow 1991, Springer-Verlag (Workshops in Computing), 1992.

    Google Scholar 

  8. Graham Hutton and Ed Voermans, A calculational theory of pers as types, in [7].

    Google Scholar 

  9. Geraint Jones and Mary Sheeran, Relations and Refinement in Circuit Design in Carroll Morgan and J. C. P. Woodcock (eds.), Proceedings of the 3rd Refinement Workshop, 9–11 January 1990, Springer-Verlag (Workshops in Computing), 1991. pp. 133–152.

    Google Scholar 

  10. Geraint Jones and Mary Sheeran, Circuit design in Ruby, in J0rgen Staunstrup (ed.), Formal methods for VLSI design, North-Holland, 1990. pp. 13–70.

    Google Scholar 

  11. Mark B. Josephs, Rudolph H. Mak, Jan Timen Udding, Tom Verhoeff and Jelio T. Yantchev, High-level design of an asynchronous packet routing chip, in [16].

    Google Scholar 

  12. L. G. L. T. Meertens, Constructing a calculus of programs, in J. L. A. van de Snepscheut (ed.), Mathematics of program construction, Springer-Verlag LNCS 375, 1989.

    Google Scholar 

  13. Mary Sheeran, Designing regular array architectures using higher-order functions, in J.-P. Jouannaud (ed.), Functional programming languages and computer architecture, Springer-Verlag LNCS 201, 1985. pp. 220–237.

    Google Scholar 

  14. Mary Sheeran, A note on abstraction in Ruby, in [7].

    Google Scholar 

  15. M. Simonis, Formal verification of multipliers in [6].

    Google Scholar 

  16. Jørgen Staunstrup and R. Sharp (eds.), Designing Correct Circuits, Lyngby 1992, IFIP Transactions A, Volume 5, North-Holland, 1992.

    Google Scholar 

  17. D. Verkest, L. Claesen and H. De Man, A proof of the non-restoring division algorithm and its implementation on the Cathedral-II ALU, in [16].

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

R. S. Bird C. C. Morgan J. C. P. Woodcock

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jones, G., Sheeran, M. (1993). Designing arithmetic circuits by refinement in Ruby. In: Bird, R.S., Morgan, C.C., Woodcock, J.C.P. (eds) Mathematics of Program Construction. MPC 1992. Lecture Notes in Computer Science, vol 669. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56625-2_15

Download citation

  • DOI: https://doi.org/10.1007/3-540-56625-2_15

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56625-0

  • Online ISBN: 978-3-540-47613-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics