Compiled Symbolic Simulation for SystemC

Ensuring the correctness of SystemC virtual prototypes is indispensable. For such models, existing symbolic simulation approaches are based on interpreting their behavior. In this paper we propose a major enhancement called Compiled Symbolic Simulation (CSS). For more scalable state space exploration, CSS augments the DUV to integrate the symbolic execution engine and the Partial Order Reduction based scheduler. Then, a standard C++ compiler is used to generate a native binary, whose execution performs exhaustive verification of the DUV. An extensive experimental evaluation demonstrates the potential of our approach.

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

[2]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[3]  Rolf Drechsler,et al.  Towards formal verification of real-world SystemC TLM peripheral models - a case study , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[4]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.

[5]  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).

[6]  Rolf Drechsler,et al.  Quality-Driven SystemC Design , 2009 .

[7]  Daniel Kroening,et al.  Digitaltechnik - eine praxisnahe Einführung , 2008 .

[8]  Patrice Godefroid,et al.  Dynamic partial-order reduction for model checking software , 2005, POPL '05.

[9]  Florence Maraninchi,et al.  A SystemC/TLM Semantics in Promelaand Its Possible Applications , 2007, SPIN.

[10]  Rolf Drechsler,et al.  Verifying SystemC using an intermediate verification language and symbolic simulation , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[11]  Thomas Schuster,et al.  SoCRocket - A virtual platform for the European Space Agency's SoC development , 2014, 2014 9th International Symposium on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC).

[12]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[13]  Patrice Godefroid,et al.  Partial-Order Methods for the Verification of Concurrent Systems , 1996, Lecture Notes in Computer Science.

[14]  Chun-Nan Chou,et al.  Conquering the scheduling alternative explosion problem of SystemC symbolic simulation , 2013, 2013 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[15]  Marco Roveri,et al.  An Analytic Evaluation of SystemC Encodings in Promela , 2011, SPIN.

[16]  Brian Bailey,et al.  ESL Design and Verification: A Prescription for Electronic System Level Methodology , 2007 .

[17]  Marco Roveri,et al.  Software Model Checking SystemC , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[18]  Chun-Nan Chou,et al.  Symbolic model checking on SystemC designs , 2012, DAC Design Automation Conference 2012.

[19]  George Candea,et al.  Efficient state merging in symbolic execution , 2012, Software Engineering.

[20]  Rolf Drechsler,et al.  Verifying SystemC using stateful symbolic simulation , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).