Abstract
Verification methods based on Boolean Satisfiability (SAT) have emerged as a promising alternative to BDD-based symbolic model checking methods. This paper provides a tutorial on various SAT-based verification methods we have developed for verifying large hardware designs. We focus separately on methods for finding bugs and for finding proofs for correctness properties, along with highlighting the many common themes that benefit these methods. We also describe practical experiences with these methods implemented in our verification platform called VeriSol (formerly DiVer), which has been used successfully in industry practice.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)
Burch, R., Clarke, E.M., Long, D.E., McMillan, K.L., Dill, D.: Symbolic model checking for sequential circuit verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 13(4), 401–424 (1994)
McMillan, K.L.: Symbolic Model Checking: An Approach to the State Explosion Problem. Kluwer Academic Publishers, Dordrecht (1993)
Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Transactions on Computers C-35(8), 677–691 (1986)
Marques-Silva, J.P., Sakallah, K.A.: GRASP: A Search Algorithm for Propositional Satisfiability. IEEE Transactions on Computers 48, 506–521 (1999)
Moskewicz, M., Madigan, C., Zhao, Y., Zhang, L., Malik, S.: Chaff: Engineering an Efficient SAT Solver. In: Proceedings of Design Automation Conference (2001)
Zhang, H.: SATO: An efficient propositional prover. In: Proceedings of International Conference on Automated Deduction, pp. 272–275 (1997)
Goldberg, E., Novikov, Y.: BerkMin: A Fast and Robust SAT-Solver. In: Proceedings of Conference on Design Automation & Test Europe (DATE), pp. 142–149 (2002)
Zhang, L., Malik, S.: The Quest for Efficient Boolean Satisfiability Solvers. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 17–36. Springer, Heidelberg (2002)
Prasad, M., Biere, A., Gupta, A.: A survey of recent advances in SAT-based formal verification. Software Tools for Technology Transfer 7(2), 156–173 (2005)
Lu, F., Wang, L.-C., Cheng, K.-T., Moondanos, J., Hanna, Z.: A signal correlation guided ATPG solver and its applications for solving difficult industrial cases. In: Proceedings of the Design Automation Conference, pp. 436–441 (2003)
Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic Model Checking without BDDs. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, p. 193. Springer, Heidelberg (1999)
Gupta, A., Ganai, M., Wang, C., Yang, Z., Ashar, P.: Learning from BDDs in SAT-based bounded model checking. In: Design Automation Conference (2003)
Ganai, M.K., Gupta, A., Yang, Z.-J., Ashar, P.: Efficient distributed SAT and SAT-based distributed bounded model checking. In: Geist, D., Tronci, E. (eds.) CHARME 2003. LNCS, vol. 2860, pp. 334–347. Springer, Heidelberg (2003)
Ganai, M., Gupta, A., Ashar, P.: Beyond safety: Customized SAT-based model checking. In: Proceedings of the Design Automation Conference, pp. 738–743 (2005)
Sheeran, M., Singh, S., Stålmarck, G.: Checking safety properties using induction and a SAT-solver. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 108–125. Springer, Heidelberg (2000)
Gupta, A., Ganai, M.K., Wang, C., Yang, Z.-J., Ashar, P.: Abstraction and BDDs complement SAT-based BMC in diVer. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 206–209. Springer, Heidelberg (2003)
Gupta, A., Yang, Z.-J., Ashar, P., Gupta, A.: SAT-based image computation with application in reachability analysis. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 354–371. Springer, Heidelberg (2000)
Gupta, A., Yang, Z., Ashar, P.: Dynamic detection and removal of inactive clauses in SAT with application in image computation. In: Proceedings of Design Automation Conference (2001)
Gupta, A., Yang, Z., Ashar, P., Zhang, L., Malik, S.: Partition-Based Decision Heuristics for Image Computation using SAT and BDDs. In: Proceedings of International Conference on Computer-Aided Design (2001)
Ganai, M., Gupta, A., Ashar, P.: Efficient SAT-based unbounded symbolic model checking using circuit cofactoring. In: Proceedings of the International Conference on Computer-Aided Design, pp. 510–517 (2004)
Gupta, A., Ganai, M., Yang, J., Ashar, P.: Iterative Abstraction using SAT-based BMC with Proof Analysis. In: Proceedings of International Conference on Computer Aided Design (ICCAD) (2003)
Gupta, A., Ganai, M., Ashar, P.: Lazy constraints and SAT heuristics for proof-based abstraction. In: Proceedings of the International Conference on VLSI Design, pp. 183–188 (2005)
Ganai, M., Kuehlmann, A.: On-the-fly compression of logical circuits. In: Proceedings of International Workshop on Logic Synthesis (2000)
Ganai, M., Zhang, L., Ashar, P., Gupta, A.: Combining Strengths of Circuit-based and CNF-based Algorithms for a High Performance SAT Solver. In: Proceedings of the Design Automation Conference (2002)
Abramovici, M., Breuer, M.A., Friedman, A.D.: Digital Systems Testing and Testable Design. Computer Science Press, Rockville (1990)
Ganai, M.K., Gupta, A., Ashar, P.: Efficient modeling of embedded memories in bounded model checking. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 440–452. Springer, Heidelberg (2004)
Ganai, M., Gupta, A., Ashar, P.: Verification of embedded memory systems using efficient memory modeling. In: Proceedings of Design Automation and Test Europe (DATE), pp. 1096–1101 (2005)
Ganai, M., Gupta, A., Ashar, P.: DiVer: SAT-based model checking platform for verifying large scale systems. In: Proceedings of Tools and Algorithms for the Construction and Analysis of Systems (TACAS), pp. 575–580. Springer, Heidelberg (2005)
Wakabayashi, K.: Cyber: High level synthesis system from software into ASIC. In: Camposano, R., Wolf, W. (eds.) High Level VLSI Synthesis, pp. 127–151. Kluwer Academic Publishers, Dordrecht (1991)
Ivančić, F., Yang, Z., Ganai, M.K., Gupta, A., Shlyakhter, I., Ashar, P.: F-Soft: Software Verification Platform. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 301–306. Springer, Heidelberg (2005)
Ivancic, F., Shlyakhter, I., Gupta, A., Ganai, M., Kahlon, V., Wang, C., Yang, Z.: Model checking C programs using F-Soft. In: Proceedings of the International Conference on Computer Design, pp. 297–308 (2005)
Barrett, C.W., Dill, D.L., Stump, A.: Checking satisfiability of first-order formulas by incremental translation to SAT. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 236–249. Springer, Heidelberg (2002)
Seshia, S., Lahiri, S., Bryant, R.E.: A hybrid SAT-based decision procedure for separation logic with uninterpreted functions. In: Design Automation Conference (2003)
Wang, C., Ivančić, F., Ganai, M.K., Gupta, A.: Deciding separation logic formulae by SAT and incremental negative cycle elimination. In: Sutcliffe, G., Voronkov, A. (eds.) LPAR 2005. LNCS, vol. 3835, pp. 322–336. Springer, Heidelberg (2005)
Ganai, M., Talupur, M., Gupta, A.: SDSAT: Tight integration of small domain encoding and lazy approaches in a separation logic solver. In: Proceedings of Tools and Algorithms for the Construction and Analysis of Systems (2006)
Garey, M.R., Johnson, D.S.: Computers and Intractability: A guide to the theory of NP-Completeness. W.H. Freeman and Co., New York (1979)
Larrabee, T.: Test pattern generation using Boolean Satisfiability. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 11(1), 4–15 (1992)
Davis, M., Longeman, G., Loveland, D.: A Machine Program for Theorem Proving. Communications of the ACM 5, 394–397 (1962)
Zhang, L., Malik, S.: Validating SAT Solvers Using an Independent Resolution-Based Checker: Practical Implementations and Other Applications. In: Proceedings of Conference on Design Automation & Test Europe (DATE) (2003)
Goldberg, E., Novikov, Y.: Verification of Proofs of Unsatisfiability for CNF Formulas. In: Proceedings of Conference on Design Automation & Test Europe (DATE) (2003)
McMillan, K.L., Amla, N.: Automatic Abstraction without Counterexamples. In: Garavel, H., Hatcliff, J. (eds.) TACAS 2003. LNCS, vol. 2619, pp. 2–17. Springer, Heidelberg (2003)
Fujiwara, H., Shimono, T.: On the Acceleration of Test Generation Algorithms. IEEE Transactions on Computers C-32(12), 265–272 (1983)
Goel, P.: An implicit enumeration algorithm to generate tests for Combinational circuits. IEEE Transactions on Computers C-30(3), 215–222 (1981)
Kuehlmann, A., Ganai, M., Paruthi, V.: Circuit-based Boolean Reasoning. In: Proceedings of Design Automation Conference (2001)
Kuehlmann, A., Paruthi, V., Krohm, F., Ganai, M.: Robust Boolean Reasoning for Equivalence Checking and Functional Property Verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 21(12), 1377–1394 (2002)
Iyer, M., Parthasarthy, G., Cheng, K.-T.: SATORI – A fast sequential SAT engine for circuits. In: Proceedings of the International Conference on Computer-Aided Design, pp. 320–325 (2003)
Jin, H., Awedh, M., Somenzi, F.: CirCUs: A satisfiability solver geared towards bounded model checking. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 519–522. Springer, Heidelberg (2004)
Holzmann, G.J.: The Model Checker SPIN. IEEE Transactions of Software Engineering 23(5), 279–295 (1997)
Kröning, D., Strichman, O.: Efficient Computation of Recurrence Diameters. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds.) VMCAI 2003. LNCS, vol. 2575, pp. 298–309. Springer, Heidelberg (2002)
Shtrichman, O.: Tuning SAT Checkers for Bounded Model Checking. In: Proceedings of International Conference on Computer-Aided Verification (2000)
Shtrichman, O.: Pruning Techniques for the SAT-based bounded model checking. In: Proceedings of Workshop on Tools and Algorithms for the Analysis and Construction of Systems (TACAS) (2001)
Een, N., Sorensson, N.: Temporal induction by incremental SAT solving. In: Proceedings of the First International Workshop on Bounded Model Checking (BMC). Elsevier, Amsterdam (2003)
Baumgartner, J., Kuehlmann, A., Abraham, J.A.: Property Checking via Structural Analysis. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 151. Springer, Heidelberg (2002)
Mneimneh, M., Sakallah, K.: SAT-based sequential depth computation. In: Proceedings of the First International Workshop on Constraints in Formal Verification (2002)
Kuehlmann, A., Krohm, F.: Equivalence Checking using Cuts and Heaps. In: Proceedings of Design Automation Conference (1997)
Whittemore, J., Kim, J., Sakallah, K.: SATIRE: A new incremental SAT engine. In: Proceedings of the Design Automation Conference (2001)
Ganai, M., Aziz, A.: Improved SAT-based Bounded Reachability Analysis. In: Proceedings of VLSI Design Conference (2002)
Brayton, R., Somenzi, F., et al.: VIS: Verification Interacting with Synthesis (2002), http://vlsi.colorado.edu/~vis
Cabodi, S.N., Quer, S.: Improving SAT-based bounded model checking by means of BDD-based approximate traversals. In: Proceedings of Design Automation and Test Europe, pp. 898–903 (2003)
Kurshan, R.P.: Computer-Aided Verification of Co-ordinating Processes: The Automata-Theoretic Approach. Princeton University Press, Princeton (1994)
Zhao, Y.: Accelerating Boolean Satisfiability through Application Specific Processing. In: Electrical Engineering, Princeton University, Princeton (2001)
Burch, J.R., Dill, D.: Automatic verification of pipelined microprocessor control. In: Proceedings of the International Conference on Computer Aided Verification (1994)
Bryant, R.E., German, S., Velev, M.N.: Processor verification using efficient reductions of the logic of uninterpreted functions to propositional logic. In: Proceedings of the International Conference on Computer Aided Verification (1999)
Velev, M.N.: Automatic abstraction of memories in the formal verification of superscalar microprocessors. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, p. 252. Springer, Heidelberg (2001)
Bryant, R.E., Lahiri, S., Seshia, S.: Modeling and Verifying Systems using a Logic of Counter Arithmetic with Lambda Expressions and Uninterpreted Functions. In: Proceedings of Conference on Computer Aided Verification (2002)
Bjesse, P., Claessen, K.: SAT-based verification without state space traversal. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 372–389. Springer, Heidelberg (2000)
Clarke, E.M., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Proceedings of Conference on Computer Aided Verification, pp. 154–169 (2000)
Chauhan, P., Clarke, E.M., Kukula, J., Sapra, S., Veith, H., Wang, D.: Automated Abstraction Refinement for Model Checking Large State Spaces using SAT based Conflict Analysis. In: Proceedings of Conference on Formal Methods in CAD (FMCAD) (2002)
McMillan, K.L.: Interpolation and SAT-based Model Checking. In: Proceedings of Conference on Computer-Aided Verification (2003)
Abdulla, P.A., Bjesse, P., Eén, N.: Symbolic Reachability Analysis Based on SAT-Solvers. In: Schwartzbach, M.I., Graf, S. (eds.) TACAS 2000. LNCS, vol. 1785, p. 411. Springer, Heidelberg (2000)
Williams, P., Biere, A., Clarke, E.M., Gupta, A.: Combining Decision Diagrams and SAT Procedures for Efficient Symbolic Model Checking. In: Proceedings of International Conference on Computer-Aided Verification, pp. 124–138 (2000)
McMillan, K.L.: Applying SAT methods in unbounded symbolic model checking. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 250. Springer, Heidelberg (2002)
Kang, H.-J., Park, I.-C.: SAT-based unbounded symbolic model checking. In: Proceedings of the Design Automation Conference (2003)
Tang, D., Malik, S., Gupta, A., Ip, N.: Symmetry reduction in SAT-based model checking. In: Proceedings of the International Conference on Computer Aided Verification, pp. 125–138 (2005)
VIS Home page, http://www-cad.eecs.berkeley.edu/~vis
Gupta, A., Bayazit, A.A., Mahajan, Y.: Verification Languages. In: The Industrial Information Technology Handbook. CRC Press, Boca Raton (2005)
Williams, S.: Icarus Verilog, http://www.icarus.com/eda/verilog
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gupta, A., Ganai, M.K., Wang, C. (2006). SAT-Based Verification Methods and Applications in Hardware Verification. In: Bernardo, M., Cimatti, A. (eds) Formal Methods for Hardware Verification. SFM 2006. Lecture Notes in Computer Science, vol 3965. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11757283_5
Download citation
DOI: https://doi.org/10.1007/11757283_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34304-2
Online ISBN: 978-3-540-34305-9
eBook Packages: Computer ScienceComputer Science (R0)