Skip to main content

ACL2 theorems about commercial microprocessors

  • Conference paper
  • First Online:
Formal Methods in Computer-Aided Design (FMCAD 1996)

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

Included in the following conference series:

Abstract

ACL2 is a mechanized mathematical logic intended for use in specifying and proving properties of computing machines. In two independent projects, industrial engineers have collaborated with researchers at Computational Logic, Inc. (CLI), to use ACL2 to model and prove properties of state-of-the-art commercial microprocessors prior to fabrication. In the first project, Motorola, Inc., and CLI collaborated to specify Motorola's complex arithmetic processor (CAP), a single-chip, digital signal processor (DSP) optimized for communications signal processing. Using the specification, we proved the correctness of several CAP microcode programs. The second industrial collaboration involving ACL2 was between Advanced Micro Devices, Inc. (AMD) and CLI. In this work we proved the correctness of the kernel of the floating-point division operation on AMD's first Pentium-class microprocessor, the AMD5 K 86. In this paper, we discuss ACL2 and these industrial applications, with particular attention to the microcode verification work.

The theorem prover used in this work was supported in part at Computational Logic, Inc., by the Defense Advanced Research Projects Agency, ARPA Order 7406, and the Office of Naval Research, Contract N00014-94-C-0193. The views and conclusions contained in this document are those of the author(s) and should not be interpreted as representing the official policies, either expressed or implied, of Advanced Micro Devices, Inc., Motorola, Inc., Computational Logic, Inc., the Defense Advanced Research Projects Agency, the Office of Naval Research, or the U.S. Government.

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. K. Albin. Validating the ACL2 CAP Model. CAP Technical Report 9, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703 March, 1995.

    Google Scholar 

  2. R. S. Boyer and J. S. Moore. A Computational Logic. Academic Press: NewYork, 1979.

    Google Scholar 

  3. R. S. Boyer and J S. Moore. A Computational Logic Handbook, Academic Press: New York, 1988.

    Google Scholar 

  4. R. S. Boyer and Y. Yu. Automated Proofs of Object Code for a Widely Used Microprocessor, JACM, 43(1) January, 1996, pp. 166–192.

    Google Scholar 

  5. B. Brock. The CAP 94 Specification, CAP Technical Report 8, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, July, 1995.

    Google Scholar 

  6. B. Brock. Formal Analysis of the CAP Instruction Pipeline, CAP Technical Report 10, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, June, 1996.

    Google Scholar 

  7. B. Brock. Formal Verification of CAP Applications, CAP Technical Report 15, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, June, 1996.

    Google Scholar 

  8. R. E. Bryant. Bit-Level Analysis of an SRT Divider Circuit, CMU-CS-95-140, School of Computer Science, Carnegie Mellon University, Pittsburg, PA 15213.

    Google Scholar 

  9. R. E. Bryant and Y. A. Chen. Verification of arithmetic functions with binary moment diagrams. In Proceedings of the 32nd ACM/IEEE Design Automation Conference IEEE Computer Society Press, June 1995.

    Google Scholar 

  10. J. R. Burch, E. M. Clarke, D. E. Long, K. L. McMillan and D. L. Dill. Symbolic Model Checking for Sequential Circuit Verification, IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems 13(4) April, 1994, pp. 401–424.

    Google Scholar 

  11. J. R. Burch and D. L. Dill. Automatic verification of pipelined microprocessor control. in David Dill, editor, Computer-Aided Verification, CAV '94, Stanford, CA, Springer-Verlag, Lecture Notes in Computer Science Volume 818, June, 1994, pp. 68–80.

    Google Scholar 

  12. E. M. Clarke, S. M. German and X. Zhao. Verifying the SRT Division Algorithm using Theorem Proving Techniques, Proceedings of Conference on Computer-Aided Verification, CAV '96, July, 1996.

    Google Scholar 

  13. E. M. Clarke, M. Fujita, and X. Zhao. Hybrid Decision Diagrams, ICCAD95, 1995, pp. 159–163.

    Google Scholar 

  14. E. M. Clarke, O. Grumberg, H. Hiraishi, S. Jha, D. E. Long, K. L. McMillan and L. A. Ness. Verification of the Futurebus+ Cache Coherence Protocol, Proc. CHDL, 1993.

    Google Scholar 

  15. J. Crow, S. Owre, J. Rushby, N. Shankar, and M. Srivas. A Tutorial Introduction to PVS, presented at Workshop on Industrial-Strength Formal Specification Techniques, Boca Raton, FL, April 1995 (see http://www.csl.sri.com/pvs.html).

    Google Scholar 

  16. S. Gilfeather, J. Gehman, and C. Harrison. Architecture of a Complex Arithmetic Processor for Communication Signal Processsing in SPIE Proceedings, International Symposium on Optics, Imaging, and Instrumentation, 2296 Advanced Signal Processing: Algorithms, Architectures, and Implementations V, July, 1994, pp. 624–625.

    Google Scholar 

  17. Z. Har'El and R. P. Kurshan. Software for Analytical Development of Communications Protocols, AT&T Bell Laboratories Technical Journal, 69(1) Jan–Feb, 1990, pp. 45–59.

    Google Scholar 

  18. C. Harrison. Hardware Verification of the Complex Arithmetic Processor XY Address Generator. CAP Technical Report 16, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, August, 1995.

    Google Scholar 

  19. W. A. Hunt, Jr. Microprocessor Design Verification. Journal of Automated Reasoning, 5(4), pp. 429–460, 1989.

    Google Scholar 

  20. W. A. Hunt, Jr. and B. Brock. A Formal HDL and its use in the FM9001 Verification. Proceedings of the Royal Society, 1992.

    Google Scholar 

  21. W. A. Hunt, Jr. CAP Pin-level Specifications, CAP Technical Report 12, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, April, 1996.

    Google Scholar 

  22. M. Kaufmann and J S. Moore. High-Level Correctness of ACL2: A Story, URL ftp://ftp.cli.com/pub/acl2/v1-8/acl2-sources/reports/story.txt, September, 1995.

    Google Scholar 

  23. M. Kaufmann and J S. Moore. ACL2 Version 1.8, URL ftp://ftp.cli.-com/pub/acl2/v1-8/acl2-sources/doc/HTML/acl2-doc.html, 1995.

    Google Scholar 

  24. M. Kaufmann and J S. Moore. ACL2: An Industrial Strength Version of Nqthm. In Proceedings of the Eleventh Annual Conference on Computer Assurance (COMPASS-96), IEEE Computer Society Press, June, 1996, pp. 23–34.

    Google Scholar 

  25. M. Kaufmann and P. Pecchiari. Interaction with the Boyer-Moore and Theorem Prover: A Tutorial Study Using the Arithmetic-Geometric Mean Theorem. Journal of Automated Reasoning 16(1–2) March, 1996, pp. 181–222.

    Google Scholar 

  26. S. P. Miller and M. Srivas. Formal Verification of the AAMP5 Microprocessor: A Case Study in the Industrial Use of Formal Methods, in Proceedings of WIFT '95: Workshop on Industrial-Strength Formal Specification Techniques, IEEECS, April, 1995, pp. 2–16.

    Google Scholar 

  27. P. M. Miner. Defining the IEEE-854 Floating-Point Standard in PVS, NASA Technical Memorandum 110167, NASA Langely Research Center, Hampton, VA 23681, 1995.

    Google Scholar 

  28. J S. Moore. Piton: A Mechanically Verified Assembly-Level Language, Automated Reasoning Series, Kluwer Academic Publishers, 1996.

    Google Scholar 

  29. J S. Moore, T. Lynch, and M. Kaufmann. A Mechanically Checked Proof of the Correctness of the Kernel of the AMD5K86 Floating-Point Division Algorithm, March, 1996, URL http://devil.ece.utexas.edu:80/∼lynch/divide/-divide.html.

    Google Scholar 

  30. A. V. Oppenheim and R. W. Scahfer. Discrete-Time Signal Processing. Prentice Hall, Englewood Cliffs, New Jersey, 1989.

    Google Scholar 

  31. K. M. Pitman et al. drafi proposed American National Standard for Information Systems — Programming Language — Common Lisp; X3J13/93-102.Global Engineering Documents, Inc., 1994.

    Google Scholar 

  32. H. Ruess, M. K. Srivas, and N. Shankar. Modular Verification of SRT Division, Computer Science Laboratory, SRI International, Menlo Park, CA 49025, 1996.

    Google Scholar 

  33. M. Srivas and M. Bickford. Formal Verification of a Pipelined Microprocessor, IEEE Software, September, 1990, pp. 52–64.

    Google Scholar 

  34. V. Stavridou. Gordon's Computer: A Hardware Verification Case Study in OBJ3, Formal Methods in System Design, 4(3), 1994, pp. 265–310.

    Google Scholar 

  35. G. L. Steele, Jr. Common LISP: The Language, Digital Press: Bedford, MA, 1984.

    Google Scholar 

  36. G. L. Steele, Jr. Common Lisp The Language, Second Edition. Digital Press, 30 North Avenue, Burlington, MA 01803, 1990.

    Google Scholar 

  37. U. Stern and D. L. Dill. Automatic Verification of the SCI Cache Coherence Protocol, in Proceedings of IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods, 1995, pp. 21–34.

    Google Scholar 

  38. Y. Yu. Automated Proofs of Object Code for a Widely used Microprocessor, Technical Report 92, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, May, 1993. URL http://www.cli.com/reports/files/92.ps.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mandayam Srivas Albert Camilleri

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brock, B., Kaufmann, M., Moore, J.S. (1996). ACL2 theorems about commercial microprocessors. In: Srivas, M., Camilleri, A. (eds) Formal Methods in Computer-Aided Design. FMCAD 1996. Lecture Notes in Computer Science, vol 1166. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0031816

Download citation

  • DOI: https://doi.org/10.1007/BFb0031816

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61937-6

  • Online ISBN: 978-3-540-49567-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics