Advertisement

Abstract

In this chapter, we describe the ACL2 theorem proving system and show how it can be used to model and verify hardware using refinement.

This is a timely problem, as the ever-increasing complexity of microprocessor designs and the potentially devastating economic consequences of shipping defective products has made functional verification a bottleneck in the microprocessor design cycle, requiring a large amount of time, human effort, and resources [1, 58]. For example, the 1994 Pentium FDIV bug cost Intel $475 million and it is estimated that a similar bug in the current generation Intel Pentium processor would cost Intel $12 billion [2].

Keywords

Theorem Prove Program Counter Common Lisp Compositional Reasoning Witness Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bentley, B.: Validating the Intel Pentium 4 microprocessor. In: 38th Design Automation Conference, pp. 253–255 (2001)Google Scholar
  2. 2.
    Bentley, B.: Validating a modern microprocessor (2005), see: http://www.cav2005.inf.ed.ac.uk/bentleyCAV07082005.ppt
  3. 3.
    Bertoli, P., Traverso, P.: Design verification of a safety-critical embedded verifier. In: Kaufmann, et al. (eds.) [22], pp. 233–245Google Scholar
  4. 4.
    Boyer, R.S., Goldschlag, D.M., Kaufmann, M., Moore, J.S.: Functional instantiation in first order logic. In: Lifschitz, V. (ed.) Artificial Intelligence and Mathematical Theory of Computation: Papers in Honor of John McCarthy, pp. 7–26. Academic Press, London (1991)CrossRefGoogle Scholar
  5. 5.
    Boyer, R.S., Moore, J.S.: A Computational Logic Handbook, 2nd edn. Academic Press, London (1997)MATHGoogle Scholar
  6. 6.
    Boyer, R.S., Moore, J.S.: Single-threaded objects in ACL2 (1999), see: http://www.cs.utexas.edu/users/moore/publications/acl2-papers.html#Foundations
  7. 7.
    Brock, B., Hunt Jr., W.A.: Formally specifying and mechanically verifying programs for the Motorola complex arithmetic processor DSP. In: 1997 IEEE International Conference on Computer Design, pp. 31–36. IEEE Computer Society, Los Alamitos (1997)Google Scholar
  8. 8.
    Brock, B., Kaufmann, M., Moore, J.S.: ACL2 theorems about commercial microprocessors. In: Srivas, M., Camilleri, A. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 275–293. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  9. 9.
    Browne, M., Clarke, E.M., Grumberg, O.: Characterizing finite Kripke structures in propositional temporal logic. Theoretical Computer Science 59 (1988)Google Scholar
  10. 10.
    Bryant, R.E., Lahiri, S.K., Seshia, S.A.: Modeling and verifying systems using a logic of counter arithmetic with lambda expressions and uninterpreted functions. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 78–92. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  11. 11.
    Burch, J.R., Dill, D.L.: Automatic verification of pipelined microprocessor control. In: Dill, D.L. (ed.) CAV 1994. LNCS, vol. 818, pp. 68–80. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  12. 12.
    Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)Google Scholar
  13. 13.
    Dillinger, P., Manolios, P., Moore, J.S., Vroon, D.: ACL2E homepage, see: http://www.cc.gatech.edu/home/manolios/acl2s
  14. 14.
    Greve, D., Wilding, M., Hardin, D.: High-speed, analyzable simulators. In: Kaufmann, et al. (eds.) [22], pp. 113–135Google Scholar
  15. 15.
    Greve, D.A.: Symbolic simulation of the JEM1 microprocessor. In: Gopalakrishnan, G.C., Windley, P. (eds.) FMCAD 1998. LNCS, vol. 1522, pp. 321–333. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  16. 16.
    Hardin, D., Wilding, M., Greve, D.: Transforming the theorem prover into a digital design tool: From concept car to off-road vehicle. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, Springer, Heidelberg (1998), http://pobox.com/users/hokie/docs/concept.ps CrossRefGoogle Scholar
  17. 17.
    Hunt, W., Krug, R., Moore, J.S.: The addition of non-linear arithmetic to ACL2. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 319–333. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  18. 18.
    Hunt Jr., W.A.: Microprocessor design verification. Journal of Automated Reasoning 5(4), 429–460 (1989)CrossRefGoogle Scholar
  19. 19.
    Hunt Jr., W.A., Brock, B.: A formal HDL and its use in the FM9001 verification. In: Proceedings of the Royal Society (1992)Google Scholar
  20. 20.
    Hunt Jr., W.A., Brock, B.: The DUAL-EVAL hardware description language and its use in the formal specification and verification of the FM9001 microprocessor. Formal Methods in Systems Design 11, 71–105 (1997)CrossRefGoogle Scholar
  21. 21.
    Kane, R., Manolios, P., Srinivasan, S.K.: Monolithic verification of deep pipelines with collapsed flushing. In: Design Automation and Test in Europe, DATE 2006 (2006)Google Scholar
  22. 22.
    Kaufmann, M., Manolios, P., Moore, J.S. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers, Dordrecht (2000)Google Scholar
  23. 23.
    Kaufmann, M., Manolios, P., Moore, J.S.: Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Dordrecht (2000)Google Scholar
  24. 24.
    Kaufmann, M., Manolios, P., Moore, J.S.: Supporting files for Computer-Aided Reasoning: ACL2 Case Studies (2000), see the link from: http://www.cs.utexas.edu/users/moore/acl2
  25. 25.
    Kaufmann, M., Manolios, P., Moore, J.S.: Supporting files for Computer-Aided Reasoning: An Approach (2000), see the link from: http://www.cs.utexas.edu/users/moore/acl2
  26. 26.
    Kaufmann, M., Moore, J.S.: ACL2 homepage, see: http://www.cs.utexas.edu/users/moore/acl2
  27. 27.
    Kaufmann, M., Moore, J.S.: A precise description of the ACL2 logic. Technical report, Department of Computer Sciences, University of Texas at Austin (1997), see: http://www.cs.utexas.edu/users/moore/publications/acl2-papers.html#Foundations
  28. 28.
    Kaufmann, M., Moore, J.S. (eds.): Proceedings of the ACL2 Workshop 2000. The University of Texas at Austin, Technical Report TR-00-29 (November 2000)Google Scholar
  29. 29.
    Kaufmann, M., Moore, J.S.: Structured theory development for a mechanized logic. Journal of Automated Reasoning 26(2), 161–203 (2001)MathSciNetCrossRefMATHGoogle Scholar
  30. 30.
    Manolios, P.: Correctness of pipelined machines. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 161–178. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  31. 31.
    Manolios, P.: Verification of pipelined machines in ACL2. In: Kaufmann, Moore [28]Google Scholar
  32. 32.
    Manolios, P.: Mechanical Verification of Reactive Systems. PhD thesis, University of Texas at Austin (August 2001), see: http://www.cc.gatech.edu/~manolios/publications.html
  33. 33.
    Manolios, P.: A compositional theory of refinement for branching time. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 304–318. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  34. 34.
    Manolios, P., Namjoshi, K.S., Sumners, R.: Linking theorem proving and model-checking with well-founded bisimulation. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 369–379. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  35. 35.
    Manolios, P., Srinivasan, S.: Automatic verification of safety and liveness for XScale-like processor models using WEB-refinements. In: Design Automation and Test in Europe, DATE 2004, pp. 168–175 (2004)Google Scholar
  36. 36.
    Manolios, P., Srinivasan, S.: A suite of hard ACL2 theorems arising in refinement-based processor verification. In: Kaufmann, M., Moore, J.S. (eds.) Fifth International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2 2004) (November 2004), see: http://www.cs.utexas.edu/users/moore/acl2/workshop-2004/
  37. 37.
    Manolios, P., Srinivasan, S.: A complete compositional reasoning framework for the efficient verification of pipelined machines. In: ICCAD 2005, International Conference on Computer-Aided Design (2005)Google Scholar
  38. 38.
    Manolios, P., Srinivasan, S.: A computationally efficient method based on commitment refinement maps for verifying pipelined machines models. In: ACM-IEEE International Conference on Formal Methods and Models for Codesign, pp. 189–198 (2005)Google Scholar
  39. 39.
    Manolios, P., Srinivasan, S.: Refinement maps for efficient verification of processor models. In: Design Automation and Test in Europe, DATE 2005, pp. 1304–1309 (2005)Google Scholar
  40. 40.
    Manolios, P., Srinivasan, S.: Verification of executable pipelined machines with bit-level interfaces. In: ICCAD-2005, International Conference on Computer-Aided Design (2005)Google Scholar
  41. 41.
    Manolios, P., Vroon, D.: Algorithms for ordinal arithmetic. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 243–258. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  42. 42.
    Manolios, P., Vroon, D.: Ordinal arithmetic in ACL2. In: Kaufmann, M., Moore, J.S. (eds.) Fourth International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2 2003) (July 2003), see: http://www.cs.utexas.edu/users/moore/acl2/workshop-2003/
  43. 43.
    Manolios, P., Vroon, D.: Integrating reasoning about ordinal arithmetic into ACL2. In: Hu, A.J., Martin, A.K. (eds.) FMCAD 2004. LNCS, vol. 3312, pp. 82–97. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  44. 44.
    Manolios, P., Vroon, D.: Ordinal arithmetic: Algorithms and mechanization. Journal of Automated Reasoning (to appear, 2006)Google Scholar
  45. 45.
    Manolios, P., Vroon, D.: Termination analysis with calling context graphs (submitted, 2006)Google Scholar
  46. 46.
    Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1990)MATHGoogle Scholar
  47. 47.
    Moore, J.S.: Piton: A Mechanically Verified Assembly-Level Language. Kluwer Academic Press, Dordrecht (1996)Google Scholar
  48. 48.
    Moore, J.S., Lynch, T., Kaufmann, M.: A mechanically checked proof of the AMD5K86 floating-point division program. IEEE Trans. Comp. 47(9), 913–926 (1998)CrossRefGoogle Scholar
  49. 49.
    Namjoshi, K.S.: A simple characterization of stuttering bisimulation. In: Ramesh, S., Sivakumar, G. (eds.) FST TCS 1997. LNCS, vol. 1346, pp. 284–296. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  50. 50.
    Russinoff, D.M.: A mechanically checked proof of correctness of the AMD5K86 floating-point square root microcode. Formal Methods in System Design Special Issue on Arithmetic Circuits (1997)Google Scholar
  51. 51.
    Russinoff, D.M.: A mechanically checked proof of IEEE compliance of a register-transfer-level specification of the AMD-K7 floating-point multiplication, division, and square root instructions. London Mathematical Society Journal of Computation and Mathematics 1, 148–200 (1998)MathSciNetMATHGoogle Scholar
  52. 52.
    Russinoff, D.M.: A mechanically checked proof of correctness of the AMD-K5 floating-point square root microcode. Formal Methods in System Design 14, 75–125 (1999)CrossRefGoogle Scholar
  53. 53.
    Russinoff, D.M., Flatau, A.: RTL verification: A floating-point multiplier. In: Kaufmann, et al. (eds.) [22], pp. 201–231Google Scholar
  54. 54.
    Sawada, J.: Formal Verification of an Advanced Pipelined Machine. PhD thesis, University of Texas at Austin (December 1999), see: http://www.cs.utexas.edu/users/sawada/dissertation/
  55. 55.
    Sawada, J.: Verification of a simple pipelined machine model. In: Kaufmann, et al. (eds.) [22], pp. 137–150Google Scholar
  56. 56.
    Sawada, J., Hunt Jr., W.A.: Trace table based approach for pipelined microprocessor verification. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 364–375. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  57. 57.
    Sawada, J., Hunt Jr., W.A.: Processor verification with precise exceptions and speculative execution. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 135–146. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  58. 58.
    International technology roadmap for semiconductors (2004), see: http://public.itrs.net/
  59. 59.
    Steele Jr., G.L.: Common Lisp The Language, 2nd edn. Digital Press, Burlington (1990)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Panagiotis Manolios
    • 1
  1. 1.College of ComputingGeorgia Institute of TechnologyAtlantaUSA

Personalised recommendations