Automatic TLM Fault Localization for SystemC

To meet today's time-to-market demands, catching bugs as early as possible during the design of a system is essential. In electronic system level design where SystemC has become the de-facto standard due to transaction level modeling (TLM), many approaches for verification have been developed. They determine an error trace that demonstrates the difference between the required and the actual behavior of the system. However, the subsequent debugging process is very time-consuming, in particular due to TLM-related faults caused by complex process synchronization and concurrency. In this paper, we present an automatic fault localization approach for SystemC TLM designs. We target typical TLM faults, such as accidentally swapped blocking and nonblocking transactions, erroneous event notification, or incorrect transaction data. The approach determines parts of the design that can be changed such that the intended behavior of the design is obtained by removing the contradiction given by the error trace. Single, as well as multiple faults, is considered. Techniques based on bounded model checking are used to find the faulty parts. We demonstrate the quality of our approach by several experiments. As shown in the experiments, the fault locations are identified very fast and hence a significant acceleration for the design of SystemC TLM models is achieved.

[1]  Rolf Drechsler,et al.  Towards analyzing functional coverage in SystemC TLM property checking , 2010, 2010 IEEE International High Level Design Validation and Test Workshop (HLDVT).

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

[3]  Andreas Zeller,et al.  Simplifying and Isolating Failure-Inducing Input , 2002, IEEE Trans. Software Eng..

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

[5]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

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

[7]  Moayad Fahim Ali,et al.  Fault diagnosis and logic debugging using Boolean satisfiability , 2005, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[8]  Rolf Drechsler,et al.  An Integrated SystemC Debugging Environment , 2007, FDL.

[9]  Franco Fummi,et al.  A Mutation Model for the SystemC TLM 2.0 Communication Interfaces , 2008, 2008 Design, Automation and Test in Europe.

[10]  Alper Sen,et al.  Concurrency-oriented verification and coverage of system-level designs , 2011, TODE.

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

[12]  Rolf Drechsler,et al.  Automatic debugging of System-on-a-Chip designs , 2009, 2009 IEEE International SOC Conference (SOCC).

[13]  Rolf Drechsler,et al.  Automatic Fault Localization for Property Checking , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[14]  Kwang-Ting Cheng,et al.  SCEMIT: A SystemC error and mutation injection tool , 2010, Design Automation Conference.

[15]  Olivier Ponsini,et al.  A Comparison of Two SystemC/TLM Semantics for Formal Verification , 2008, 2008 6th ACM/IEEE International Conference on Formal Methods and Models for Co-Design.

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

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

[18]  Xi Chen,et al.  Runtime Deadlock Analysis of SystemC Designs , 2006, 2006 IEEE International High Level Design Validation and Test Workshop.

[19]  Franco Fummi,et al.  Incremental ABV for Functional Validation of TL-to-RTL Design Refinement , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

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

[21]  Rolf Drechsler,et al.  Automatic Fault Localization for SystemC TLM Designs , 2010, 2010 11th International Workshop on Microprocessor Test and Verification.

[22]  Franco Fummi,et al.  System/network design-space exploration based on TLM for networked embedded systems , 2010, TECS.

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

[24]  Roderick Bloem,et al.  Automated Fault Localization for C Programs , 2007, V&D@FLoC.

[25]  Wolfgang Ecker,et al.  Interactive presentation: Implementation of a transaction level assertion framework in SystemC , 2007 .

[26]  Zeljko Zilic,et al.  Generating Hardware Assertion Checkers: For Hardware Verification, Emulation, Post-Fabrication Debugging and On-Line Monitoring , 2008 .

[27]  Laurence Pierre,et al.  Formal semantics for PSL modeling layer and application to the verification of transactional models , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[28]  Zeljko Zilic,et al.  Generating Hardware Assertion Checkers , 2008 .

[29]  Daniel Gajski,et al.  Transaction level modeling: an overview , 2003, First IEEE/ACM/IFIP International Conference on Hardware/ Software Codesign and Systems Synthesis (IEEE Cat. No.03TH8721).