An Analytic Evaluation of SystemC Encodings in Promela

SystemC is a de-facto standard language for high-level modeling of systems on chip. We investigate the feasibility of explicit state model checking of SystemC programs, proposing several ways to convert SystemC into Promela. We analyze the expressiveness of the various encoding styles, and we experimentally evaluate their impact on the search carried out by SPIN on a significant set of benchmarks. We also compare the results with recent approaches to symbolic verification of SystemC. Our approach never returns false positives, detects assertion violations much faster than recent formal approaches, and has the novel feature of pinpointing non-progressing delta cycles.

[1]  Kevin Marquet,et al.  Efficient Encoding of SystemC/TLM in Promela , 2011 .

[2]  Florence Maraninchi,et al.  Pinapa: an extraction tool for SystemC descriptions of systems-on-a-chip , 2005, EMSOFT.

[3]  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..

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

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

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

[7]  Marco Roveri,et al.  Kratos - A Software Model Checker for SystemC , 2011, CAV.

[8]  Gerard J. Holzmann,et al.  An improvement in formal verification , 1994, FORTE.

[9]  Daniel Kroening,et al.  SATABS: SAT-Based Predicate Abstraction for ANSI-C , 2005, TACAS.

[10]  Moshe Y. Vardi,et al.  Monitoring temporal SystemC properties , 2010, Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010).

[11]  Rolf Drechsler,et al.  CheckSyC: an efficient property checker for RTL SystemC designs , 2005, 2005 IEEE International Symposium on Circuits and Systems.

[12]  Florence Maraninchi,et al.  LusSy: a toolbox for the analysis of systems-on-a-chip at the transactional level , 2005, Fifth International Conference on Application of Concurrency to System Design (ACSD'05).

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

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

[15]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

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

[17]  Gerard J. Holzmann,et al.  Software model checking with SPIN , 2005, Adv. Comput..

[18]  Moshe Y. Vardi,et al.  A Temporal Language for SystemC , 2008, 2008 Formal Methods in Computer-Aided Design.

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

[20]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[21]  Daniel Kroening,et al.  Scoot: A Tool for the Analysis of SystemC Models , 2008, TACAS.

[22]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

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