RTL-datapath verification using integer linear programming

Satisfiability of complex word-level formulas often arises as a problem informal verification of hardware designs described at the register transfer level (RTL). Even though most designs are described in a hardware description language (HDL), like Verilog or VHDL, usually this problem is solved in the Boolean domain, using Boolean solvers, These engines often show a poor performance for data path verification. Instead of solving the problem at the bit-level, a method is proposed to transform conjunctions of bitvector equalities and inequalities into sets of integer linear arithmetic constraints. It is shown that it is possible to correctly model the modulo semantics of HDL operators as linear constraints. Integer linear constraint solvers are used as a decision procedure for bitvector arithmetic. In the implementation we focus on verification of arithmetic properties of Verilog-HDL designs. Experimental results show considerable performance advantages over high-end Boolean SAT solver approaches. The speed-up on the benchmarks studied is several orders of magnitude.

[1]  George B. Dantzig,et al.  Fourier-Motzkin Elimination and Its Dual , 1973, J. Comb. Theory, Ser. A.

[2]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[3]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[4]  William Pugh,et al.  Experiences with Constraint-based Array Dependence Analysis , 1994, PPCP.

[5]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Presburger Arithmetic Constraints (Extended Abstract) , 1995, SAS.

[6]  Harald Ruess,et al.  An Efficient Decision Procedure for the Theory of Fixed-Sized Bit-Vectors , 1997, CAV.

[7]  Harald Ruess,et al.  Solving Bit-Vector Equations , 1998, FMCAD.

[8]  Kurt Keutzer,et al.  Functional vector generation for HDL models using linear programming and 3-satisfiability , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[9]  David L. Dill,et al.  A decision procedure for bit-vector arithmetic , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[10]  Thomas R. Shiple,et al.  A Comparison of Presburger Engines for EFSM Reachability , 1998, CAV.

[11]  Masahiro Fujita,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, DAC '99.

[12]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[13]  Farzan Fallah Coverage-directed validation of hardware models , 1999 .

[14]  Kwang-Ting Cheng,et al.  Assertion checking by combined word-level ATPG and modular arithmetic constraint-solving techniques , 2000, DAC.

[15]  Rolf Drechsler Formal Verification of Circuits , 2000, Springer US.

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

[17]  Peer Johannsen BooStER: Speeding Up RTL Property Checking of Digital Designs by Word-Level Abstarction , 2001, CAV.

[18]  Randal E. Bryant,et al.  Effective use of boolean satisfiability procedures in the formal verification of superscalar and VLIW , 2001, DAC '01.

[19]  Zhihong Zeng,et al.  LPSAT: a unified approach to RTL satisfiability , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[20]  Randal E. Bryant,et al.  Effective use of Boolean satisfiability procedures in the formal verification of superscalar and VLIW microprocessors , 2003, J. Symb. Comput..