Verification of embedded memory systems using efficient memory modeling

We describe verification techniques for embedded memory systems using efficient memory modeling (EMM), without explicitly modeling each memory bit. We extend our previously proposed approach of EMM in bounded model checking (BMC) for a single read/write port single memory system, to more commonly occurring systems with multiple memories, having multiple read and write ports. More importantly, we augment such EMM to providing correctness proofs, in addition to finding real bugs as before. The novelties of our verification approach are in (a) combining EMM with a proof-based abstraction that preserves the correctness of a property up to a certain analysis depth of SAT-based BMC, and (b) modeling arbitrary initial memory state precisely and thereby providing inductive proofs using SAT-based BMC for embedded memory systems. Similar to the previous approach, we construct a verification model by eliminating memory arrays, but retaining the memory interface signals with their control logic and adding constraints on those signals at every analysis depth to preserve the data forwarding semantics. The size of these EMM constraints depends quadratically on the number of memory accesses and the number of read and write ports; and linearly on the address and data widths and the number of memories. We show the effectiveness of our approach on several industry designs and software programs.

[1]  Randal E. Bryant,et al.  Efficient Modeling of Memory Arrays in Symbolic Simulation , 1997, CAV.

[2]  Ofer Strichman,et al.  SAT Based Abstraction-Refinement Using ILP and Machine Learning Techniques , 2002, CAV.

[3]  Aarti Gupta,et al.  Efficient Modeling of Embedded Memories in Bounded Model Checking , 2004, CAV.

[4]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[5]  Zijiang Yang,et al.  Iterative Abstraction using SAT-based BMC with Proof Analysis , 2003, ICCAD 2003.

[6]  Edmund M. Clarke,et al.  Model checking, abstraction, and compositional verification , 1993 .

[7]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[8]  Sharad Malik,et al.  Validating SAT solvers using an independent resolution-based checker: practical implementations and other applications , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[9]  Zijiang Yang,et al.  Efficient distributed SAT and SAT-based distributed Bounded Model Checking , 2003, International Journal on Software Tools for Technology Transfer.

[10]  Randal E. Bryant,et al.  Processor verification using efficient reductions of the logic of uninterpreted functions to propositional logic , 1999, TOCL.

[11]  Helmut Veith,et al.  Automated Abstraction Refinement for Model Checking Large State Spaces Using SAT Based Conflict Analysis , 2002, FMCAD.

[12]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[13]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

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

[15]  Randal E. Bryant,et al.  Formal verification of PowerPC arrays using symbolic trajectory evaluation , 1996, DAC '96.

[16]  Mary Sheeran,et al.  Checking Safety Properties Using Induction and a SAT-Solver , 2000, FMCAD.

[17]  Sharad Malik,et al.  Combining strengths of circuit-based and CNF-based algorithms for a high-performance SAT solver , 2002, DAC '02.

[18]  Kenneth L. McMillan,et al.  Automatic Abstraction without Counterexamples , 2003, TACAS.

[19]  Sanjit A. Seshia,et al.  Modeling and Verifying Systems Using a Logic of Counter Arithmetic with Lambda Expressions and Uninterpreted Functions , 2002, CAV.

[20]  Miroslav N. Velev,et al.  Automatic Abstraction of Memories in the Formal Verification of Superscalar Microprocessors , 2001, TACAS.

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

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