Skip to main content
Log in

A Framework for Verifying Bit-Level Pipelined Machines Based on Automated Deduction and Decision Procedures

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

We describe an approach to verifying bit-level pipelined machine models using a combination of deductive reasoning and decision procedures. While theorem-proving systems such as ACL2 have been used to verify bit-level designs, they typically require extensive expert user support. Decision procedures such as those implemented in UCLID can be used to automatically and efficiently verify term-level pipelined machine models, but these models use numerous abstractions, implement a subset of the instruction set, and are far from executable. We show that by integrating UCLID with the ACL2 theorem-proving system, we can use ACL2 to reduce the proof that an executable, bit-level machine refines its instruction set architecture to a proof that a term-level abstraction of the bit-level machine refines the instruction set architecture, which is then handled automatically by UCLID. We demonstrate the efficiency of our approach by applying it to verify a complex, seven-stage, bit-level interface pipelined machine model that implements 593 instructions and has features such as branch prediction, exceptions, and predicated instruction execution. Such a proof is not possible using UCLID and would require prohibitively more effort using just ACL2.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Andraus, Z.S., Sakallah, K.A.: Automatic abstraction and verification of Verilog models. In: Malik, S., Fix, L., Kahng, A.B. (eds.) Design Automation Conference – DAC'04, pp. 218–223 (2004)

  2. Arons, T., Pnueli, A.: A comparison of two verification methods for speculative instruction execution. In: Tools and Algorithms for the Construction and Analysis of Systems – TACAS'00, Vol. 1785 of LNCS, pp. 487–502 (2000)

  3. Bentley, B.: Validating the Intel Pentium 4 microprocessor. In: 38th Design Automation Conference – DAC'01, pp. 253–255 (2001)

  4. Bentley, B.: Validating a modern microprocessor. See URL http://www.cav2005.inf.ed.ac.uk/bentley_CAV_07_08_2005.ppt (2005)

  5. Bevier, W.R., Hunt, Jr., W.A., Moore, J.S., Young, W.D.: An approach to systems verification. J. Autom. Reason. 5(4), 411–428 (1989)

    Google Scholar 

  6. Boyer, R.S., Moore, JS.: Integrating decision procedures into heuristic theorem provers: A case study of linear arithmetic. In: Machine Intelligence 11, pp. 83–124. Oxford University Press (1988)

  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 (1997)

  8. Browne, M., Clarke, E.M., Grumberg, O.: Characterizing finite Kripke structures in propositional temporal logic. Theor. Comp. Sci. 59 (1988)

  9. Bryant, R.E., German, S., Velev, M.N.: Exploiting positive equality in a logic of equality with uninterpreted functions. In: Halbwachs, N., Peled, D. (eds.) Computer-Aided Verification – CAV'99, Vol. 1633 of LNCS, pp. 470–482 (1999)

  10. Bryant, R.E., Lahiri, S.K., Seshia, S.: Modeling and verifying systems using a logic of counter arithmetic with lambda expressions and uninterpreted functions. In: Brinksma, E., Larsen, K. (eds.) Computer-Aided Verification – CAV'02, Vol. 2404 of LNCS, pp. 78–92 (2002)

  11. Burch, J.R., Dill, D.L.: Automatic verification of pipelined microprocessor control. In: Computer-Aided Verification – CAV'94, Vol. 818 of LNCS, pp. 68–80 (1994)

  12. Clark, L., Hoffman, E., Miller, J., Biyani, M., Liao, Y., Strazdus, S., Morrow, M., Velarde, K., Yarch, M.: An embedded 32-bit microprocessor core for low-power and high-performance applications. IEEE J. Solid-State Circuits 36(11), 1544–1608 (2001)

    Article  Google Scholar 

  13. de Moura, L.: Yices homepage. See URL http://fm.csl.sri.com/yices (2005)

  14. Ganzinger, H., Hagen, G., Nieuwenhuis, R., Oliveras, A., Tinelli, C.: DPLL(T): Fast decision procedures. In: Alur, R., Peled, D. (eds.) Computer Aided Verification – CAV'04, Vol. 3114 of LNCS, pp. 175–188 (2004)

  15. Greve, D., Richards, R., Wilding, M.: A summary of intrinsic partitioning verification. In: Fifth International Workshop on the ACL2 Theorem Prover and Its Applications (2004)

  16. Greve, D., Wilding, M., Hardin, D.: High-speed, analyzable simulators. In: Kaufmann, M., Manolios, P., Moore, JS. (eds.) Computer-Aided Reasoning: ACL2 Case Studies. Kluwer, pp. 113–135 (2000)

  17. Hosabettu, R., Srivas, M., Gopalakrishnan, G.: Decomposing the proof of correctness of a pileplined microprocessors. In: Hu, A.J., Vardi, M.Y. (eds.): Computer-Aided Verification – CAV'98, Vol. 1427 of LNCS (1998)

  18. Hosabettu, R., Srivas, M., Gopalakrishnan, G.: Proof of correctness of a processor with reorder buffer using the completion functions approach. In: Halbwachs, N., Peled, D. (eds.) Computer-Aided Verification – CAV'99, Vol. 1633 of LNCS (1999)

  19. Hunt, Jr., W.A.: Microprocessor design verification. J. Autom. Reason. 5(4), 429–460 (1989)

    Article  Google Scholar 

  20. Hunt, Jr., W.A.: FM8501: A Verified Microprocessor, Vol. 795. Springer, Berlin Heidelberg New York (1994)

  21. Jouannaud, J.-P. (ed.) Functional Programming Languages and Computer Architecture, No. 201. Nancy, France (1985)

  22. Kaufmann, M., Manolios, P., Moore, JS. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer (2000a)

  23. Kaufmann, M., Manolios, P., Moore, JS.: Computer-Aided Reasoning: An Approach. Kluwer (2000b)

  24. Kaufmann, M., Moore, JS.: ACL2 homepage. See URL http://www.cs.utexas.edu/users/moore/-acl2 (2004)

  25. Kroning, D.: Formal verification of pipelined microprocessors. PhD thesis, Universität des Saarlandes (2001)

  26. Lahiri, S., Seshia, S., Bryant, R.: Modeling and verification of out-of-order microprocessors using UCLID. In: Formal Methods in Computer-Aided Design – FMCAD'02, Vol. 2517 of LNCS, pp. 142–159 (2002)

  27. Lahiri, S.K., Seshia, S.: The UCLID decision procedure. In: Computer Aided Verification – CAV'04, Vol. 3114 of LNCS, pp. 475–478 (2004)

  28. Landin, P.J.: The mechanical evaluation of expressions. Comput. J. 6(4), 308–320 (1964)

    Google Scholar 

  29. Manolios, P.: Correctness of pipelined machines. In: Hunt, Jr., W.A., Johnson, S.D. (eds.) Formal Methods in Computer-Aided Design – FMCAD'00, Vol. 1954 of LNCS, pp. 161–178 (2000)

  30. Manolios, P.: Mechanical verification of reactive systems. PhD thesis, University of Texas at Austin. See URL http://www.cc.gatech.edu/~manolios/publications.html

  31. Manolios, P.: A compositional theory of refinement for branching time. In: Geist, D., Tronci, E. (eds.) 12th IFIP WG 10.5 Advanced Research Working Conference – CHARME'03, Vol. 2860 of LNCS, pp. 304–318 (2003)

  32. 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'04, pp. 168–175 (2004a)

  33. 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). See URL http://www.cs.utexas.edu/users/moore/acl2/workshop-2004/ (2004b)

  34. Manolios, P., Srinivasan, S.: A complete compositional reasoning framework for the efficient verification of pipelined machines. In: International Conference on Computer-Aided Design – ICCAD'05, pp. 863–870 (2005a)

  35. Manolios, P., Srinivasan, S.: Refinement maps for efficient verification of processor models. In: Design Automation and Test in Europe – DATE'05, pp. 1304–1309 (2005b)

  36. Manolios, P., Srinivasan, S.: Verification of executable pipelined machines with bit-level interfaces. In: International Conference on Computer-Aided Design – ICCAD'05, pp. 855–862 (2005c)

  37. Matthews, J., Vroon, D.: Partial clock functions in ACL2. In: Kaufmann, M., Moore, J.S. (eds.) Fifth International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2-2004). See URL http://www.cs.utexas.edu/users/-moore/acl2/workshop-2004/ (2004)

  38. Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs, New Jersey (1990)

    Google Scholar 

  39. Moore, J.S.: Inductive assertions and operational semantics. In: Advanced Research Working Conference on Correct Hardware Design and Verification Methods – CHARME'03, Vol. 2860 of Lecture Notes in Computer Science, pp. 289–303 (2003)

  40. Namjoshi, K.S.: A simple characterization of stuttering bisimulation. In: 17th Conference on Foundations of Software Technology and Theoretical Computer Science, Vol. 1346 of LNCS, pp. 284–296 (1997)

  41. Reynolds, J.C.: Definitional interpreters for higher-order programming languages. Higher-Order and Symbolic Computation 11(4), 363–397 (1998). Reprinted from the proceedings of the 25th ACM National Conference (1972), with a foreword

    Article  Google Scholar 

  42. 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. LMS J. Comput. Math. 1, 148–200 (1998)

    MathSciNet  Google Scholar 

  43. Russinoff, D.M.: A mechanically checked proof of correctness of the AMD-K5 floating-point square root microcode. Form. Methods Syst. Des. 14, 75–125 (1999)

    Article  Google Scholar 

  44. Ryan, L.: Siege homepage. See URL http://www.cs.sfu.ca/~loryan/personal

  45. Sawada, J.: Formal verification of divide and square root algorithms using series calculation. In: Kaufmann, M., Moore, J.S. (eds.) Proceedings of the ACL2 Workshop 2002 (2002)

  46. Semiconductor Industry Association: International Technology Roadmap for Semiconductors. See URL http://public.itrs.net/ (2004)

  47. Seshia, S., Lahiri, S., Bryant, R.: A User's Guide to UCLID version 1.0. See URL http://www.cs.cmu.edu/uclid/userguide.ps (2003a)

  48. Seshia, S.A., Lahiri, S.K., Bryant, R.E.: A hybrid SAT-based decision procedure for separation logic with uninterpreted functions. In: Design Automation Conference – DAC'03, pp. 425–430 (2003b)

  49. Smith, S., Perez, R., Weingart, S., Austel, V.: Validating a high-performance, programmable secure coprocessor. In: 22nd National Information Systems Security Conference (1999)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Panagiotis Manolios.

Additional information

This research was funded in part by NSF grants CCF-0429924, IIS-0417413, and CCF-0438871.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Manolios, P., Srinivasan, S.K. A Framework for Verifying Bit-Level Pipelined Machines Based on Automated Deduction and Decision Procedures. J Autom Reasoning 37, 93–116 (2006). https://doi.org/10.1007/s10817-006-9035-0

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-006-9035-0

Key words

Navigation