Partial order reduction for scalable testing of SystemC TLM designs

A SystemC simulation kernel consists of a deterministic implementation of the scheduler, whose specification is non- deterministic. To leverage testing of a SystemC TLM design, we focus on automatically exploring all possible behaviors of the design for a given data input. We combine static and dynamic partial order reduction techniques with SystemC semantics to intelligently explore a subset of the possible traces, while still being provably sufficient for detecting deadlocks and safety property violations. We have implemented our exploration algorithm in a framework called Satya and have applied it to a variety of examples including the TAC benchmark. Using Satya, we automatically found an assertion violation in a benchmark distributed as a part of the OSCI repository.

[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]  Sofiène Tahar,et al.  Design for verification of SystemC transaction level models , 2005, Design, Automation and Test in Europe.

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

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

[5]  Vijay K. Garg,et al.  Formal Verification of Simulation Traces Using Computation Slicing , 2007, IEEE Transactions on Computers.

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

[7]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[8]  Matthew B. Dwyer,et al.  Slicing Software for Model Construction , 2000, High. Order Symb. Comput..

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

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

[11]  Ingolf H. Krüger,et al.  Compositional Reactive Semantics of SystemC and Verification with RuleBase , 2007 .

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

[13]  Rolf Drechsler,et al.  Improvements for constraint solving in the systemc verification library , 2007, GLSVLSI '07.

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

[15]  Milind Girkar,et al.  Automatic Extraction of Functional Parallelism from Ordinary Programs , 1992, IEEE Trans. Parallel Distributed Syst..

[16]  Stuart Swan,et al.  SystemC transaction level models and RTL verification , 2006, 2006 43rd ACM/IEEE Design Automation Conference.