Sysfier: Actor-based formal verification of SystemC

SystemC is a system-level modeling language that can be used effectively for hardware/software co-design. Since a major goal of SystemC is to enable verification at higher levels of abstraction, the tendency is now directing to introducing formal verification approaches for SystemC. In this article, we propose an approach for formal verification of SystemC designs, and provide the semantics of SystemC using Labeled Transition Systems (LTS) for this purpose. An actor-based language, Rebeca, is used as an intermediate language. SystemC designs are mapped to Rebeca models and then Rebeca verification toolset is used to verify LTL and CTL properties. To tackle the state-space explosion, Rebeca model checkers offer some reduction policies that make them appropriate for SystemC verification. The approach also benefits from the modular verification and program slicing techniques applied on Rebeca models. To show the applicability of our approach, we verified a single-cycle MIPS design and two hardware/software co-designs. The results show that our approach can effectively be used both in hardware and hardware/software co-verification.

[1]  Fabio Somenzi,et al.  Efficient Büchi Automata from LTL Formulae , 2000, CAV.

[2]  A. Pnueli The Temporal Semantics of Concurrent Programs , 1979, Theor. Comput. Sci..

[3]  Frank Ghenassia Transaction-Level Modeling with SystemC: TLM Concepts and Applications for Embedded Systems , 2010 .

[4]  Marjan Sirjani,et al.  Using Reo for formal specification and verification of system designs , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

[5]  Sofiène Tahar,et al.  On the Transformation of SystemC to AsmL Using Abstract Interpretation , 2005, Electron. Notes Theor. Comput. Sci..

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

[7]  Mohammad Mahdi Jaghoori,et al.  Modere: the model-checking engine of Rebeca , 2006, SAC.

[8]  Frank S. de Boer,et al.  Modeling and Verification of Reactive Systems using Rebeca , 2004, Fundam. Informaticae.

[9]  Marjan Sirjani,et al.  Compositional semantics of system-level designs written in systemC , 2007, FSEN'07.

[10]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[11]  Petru Eles,et al.  Verification of embedded systems using a petri net based representation , 2000, ISSS '00.

[12]  Sofiène Tahar,et al.  Enabling SystemC Verification using Abstract State Machines , 2004, FDL.

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

[14]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[15]  Sofiène Tahar,et al.  Design and verification of SystemC transaction-level models , 2006, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[16]  Sandeep K. Shukla,et al.  Improving SystemC simulation through Petri net reductions , 2005, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2005. MEMOCODE '05..

[17]  Mohammad Mahdi Jaghoori,et al.  Efficient Symmetry Reduction for an Actor-Based Model , 2005, ICDCIT.

[18]  Marjan Sirjani,et al.  An effective approach for model checking SystemC designs , 2008, 2008 8th International Conference on Application of Concurrency to System Design.

[19]  Florence Maraninchi,et al.  LusSy: An open tool for the analysis of systems-on-a-chip at the transaction level , 2005, Des. Autom. Embed. Syst..

[20]  Frank S. de Boer,et al.  Model Checking, Automated Abstraction, and Compositional Verification of Rebeca Models , 2005, J. Univers. Comput. Sci..

[21]  Wolfgang Rosenstiel,et al.  The simulation semantics of SystemC , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[22]  Jack Donovan,et al.  SystemC: From the Ground Up , 2004 .

[23]  Rolf Drechsler,et al.  Reachability analysis for formal verification of SystemC , 2002, Proceedings Euromicro Symposium on Digital System Design. Architectures, Methods and Tools.

[24]  Moshe Y. Vardi Formal Techniques for SystemC Verification; Position Paper , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[25]  Marjan Sirjani,et al.  Slicing-based Reductions for Rebeca , 2008, FACS.

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

[27]  Frank Ghenassia,et al.  Transaction Level Modeling with SystemC , 2005 .

[28]  Frank S. de Boer,et al.  Modular Verification of a Component-Based Actor Language , 2005, J. Univers. Comput. Sci..

[29]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[30]  Mohammad Mahdi Jaghoori,et al.  Symmetry and partial order reduction techniques in model checking Rebeca , 2010, Acta Informatica.

[31]  Rolf Drechsler,et al.  Formal verification of LTL formulas for SystemC designs , 2003, Proceedings of the 2003 International Symposium on Circuits and Systems, 2003. ISCAS '03..

[32]  Ashraf Salem Formal semantics of synchronous SystemC , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[33]  Wolfgang Rosenstiel,et al.  SystemC: methodologies and applications , 2003 .

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

[35]  Sandeep K. Shukla,et al.  Model-Driven Validation of SystemC Designs , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[36]  Mohammad Reza Mousavi,et al.  Process algebraic verification of SystemC codes , 2008, 2008 8th International Conference on Application of Concurrency to System Design.