Predicate Abstraction of RTL Verilog Descriptions Using Constraint Logic Programming

A major technique to address state explosion problem in model checking is abstraction. Predicate abstraction has been applied successfully to large software and now to hardware descriptions, such as Verilog. This paper evaluates the state-of-the-art constraint logic programming (CLP) techniques to improve the performance of predication abstraction of hardware designs, and compared it with the SAT-based predicate abstraction techniques. With CLP based techniques, we can model various constraints, such as bit, bit-vector and integer, in a uniform framework; we can also model the word-level constraints without flatting them into bit-level constraints as SAT-based method does. With these advantages, the computation of abstraction system can be more efficient than SAT-based techniques. We have implemented this method, and the experimental results have shown the promising improvements on the performance of predicate abstraction of hardware designs.

[1]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[2]  Helmut Veith,et al.  SAT Based Predicate Abstraction for Hardware Verification , 2003, SAT.

[3]  Sriram K. Rajamani,et al.  Boolean Programs: A Model and Process for Software Analysis , 2000 .

[4]  Daniel Kroening,et al.  Predicate Abstraction of ANSI-C Programs Using SAT , 2004, Formal Methods Syst. Des..

[5]  Thomas A. Henzinger,et al.  Software Verification with BLAST , 2003, SPIN.

[6]  Michael J. Maher,et al.  Constraint Logic Programming: A Survey , 1994, J. Log. Program..

[7]  Shuvendu K. Lahiri,et al.  Zapato: Automatic Theorem Proving for Predicate Abstraction Refinement , 2004, CAV.

[8]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[9]  Sriram K. Rajamani,et al.  Automatically validating temporal safety properties of interfaces , 2001, SPIN '01.

[10]  Yang Guo,et al.  Functional vectors generation for RT-level Verilog descriptions based on path enumeration and constraint logic programming , 2005, 8th Euromicro Conference on Digital System Design (DSD'05).

[11]  David Detlefs,et al.  Simplify: a theorem prover for program checking , 2005, JACM.

[12]  Daniel Kroening,et al.  Predicate abstraction and refinement techniques for verifying Verilog , 2004 .

[13]  Kenneth L. McMillan,et al.  Applying SAT Methods in Unbounded Symbolic Model Checking , 2002, CAV.

[14]  Daniel Kroening,et al.  Verification of SpecC using predicate abstraction , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[15]  Raimund Ubar,et al.  Test Synthesis with Alternative Graphs , 1996, IEEE Des. Test Comput..

[16]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[17]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[18]  Cormac Flanagan,et al.  Predicate abstraction for software verification , 2002, POPL '02.