Encoding RTL Constructs for MathSAT: a Preliminary Report

Formal checking at Register-Transfer Level (RTL) is currently a fundamental step in the design of hardware circuits. Most tools for formal checking, however, work at the boolean level, which is not expressive enough to capture the abstract, high level (e.g., structural, word level) information of RTL designs. Tools for formal checking are thus confronted with problems which are ''flattened'' down to boolean level, so that a predominant part of their computational effort is wasted in performing useless boolean search on the bitwise encoding of integer data and arithmetical operations. In this paper we present a way of encoding RTL constructs into SMT formulas, that is, boolean combinations of boolean variables and quantifier-free constraints in Integer Linear Arithmetic. Such formulas can be handled by the MathSAT tool (and others) directly, without flattening to boolean level, so that to reduce drastically the computational effort. We propose a mixed boolean/ILP encoding, in which control variables are encoded as boolean variables, datapath variables as integer variables; control constructs are handled as boolean combination of control variables and predicates over datapath variables, and datapath constructs are encoded, as much as possible, as linear arithmetical constraints over datapath variables.

[1]  Karem A. Sakallah,et al.  Automatic abstraction and verification of verilog models , 2004, Proceedings. 41st Design Automation Conference, 2004..

[2]  Sanjit A. Seshia,et al.  A hybrid SAT-based decision procedure for separation logic with uninterpreted functions , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[3]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[4]  Marco Bozzano,et al.  Efficient Satisfiability Modulo Theories via Delayed Theory Combination , 2005, CAV.

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

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

[7]  Harald Ruess,et al.  Solving Bit-Vector Equations of Fixed and Non-Fixed Size , 1999 .

[8]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[9]  Rolf Drechsler,et al.  RTL-datapath verification using integer linear programming , 2002, Proceedings of ASP-DAC/VLSI Design 2002. 7th Asia and South Pacific Design Automation Conference and 15h International Conference on VLSI Design.

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

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

[12]  Marco Bozzano,et al.  An Incremental and Layered Procedure for the Satisfiability of Linear Arithmetic Logic , 2005, TACAS.

[13]  David L. Dill,et al.  Automatic verification of Pipelined Microprocessor Control , 1994, CAV.