Symbolic model checking on SystemC designs

SystemC is a de-facto standard for modeling system-level designs in the early design stage. Verifying SystemC designs is critical in the design process since it can avoid error propagation down to the final implementation. Recent works exploit the software model checking techniques to tackle this important issue. But they abstract away relevant semantic aspects or show limited scalability. In this paper, we devise a symbolic model checking technique using bounded model checking and induction to formally verify SystemC designs. We introduce the notions of behavioral states and transitions to guarantee the soundness of our approach. The experiments show the scalability and the efficiency of our method.

[1]  Daniel Kroening,et al.  Formal verification of SystemC by automatic hardware/software partitioning , 2005, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2005. MEMOCODE '05..

[2]  Florence Maraninchi,et al.  Automatic Generation of Schedulings for Improving the Test Coverage of Systems-on-a-Chip , 2006, 2006 Formal Methods in Computer Aided Design.

[3]  Wang Yi,et al.  UPPAAL 4.0 , 2006, Third International Conference on the Quantitative Evaluation of Systems - (QEST'06).

[4]  Paula Herber,et al.  Model checking SystemC designs using timed automata , 2008, CODES+ISSS '08.

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

[6]  Chun-Nan Chou,et al.  Formal deadlock checking on high-level SystemC designs , 2010, 2010 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[7]  Patrice Godefroid,et al.  Model checking for programming languages using VeriSoft , 1997, POPL '97.

[8]  Rajesh Gupta,et al.  Partial order reduction for scalable testing of SystemC TLM designs , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[9]  Rolf Drechsler,et al.  Proving transaction and system-level properties of untimed SystemC TLM designs , 2010, Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010).

[10]  Daniel Kroening,et al.  Race analysis for SystemC using model checking , 2008, 2008 IEEE/ACM International Conference on Computer-Aided Design.

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

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

[13]  Marco Roveri,et al.  Verifying SystemC: A software model checking approach , 2010, Formal Methods in Computer Aided Design.

[14]  Stephan Merz,et al.  Model Checking , 2000 .

[15]  Marco Roveri,et al.  Boosting Lazy Abstraction for SystemC with Partial Order Reduction , 2011, TACAS.

[16]  Petru Eles,et al.  Formal Verification of SystemC Designs Using a Petri-Net Based Representation , 2006, Proceedings of the Design Automation & Test in Europe Conference.