Symbolic trajectory evaluation for word-level verification: theory and implementation

Symbolic trajectory evaluation (STE) is a model checking technique that has been successfully used to verify many industrial designs. Existing implementations of STE reason at the level of bits, allowing signals in a circuit to take values from a lattice comprised of three elements: 0, 1, and X. This limits the amount of abstraction that can be achieved, and presents limitations to scaling STE to even larger designs. The main contribution of this paper is to show how much more abstract lattices can be derived automatically from register-transfer level descriptions, and how a model checker for the general theory of STE instantiated with such abstract lattices can be implemented in practice. We discuss several implementation issues, including how word-level circuits can be symbolically simulated using a new encoding for words that allows representing X values of sub-words succinctly. This gives us the first practical word-level STE engine, called $$\mathsf {STEWord}$$STEWord. Experiments on a set of designs similar to those used in industry show that $$\mathsf {STEWord}$$STEWord scales better than bit-level STE, as well as word-level bounded model checking.

[1]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

[2]  Daniel Kroening,et al.  Decision Procedures - An Algorithmic Point of View , 2008, Texts in Theoretical Computer Science. An EATCS Series.

[3]  Sanjit A. Seshia,et al.  Beaver: Engineering an Efficient SMT Solver for Bit-Vector Arithmetic , 2009, CAV.

[4]  Supratik Chakraborty,et al.  Word-Level Symbolic Trajectory Evaluation , 2015, CAV.

[5]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[6]  Aarti Gupta,et al.  Symbolic Trajectory Evaluation: The primary validation Vehicle for next generation Intel® Processor Graphics FPU , 2012, 2012 Formal Methods in Computer-Aided Design (FMCAD).

[7]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[8]  Alberto Griggio,et al.  The MathSAT 5 SMT Solver ⋆ , 2012 .

[9]  Ganesh Gopalakrishnan,et al.  Proceedings of the 23rd international conference on Computer aided verification , 2011 .

[10]  Henrique S. Malvar,et al.  High-quality linear interpolation for demosaicing of Bayer-patterned color images , 2004, 2004 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[11]  Randal E. Bryant,et al.  Formal Verification of Digital Circuits Using Symbolic Ternary System Models , 1990, CAV.

[12]  Carl-Johan H. Seger,et al.  Practical Formal Verification in Microprocessor Design , 2001, IEEE Des. Test Comput..

[13]  Rahul Jain,et al.  Matching Multiplications in Bit-Vector Formulas , 2016, VMCAI.

[14]  Fabio Somenzi,et al.  CUDD: CU Decision Diagram Package Release 2.2.0 , 1998 .

[15]  Armin Biere,et al.  Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays , 2009, TACAS.

[16]  Koen Claessen,et al.  A New SAT-Based Algorithm for Symbolic Trajectory Evaluation , 2005, CHARME.

[17]  Robert K. Brayton,et al.  ABC: An Academic Industrial-Strength Verification Tool , 2010, CAV.

[18]  Carl-Johan H. Seger,et al.  An industrially effective environment for formal hardware verification , 2005, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[19]  Randal E. Bryant,et al.  Formal verification by symbolic evaluation of partially-ordered trajectories , 1995, Formal Methods Syst. Des..

[20]  Bruno Dutertre,et al.  Yices 2.2 , 2014, CAV.

[21]  David L. Dill,et al.  A decision procedure for an extensional theory of arrays , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[22]  Peer Johannsen Reducing bitvector satisfiability problems to scale down design sizes for RTL property checking , 2001, Sixth IEEE International High-Level Design Validation and Test Workshop.

[23]  Anna Slobodová,et al.  Replacing Testing with Formal Verification in Intel CoreTM i7 Processor Execution Engine Validation , 2009, CAV.

[24]  Alberto Griggio,et al.  The MathSAT5 SMT Solver , 2013, TACAS.