Formal Aspects of Computing

, Volume 19, Issue 3, pp 343–362 | Cite as

Proof producing synthesis of arithmetic and cryptographic hardware

  • Konrad Slind
  • Scott Owens
  • Juliano Iyoda
  • Mike Gordon
Original Article

Abstract

A compiler from a synthesisable subset of higher order logic to clocked synchronous hardware is described. It is being used to create coprocessors for cryptographic and arithmetic applications. The compiler automatically translates a function f defined in higher order logic (typically using recursion) into a device that computes f via a four-phase handshake circuit. Compilation is by fully automatic proof in the HOL4 system, and generates a correctness theorem for each compiled function. Synthesised circuits can be directly translated to Verilog, and then input to design automation tools. A fully-expansive ‘LCF methodology’ allows users to safely modify and extend the compiler’s theorem proving scripts to add optimisations or to enlarge the synthesisable subset of higher order logic.

Keywords

Theorem proving Compiling Hardware synthesis Cryptography High assurance 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. BCSS99.
    Bjesse P, Claessen K, Sheeran M, Singh S (1999) Lava: Hardware design in Haskell. ACM SIGPLAN Notices 34(1):174–184CrossRefGoogle Scholar
  2. BE98.
    Blumenröhr C, Eisenbiegler D (1998) Performing high-level synthesis via program transformations within a theorem prover. In: Proceedings of the Digital System Design Workshop at the Euromicro 98 Conference, Västeras, Sweden, pp 34–37, Universität Karlsruhe, Institut für Rechnerentwurf und FehlertoleranzGoogle Scholar
  3. BH01.
    Bowen JP, He J (2001) An approach to the specification and verification of a hardware compilation scheme. J Supercomput 19(1):23–39MATHCrossRefGoogle Scholar
  4. BJ97.
    Brock B, Hunt Jr WA (1997) The DUAL-EVAL hardware description language and its use in the formal specification and verification of the fm9001 microprocessor. Formal Methods Syst Des 11(1):71–104CrossRefGoogle Scholar
  5. Blu99.
    Blumenröhr C (1999) A formal approach to specify and synthesize at the system level. In: GI Workshop Modellierung und Verifikation von Systemen. Shaker-Verlag, Braunschweig, Germany, pp 11–20Google Scholar
  6. Chi92.
    Chin S-K (1992) Verified functions for generating signed-binary arithmetic hardware. IEEE Trans Comput-Aided Des Integ Circ Syst 11(12):1529–1558CrossRefGoogle Scholar
  7. Com04.
    Common criteria for information security evaluation, 2004. Part 3: Security Assurance Requirements, http://niap.nist.gov/ cc-scheme/cc_docs/cc_v22_part3.pdf.Google Scholar
  8. DHL+05.
    Duan J, Hurd J, Li G, Owens S, Slind K, Zhang J (2005) Functional correctness proofs of encryption algorithms. In: Proceedings of 12th conference on logic for programming artificial intelligence and reasoning (LPAR 2005), number 3835 in LNAI, Springer, Heidelberg, pp 519–533Google Scholar
  9. FFFH89.
    Finn S, Fourman MP, Francis M, Harris R (1989) Formal system design—interactive synthesis based on computer-assisted formal reasoning. In: Luc Claesen (ed) IMEC-IFIP international workshop on applied formal methods for correct VLSI Design, Vol 1, pp 97–110, Houthalen, Belgium, November 1989. Elsevier Science Publishers, B.V. North-Holland, AmsterdamGoogle Scholar
  10. Fox.
    Fox A Verifying ARM6 multiplication. http://www.cl.cam.ac.uk/users/acjf3.Google Scholar
  11. Hau95.
    Hauck S (1995) Asynchronous design methodologies: an overview. Proc IEEE 83(1):69–93CrossRefGoogle Scholar
  12. Her88.
    Herbert JMJ (1988) Temporal abstraction of digital designs. In: George J. Milne (ed) The fusion of hardware design and verification: proceedings of the IFIP WG 10.2 Working conference on the fusion of hardware design and verification: Glasgow, Scotland, North-Holland, pp 4–6Google Scholar
  13. HLD89.
    Hanna FK, Longley M, Daeche N (1989) Formal synthesis of digital systems. In: Claesen L. (ed) Applied formal methods for correct VLSI Design, North-Holland, pp 153–170Google Scholar
  14. HP92.
    Hennessy JL, Patterson DA (1992) Computer architecture. A quantitative approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USAGoogle Scholar
  15. JB90.
    Johnson SD, Bose B (1990) DDD—A system for mechanized digital design derivation. Technical Report TR323, Indiana University, IU Computer Science DepartmentGoogle Scholar
  16. JS90a.
    Jones G, Sheeran M (1990) Circuit design in Ruby. In: Staunstrup J. (ed) Formal methods for VLSI design. Elsevier Science Publications, North-Holland, pp 13–70Google Scholar
  17. JS90b.
    Jones G, Sheeran M (1990) Circuit design in Ruby. Lecture notes on Ruby from a summer school in Lyngby, Denmark., SeptemberGoogle Scholar
  18. JS91.
    Jones G, Sheeran M (1991) Relations and refinement in circuit design. In: Morgan C. (ed) BCS FACS Workshop on Refinement. Springer, HeidelbergGoogle Scholar
  19. Mel93.
    Melham TF (1993) Higher order logic and hardware verification. Cambridge University Press, Cambridge, England, 1993. Cambridge Tracts in Theoretical Computer Science 31Google Scholar
  20. MS01.
    Mycroft A, Sharp R (2001) Hardware synthesis using SAFL and application to processor design. In: Proceedings of the 11th advanced research working conference on correct hardware design and verification methods (CHARME’01), Livingston, Scotland, September 2001. Springer, Heidelberg. Invited Talk. LNCS Vol 2144Google Scholar
  21. Npa.
    Norrish M, Slind K (project administrators). The HOL4 System. SourceForge website. http://hol.sourceforge.net/.Google Scholar
  22. O'D02.
    O’Donnell J (2002) Overview of Hydra: A concurrent language for synchronous digital circuit design. In: Proceedings of the 16th international parallel and distributed processing symposium. IEEE Computer Society PressGoogle Scholar
  23. Pag96.
    Page I (1996) Constructing hardware-software systems from a single description. J VLSI Signal Process 12(1):87–107 citeseer.ist.psu.edu/page96constructing.htmlCrossRefGoogle Scholar
  24. PSS98.
    Pnueli A, Siegel M, Singerman E (1998) Translation validation. In: Proceedings of TACAS’98, Vol 1384 of Lecture Notes in Computer Science, Springer, Heidelberg, pp 151–166Google Scholar
  25. RCDD96.
    Kumar R, Blumenroehr C, Eisenbiegler D, Schmid D (1996) Formal synthesis in circuit design-A classification and survey. In: Srivas M., Camilleri A. (ed) First international conference on formal methods in computer-aided design, Vol 1166. Springer, Heidelberg, pp 294–299, Palo Alto, CA, USACrossRefGoogle Scholar
  26. RRSY98.
    Rivest R, Robshae M, Sidney R, Yin YL(1998) The RC6 block cipher. Available at http://www.rsasecurity.com/rsalabs/rc6, AugustGoogle Scholar
  27. She84a.
    Sheeran M (1984) μFP, A language for VLSI design. In: Proceedings of the ACM symposium on LISP and functional programming, ACM Press, Austin, Texas, pp 104–112Google Scholar
  28. She84b.
    Sheeran M (1984) muFP, A language for VLSI design. In: Conference record of the 1984 ACM symposium on lisp and functional programming, ACM, New York, pp 104–112Google Scholar
  29. Sli96.
    Slind K (1996) Function definition in higher order logic. In: Theorem proving in higher order logics, number 1125 in lecture notes in computer science, Springer, Heidelberg, pp 381–398, Turku, FinlandGoogle Scholar
  30. Sli00.
    Slind K (2000) Wellfounded schematic definitions. In: David McAllester (ed) In: Proceedings of the seventeenth international conference on automated deduction CADE-17, Vol 1831 of Lecture Notes in Computer Science. Springer, Heidelberg, pp 45–63, Pittsburgh, PennsylvaniaGoogle Scholar
  31. vB93.
    van Berkel K(1993) Handshake circuits: an asynchronous architecture for VLSI programming. Cambridge University Press, New York, NY, USAMATHGoogle Scholar
  32. WN99.
    Wheeler D, Needham R (1999) TEA, a tiny encryption algorithm. In Fast Software Encryption: Second International Workshop, Vol 1008 of LNCS. Springer, Heidelberg, pp 363–366Google Scholar

Copyright information

© British Computer Society 2007

Authors and Affiliations

  • Konrad Slind
    • 1
  • Scott Owens
    • 1
  • Juliano Iyoda
    • 2
  • Mike Gordon
    • 2
  1. 1.School of ComputingUniversity of UtahSalt Lake CityUSA
  2. 2.University of Cambridge Computer LaboratoryCambridgeUK

Personalised recommendations