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.
Similar content being viewed by others
References
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)
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)
Bentley, B.: Validating the Intel Pentium 4 microprocessor. In: 38th Design Automation Conference – DAC'01, pp. 253–255 (2001)
Bentley, B.: Validating a modern microprocessor. See URL http://www.cav2005.inf.ed.ac.uk/bentley_CAV_07_08_2005.ppt (2005)
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)
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)
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)
Browne, M., Clarke, E.M., Grumberg, O.: Characterizing finite Kripke structures in propositional temporal logic. Theor. Comp. Sci. 59 (1988)
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)
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)
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)
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)
de Moura, L.: Yices homepage. See URL http://fm.csl.sri.com/yices (2005)
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)
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)
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)
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)
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)
Hunt, Jr., W.A.: Microprocessor design verification. J. Autom. Reason. 5(4), 429–460 (1989)
Hunt, Jr., W.A.: FM8501: A Verified Microprocessor, Vol. 795. Springer, Berlin Heidelberg New York (1994)
Jouannaud, J.-P. (ed.) Functional Programming Languages and Computer Architecture, No. 201. Nancy, France (1985)
Kaufmann, M., Manolios, P., Moore, JS. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer (2000a)
Kaufmann, M., Manolios, P., Moore, JS.: Computer-Aided Reasoning: An Approach. Kluwer (2000b)
Kaufmann, M., Moore, JS.: ACL2 homepage. See URL http://www.cs.utexas.edu/users/moore/-acl2 (2004)
Kroning, D.: Formal verification of pipelined microprocessors. PhD thesis, Universität des Saarlandes (2001)
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)
Lahiri, S.K., Seshia, S.: The UCLID decision procedure. In: Computer Aided Verification – CAV'04, Vol. 3114 of LNCS, pp. 475–478 (2004)
Landin, P.J.: The mechanical evaluation of expressions. Comput. J. 6(4), 308–320 (1964)
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)
Manolios, P.: Mechanical verification of reactive systems. PhD thesis, University of Texas at Austin. See URL http://www.cc.gatech.edu/~manolios/publications.html
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)
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)
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)
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)
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)
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)
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)
Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs, New Jersey (1990)
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)
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)
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
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)
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)
Ryan, L.: Siege homepage. See URL http://www.cs.sfu.ca/~loryan/personal
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)
Semiconductor Industry Association: International Technology Roadmap for Semiconductors. See URL http://public.itrs.net/ (2004)
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)
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)
Smith, S., Perez, R., Weingart, S., Austel, V.: Validating a high-performance, programmable secure coprocessor. In: 22nd National Information Systems Security Conference (1999)
Author information
Authors and Affiliations
Corresponding author
Additional information
This research was funded in part by NSF grants CCF-0429924, IIS-0417413, and CCF-0438871.
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-006-9035-0